7 fases e etapas do teste de penetração explicadas

Em 1967, especialistas em segurança de computadores da Rand Corporation, Willis Ware, Rein Turn, Harold Petersen e Benard Peters trabalharam em um relatório após uma conferência conjunta de informática que declarava que os meios de comunicação entre computadores eram facilmente perfuráveis.

Foi cunhada a primeira penetração para violar a segurança do computador. E com isso, James P. Anderson desenvolveu uma abordagem passo a passo que formou a base do teste de penetração.

A estrutura era simples; as equipes de segurança passariam por vários estágios, desde a detecção de uma vulnerabilidade até o desenvolvimento de formas de neutralizá-la. Aqui está um breve história dos testes de penetração.

Explorar a segurança de uma empresa não é fácil e requer habilidade e tempo. Mas com a tecnologia atual, é fácil para os malfeitores encontrarem os pontos vulneráveis ​​da sua organização. As penetrações têm como alvo os ativos de uma empresa visíveis na Internet (por exemplo, uma aplicação web, o site, servidores de nomes de domínio (DNS) e e-mails) para obter acesso e extrair dados valiosos.

Usando testes de penetração, sua empresa pode identificar e fortalecer a possível superfície de ataques antes da exploração. A pesquisa apóia isso: um enorme 73% das violações bem-sucedidas passaram por aplicativos da web penetrando em suas vulnerabilidades.

Porém, mais do que nunca, as organizações precisam validar a segurança das suas aplicações, sistemas e redes. O lançamento de testes simulados é uma forma eficaz de ratificar a força de segurança e as medidas de controle de um sistema. Não é uma atividade única, mas regular. A frequência dos testes é baseada na estrutura organizacional da sua empresa e nos riscos desvendados nas avaliações.

Felizmente, os testes de penetração não são complicados. Ao equipar suas equipes de TI com as habilidades necessárias, sua organização pode implementar segurança de forma consistente, especialmente em atualizações significativas de infraestrutura ou na introdução de novos serviços e ativos digitais.

E tudo começa com a compreensão do que é o processo.

O que é teste de penetração?

Antes de mergulhar no como, seria melhor responder o quê e por quê. Os testes de penetração (muitas vezes abreviados como testes de penetração) são um ataque cibernético oficialmente aceito, direcionado a empresas em um ambiente seguro e controlado.

Combinados com auditorias de segurança, os testes de penetração se esforçam para descobrir vulnerabilidades em um escopo gerenciado do ambiente organizacional. Taticamente, os testes adotam uma abordagem semelhante à que um hacker segue. Alguns dos principais motivos pelos quais sua empresa precisa de testes de penetração incluem:

  • Descobrindo vulnerabilidades ocultas antes dos invasores.
  • Fortalecimento de processos e estratégias de segurança.
  • Reduzindo os custos de remediação e reduzindo o tempo de permanência.
  • Aderir à conformidade regulatória em torno de segurança/privacidade.
  • Preservando a reputação da sua marca e fidelizando os clientes.

Os testes de penetração avaliam a saúde da sua empresa (resiliência a ataques) e demonstram a facilidade com que os hackers violam os seus sistemas. Além disso, os insights coletados podem ser úteis para hierarquizar os investimentos em segurança cibernética, seguir os padrões do setor e aprimorar estratégias defensivas para proteger sua empresa contra prováveis ​​ameaças. Mas tudo isso é possível por meio de ferramentas de teste automatizadas chamadas ferramentas de penetração.

O que são ferramentas de teste de caneta?

Um hacker ético usa ferramentas de pen test para avaliar a resiliência da infraestrutura computacional por meio de simulação de ataques mundiais. Ao usar essas ferramentas, as equipes de segurança podem eliminar o trabalho repetitivo de testes, gerar relatórios de teste com mais rapidez e reduzir o custo de vários scanners.

Como você deve ter adivinhado, existem vários tipos: código aberto, aplicativo da web, rede, aplicativo móvel, nuvem, manual, automatizado e teste de penetração como serviço. Por mais numerosos que sejam, seria melhor procurar recursos importantes, como relatórios acionáveis, integração CI/CD, suporte de remediação e certificados de pen test (apenas alguns oferecerão certificados de pen test disponíveis publicamente).

  Como criar uma pesquisa rápida no Microsoft Teams

Com essa base, vamos analisar o processo de teste de penetração.

Estágios do teste de penetração

Em um teste de penetração típico, você encontrará vários estágios. Embora diferentes recursos proporcionem o processo em diferentes etapas, a estrutura geral não muda. O processo envolve reconhecimento, varredura, avaliação de vulnerabilidades, exploração e relatórios.

Novamente, os melhores testadores se familiarizam com muitas ferramentas para usar a ferramenta certa em cada fase de teste. Cada marco do processo pode ser percebido da seguinte forma.

