Volte para o glossário
|
Penetration Testing

Penetration Testing

O que é Penetration testing

Pentest é uma abreviação de teste de penetração, que é um tipo de teste de segurança que simula um ataque a um sistema para avaliar sua resistência a invasores maliciosos. Os pentesters usam ferramentas, técnicas e processos similares a dos atacantes para encontrar e demonstrar os impactos das vulnerabilidades no sistema. Dessa forma, os pentests podem examinar se um sistema é robusto o suficiente para resistir a ataques de posições autenticadas e não autenticadas, bem como de diferentes papéis do sistema. Portanto, com o escopo adequado, um pentest pode abordar qualquer aspecto de um sistema.

Existem diferentes tipos de pentests, dependendo do nível de informação e acesso que o pentester tem ao sistema alvo. Eles podem ser classificados em white-box, gray-box ou black-box. Um pentest white-box é aquele em que o pentester tem acesso total ao código-fonte, à arquitetura e à documentação do sistema. Um pentest gray-box é aquele em que o pentester tem acesso limitado ou parcial ao sistema, geralmente com alguma credencial válida. Um pentest black-box é aquele em que o pentester não tem acesso ou informação prévia sobre o sistema, e precisa descobrir as vulnerabilidades por conta própria.

Benefícios de realizar um pentest

Os pentests desempenham um papel importante na identificação e correção de vulnerabilidades antes que sejam exploradas por atacantes reais, além de simular cenários próximos da realidade. Além disso, eles contribuem para o cumprimento de requisitos regulatórios ou contratuais de segurança.

Veja alguns desses benefícios:

  • Identificar fraquezas nos sistemas, determinando a eficácia dos controles de segurança;
  • Apoiar a conformidade com regulamentações de privacidade e segurança de dados, como PCI DSS e LGPD;
  • Fornecer exemplos qualitativos e quantitativos da postura atual de segurança e das prioridades de orçamento para a gestão;
  • Encontrar falhas de segurança em elementos upstream, como ferramentas automatizadas, padrões de configuração, codificação e análises de arquitetura;
  • Localizar falhas de software e vulnerabilidades de segurança conhecidas e desconhecidas, inclusive aquelas consideradas menores, mas que podem causar danos como parte de um padrão de ataque complexo;
  • Simular ataques em sistemas, imitando o comportamento de agentes maliciosos do mundo real.

No entanto, os pentests também têm algumas desvantagens, como serem trabalhosos e caros, não prevenirem completamente bugs e falhas de entrarem em produção, e dependerem da habilidade e experiência do pentester

Tipos de pentest

Quando se trata de gerenciamento de riscos, adotar uma abordagem abrangente para os testes de penetração é fundamental. Essa abordagem envolve a realização de testes em todas as áreas do seu ambiente, garantindo uma avaliação completa e eficaz:

 

  • Pentest de aplicações web: examina a eficácia dos controles de segurança e busca por vulnerabilidades que possam comprometer uma aplicação web.
  • Pentest de aplicações mobile: identifica vulnerabilidades nos binários das aplicações mobile e nas funcionalidades correspondentes no servidor, como problemas de gestão de sessão, autenticação e autorização.
  • Pentest de redes: identifica vulnerabilidades críticas em uma rede externa e nos sistemas, abrangendo testes de protocolos de transporte criptografados, certificados SSL, uso de serviços administrativos, entre outros.
  • Pentest de nuvem (cloud): avalia a segurança em ambientes de nuvem, incluindo configurações, APIs, bancos de dados, criptografia, armazenamento e controles de segurança.
  • Pentest de containers: verifica vulnerabilidades e riscos de má configuração em contêineres obtidos do Docker ou outras fontes.
  • Pentest de dispositivos embarcados (IoT): analisa dispositivos IoT, como dispositivos médicos, automóveis e equipamentos industriais, para identificar falhas de comunicação e segurança.
  • Pentest de APIs: cobre os principais riscos e vulnerabilidades de segurança relacionados a APIs, como autorização incorreta, exposição excessiva de dados e falta de limitação de recursos/taxa.
  • Pentest do pipeline CI/CD: integra ferramentas automatizadas de análise de código no pipeline CI/CD, incluindo ferramentas estáticas para vulnerabilidades conhecidas e testes automatizados para simular atividades de hackers.

