Pentest: A melhor forma de identificar vulnerabilidades de segurança

Pentest: A melhor forma de identificar vulnerabilidades de segurança

Você já parou para pensar como anda a segurança do seu negócio? Faz ideia de quais informações sigilosas da sua empresa podem ser acessadas via uma simples aplicação Web vulnerável e exposta para a internet? Infelizmente isso é uma realidade e pode estar acontecendo agora.

Há uma forma de descobrir se as informações da sua organização estão vulneráveis em um ambiente, em uma rede ou determinada aplicação, bem como a extensão em que as mesmas podem ser exploradas por indivíduos maliciosos. É o chamado Teste de Vulnerabilidades (do inglês “Penetration Testing” ou “Pentest”), também traduzido como “Teste de Penetração”.

O Pentest funciona como um ataque real, mas controlado, ou seja, não prejudica serviços, sistemas ou servidores daquele ambiente. São utilizados para identificar vulnerabilidades que possibilitam a um atacante externo (internet) ou interno (imagine nesse caso um funcionário mal-intencionado) invadirem o seu ambiente, bem como o grau de dificuldade para tanto.

Mas quem realiza os Pentest?

Esses testes são realizados por profissionais denominados “Ethical Hackers”, que são profissionais com altíssimos conhecimentos em TI e que possuem habilidades específicas em alguma “classe” dentro dessa área, como programação e segurança. Para a realização desse trabalho são utilizadas um conjunto de técnicas e ferramentas, podendo ser ferramentas comerciais e ferramentas desenvolvidas pelos próprios profissionais, para auxilia-los no dia-a-dia. Alguns exemplos: http://sectools.org/tag/vuln-scanners/ e http://sectools.org/tag/web-scanners/.

O Pentest é ideal para determinar a postura de segurança adotada pela empresa e para identificar de forma objetiva e segura os potenciais problemas em processos e ativos críticos de negócios, além das falhas de um determinado sistema. A empresa deve participar de todo o processo, sendo informada sobre as etapas, metodologia e parâmetros utilizados para identificação das vulnerabilidades e também receber os entregáveis após a realização do Pentest, como relatórios técnicos detalhados das vulnerabilidades encontradas, qual a criticidade de cada uma, o impacto que ela causa e um plano de ação para corrigi-las, baseando-se em fatos.

 

Pentest na prática

Como qualquer outro serviço, foram criados (por motivos comerciais) diversos tipos de pentest, seguem alguns exemplos:

  • Pentest de aplicação Web;
  • Pentest de Wifi;
  • Pentest para Mobile;
  • Pentest para redes, servidores e por aí vai…

 

Dentro de casa, prefiro dividir os pentest em 3 frentes já que acredito que realmente os esforços e perfis profissionais são diferentes para cada um, sendo:

  • Pentest Externo
    • Englobando aplicações Web (PHP, .Net, Asp simples, Java e etc), serviços (protocolos) e servidores acessíveis pela internet;
  • Pentest Interno
    • Tudo aquilo dentro de uma rede (servers, protocolos, dispositivos de wifi e etc), com o intuito de se passar por um funcionário mal-intencionado com o objetivo de escalar privilégios laterais ou horizontais.
  • Pentest Mobile
    • Com as fintechs cada vez mais presentes no nosso dia-a-dia, exploração de vulnerabilidades através de aplicativos mobile se tornou algo corriqueiro.

E para esses pentest são utilizadas metodologias, de acordo com a necessidade de cada cliente. Entre as mais conhecidas estão:

  • Open Source Security Testing Methodology Manual (“OSSTMM”)
  • The National Institute of Standards and Technology (“NIST”) Special Publication 800-115
  • OWASP Testing Guide
  • Penetration Testing Execution Standard
  • Penetration Testing Framework

 

E por último a forma de “reconhecimento” do alvo, sendo:

  • Blackbox
    • Neste caso a equipe de pentest não possui nenhum tipo de conhecimento sobre o alvo em si, no máximo tem informações sobre o endereço da URL que será testada ou o range de IP. Muito recomendado para entender quais informações da sua empresa podem ser obtidas via internet, qual a reação do seu time quando o ataque iniciar e também medir o nível de capacidade da empresa contratada.
  • Whitebox
    • Todas as informações necessárias para a realização do trabalho são enviadas à equipe de pentesters, desde uma listagem de arquivos e pastas da aplicação até as credenciais de acesso para uma possível tentativa de escalação de privilégios. Geralmente esse trabalho é recomendado quando a empresa já conhece o ambiente e a ideia é garantir que nada passará em branco.
  • Greybox
    • Esse conceito está entre blackbox e whitebox, apenas algumas informações essenciais são passadas a equipe e outras para auxiliar o trabalho. Um exemplo seria a listagem de arquivos e diretórios de uma determinada aplicação para garantir que todo o ambiente será testado.

 

E o mais importante de um trabalho de pentest, na minha opinião, é a forma de apresentá-lo. Os relatórios entregues por empresas que realizam esse tipo de trabalho precisam se adequar a visão executiva e a visão técnica, um CFO ou CEO que tem a área de riscos e/ou TI embaixo da sua estrutura não precisam entender o que é um “SQL Injection”, eles precisam saber quais são os atuais riscos do seu negócio, possíveis impactos causados e forma de remediação.

Já o relatório técnico precisa ser extremamente detalhado, informando quais testes foram realizados, tempo de duração, quantidades de vulnerabilidades encontradas dividindo por níveis de criticidade (alto, médio, baixo e informativo), detalhar cada vulnerabilidade informando aonde ela foi encontrada, parâmetros utilizados para a exploração, nível de impacto, classificação de CVE e CVSS, evidências da exploração para evitar qualquer tipo de falso positivo e por fim um plano de ação de cada falha para mitigá-las.

Bom, espero ter clareado a mente daqueles que procuram por esse tipo de trabalho, mesmo que tenha sido através de uma forma resumida. Se ficou com alguma dúvida ou até comentários para acrescentar, estou à disposição.

About the Author

Deixe uma resposta