Buffer Overflow: saiba o que é e veja se sua empresa está vulnerável a um ataque

Você conhece o buffer overflow? É possível que você conheça esta expressão, já que no ano passado, essa foi a vulnerabilidade que permitiu o ataque global ao WhatsApp. Esse caso trouxe um pouco mais de notoriedade para esta vulnerabilidade, fazendo com que muitas empresas se preocupassem com ela.

Por conta da dependência da tecnologia e de uma falta de conhecimento por parte dos gestores, muitas empresas podem estar expostas a essas ameaças e nem mesmo saber. Se você não quer que este seja o seu caso, continue lendo o post. Entenda o que é buffer overflow e como se proteger dele.

O que é buffer?

Antes de qualquer coisa, é preciso deixar claro o conceito de buffer. O buffer, ou data buffer, é uma área física da memória que é usada para armazenar dados temporários, enquanto os mesmos são transportados de um lugar para outro. Normalmente, faz parte da memória RAM e é muito usada pelos computadores para melhorar a performance. É um termo comum para vídeos, por exemplo, que usam este recurso para evitar interrupções.

Porém, cada buffer é projetado para armazenar um volume de dados bem específico. Então, quando um programa precisa “ultrapassar” este limite, ele não descarta os dados, apenas os armazena na memória próxima ao buffer. Para ilustrar melhor, imagine uma mesa com 10 caixas, em que cada uma cabe uma melancia. O que acontece se você precisa guardar 12 frutas?

O que é o buffer overflow e quais são os principais tipos?

Essa situação é o buffer overflow. Ou seja, existe mais informação do que é possível armazenar no buffer. Os hackers aproveitam esta vulnerabilidade para enviar informação e “forçar” o buffer a usar outros nódulos de memória. Basicamente, existem 4 tipos de buffer overflow:

  • Stack Overflow: É o tipo mais comum, atacando o call stack ou a pilha de chamadas de ação em um programa;
  • Heap Overflow: Um tipo de ataque que visa comprometer a estrutura heap, ou seja, árvore de propriedades;
  • Integer Overflow: Um ataque matemático, com uma operação que produz um número tão grande que o buffer não consegue armazenar;
  • Unicode Overflow: É um tipo mais sofisticado, em que são colocados caracteres unicode em um sistema que espera ASCII.

Quem pode estar vulnerável e como se proteger contra ataques de buffer overflow?

Agora que você já conhece os principais tipos, é preciso saber quem está vulnerável a este tipo de ataque. Certas linguagens, como C e C++ são mais propensas aos mesmos, mas basicamente qualquer uma está exposta. Java, Pearl e C# têm medidas para inibir que isso ocorra, mas não conseguem evitá-los.

Contudo, felizmente, existem formas de se proteger contra estes ataques. O primeiro, como acabamos de ver, é usar linguagens que sejam naturalmente mais resistentes aos ataques. Contudo, isso não é suficiente.

Uma boa dica é usar a prevenção contra elementos executáveis. Através dela, é possível marcar certas áreas da memória como executável ou não executável. Desta forma, os códigos que criam o overflow não podem ser executados.

Outra opção é reorganizar os espaços em que os dados são armazenados, de forma aleatória. Como o buffer overflow ataca uma área específica, “randomizar” os espaços, torna este ataque praticamente impossível.

Quer saber mais sobre cibersegurança? Então, acesse o blog da SoftSell, fique por dentro de todas as novidades e proteja a integridade da sua empresa!


Deixe um comentário