31 de jan. de 2012

Ataques explicados: Denial of Service (D.O.S)

A primeira postagem da série "Ataques Explicados". Vamos definir ataques de negação de serviço:
Toda e qualquer forma de ataque cujo objetivo é dificultar ou negar um serviço a um usuário legítimo. 
A principal característica, justamente é a falta de serviço para um usuário. Temos vários exemplos destes ataques na mídia {Ex1, Ex2 e Ex3}.

Como podemos efetuar estes ataques: Eles podem ser efetuados de diversas maneiras, a que nos interessa hoje em dia é através de meios cibernéticos(Internet), mas podem ser executados de diversas outras maneiras, bastando negar o serviço para um usuário legítimo.

Objetivo: Derrubar a internet do seu amigo.
Como?  : Desligando a chave geral da residência.
Impacto : Após o término da bateria do no-break para o modem ADSL, indisponibilidade do acesso a internet e perda da amizade.

Como vistos, ataques de negação de serviço podem ser bem simples e rápidos de serem efetuados. Mas se não temos acesso a meios físicos, como podemos derrubar um serviço através da Internet? Na Figura 1, temos o esquema de um Servidor conectado a internet. 
Figura 1 - Esquema minimalista da rede.
Neste ponto, o objetivo do Atacante, grifado em vermelho é negar o acesso normal ao grupo de "usuários regulares". Ao olhar na Figura 1 , podemos identificar quais locais poderíamos atingir para negarmos o serviço. Como já podem imaginar, interromper a conexão de todos os possíveis usuários com a Internet é muito difícil, o ponto vulnerável é a conexão do servidor com a internet. Se pudermos desligar ou sobrecarregar este link, o acesso a internet deste servidor ficará tão lenta e instável que negará serviços para outros usuários.

A grande pergunta é Como?

Aqui entram os detalhes técnicos que quero apresentar, a maioria dos kiddies atualmente apenas baixam uma das ferramentas já desenvolvidas e ataca um alvo qualquer sem nem ao menos saber como funciona a ferramenta ou a técnica. O que proponho a vocês é subirem um nível na "hierarquia hacking".


Camada de Transporte.
Sabemos que a internet utiliza basicamente dois protocolos na camada de transporte, UDP e o TCP. Ambos com características únicas. Podemos utilizar destas características para sobrecarregar os links de conexão entre o servidor e a internet.

Flooding (Inundação):
Consiste basicamente em enviar mais dados do que o link pode suportar, inundando a conexão com dados irrelevantes e causando o congestionamento da rede. Para este ataque dar certo, é necessário que o atacante tenha mais banda do que a vitima. Suponhamos a seguinte possibilidade no cenário acima: O Atacante possui uma banda de 1Gbps, o Servidor alvo possui um link de 3Mbps. Observem que a diferença entre as larguras de banda é enorme, e portanto o atacante consegue enviar mais dados para o servidor do que a banda dele consegue suportar... deixando o canal de comunicação(Rede) tão cheio que impossibilita o grupo de usuários regulares de se conectar ao servidor.

Sublinhei a palavra congestionamento. Dos protocolos mencionados acima o TCP prevê um controle de congestionamento da rede. Esta característica pode ser utilizada para ataques de negação de serviço, se durante um fluxo TCP o atacante conseguir manipular o RTO (Retransmission Time Out) para um valor muito baixo, forçando o TCP Thoughput para um valor muito baixo.

O Protocolo UDP não implementa qualquer tipo de controle de congestionamento, e portanto é possível    enviar tantos pacotes quanto a sua conexão permitir.

Vale lembrar que o sucesso deste ataque está em sobrepujar toda a largura de banda do servidor alvo. Se a sua banda não for maior que a do servidor alvo, e em geral, não é. Você pode utilizar as técnicas de LowRate D.O.S. explorando as características dos protocolos. Ou como diz o ditado, a união faz a força. Se o alvo possui um link de 10Mbps, um Atacante com a posse de 20 links de 2 Mbps em teoria pode derrubar o alvo. É o chamado D.D.O.S.

Syn Flooding:

Ao criar uma conexão, o TCP utiliza um método chamado de 3-way handshake. Podemos ver o funcionamento na Figura2;
Figura 2 - TCP 3-way handshake.
Um cliente ao conectar em um servidor envia uma requisição. Isso é, o campo SYN do TCP ativado. O servidor entende que está sendo criada uma nova conexão e aloca os recursos necessários para ela (Socket). Supondo que, o número de sockets seja limitado, podemos facilmente impedir que novas conexões sejam criadas se utilizarmos todos os recursos possíveis. O legal desta técnica é que o handshake não precisa ser completado, o cliente não precisa responder com o ACK, então é possível forjarmos o endereço IP do cliente.

