quarta-feira, 20 de junho de 2012

Um Teste de Invasão (PenTest)

As invasões “reais” são realizadas por pessoas com alto nível de conhecimento técnico, com focos específicos em determinadas instalações ou empresas. Existe vários motivos pessoal,  por questões financeiras, na intenção de cometer fraudes ou até mesmo contratados por empresas concorrentes para espionagem ou sabotagem. Existe também uma categoria de profissionais que são contratados pelas empresas para testar seus próprios sistemas de segurança, essa atividade se chama de PenTest (Penetration Test ou Teste de Penetração).
Esse tipo de invasão é uma atividade coordenada e cuidadosamente planejada, que passa por diversas etapas, conforme vamos ver a seguir.
1. Coleta de informações
Antes de iniciar qualquer tentativa de invasão, devemos coletar o máximo de informações a respeito da empresa atacada. Uma pesquisa no Google pode ser um bom começo para saber o que existe de informação disponível na internet, a respeito de:
  • Atividades da empresa;
  • Composição acionária;
  • Nomes de sócios, diretores, gerentes de TI, administradores da rede;
  • Filiais e empresas coligadas;
  • Endereços de homepages e e-mails;


Ainda nessa fase, considerando que a empresa possua um site na internet, podemos coletar as informações sobre endereços de servidores DNS (Domain Name Service ou Serviço de Nome de Domínio), nome do responsável técnico, endereço e cnpj.
Toda e qualquer informação deve ser considerada para que possamos ter uma visão global e um bom nível de entendimento sobre a empresa. Nomes de sócios, diretores, funcionários e parceiros comerciais podem ser utilizados para ataques de Engenharia Social. A existência de filiais e coligadas pode significar a existência de conexões VPN (Virtual Private Network ou Rede Privada Virtual), que a princípio é uma forma segura de interconectar redes pela internet. Endereços web servem para descobrir os endereços IP por onde a rede corporativa geralmente se conecta na internet.
2. Mapeamento da rede
O objetivo dessa fase é tentar descobrir a topologia da rede: quantos computadores existem e como estão interligados. Para isso, podemos iniciar com uma pesquisa nos servidores de DNS da empresa.
Um servidor DNS é responsável pela mapeamento dos nomes de domínio (ex: servidor.empresa.com) para endereços IP (ex: 200.100.200.50). Ele é naturalmente acessível pela internet para determinados tipos de consultas, entretanto, existe um recurso, chamado de Transferência de Zona, que serve para sincronização de registros entre servidores primários e secundários. Alguns administradores de rede permitem que esse tipo de consulta seja feita de qualquer lugar da internet, por descuido ou desconhecimento, e simplesmente fornece o “mapa da mina” para um atacante, porque esse tipo de consulta permite que se obtenha todo os nomes e endereços de todos os servidores da rede. Se esse servidor DNS também for responsável pela resolução de nomes da rede interna, pode ser que o atacante obtenha não só os endereços dos computadores acessíveis pela internet, mas simplesmente de TODOS os computadores da rede interna da empresa.

Uma outra possibilidade para descobrir os computadores que existem no domínio da  empresa, é através de consultas de DNS “reverso”, quando informamos o endereço IP e o   servidor retorna o nome da máquina que responde por aquele endereço. Sabendo o endereço de um servidor, é possível inferir a faixa de endereços possivelmente destinados à empresa e  limitar a pesquisa reversa nessa faixa.
Existe inclusive uma técnica sofisticada de mapeamento, chamada de firewalking, que permite “enxergar” quais são as máquinas que estão por trás do firewall. Seria mais ou menos como se pudéssemos ver através das paredes.
3. Enumeração de serviços
Uma feita já foram descobertas as máquinas existentes na rede, procuramos descobrir quais os serviços que estão sendo executados em cada uma delas. Um serviço não é nada mais do que um programa que fica aguardando conexões numa determinada “porta”. Por exemplo, todas as conexões de páginas web são feitas para a porta de número 80. Quem responde às solicitações de conexão nessa porta é um software servidor web como por exemplo, Apache, IIS (Internet Information Service) da Microsoft ou qualquer outro software com a mesma finalidade.
As portas de numeração 1 à 1024 (de um total de 65.535) são padronizadas de acordo com o tipo de serviço. Assim, se encontramos a porta 22 aberta, podemos ter quase certeza que existe um serviço SSH (terminal remoto), assim como a porta 25 implicaria num serviço de e-mail. Só não podemos ter certeza sobre o serviço que está “escutando” uma determinada porta porque essas numerações são padronizadas, mas não obrigatórias. Nada impede que o administrador disponibilize um serviço SSH na porta 25, por exemplo.

