O que é pulverização de heap?
A pulverização de heap é uma técnica de hackers usada para explorar vulnerabilidades no software de computador. Ele age para obter controle sobre um programa aproveitando uma parte de sua memória. Depois que uma parte da memória é controlada pelo código de hackers, o hacker pode assumir o controle da execução do código implementando um estouro de buffer na área de heap da memória. O aplicativo mais comum para pulverização de heap é hackear navegadores da Web, como o Internet Explorer®. Isso pode ser pensado em espaço de armazenamento em um armário ou mesa. Esse monte de memória pertence ao programa até que o software ou o código de coleta do sistema operacional o libere. O código de coleta é simplesmente um dispositivo FailSafe que recupera a memória se o programa travar ou o próprio software falhar ao lançar a memória depois que ele nos encerrare.
Na pulverização de heap, um hacker tenta "pulverizar" a pilha de memória com uma parte específica do código. O objetivo é colocar o código em uma posição específica na pilha de memória do programa, como colocar um pé de cabra na beira de uma estrutura de porta para fornecer alavancagem para forçar a porta a se abrir. Depois que as informações são encaixadas na puta de memória através da pulverização de calor, o hacker pode transbordar a pilha ou todo o buffer de memória, gerando erros dentro do sistema. Uma vez que ocorram erros, o hacker pode aproveitar deles para executar seu próprio código no sistema.
A pulverização de heap funciona devido à alocação dinâmica da memória no sistema. O programa de computador "possui essencialmente" toda a parte da memória por enquanto, então o hacker já conhece a localização relativa dentro da memória que o computador atribuiu ao programa. Portanto, o hacker precisa de pouca especificidade para Wedge seu código nas rachaduras; Ele pode pulverizar o código cegamente, sabendo que o bloco de memória sempre estará lá, desde que o programa continue a ser executado. Isso pode ser comparado a tentar escolher uma fechadura enquanto os olhos vendados; A tarefa se torna quase impossível se a trava estiver se movendo, mas enquanto permanecer em um local fixo - assim como a pilha de memória no sistema - o trabalho se torna possível.