Camada de Aplicação.
Até agora falamos de ataques que acontecem na camada de transporte. Existem diversos protocolos que são utilizados na camada de aplicação, a questão é utilizar as fraquezas destes protocolos para negar serviço. Cada tipo de serviço implementa o seu próprio protocolo Ex; a Web utiliza o HTTP.

O SlowLoris por exemplo, utiliza o Protocolo HTTP para negar o serviço. Como? Quando é enviado uma requisição HTTP, o servidor espera que toda a requisição seja enviada para então poder processar. Se o atacante atrasa o envio do CLRF(Indica o fim do cabeçalho HTTP),  o servidor aloca recursos e fica esperando para processar. Milhares de requisições destas poderão utilizar todos os recursos que o Servidor dispõe para o servidor Web causando lentidão e a negação do serviço.


Existem diversas ferramentas que fazem ataques de D.O.S ou StreesTesting. Cada uma implementa uma ou mais técnicas descritas acima.

Ferramentas:

Série: Ataques explicados !


Imagem retirada deste blog.
Esta semana, o "Anonymous Brasil" iniciou uma série de ataques de negação de serviço à instituições bancárias brasileiras. Tais ataques tem chamado a atenção da mídia deste o ano passado, quando grupos como o Fatal Error, Red Eye , Brazilians Defacers , c00kies Crew entre outros grupos de defacers brasileiros atacaram e desfiguraram sites, em "protesto" contra a corrupção.

Para explicar melhor os ataques, decidi escrever uma série de textos aqui no meu blog para explicar a dinâmica e dar detalhes as vezes técnicos de como estes ataques funcionam. Abordarei a utilização de algumas ferramentas, e se possível alguns testes práticos contra alvos fictícios. Sinta-se livre para fazer perguntas e enviar sugestões via comentários.

Técnicas de Ataques desta séries:
  • D.O.S (Denial of Service)
  • D.D.O.S (Distributed D.O.S)
  • XSS
  • SQL Injection
  • Exploits
  • Sniffer
  • Engenharia Social
  • Malwares (Vírus, Worms, etc...)

26 de jan. de 2012

Stealing Reality


Navegando na WEB hoje, lendo notícias sobre segurança e tecnologia, me deparei com uma notícia da BBC informando que o FBI pretende criar uma ferramenta de alertas baseado em informações retiradas de redes sociais.

Não pude deixar de traçar um paralelo de imediato com um artigo que li recentemente na IEEE "Stealing Reality: When Criminals Become Data Scientists (or Vice Versa)". Yaniv Altshuler e outros associados publicaram este artigo modelando uma nova forma de ataques por meio da internet.


O "Stealing Reality" propõe que o atacante, após analisar dados de redes sociais consegue usurpar a sua realidade. A primeira vista parece um ataque comum, roubo de login e senha de e-mail, cartões de crédito e outras informações que seriam confidências. Hoje caso isso aconteça, você pode facilmente reaver as suas contas, trocar e cancelar cartões de crédito, o problema é que esta é uma faceta da sua realidade. O ataque se propõe a obter informações muito mais precisas sobre você, informações pessoais(nós), informações sobre seus relacionamentos(amigos, parentes) e informações no nível de rede(comunidades, grupos entre outras propriedades).Você não consegue mudar o seu circulo de amizade com facilidade, tem dificuldade de largar hábitos tanto na Internet quanto na vida real. 

"No futuro, todos poderemos trocar de nome", Eric Schmidt
A frase do CEO da Google expressa o quão perigoso é o roubo de identidade. Mas haveria motivação para tais ataques? Sim, o FBI já tem idéia do que fazer com estes dados. O Mercado negro é sedento por dados pessoais, cartões e outras informações. Imagina o valor que informações mais detalhadas sobre o seu perfil, suas opniões e as suas atividades teriam na mão de quem quer censurar (FBI?!) ou de quem quer lucrar às suas custas?!



25 de jan. de 2012

O primeiro de Muitos!

Sejam bem vindos,

Escrever não é muito a minha área, mas pretendo atualizar ao menos uma vez por mês, e se levarmos em consideração o tempo que espero viver, este é o primeiro de muitos!


Tenho algumas idéias, discussões e pontos que gostaria de trazer à tona. Espero que gostem das postagens, falarei um pouco de tudo.

A motivação não é a criação de conteúdo sobre segurança e insegurança em PT-BR, existem blogs, grupos e E-zines relativamente boas!