Segurança de Pentest II
LidoNesta aula, você aprenderá os fundamentos da fase de planejamento de um pentest, incluindo a definição de escopo, a obtenção de aprovação formal, a documentação necessária e a importância de respeitar os limites estabelecidos. Vamos explorar boas práticas e aspectos legais e éticos que garantem um teste de intrusão profissional e seguro.
O pentest, ou teste de intrusão, é uma prática essencial para avaliar a segurança de sistemas e redes. No entanto, para que um pentest seja eficaz e legal, é necessário um planejamento cuidadoso, aprovação formal, documentação detalhada e uma definição clara do que está fora de escopo. Nesta aula, vamos nos aprofundar nesses quatro pilares, que formam a base de qualquer teste de invasão profissional.
Entender esses elementos é crucial não apenas para a execução técnica, mas também para evitar problemas legais e éticos. Um pentest mal planejado pode causar danos operacionais, violar leis e comprometer a confiança do cliente. Portanto, vamos explorar cada um desses aspectos com profundidade, fornecendo exemplos práticos e diretrizes claras.
Planning
O planejamento é a primeira e uma das fases mais importantes de um pentest. É aqui que se define o objetivo do teste, o escopo, os recursos necessários, o cronograma e as regras de engajamento. Um bom planejamento garante que o teste seja conduzido de forma controlada e que todos os envolvidos estejam alinhados.
Durante o planejamento, é essencial responder a perguntas como: Qual é o objetivo do pentest? Quais sistemas, redes ou aplicações serão testados? Que tipo de teste será realizado (caixa preta, branca ou cinza)? Quais técnicas serão permitidas? Qual é a janela de teste? Quais são os contatos de emergência? Essas respostas formarão a base do contrato e do roteiro do teste.
Um exemplo de planejamento pode incluir a definição de que o teste será realizado apenas em horário comercial, para minimizar o impacto, e que técnicas de engenharia social não serão utilizadas. Também é importante definir métricas de sucesso, como a quantidade de vulnerabilidades críticas encontradas ou a resistência a ataques simulados.
Exemplo de itens de planejamento:
- Escopo: aplicação web interna (https://app.exemplo.com)
- Tipo de teste: caixa preta
- Janela de teste: 2 semanas, das 9h às 18h
- Contato de emergência: equipe de segurança (sec@exemplo.com)
- Regras: sem DoS, sem engenharia social, sem acesso físico
Approval
Obter aprovação formal é um requisito legal e ético para qualquer pentest. Isso significa que o proprietário do sistema ou a pessoa autorizada deve assinar um documento de autorização, geralmente chamado de 'Termo de Autorização para Testes de Invasão' ou 'Acordo de Teste'. Esse documento especifica o escopo, as limitações e as responsabilidades de ambas as partes.
A aprovação deve ser obtida por escrito, antes de qualquer atividade de teste. Isso protege o pentester e a empresa de possíveis ações legais, pois demonstra que o teste foi realizado com consentimento. Além disso, a aprovação deve ser específica para o período e os sistemas definidos; autorizações genéricas ou verbais não são suficientes.
Um bom processo de aprovação inclui a revisão do contrato por um advogado, a definição de cláusulas de confidencialidade e a identificação de pessoas autorizadas a dar a aprovação. Por exemplo, se uma empresa terceirizada for contratada para testar a segurança de um banco, o banco deve assinar o documento, e não apenas o gerente de TI.
Exemplo de cláusulas de um termo de aprovação:
- Autorizo a empresa 'SegurançaMax' a realizar testes de intrusão nos sistemas listados no Anexo A.
- O teste será realizado entre 01/03/2025 e 15/03/2025.
- Não é permitido o uso de ataques de negação de serviço.
- Em caso de incidente crítico, o contato é o Sr. João (joao@exemplo.com).
- Este termo tem validade de 30 dias e não pode ser prorrogado sem novo acordo.
Documentation
A documentação é vital em todas as fases do pentest, pois fornece evidências, facilita a comunicação e serve como base para o relatório final. Ela inclui desde os primeiros rascunhos do escopo até os logs de cada ação realizada. Uma boa documentação deve ser detalhada, cronológica e armazenada de forma segura.
Existem vários tipos de documentos: o contrato de autorização, o plano de teste, os registros de descobertas, os logs de atividades, e o relatório executivo e técnico. Cada um tem um propósito específico. Por exemplo, os logs de atividades são essenciais para reconstruir o que foi feito, caso haja disputas ou incidentes inesperados.
Além disso, a documentação deve ser tratada como confidencial e protegida com criptografia e controle de acesso. Após a conclusão do pentest, os documentos devem ser arquivados por um período definido, conforme políticas da empresa ou requisitos legais. Uma prática comum é usar ferramentas de gerenciamento de projetos e de anotações, como Jira, Confluence ou até mesmo um repositório Git privado.
Exemplo de estrutura de documentação:
- /contratos/termo_aprovacao.pdf
- /planejamento/plano_teste.md
- /logs/atividades_2025-03-01.log
- /descobertas/vulnerabilidades.md
- /relatorios/relatorio_final.docx
Out-of-scope
Definir o que está fora de escopo é tão importante quanto definir o que está dentro. Sistemas fora de escopo podem incluir sistemas de produção críticos, redes de terceiros, dados de clientes reais, ou serviços que não foram autorizados. O objetivo é evitar danos colaterais e garantir que o teste não viole a lei ou cause interrupções.
É comum que o escopo seja limitado a um ambiente de homologação ou a um conjunto específico de IPs. Tudo o que não estiver explicitamente listado no contrato deve ser considerado fora de escopo. O pentester deve respeitar rigorosamente esses limites, mesmo que encontre vulnerabilidades em sistemas fora do escopo; nesse caso, deve-se reportar a descoberta sem explorá-la.
Exemplos de itens fora de escopo: sistemas de terceiros hospedados em outros domínios, redes Wi-Fi de visitantes, bancos de dados de produção, e serviços de e-mail. Também pode incluir técnicas proibidas, como ataques de força bruta a contas de usuários reais, que podem violar a lei de proteção de dados.
Uma boa prática é criar uma lista explícita de itens fora de escopo e anexá-la ao contrato. Isso evita ambiguidades e garante que o cliente e o pentester tenham o mesmo entendimento. Durante o teste, se houver dúvida sobre algo, o pentester deve consultar o cliente antes de prosseguir.
Exemplo de lista de itens fora de escopo:
- Domínio: *.exemplo.com (exceto sub.dominio.exemplo.com)
- IPs: 192.168.1.0/24 (rede interna)
- Serviços: VPN, e-mail, banco de dados de produção
- Técnicas: engenharia social, ataques físicos, DoS
Boas Práticas e Observações Finais
Além dos quatro pilares, é importante seguir boas práticas durante todo o processo. Mantenha uma comunicação constante com o cliente, compartilhando atualizações periódicas. Use ferramentas adequadas e registre todas as ações. Ao final, entregue um relatório claro, com riscos e recomendações.
Lembre-se de que o pentest é uma atividade profissional que exige ética e responsabilidade. Nunca realize testes sem autorização, respeite o escopo e proteja os dados coletados. Com essas práticas, você contribuirá para um ambiente digital mais seguro.
Referências
- OWASP Web Security Testing Guide
- PTES - Penetration Testing Execution Standard
- SANS - A Practical Guide to Penetration Testing
- NIST SP 800-115 - Technical Guide to Information Security Testing and Assessment
- Kali Linux Documentation
- PortSwigger - Web Security Academy
- Security Metrics - Defining Penetration Testing Scope
Exercícios
- Descreva três itens que devem ser incluídos no planejamento de um pentest e explique por que cada um é importante.
- Por que a aprovação formal é essencial para um pentest? Cite dois riscos de realizar um teste sem aprovação.
- Liste três tipos de documentação que devem ser mantidos durante um pentest e descreva o conteúdo de cada um.
- O que significa 'out-of-scope' e por que é importante defini-lo? Dê um exemplo de item que geralmente é colocado fora de escopo.
- Imagine que você está planejando um pentest para uma aplicação web. Escreva um parágrafo descrevendo como você definiria o escopo, a aprovação e a documentação para esse teste.