Om Geração automática de controlo
Este livro aborda o problema da geração automática de exploits para vulnerabilidades de software. No Capítulo 2 será dada uma definição formal para o termo "exploit", mas, informalmente, descreve-se um exploit como uma entrada de programa que resulta na execução de código malicioso1. Definimos código malicioso como uma sequência de bytes injectada por um atacante no programa que subverte a segurança do sistema visado. Este código é normalmente designado por shellcode. As explorações deste tipo tiram frequentemente partido de erros de programação relacionados com a gestão da memória ou a tipagem de variáveis em aplicações desenvolvidas em C e C++. Estes erros podem levar a transbordos de memória (buffer overflows) em que demasiados dados são escritos numa memória intermédia, resultando na corrupção de localizações de memória não pretendidas. Um exploit aproveitará esta corrupção para manipular localizações de memória sensíveis com o objetivo de desviar o fluxo de controlo da aplicação.
Vis mer