Breve texto sobre ameaças na internet e sites.
O gráfico abaixo foi gerado pela Symantec, portanto fica aqui todo o crédito.
Percebemos que o volume de ataques a sites da web foi multiplicado no decorrer dos anos e esse valor só é incrementado.
Fonte: Symantec Corporation
Alguns tipos de ataques mais comuns em sites:
Aos aficionados por segurança, não se acanhem, insiram mais tipos de ataques, eu somente mencionarei alguns, é claro que são dezenas, mas não é o ponto principal do artigo.
Cross-site scripting (XSS)
Encontrado normalmente em aplicações web que ativam ataques maliciosos ao injetarem script dentro das páginas web vistas por outros usuários, pode ser usado pelo individuo para escapar aos controles de acesso que usam a mesma política de origem.
Um bom artigo para mais informações é o do Luiz Vieira, caso queiram mais detalhes:
Eavesdropping
Em conexões não encriptadas, ou encriptadas usando algoritmos fracos, é possível que um atacante consiga capturar os dados transmitidos através da rede caso tenha acesso à mídia de transmissão (possa plugar um cabo no hub da rede, ou esteja dentro da área de alcance da rede wireless, por exemplo). Com isso, é possível obter senhas, conteúdo de mensagens enviadas e outras informações confidenciais, que podem ser usadas mais tarde para propósitos diversos.
Exploits
Este é um termo genérico para descrever pequenos utilitários ou exemplos de código que podem ser usados para explorar vulnerabilidades específicas. Podendo ser utilizado de forma simples ou composta em vírus, cavalos de tróia, ferramentas de detecção de vulnerabilidades e outros tipos de programas.
Utilitários de detecção de vulnerabilidades como o Nessus, por exemplo, incorporam um grande número de exploits para brechas conhecidas. Durante o teste, ele verifica se o serviço ou programa vulnerável está ativo e, caso esteja, simula um ataque contra ele, usando o exploit correspondente. Com isso, é possível verificar se a versão utilizada é vulnerável a ele.
Trojans
Embora os trojans sejam mais comuns no Windows, existem também trojans para
Linux e outros sistemas. No caso do Linux, o tipo mais perigoso são os rootkits, softwares que exploram um conjunto de vulnerabilidades conhecidas para tentar obter privilégios de root na máquina afetada.
Phishing
Diferente dos ataques baseados na exploração de brechas de segurança, os ataques de phishing utilizam engenharia social para tentar levar o usuário a revelar informações confidenciais, tais como senhas de banco, números de cartão de crédito, ou mesmo transferir fundos diretamente.
Novamente o Google!
Skipfish do Google
Uma breve descrição, preferi manter do próprio site do criador, está em inglês no seu formato original, mas pra vocês está em português:
Skipfish é uma web ferramenta de reconhecimento de segurança. Ela prepara um mapa do site através de uma pesquisa recursiva e de consultas a dicionário baseado em testes.
O relatório final gerado pela ferramenta é utilizado para servir como base para o profissional web avaliar a segurança dos aplicativos, de acordo com a documentação do scanner.
No entanto o scanner Skipfish não pretende ser um substituto de scanners comerciais.
O Google diz que o scanner não satisfaz muitos dos critérios de avaliação definidos pela
Web Application Security Consortium for Scanners.
Pode ser comparado a ferramentas conhecidas como Nmap e Nessus.
Com a promessa de ser rápido no gatilho, o software foi escrito em C. Segundo o autor, ele pode processar cerca de 2.000 requisições HTTP por segundo. Há relatos de (melhor dizendo tarados) que conseguiram marcas de 6, 7, 8 mil requisições por segundo, haja processamento.
Ele pode identificar diversas brechas, incluindo vulnerabilidades para ataques cross-site scripting (XSS), SQL e XML injection, entre outros.
O relatório gerado pode ser analisado sem muita dificuldade para quem entende um pouco da área.
Ele deve rodar em Linux, FreeBSD, Mac OS X e Windows (por meio do Cygwin), e está hospedado no Google Code:
Download:
http://code.google.com/p/skipfish/downloads/list
Habilidades:
- Alta performance: Escrito em puro C, altamente otimizado para o HTTP, usando o mínimo de CPU, consegue facilmente atingir 2000 requisições por segundo.
- Fácil de utilizar: suporta uma variedade de frameworks web.
- Alta qualidade: baixo índice de falsos positivos, controles de segurança diferenciais, capaz de detectar uma série de falhas sutis, incluindo vetores de injeção (blind injection vectors).
- Funciona em diversas plataformas, tais como: Linux, FreeBSD 7.0+, MacOS X, e Windows (Cygwin).
Ele se baseia nos seus testes e relatórios em 3 níveis básicos. Não irei traduzir cada um dos tipos de testes e ataques, pois os termos são de origem americana, e portanto fica até mais fácil pesquisar posteriormente tudo sobre a técnica ou tecnologia.
Risco alto:
- Server-side SQL injection (including blind vectors, numerical parameters).
- Explicit SQL-like syntax in GET or POST parameters.
- Server-side shell command injection (including blind vectors).
- Server-side XML / XPath injection (including blind vectors).
- Format string vulnerabilities.
- Integer overflow vulnerabilities.
- Locations accepting HTTP PUT.
Risco médio:
- Stored and reflected XSS vectors in document body (minimal JS XSS support present).
- Stored and reflected XSS vectors via HTTP redirects.
- Stored and reflected XSS vectors via HTTP header splitting.
- Directory traversal (including constrained vectors).
- Assorted file POIs (server-side sources, configs, etc).
- Attacker-supplied script and CSS inclusion vectors (stored and reflected).
- External untrusted script and CSS inclusion vectors.
- Mixed content problems on script and CSS resources (optional).
- Incorrect or missing MIME types on renderables.
- Generic MIME types on renderables.
- Incorrect or missing charsets on renderables.
- Conflicting MIME / charset info on renderables.
- Bad caching directives on cookie setting responses.
Risco baixo:
- Directory listing bypass vectors.
- Redirection to attacker-supplied URLs (stored and reflected).
- Attacker-supplied embedded content (stored and reflected).
- External untrusted embedded content.
- Mixed content on non-scriptable subresources (optional).
- HTTP credentials in URLs.
- Expired or not-yet-valid SSL certificates.
- HTML forms with no XSRF protection.
- Self-signed SSL certificates.
- SSL certificate host name mismatches.
- Bad caching directives on less sensitive content.