Fases da realização de um pentest

Por mais diferentes que sejam os tipos de pentests e seus objetivos, há algumas etapas que podem ser comuns a todos os testes:

  • Pré-reconhecimento: é a etapa em que o pentester conversa com o cliente sobre os objetivos, o escopo, o formato do relatório e outros detalhes do teste. É importante definir claramente o que será testado, como e quando, para evitar problemas legais ou operacionais.
  • Reconhecimento: o pentester coleta informações sobre o alvo, usando fontes públicas e privadas, para mapear a superfície de ataque e as possíveis vulnerabilidades. Nesta fase, o pentester pode usar ferramentas como buscadores, registradores de domínio, scanners de rede, engenharia social e até mesmo lixo eletrônico.
  • Mapeamento: é a etapa em que o pentester entende a rede do cliente, identificando os serviços usados, as portas abertas, os protocolos de comunicação e os sistemas operacionais. 
  • Análise de vulnerabilidades e ganho de acesso: nesta etapa o pentester explora as vulnerabilidades encontradas nas fases anteriores, usando ferramentas e técnicas específicas para cada tipo de ataque. O objetivo é ganhar acesso ao sistema alvo, seja por meio de injeção de SQL, força bruta, malware, phishing ou outra forma.
  • Manutenção de acesso e pós-exploração: é a etapa em que o pentester mantém o acesso ao sistema alvo pelo tempo necessário para cumprir seus objetivos, que podem ser roubar, alterar ou apagar dados, transferir fundos ou simplesmente danificar a reputação da empresa. 
  • Eliminando as pegadas: nesta etapa o pentester vai buscar esconder de analistas e mesmo de ferramentas seu rastro dentro do sistema ou da aplicação. Em um ataque real essa fase tem como objetivo retirar qualquer evidência que possa identificar que o sistema foi comprometido.
  • Geração de relatório: é a etapa final em que o pentester documenta suas descobertas, evidências e recomendações para corrigir as vulnerabilidades exploradas. O relatório deve ser claro, objetivo e detalhado, mostrando os riscos e os impactos para o cliente. O relatório também deve ser entregue ao cliente de forma segura e confidencial.

Existem várias metodologias para estruturar um teste de intrusão. Em nossa análise, uma das melhores é a entregue pela OWASP em seu OWASP – Web Application Penetration Test.

Pentest e AppSec

Pentest e AppSec são conceitos relacionados, mas distintos, na área da cibersegurança, uma vez que o primeiro se refere a um teste específico enquanto o segundo envolve a segurança das aplicações ao longo de seu ciclo de vida, desde o design até a manutenção.

O Pentest deve ser executado preferencialmente dentro do processo de Segurança de Aplicações, idealmente em estágios finais, para que seja possível observar a segurança de uma aplicação já em produção.

Em outras palavras, Pentest é uma ferramenta para avaliar a segurança de uma aplicação, mas não a única. AppSec abrange diversas atividades como revisão de código, modelagem de ameaças, varredura de vulnerabilidades, práticas de codificação segura, monitoramento contínuo e muito mais. 

É importante lembrar que o Pentest em si não garante a segurança da aplicação: ele é uma fotografia de como está a segurança hoje. Ou seja, se houver um deploy, ele já se encontra desatualizado. Então o Pentest é um dos procedimentos de segurança que se deve adotar para tornar a aplicação segura dentro de um programa de AppSec.

Soluções de Pentest com a Conviso

Na Conviso, oferecemos um serviço de pentest diferenciado, que vai além do tradicional white-box, gray-box ou black-box. Com o nosso pentest, você pode:

  • Acompanhar em tempo real o andamento do teste, interagindo diretamente com nossos Security Experts.
  • Gerenciar as vulnerabilidades encontradas com a nossa plataforma DevSecOps, a Conviso Platform  que facilita o processo de correção.
  • Retestar a aplicação gratuitamente para garantir a eficácia das correções implementadas.
  • Receber sugestões de ações complementares para um processo mais completo de segurança, como um AppSec Journey, que potencializa os resultados do pentest e a proteção geral do ambiente.

Descubra o poder da nossa parceria estratégica em AppSec! Conheça nossos serviços para elevar a maturidade e a postura de segurança das suas aplicações.