Coleta de informações

Muitas vezes deixada de lado, esta fase ajuda sua organização a estabelecer um terreno comum com o pen tester. Nesta fase, você está definindo o escopo do trabalho, regras de engajamento, cronogramas e logística precisa com metas e objetivos claros.

Para ter um pen test completo e útil, este estágio ajuda você a entender as áreas que precisam de teste e os melhores métodos. Como um passo inicial, você sempre fará questão de não ignorá-lo.

Antes de testar um sistema, uma organização precisa consentir com o testador. Caso contrário, suas ações podem ser consideradas ilegais. As organizações estabelecem regras claras (em um contrato) para um fluxo de trabalho tranquilo ao contratar testadores. O acordo também deve descrever ativos críticos, objetivos de teste e precauções. Além disso, esta etapa influencia todas as ações subsequentes. No final, todos os planos estão alinhados com os resultados esperados do teste.

Reunião de Reconhecimento/OSINT

Nesta fase, os testadores reúnem todas as informações disponíveis sobre o sistema. Os dados adquiridos são vinculados a testes futuros e orientados pelos resultados da primeira etapa. Dessa forma, os testadores são precisos sobre os dados a serem coletados e as estratégias a serem implementadas. Se você optar por um reconhecimento ativo, o testador engajará diretamente os sistemas. Se você adotar a atitude passiva, serão obtidas informações publicamente disponíveis. Para um extenso, use as duas técnicas.

A aquisição ativa de dados envolve trabalhar com redes, sistemas operacionais, contas de usuários, nomes de domínio, servidores de correio e aplicativos. A coleta passiva de dados envolve inteligência de código aberto; pode-se usar mídias sociais, informações fiscais, sites e outros dados públicos.

Aqui estão algumas ferramentas de inteligência de código aberto (OSINT) que meus colegas e eu achamos úteis e fáceis de usar ao coletar e relacionar informações na web. Usando a estrutura OSINT, você pode criar uma lista de verificação extensa para pontos de entrada e vulnerabilidades. Embora esta etapa seja fundamental para testes de penetração internos e externos, ela não é realizada em aplicativos Web, aplicativos móveis e testes de API.

Digitalizando

Uma revisão técnica aprofundada do sistema é o próximo passo. Através de ferramentas de varredura, como scanners automatizados de vulnerabilidades e mapeadores de rede, você pode entender como o sistema alvo reage a várias intrusões, portas abertas, tráfego de rede, etc.

Os principais componentes desta etapa são a digitalização e análise de ativos. Você pode usar ferramentas como Nmap para descobrir serviços e hosts de computador, enviar pacotes e analisar respostas. Ao final desta etapa, você estará equipado com informações sobre ativos. Isso inclui sistemas operacionais, serviços em execução e portas abertas.

Ao analisar os resultados, você tem a base para traçar uma exploração. Você pode mapear o cenário digital do sistema e localizar possíveis pontos de ataque. Você pode realizar análises estáticas e dinâmicas para obter uma compreensão clara da resposta do sistema a diferentes condições.

A análise estática inspeciona o código de suas aplicações enquanto elas ainda não foram executadas; você pode usar ferramentas para verificar bases de código perfeitamente. Para a dinâmica, você inspeciona o código enquanto o aplicativo está em execução. Lembre-se, as informações aqui coletadas precisam ser precisas e obtidas corretamente, pois disso depende o sucesso das fases subsequentes.

Avaliação/Ganho de acesso

Neste ponto, todos os dados coletados nas etapas anteriores ajudam a identificar vulnerabilidades e se elas podem ser exploradas. Embora esse estágio seja útil, ele é muito poderoso quando conectado a outros processos de teste de penetração.

Para avaliar os riscos associados às vulnerabilidades descobertas, os testadores recorrem a vários recursos; um é o Banco de Dados Nacional de Vulnerabilidades (NVD), que analisa vulnerabilidades de software publicadas em Vulnerabilidades e Exposições Comuns (CVEs).

Em seguida, você identifica alvos e mapeia vetores de ataque. As áreas-alvo incluem ativos de alto valor, como dados de funcionários, informações de clientes, parceiros/cadeias de fornecimento, fornecedores, portos, aplicativos e protocolos. Ataques a aplicativos da Web são lançados.

  Como construir e instalar a versão mais recente do cURL no CentOS e no Ubuntu?

Os mais comuns são injeção de SQL, scripts entre sites e backdoors. O sistema é explorado aumentando privilégios, interceptando tráfego e roubando dados para revelar efeitos de danos. Seguindo o escopo definido nas etapas de coleta de informações, o testador está interessado em trabalhar com as restrições especificadas.

