Como encontrar vulnerabilidade em aplicações locais e sistemas em rede?
Os problemas relacionados a buffer overflow estão relacionados a mais de 50% dos problemas de segurança, segundo (JONES; RASTOGI, 2004), sendo um dos mais importantes tipos de erro relacionados à linguagens em que não há proteção de memória, como a linguagem C, por exemplo.
Citarei aqui algumas ferramentas de escaneamento de vulnerabilidades:
Crystal: A ferramenta Crystal (versão 1.0) é a mais recente de todas as que foram testadas e só foi disponibilizada no fim do ano de 2006. Foi desenvolvida na Universidade de Cornell.
O Crystal é uma plataforma de suporte com diversas extensões, no entanto, até ao momento só está concretizada a detecção de vulnerabilidades relacionadas com a gestão de memória (encontram-se em desenvolvimento duas novas extensões).
Esta ferramenta trata da vulnerabilidade de gestão de memória, por exemplo, reservar espaço na memória n vezes sem libertar o que foi obtido anteriormente A ferramenta foi programada na linguagem Java para detectar vulnerabilidades em código fonte C e utiliza diferentes técnicas de análise de código, como árvores abstractas de sintaxe, controlo do fluxo por grafos e a análise de fluxo de dados. Além destas técnicas, consegue ainda obter invariantes do código fonte a partir da análise dentro e entre procedimentos (potencialmente localizados em ficheiros diversos).
Deputy: O Deputy (versão 1.0) tem um número razoável de anotações para variáveis, apontadores e estruturas de dados (struct ou union). Para os autores, o uso de anotações é uma mais-valia da ferramenta porque são poucas e fáceis de usar, o que facilita o trabalho dos programadores.
A vulnerabilidade que a ferramenta detecta mais é a memória sobrelotada, embora também detecte problemas de formatação de cadeias de caracteres (do inglês, format string) e erros comuns de programação.
O Deputy (versão 1.0) é baseado em anotações, embora, consiga detectar alguns problemas, como memória sobrelotada (do inglês, buffer overflow ou underflow), sem necessitar das anotações. Foi desenvolvida por Jeremy Condit etal na Universidade de Berkeley. A ferramenta usa vinte e uma anotações a adicionar no código fonte C. Utiliza uma linguagem intermédia de alto nível, o CIL, para analisar e transformar código fonte.
Flawfinder: O Flawfinder (versão 1.26) é uma ferramenta de análise de padrões, desenvolvida por David Wheeler na linguagem de programação Python, sendo muito semelhante às ferramentas ITS4 e RATS. A ferramenta suporta código nas linguagens C e C++. Uma vez que esta ferramenta analisa o código fonte em busca de padrões, ela contém uma base de dados com funções potencialmente vulneráveis. Estas funções correspondem a vulnerabilidades do tipo memória sobrelotada, formatação de cadeias de caracteres, controlo de acesso (do inglês,access control), condições de disputa (do inglês, race condition) e números aleatórios.
Adicionalmente, verificou-se que as ferramentas reportam um número não desprezável de falsos positivos, algo que se gostaria de evitar. É fácil observar que com o auxilio de ferramentas, é possível encontrar brechas que permitem tanto atacar quanto defender-se de ataques malicioso.
Serviços que se conectam a portas numeradas de 0 a 1023 devem ser executados por um usuário administrativo. Se a aplicação tiver um sobrecarregamento explorável do buffer, um atacante pode obter acesso ao sistema como o usuário rodando o daemon. Devido à existência de sobrecarregamento explorável do buffer, os crackers usam ferramentas automatizadas para identificar sistemas com vulnerabilidades, e após obterem acesso ao sistema, utilizam rootkits automatizados para mantê-lo.
Segue algumas ferramentas de detecção de vulnerabilidade para sistemas em rede:
Nessus: A melhor ferramenta de inventariação de vulnerabilidades com código fonte disponível. O Nessus é uma ferramenta de inventariação remota de vulnerabilidades para sistemas Linux, BSD, Solaris e outros Unixes. O seu funcionamento é baseado em plugins, possui uma interface GTK e efectua mais de 1200 verificações remotas de segurança. Produz relatórios em HTML, XML, LaTeX e texto simples que indicam as vulnerabilidades detectadas e os passos que devem ser seguidos para as eliminar.
Snort: Um sistema de detecção de intrusões (IDS) público para as massas. O Snort é uma ferramenta eficiente de detecção de intrusões, capaz de efectuar análises em tempo real de tráfego capturado e registo de datagramas em redes IP. Permite analisar protocolos, procura de conteúdos e pode ser usado para detectar diversos ataques e sondas, nomeadamente transbordamentos de memória (buffer overflows), levantamentos furtivos (stealth) de portos de transporte, ataques usando CGI, sondas para SMB, tentativas de identificação de sistemas operativos, etc. O Snort usa uma linguagem flexível baseada em regras para descrever o tráfego que deverá ser considerado ou não para posterior análise e um motor de detecção modular. Várias pessoas sugeriram que a Consola de Análise de Bases de Dados de Intrusões (Analysis Console for Intrusion Databases, ACID) fosse usada com o Snort.
Tripwire: O decano dos verificadores de integridade de ficheiros. É um verificador de integridade de directorias e ficheiros. O Tripwire é uma ferramenta que ajuda administradores de sistemas e utentes a monitorizar quaisquer modificações em conjuntos arbitrários de ficheiros. É usado regularmente (v.g. diariamente) em ficheiros nucleares dos sistemas. O Tripwire pode notificar administradores acerca de ficheiros corrompidos para que os mesmos possam iniciar atempadamente acções de controlo de estragos. Uma versão pública em código fonte é disponibilizada em Tripwire.Org. Os utilizadores de UNIX podem também optar pela ferramenta AIDE, que foi concebida como uma substituta gratuita do Tripwire. Ou podem querer conhecer melhor o Radmind.
Contudo, as ferramentas auxiliam bastante na análise das vulnerabilidades de programas e servidores remotos. É de notar, no entanto, que não há uma ferramenta que analise todas as categorias de vulnerabilidades.
Fonte:
http://www.securityfocus.com/ -> Procure na Bugtraq.
http://pageexec.virtualave.net/
http://web.mit.edu/rhel-doc/3/rhel-sg-pt_br-3/s1-wstation-service.html
http://insecure.org/tools/tools-pt.html
http://www.di.fc.ul.pt/~nuno/PAPERS/SINO2007_scanner.pdf
Nenhum comentário:
Postar um comentário