4. Busca por vulnerabilidades
Uma vulnerabilidade de um software é decorrente de um projeto deficiente ou erro de programação. Quando uma vulnerabilidade é descoberta por incontáveis pesquisadores (os verdadeiros Hackers) ao redor do mundo, o fabricante do software é notificado e a vulnerabilidade é divulgada em sites especializados para que todos tomem conhecimento da sua existência e tomem as providências necessárias para eliminar esse risco. Isso geralmente é atingido com a aplicação de uma Correção ou Patch (traduzindo literalmente: remendo), disponibilizado pelo fabricante do software.
Se o administrador da rede não aplicou as devidas correções num determinado software, pode ser que ele possa ser explorado para a invasão. Para isso, basta um pesquisa na internet para descobrir se aquela versão de software que está sendo usada, possui alguma vulnerabilidade e como ela é explorável.
Algumas ferramentas já automatizam todo o processo de identificação dos softwares, suas versões, assim como a vulnerabilidades existentes para aquelas versões específicas, simplificando o trabalho do atacante.
5. Exploração das vulnerabilidades
Essa é a etapa onde efetivamente ocorre a invasão. Dependendo do tipo de vulnerabilidade encontrada, a invasão será mais ou menos efetiva. Algumas vulnerabilidades permitem apenas a interrupção do serviço, ao qual damos o nome de ataque DOS (Denial of Service ou Negação de Serviço).
As vulnerabilidades mais perigosas são as que permitem a execução de programas e comandos no computador remoto. O Buffer Overflow (estouro de memória) é um exemplo de vulnerabilidade que pode permitir que o atacante obtenha acesso à uma tela de terminal remoto, podendo executar os comandos que desejar, como se estivesse sentado diante do computador atacado e geralmente com privilégios de administrador.
Outro exemplo de ataque perigoso é o do tipo SQL Injection, feito em aplicações web mal feitas, permite desde a consulta direta à um banco de dados (onde o atacante pode obter informações sigilosas como números de cartões de crédito) à execução comando do sistema operacional.
Muitos desses ataques podem ser feitos com uso de programas ou scripts prontos, chamados de sploits.

6. Implantação de Backdoors e Rootkits
Uma vez que o invasor tenha obtido sucesso na sua investida, é comum que ele implante programas que facilitem o seu retorno. São os chamados Backdoors, ou literalmente “porta dos fundos”. Além disso ele pode implantar os chamados Rootkits, que são programas que se agregam ao núcleo do sistema operacional, dificultando a sua localização.
7. Eliminação de Vestígios
Toda invasão deixa rastros no computador atacado, seja nos logs (históricos) do sistema seja em forma de arquivos temporários. Para dificultar a identificação da sua presença, o bom atacante procura eliminar esses vestígios, requerendo uma intervenção muito mais minuciosa na investigação do incidente e muitas vezes impossibilitando rastrear sua origem.
Formas de prevenção
Existe Varias formas de proteção que é da nossa responsabilidade de tomar medidas preventivas necessária
Uso de firewall, IDS e IPS: o firewall é um elemento indispensável na sua rede, para controlar e impedir os acessos indesejáveis. Hoje é simplesmente inaceitável que se tenha uma rede conectada na internet sem um firewall. O uso de IDS (Intrusion Detection System ou Sistema de Detecção de Intrusão) e um IPS (Intrusion Prevention System ou Sistema de Prevenção de Intrusão), são elementos desejáveis para uma defesa efetiva.
  • Serviços desnecessários: todos os serviços que não estiverem sendo efetivamente usados, devem ser desabilitados. Além de serem itens adicionais para atualizações de segurança, são pontos adicionais em potencial para serem explorados.
  • Atualização e Configuração: é indispensável que todos os serviços disponíveis para internet estejam com as últimas atualizações de segurança aplicadas e, principalmente, corretamente configurados. Falhas de configurações são grandes causas de incidentes de segurança.
  • Monitoração constante: a monitoração das atividades da rede devem fazer parte da rotina diária de um administrador de redes. Só assim você poderá perceber anomalias no seu funcionamento. Deve ser incluída nessa rotina, a monitoração dos logs, também para detectar registros de ocorrências anormais. O uso de ferramentas que detectem modificações nos arquivos do sistema também é uma medida desejável. Uma ferramenta gratuita que pode ser utilizada para esse fim, é o tripwire.
A melhor forma de defesa, entretanto, é o conhecimento. Fique sempre atualizado quanto as novas formas de ataque e vulnerabilidades descobertas para poder agir de forma proativa, antecipando-se aos movimentos dos invasores.
Fonte : Rafael Ferreira Barreto curso de Sistemas de Informação  na UNIGRANRIO -
Universidade do Grande Rio Professor José de Souza Herdy em RJ, fiz adaptação com figuras e pequenas palavras
Fonte: http://securityofficer.wordpress.com/2009/11/18/passo-a-passo-para-um-teste-de-invasao-pentest/
← Postagem mais recente Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário

Copyright © Hacking & Security | Powered by Xandao Design by Xandao86 | Xandao86