Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Teste de Penetração

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Dica Teste de Penetração

    Autor: Aldo Benevides Silva / Otávio Ribeiro Moraes

    Publicação: 01/January/2010

    Este tutorial se aplica a: Penetration Tests

    O artigo original foi editado. Eu achei interessante acrescentar as devidas especificações: Sistema de Detecção de Intrusão (IDS), Enumeração de Serviços “FigerPrint“, Coleta de informação específica, Contrato de ética.



    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;

    2. Colecta de informação específica

    Nesta fase trata-se de obter informação específica e detalhada sobre a topologia da rede, assim como a configuração e características de cada equipe, de tipo de servidores, sistemas operativos (versão, service pack, correções), direcções de IP, mapa da rede, etc.
    Para as provas com pleno conhecimento se pode solicitar e obter informação como a seguinte:

    A) Lista completa de direcções de IP atribuídas, sejam utilizadas ou não.

    B) Inventário de todos as equipas conectados em rede, especificando os seguintes dados: nome do host, função que cumpre, direção IP, descrição do hardware, sistema operativo e service pack (ou correções).

    C) Planos e diagramas da rede, apoiados eventualmente de informação obtidas da actividade de gerenciamento, se existir.

    3. Testando o sistema de detecção de intrusão ( IDS )

    Sistema de Detecção de Intrusão ( IDS – Intrusion Detection Systems ) permite a notificação quando da ocorrência de tentativas de intrusão segundo a verificação de certos padrões de ataque que podem ser configurados dependendo da ferramenta que se está utilizando.

    Infelizmente, devido a grande variedade de vulnerabilidades, detectar uma intrusão em sua rede não é algo simples. É praticamente impossível que uma pessoa detecte uma invasão de rede em tempo real ( on-the-flay ) e tome alguma ação de imediato.

    Os maiores problema com as atuais ferramentas de IDS são:

    * A alta taxa de false-positive isso ocorre quando a ferramenta classifica uma ação como uma possível intrusão, quando na verdade trata-se de uma ação legítima.
    * A false-negative ocorre quando uma intrusão real acontece mas a ferramenta permite que ela passe como se fosse uma ação legítima.
    * Erro de subversion ocorre quando o intruso modifica a operação da ferramenta de IDS para forçar a ocorrência de false-negative.

    Um bom exemplo de false-positive é o ataque de SYN FLOOD. O simples fato de acessar um determinado tipo de página pode gerar uma detecção da ocorrência de um ataque SYN FLOOD. Você certamente não quer que suas páginas fiquem fora do ar a todo momento que um usuário acessar seu site. É muito difícil definir regras que diferenciem entre atividades hostis e autorizadas. O teste de invasão pode ser utilizado com a finalidade de demostrar efetivamente se sua ferramenta de IDS está operando conforme o esperado e ajuda-lo no refinamento das regras de forma a reduzir a taxa de false-positive.

    4. 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.

    5. Enumeração de serviços

    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”. Para isto utilizamos a técnica chamada Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....

    6. 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.

    7. 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.

    8. 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.

    9. 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.

    10. Contrato

    Algumas instituições contratam crackers para realizarem os testes de invasão, este tipo de ação pode ser perigoso, pois as pessoas são diferentes e possuem princípios éticos e morais diferentes, então este é um risco que deve ser pesado antes de corre-lo. Segundo estudos do especialista em segurança Fred Cohen, um dos especialista mais respeitado em todo o mundo, “Existe um sério risco de que as informações sejam divulgadas pela pessoas responsável pelos testes ou utilizada para ganhos financeiros” isso quando esta pessoa não respeitas os princípios éticos e morais vigente em cada sociedade. Deve-se formalizar um contrato onde as clausulas estabelecem que as informações referentes aos testes de invasão não podem ser divulgadas. O que um contrato de invasão deve conter?

    * Após os teste deve-se fazer um relatório detalhado das vulnerabilidades encontradas e dar suporte na correção de tais pontos.
    * Enquanto você não tiver testado sua ferramenta de IDS ou montado seu plano de resposta a incidentes, a pessoa responsável pelo teste não deve receber nenhum tipo de informação sobre o seu sistema, parceiros comerciais. Isso pode protege-lo quanto a validade do teste de forma que intrusos verdadeiros não tenha acesso a estas informações.
    * Os testes devem ser conduzidos utilizando-se ferramentas previamente definidas.
    * Enquanto os pontos acima não forem atendidos, o responsável pelo teste não deve ter acesso a sua rede.
    * Informações publicas como : estrutura da empresa, lista de telefones internos, entre outras podem ser passadas para pessoa que vai realizar o teste, justamente para ganhar tempo.
    * A pessoa que vai realizar o teste não deve violar a privacidade e os direitos individuais. Lembre-se que trata-se de um teste para avaliar o sistema e não as informações privadas.
    * Todos os dados coletados, incluindo los, arquivos, senhas e qualquer outro tipo de informação obtida deve devem ser devolvidas a instituição sem que copias sejam retidas pela organização que realizou os testes.
    * Todos os teste devem ser realizado de forma instrutiva.
    * Qualquer tipo de teste que possa causar uma dano ao sistema deve ser realizado em períodos de baixa ou sem atividades.
    * Um relatório detalhado deve ser entregue contendo todos os passos executados mostrando onde ganhou acesso e onde não. O relatório deve conter recomendações detalhadas para a coreção de qualquer vulnerabilidade encontrada.
    Last edited by bolinhaxp; 28-04-2010, 09:05.

  • Font Size
    #2
    Muito Bom!

    Comment


    • Font Size
      #3
      Simplesmente incrível, eu aprovo!

      parabéns...

      Comment


      • Font Size
        #4
        bem explicado mesmo !!!!

        Comment


        • Font Size
          #5
          So tem Um Porem ne galera hacker, antes ele tem que penetra no servidor para ter acesso a topologia da rede aos ips internos a nao ser que o Administrador um um pateta para cair no golpe da engenharia social ne?

          Comment

          X
          Working...
          X