Um dos ataques mais conhecidos que exploram um erro de programação é o do buffer overflow, que consiste em estourar o buffer, ou seja, utilizar toda a memória disponível para um aplicativo.

Quando um buffer overflow ocorre de modo aleatório o que acontece é uma “quebra” no aplicativo e nada mais. Entretanto, quando isso é usado de maneira planejada, estruturada, permite substituir o endereço de retorno de um programa redirecionando-o para um código malicioso que permitirá ao hacker fazer chamadas de sistema com os mesmos privilégios de execução que o programa atacado.

Obviamente, essa não é uma tarefa fácil: é preciso, no mínimo, descobrir o tamanho do buffer, encontrar um jeito de causar o buffer overflow (engenharia reversa, depuração, tentativa e erro etc.), conhecer a área de memória atacada e entender a linguagem Assembly.

E embora os sistemas operacionais tenham procurado modos de bloquear a execução de códigos em certas áreas da memória evitando assim esse tipo de ataque, os crackers também continuam se atualizando e arranjando novos meios para driblar inconvenientes desse tipo.


MACHADO, Marcel Jacques. Segurança da Informação: uma Visão Geral sobre as Soluções Adotadas em Ambientes Organizacionais. Curitiba: UFPR, 2012. Trabalho de Graduação – Bacharelado em Ciência da Computação, Universidade Federal do Paraná, Curitiba, 2012.