Exploração

Também conhecido como estágio de manutenção de acesso, o testador verifica se as vulnerabilidades podem ser utilizadas. Esta fase envolve uma violação real e um teste de acesso ao sistema. Ao usar ferramentas como o Metasploit, o testador simula um ataque do mundo real.

À medida que esse estágio avança, o testador é responsabilizado pelos recursos da organização – garantindo que os sistemas não sejam comprometidos após as simulações.

O Metasploit é preferido por suas operações tranquilas na exploração de vulnerabilidades. Este estágio avalia os efeitos de uma violação. O testador pode tentar criptografar ou exfiltrar dados e simular ransomware e ataques de dia zero. A chave para um pen test bem-sucedido é encontrar um equilíbrio entre ultrapassar limites e manter a integridade do sistema.

É melhor trabalhar com especialistas; eles exploram vulnerabilidades que escapam à automação. Ao final desta fase, você tentou obter privilégios de alto nível no sistema e nas informações da rede, identificando os dados disponíveis. O hacker ético também deve explicar os resultados das explorações de alvos de alto valor.

Análise e recomendação de riscos, revisão, relatórios

Passando a fase de exploração, o testador gera um relatório documentando as descobertas. O relatório deve ser usado ao corrigir as vulnerabilidades descobertas.

Um bom relatório de pen test é um repositório de vulnerabilidades bem documentadas colocadas em conteúdo que ajuda uma organização a remediar riscos de segurança. Mas o melhor será abrangente sobre todas as vulnerabilidades descobertas e suas pontuações CVVS, resumos de riscos técnicos, possível impacto nos negócios, cobertura detalhada da dificuldade de exploração e aconselhamento tático.

Além disso, os relatórios devem documentar todas as fases, modelos de teste, técnicas utilizadas e ativos direcionados. Se possível, o testador terá uma opinião sobre se o teste atende às necessidades da estrutura aplicável. Concluindo, o relatório é melhor entregue com uma explicação geral e um guia técnico.

Depois de relatar e apresentar relatórios, a limpeza do sistema é crucial. Trata-se de reverter o sistema para como estava antes da modificação da restauração do teste para os padrões. As atividades de limpeza envolvem a retirada de todos os executáveis, arquivos temporários e scripts dos sistemas comprometidos, a eliminação de contas de usuários criadas para se conectar ao sistema comprometido e a abolição de rootkits no ambiente.

Como última etapa, a remediação cai nas mãos da organização. Guiada pelos relatórios e descobertas dos testes de penetração, a organização visa as vulnerabilidades, analisando os impactos potenciais, informando a tomada de decisões para avançar e influenciando as estratégias de retificação.

Como esse estágio é completado pela melhoria dos erros passados, a correção de todas as vulnerabilidades exploráveis ​​é limitada dentro de um prazo razoável. Às vezes, esta fase pode se estender por um tempo para repetir testes em atualizações ou realizar testes diferentes.

Aplicação prática de testes de caneta: um guia passo a passo

Para este exemplo, optamos por usar o framework Metasploit. Você pode criar seu fluxo de trabalho personalizado; aqui está um típico para você começar. Comece instalando a estrutura.

Se você estiver no Linux/macOS, use o comando:

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \
  chmod 755 msfinstall && \
  ./msfinstall

Se você estiver no Windows, use o instalador mais recente do Windows. Ou use o comando Shell:

[CmdletBinding()]
Param(
    $DownloadURL = "https://windows.metasploit.com/metasploitframework-latest.msi",
    $DownloadLocation = "$env:APPDATA/Metasploit",
    $InstallLocation = "C:\Tools",
    $LogLocation = "$DownloadLocation/install.log"
)

If(! (Test-Path $DownloadLocation) ){
    New-Item -Path $DownloadLocation -ItemType Directory
}

If(! (Test-Path $InstallLocation) ){
    New-Item -Path $InstallLocation -ItemType Directory
}

$Installer = "$DownloadLocation/metasploit.msi"

Invoke-WebRequest -UseBasicParsing -Uri $DownloadURL -OutFile $Installer

& $Installer /q /log $LogLocation INSTALLLOCATION="$InstallLocation"

E então…

Inicie um projeto – Este será seu armazenamento de dados e espaço de trabalho. Como você pode ter requisitos diferentes para diversas sub-redes da sua organização, organizar seu trabalho melhorará sua eficiência. Por exemplo, se você tiver um pen test para as equipes de TI e de recursos humanos, você desejará gerar resultados separados.

Fonte da imagem – MetaSploit

  O que é VBScript e por que a Microsoft acabou de eliminá-lo?

