Ainda sobre DOS

Como prometi vou continuar o post anterior sobre negação de serviço. Desta vez vamos falar de quais recursos podemos exaurir para tirar um serviço online do ar.

Já falamos da rede, que pode ser entupida. Mas do outro lado da linha temos computadores. E computadores utilizam CPU e memória para trabalhar. Logo outra forma de tornar o sistema indisponível é utilizar o sistema de forma a gastar mais memória e/ou capacidade da CPU do computador. Isto é fazendo o sistema rodar o que tem de mais complexo. E quem sabe um pouco de computação é capaz de avaliar o quão custosa uma certa funcionalidade pode ser.

Aqui temos um paradoxo interessante. Muitas vezes pode-se tentar acrescentar funcionalidades complexas de forma a “proteger” um sistema. E esta funcionalidade é que pode permitir que se derrube o mesmo.

No computador também temos um Sistema Operacional rodando, (Windows, Unix, MacOS…) e dentro deste também temos recursos finitos. Por exemplo temos uma tabela onde se controla quais são as conexões de rede estabelecidas por este computador, afinal de contas ele tem que saber com quem está conversando. A medida que eu abro conexões eu vou preenchendo esta tabela, mesmo que eu não troque quase nada de dados. Eu posso chegar a um ponto de utilizar todas as conexões do computador, não estar trocando dado nenhum, não consumir portanto CPU, memória e rede, mas o Sistema Operacional não ser capaz de armazenar nenhuma nova conexão, ignorando todo mundo que deseja conversar com ele. Uma variação deste ataque já foi muito comum no passado. Hoje em dia já há mecanismos para controlar este tipo de ataque quando feito sob certas condições.

Por fim existe aquele tipo de negação de serviço que já citei no exemplo do carro no post anterior. que consiste em achar algum bug no software que roda no servidor e utilizá-lo para fazê-lo parar. Bugs existem para todos os gostos. Alguns permitem coisas muito danosas como executar código de um atacante, roubar uma sessão autenticada de um usuário, etc. Também existem bugs que simplesmente fazem o programa capotar, isto é parar de executar. É fácil ver que esta última classe não é das mais difíceis de ocorrer, porque ela simplemente requer que o programa se perca, de uma forma mais ou menos “genérica”, apenas suficiente para que não consiga mais executar naquele estado, sem dar qualquer facilidade a mais para o atacante.

Acho que com isto dei um panorama geral do que são os tipos de ataque de DOS. Eu deliberadamente omiti o chamado DDOS que é a negação de serviço distribuída.

Anúncios
Esse post foi publicado em Segurança. Bookmark o link permanente.

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s