O que é um transbordamento de buffer de pilha?

Um transbordamento de buffer de pilha é o que acontece quando um programa faz uma entrada na memória de um computador mais longa que o espaço alocado. Em algumas circunstâncias, isso pode corromper outros dados na memória, causando problemas na execução do computador. Em outros casos, um transbordamento de buffer de pilha pode ser explorado por uma aplicação maliciosa para assumir o controle de outras partes do computador. Uma versão disso, a pilha de chamada , é a lista que um programa de computador usa para acompanhar as várias partes do programa, as sub -rotinas, que estão operando em qualquer momento específico. Como a pilha de chamadas opera temporariamente e precisa ser acessada rapidamente, ela está localizada na memória do computador, e não em armazenamento permanente, como o disco rígido.

Como os sistemas operacionais modernos permitem que vários programas sejam executados de uma só vez, é necessário organizar a maneira como a memória é alocada, inclusive para chamar pilhas. Isso é feito com eficiência atribuindo buffers, um espaço na memória projetado para ser grande o suficiente para lidar com o espaço máximo exigido por um buffer específico. Na maioria dos casos, parte do espaço não será utilizada, por isso atua como um buffer entre os dados de diferentes aplicativos, deixando espaço para lidar se repentinamente exigir espaço extra. Uma maneira de visualizar seria pensar em uma biblioteca que alocou uma certa quantidade de espaço para cada área de assunto, certificando -se de deixar algum espaço extra para lidar se, por exemplo, todos os livros sobre um assunto estivessem na biblioteca ao mesmo tempo, em vez de qualquer um deles sendo checado.

Um excesso de buffer de pilha ocorre quando um programa grava dados de pilha de chamadas no buffer de uma maneira que exceda o espaço alocado. Isso pode acontecer por engano, vocêSually através de um bug em um programa. Por exemplo, se um aplicativo for projetado para permitir que o usuário digite um número de telefone, mas não tiver limite para o número de caracteres que podem ser inseridos, um hacker poderá usar o campo ilimitado para causar intencionalmente um estouro de buffer de pilha. Dependendo da maneira como o sistema operacional funciona, isso pode permitir que o hacker acesse indiretamente outro aplicativo ou o próprio sistema operacional.

Existem várias abordagens para atenuar os efeitos de um transbordamento de buffer de pilha. Um é conhecido como randomização do layout do espaço de endereço. Isso organiza as áreas de dados mais importantes no computador de maneira aleatória. A idéia é que, mesmo que um hacker cause ou explore um transbordamento de buffer de pilha, ele não poderá explorar a violação de maneira confiável.

OUTRAS LÍNGUAS

Este artigo foi útil? Obrigado pelo feedback Obrigado pelo feedback

Como podemos ajudar? Como podemos ajudar?