You are on page 1of 2

Relatório 2: Evitando Estouro de Buffer

Inicialmente o Buffer é uma região da memória física utilizada para
armazenar temporariamente os dados enquanto eles estão sendo movidos
de um lugar ao outro.
Os aplicativos reservam áreas da memória, ou buffers, para o uso como
armazenamento, reservando frequentemente uma quantidade finita de
memória para um buffer. Um estouro de buffer existe quando um aplicativo
tenta armazenar mais dados do que um buffer de tamanho fixo pode
acomodar. Os ataques de estouro de buffer ocorrem quando um invasor
consegue enviar dados além da capacidade do buffer de tamanho fixo do
aplicativo e esse aplicativo não faz uma verificação para garantir que isso
não aconteça. Ao estourar um buffer com um código executável, um invasor
pode fazer com que um aplicativo execute ações inesperadas e, muitas
vezes, maliciosas, usando os mesmos privilégios concedidos ao aplicativo.
Visualizando a estrutura do buffer como uma pilha, ao exceder sua
capacidade de armazenamento de dados, ocorre o “estouro”. E este é o
principal problema da pilha, uma vez que o atacante consegue se privilegiar
do programa alvo alterando seu endereço de retorno para um código
malicioso. O sucesso num ataque desse tipo permite ao atacante desde
danos como o travamento de uma máquina à vantagens de um
superusuário.
Para evitar o estouro de Buffer, é necessário se atentar ao tamanho
reservado para receber strings. Pois se for colocado um valor maior de
string do que o programa possa aguentar, certamente será explorada essa
vulnerabilidade , e o ataque obterá êxito.
É necessário reforçar a linha de código responsável pela alocação da
memoria, deixando uma função clara e objetiva na qual determina o
tamanho do buffer, caso aja uma tentativa de estouro, como o programa
reagira com o transbordo de dados? Irá direcionar para outro mecanismo
para delegar esses dados? O programa só irá absorver a quantidade de bits
declarados e nada além?
Certamente este é um dos pontos mais importantes para se manter a
integridade dos dados e serviços sistêmicos acordado, analisar a linguagem
escolhida para desenvolvimento, minuciar seus recursos e traçar possíveis
falhas de segurança.
Para se evitar esse tipo de ataque, vamos destacar 5 erros comuns no
desenvolvimento da aplicação.
-Não entender a tecnologia;
Se o desenvolvedor não dominar a ferramenta utilizada para
desenvolvimento do sistema, obviamente que seu trabalho não será bom e
satisfatório. É de extrema importância conhecer a linguagem escolhida e

como moldar um projeto para ele? Como colocar esse cliente para disputar no mercado virtual. . -Subestimar a ameaça.caso aja ferramentas adicionas. para que se possa prever e prevenir possíveis falhas e vulnerabilidades do mesmo. É inviável não se fazer um levantamento adequado de mercado. sem analisar o tipo de mercado que ele quer ingressar. e o que a concorrência utiliza de atrativos para obter clientes e reconhecimento. Se você não conhecer o ramo de atuação de seu cliente. sem informações necessárias. . -Subestimar o usuário. -Inconsistência na validação de entrada. necessidades e foco do sistema/aplicação. -Não entender o negócio.