Obtenha dados de destino – aqui, você adiciona dados ao seu projeto por meio de uma verificação de descoberta ou importa dados existentes. Faça a varredura de alvos para enumerar portas abertas para visualizar os serviços de uma rede. Use a opção de digitalização. Em seguida, insira os endereços IP com os quais gostaria de trabalhar, cada um em uma única linha. Você também pode usar a opção de importação para importar dados de um arquivo local.

Fonte da imagem – MetaSploit

Visualizar/gerenciar dados do host – você pode visualizar os dados do host ou do nível do projeto. Você pode alternar entre cada IP para ter uma visualização de host única.

Fonte da imagem – MetaSploit

Verificar vulnerabilidades – Inicie uma verificação de vulnerabilidades por meio das opções do Nexpose. Esta etapa aproveita bancos de dados de vulnerabilidade para fazer a correspondência, caso algum seja encontrado.

Explorar vulnerabilidades – Você pode explorar vulnerabilidades por meio de um processo contínuo assistente de validação. Alternativamente, o Nexpose ainda funcionará.

Atividade pós-exploração – Colete dados da exploração por meio da guia de sessão; clique em “coletar“.

Fonte da imagem – MetaSploit

Limpeza – Ao terminar a coleta de dados, use a opção “limpar” para encerrar a sessão e limpar o sistema.

Gerar relatórios – Ao final do pen test, o Metasploit fornece uma série de relatórios que são um ponto de partida para consolidação de dados e compilação de resultados.

Um guia de início rápido detalhado sobre testes de penetração pode ser encontrado em Guia de início rápido do Metasploit.

Ferramentas comuns de teste de caneta

Algumas ferramentas comuns incluem Sn1per, Metasploit e Commix.

#1. Sn1per

Sn1per é uma ferramenta de investigação de vulnerabilidades que valida o impacto de ataques do lado do cliente em instâncias de hack. Você pode usá-lo para simular ataques remotos e de usuários finais em um ambiente controlado. Sn1per tem 6 mil estrelas do GitHub. Ele também atua como meio de comunicação na ferramenta. Com o Sn1per, você pode economizar tempo automatizando ferramentas comerciais e de código aberto para enumerar vulnerabilidades.

#2. Metasploit

Metasploit é uma estrutura gigante de pen test desenvolvida pela unidade de conhecimento compartilhado entre comunidades de código aberto. Possui 31,2 mil estrelas no GitHub, indicando um forte interesse no mundo do software. O Metasploit é apoiado por uma colaboração de entusiastas da segurança, com o objetivo de solucionar vulnerabilidades e aumentar a conscientização sobre segurança.

#3. Commix

Commix é uma ótima ferramenta de exploração de injeção de comando do sistema operacional. Embora o Commix seja especializado em vulnerabilidades de injeção de comando, é fácil de usar, gratuito e de código aberto, compatível com várias plataformas, portátil e modularizado. Conseguiu 4k estrelas do GitHub. É gratuito e de código aberto.

Palavras Finais

Quebrar as etapas dos testes de penetração é essencial para que as empresas aumentem a resiliência dos seus produtos digitais com o aumento dos ataques cibernéticos. À medida que os criminosos cibernéticos ignoram as soluções de segurança tradicionais, simular ataques do mundo real através de testes de penetração é uma forma eficaz de navegar no cenário de ameaças cibernéticas em constante evolução.

Ao adaptar o pen test às necessidades específicas da sua organização, você pode garantir eficiência nas políticas de segurança. Percorrer todos os estágios do teste de penetração garante que você obtenha o melhor ROI para seus investimentos em segurança cibernética.

Para ter um pen test bem-sucedido, seja esperto. Comece adquirindo informações sobre o teste. Baseie-se nessas informações até o nível de reconhecimento. Um bom ponto de partida para o seu reconhecimento é definir os objetivos do escopo a serem direcionados ao sistema a ser verificado.

Em seguida, faça uma varredura no sistema para ter um conhecimento aprofundado e identificar vulnerabilidades. Prossiga para Lançar um ataque tomando cuidado para não danificar o sistema. Em seguida, gere relatórios úteis que orientam as ações corretivas. Lembre-se de limpar e restaurar o sistema ao seu estado original.

Quando usados ​​corretamente, os testes de penetração melhoram a postura de segurança da sua organização, identificando e corrigindo vulnerabilidades. À medida que muitas organizações migram para a nuvem e adotam novas tecnologias, os testes de penetração estão se tornando essenciais para o domínio da segurança da informação. Na verdade, 75% das empresas usam testes de penetração para examinar a postura de segurança. Ou por motivos de conformidade. Se você puder dar bastante atenção e tratar cada etapa do teste de forma independente, sempre encontrará valor para executar testes de penetração.

A seguir, confira ferramentas gratuitas de teste de penetração online (Pentest) para testar a segurança de aplicativos.