GABARITO: CERTO
Um (ou transbordamento de dados) acontece quando um programa informático excede o uso de memória assignado a ele pelo sistema operacional, passando então a escrever no setor de memória contíguo. Essas falhas são utilizadas por cibercriminosos para executar códigos arbitrários em um computador, o que possibilita muitas vezes aos atacantes controlar o PC da vítima ou executar um ataque de negação de serviço (DDoS).
Se analisarmos bem, um buffer overflow é causado em um aplicativo informático quando ele não possui os controles de segurança necessários em seu código de programação. É importante lembrar que para transbordar a memória, é preciso ter conhecimentos de programação e noções básicas de arquitetura de sistemas operacionais.
O princípio de um transbordamento de buffer é baseado na arquitetura do processador onde o aplicativo vulnerável é executado, seja ele de 32 ou de 64 bits. Os dados inseridos em um aplicativo são armazenados na memória de acesso aleatório, em um setor conhecida como buffer. Um programa desenhado corretamente deveria estipular um tamanho máximo para dados recebidos e garantir que esses valores não sejam superados.
As instruções e os dados de um programa em execução são armazenados temporariamente em forma contígua na memória em um setor que se chama pila (stack). Os dados localizados depois do buffer contêm um endereço de retorno (denominado ponteiro de instrução) que permite que o programa continue sendo executado. Se a quantidade de dados é superior ao buffer, o endereço de retorno se sobrescreve e o programa passa a ler um endereço de memória inválido, o que gera uma violação de segmento no aplicativo.