Você está na página 1de 11

Requisitos para o Desenvolvimento da Aplicação

de apoio ao Ethical Hacking Test (EHT - Pentest)

1. Introdução
Este documento define os requisitos para o desenvolvimento de um MVP para apoio a
realização de EHT1, funcionando como um wrapper do sistema existente Pentest Tools.

Os seguintes diferenciais são previstos para o sistema final:

● Interface Adaptativa: Oferece uma interface que se adapta ao nível de experiência


do usuário, tornando-a acessível para novatos em segurança, enquanto fornece
opções avançadas para profissionais experientes. Ou seja, possibilita acesso tanto a
um usuário nível Gestor, quanto a um usuário nível técnico.
● Relatórios Personalizados e Ações Recomendadas: Gera relatórios detalhados
que não apenas destacam vulnerabilidades e exposições, mas também fornecem
recomendações personalizadas para mitigação, baseadas na estrutura específica e
no contexto de segurança da organização, em camada executiva (riscos e
prioridades) e técnica (CVS, OWASP , etc).
● Compliance e Normas de Segurança voltadas ao cenário nacional: Avalia a
conformidade com normas e regulamentos de segurança relevantes ao mercado
brasileiro - LGPD (validar se há dados sensíveis, termos de uso, privacidade, etc),
Marco Civil da Internet (exemplo: validar se a aplicação está no Brasil), ajudando
organizações a manterem-se em conformidade com requisitos legais e de indústria.
● Selo de Conformidade: A ferramenta cria selo de análise com o hash verificável
que possibilita garantias de que naquele momento do teste, a aplicação possuía
adequações em relação a determinado padrão de conformidade (Bronze, Prata,
Ouro).
● Integração com CI/CD: A ferramenta pode ser adotada na esteira de produção, de
forma a possibilitar automatizar scripts de testes de segurança no decurso da etapa
de desenvolvimento, fortalecendo o conceito de Secure by Design e Privacy by
Default.
● Aprendizado Contínuo: A ferramenta utiliza machine learning para analisar os
resultados de seus testes de penetração, identificando quais estratégias foram
eficazes contra diferentes tipos de sistemas de segurança. Com o tempo, ela se
torna mais eficiente ao prever e contornar medidas de segurança e identificar falsos
positivos, reduzindo a análise humana manual.

Aplicabilidade do Sistema:

1
Há diferença entre EHT e Análise de Vulnerabilidade, contudo, de forma análoga ao termo "Hacker"
que comercialmente tem sido utilizado tanto para o bem quanto para o mal (cracker), o mercado tem
misturado o conceito técnico e apresentado o termo ASM (Attack Surface Management) que acaba
por misturar os dois termos (EHT e An. vuln).
a) Solução White Label para acoplamento em soluções proprietárias de cliente/parceiro
MSB
b) Uso Interno como ferramenta de apoio a execução de Testes de Segurança no ciclo
de desenvolvimento de aplicações.
c) Solução comercializada juntamente com ferramentas de apoio a Governança,
Riscos e Conformidade (GRC) em processos consultivos da MSB.

ROADMAP

Versão 1 (MVP):

● Wrapper do Pentest-tools utilizando REST API


● Foco em dashboard mais atrativo ao usuário final, com informações relevantes e
melhor distribuição/organização dos dados
● Foco em aplicação Externa, com autenticação simples.
● Foco nos serviços:
○ Scanner de Aplicação Web com suporte ao OWASP TOP 10 e requisitos
base solicitados pelo cliente
○ Scanner de Rede
● Relatórios Personalizados
○ Relatório Executivo
○ Relatório Técnico

Versão 2:
● Scanner de ambiente Cloud
● Foco em aplicação Interna, com uso de VPN para realização do Scan.
● Suporte a autenticação complexa (uso do Selenium)
● Teste de qualidade de senhas (wordlist)
● Scanner Active Directory (scripts texto - Kali linux conteiner)
● Suporte a Processamento Distribuído (CUDA/GPU) - mthread

Versão 3:
● Testes de Ransomware
● Aprendizado Continuo IA (MLsecOps)
● Independência do pentest-tools
● API e Templates próprios baseados no Nuclei e OWASP WSTG

1
2. Requisitos Funcionais

2.1 Gerais
● RF01: O sistema deve permitir ao usuário inserir um endereço IP ou URL no qual
deseja realizar o teste de vulnerabilidade.
○ RF01.1: O sistema deve varredura varredura tanto na versão HTTP quanto
na versão HTTPs da URL fornecida
● RF02: Oferecer três níveis de escaneamento: Light, Deep e Custom
○ RF02.1: O nível Light realiza um escaneamento rápido, abrangendo
verificações básicas.
○ RF02.2: O nível Deep oferece uma análise mais detalhada e demorada.
○ RF02.3: O nível Custom permite ao usuário selecionar os testes que serão
executados

2.2 Autenticação no alvo da varredura


● RF03: O sistema permitirá que o usuário autentique no sistema alvo da varredura
para que esta seja feita nas áreas restritas do mesmo.
● RF04: A autenticação no alvo será via arquivo ".side" do Selenium ou URL de login e
credenciais fornecidas pelo usuário.

2.3 Interface e Relatórios


● RF05: O sistema deve mostrar o percentual de conclusão dos testes que estão
sendo executados no momento.
● RF06: O sistema deve apresentar os resultados dos testes executados tanto em
formato HTML quanto em formato de relatório PDF, ambos em português.
○ RF06.1: Isso inclui a tradução dos resultados obtidos através da API do
Pentest Tools.
● RF07: Os relatórios gerados devem possuir duas versões: uma versão executiva,
mais simples e objetiva, e uma versão técnica, com os detalhes adicionais do teste.

2.4. Histórico e Armazenamento dos Resultados


● RF08: O sistema deve permitir ao usuário visualizar testes anteriores e consultar
seus resultados.
● RF09: Os resultados dos testes devem ser armazenados em um banco de dados
próprio do sistema, mesmo que esses dados existam em uma das ferramentas de
terceiros que esteja sendo utilizada, como é o caso do Pentest Tools
● RF09.1: O sistema deve garantir a privacidade e segurança dos dados
armazenados.

2.5 Agendamento e Notificações


● RF10: Execução de testes periódicos agendados.
● RF11: Notificações por e-mail sobre vulnerabilidades encontradas.

2
2.6 Gestão de Usuários
● RF12: Cadastro de usuários.
● RF13: Sistema de autenticação com recuperação de senha e autenticação de dois
fatores.
● RF14: Definição de permissões específicas para cada usuário.
● RF15: Registro e consulta de logs de ações dos usuários.
● RF16: Acesso administrativo a logs do sistema e resultados das varreduras.

2.7 Integração e Segurança


● RF17: Acesso via API.
● RF18: Geração de API keys para usuários com permissões específicas.

2.8 Integração com Ferramentas


● RF19: Utilização da ferramenta Pentest Tools na primeira versão do sistema
● RF20: Atualização futura para uso de ferramentas open source.

2.9 Emissão de selo de conformidade


● RF21: A ferramenta cria selo de análise com o hash verificável que possibilita
garantias de que naquele momento do teste, a aplicação possuía adequações em
relação a determinado padrão de conformidade (Bronze, Prata, Ouro)

3. Requisitos Não Funcionais

3.1. Segurança
● RNF01: O sistema deve implementar medidas de segurança robustas para proteger
as informações sensíveis, incluindo a autenticação do usuário e o armazenamento
de dados.

3.2. Usabilidade
● RNF02: A interface do usuário deve ser intuitiva e fácil de usar, permitindo que
usuários sem conhecimento técnico avançado possam realizar testes de
vulnerabilidade.

3.3. Desempenho
● RNF03: O sistema deve ser otimizado para garantir uma execução eficiente dos
testes, minimizando o tempo de espera do usuário.

3.4. Localização e Internacionalização


● RNF04: A interface do usuário e os relatórios gerados devem suportar
completamente o idioma português, incluindo a formatação adequada de datas,
números e moedas, conforme aplicável.

3
3.5 Qualidade e Precisão da Tradução
● RNF05: O mecanismo de tradução deve ser capaz de lidar com termos técnicos
específicos da área de segurança cibernética, garantindo que as traduções sejam
não apenas linguisticamente corretas, mas também tecnicamente precisas.

3.6. Licenciamento

● RNF06: O sistema precisa contabilizar o uso (quantidade de workspace, endereços


IP's scaneados, quantidade de scan em paralelo e quantidade de usuários
vinculados a determinado workspace).

3.7 Arquitetura e Performance


● RNF07: Implementação em containers Docker.
● RNF08: Separação entre front-end e back-end.
● RNF09: Escalabilidade do sistema.

3.8 Segurança
● RNF10: Deve ser criada uma VPN usando OpenVPN para todas as requisições
externas, incluindo aquelas feitas por ferramentas de terceiros como o PentestTools.
● RNF11: Todas as comunicações entre o front-end e o back-end devem ser
criptografadas usando HTTPS.
● RNF12: O sistema deve implementar medidas de segurança para proteger contra
vulnerabilidades comuns da web, como injeção de SQL, Cross-Site Scripting (XSS),
e falsificação de solicitação entre sites (CSRF).

3.9 Confiabilidade e Disponibilidade


● RNF13: Alta disponibilidade e recuperação rápida de falhas.
● RNF14: Sistema de backup e recuperação de dados críticos.

3.10 Flexibilidade e Modularidade


● RNF15: O sistema deve ser projetado de forma modular para facilitar a substituição
do Pentest Tools por ferramentas open source no futuro, sem impactar
significativamente o restante do sistema.

3.11 Atualização e Manutenção


● RNF16: Minimização da interrupção dos serviços durante atualizações. O processo
de atualização do sistema para remover o Pentest Tools e integrar ferramentas open
source deve ser planejado de forma a minimizar a interrupção dos serviços para os
usuários finais.

4
4. Características Técnicas Sugeridas pelo Cliente Referencial

Característica Ferramenta Base

● Possibilitar integração com outras ferramentas para Compatibilidade futura (Possibilitar não significa atender)
replicar detecções de ransomware para que seja
possível isolar o ataque, criptografar para gerar um Material Referencial
https://github.com/redcanaryco/atomic-red-team/blob/master/at
mapa de ataques de ransomware
omics/T1486/T1486.md
● Simular ou emular ransomware para testar em https://github.com/eddiechu/Encrypt-Delete-Test
ambientes Windows https://github.com/leeberg/CashCatRansomwareSimulator
https://github.com/NextronSystems/ransomware-simulator
https://github.com/hazcod/ransomwhere
https://github.com/jackdcasey/RansomwareSimulator
https://www.knowbe4.com/ransomware-simulator
https://spin.ai/ransomware-simulator/

● Rodar um escopo de teste em intervalos de endereços Pentest-tools


IPs e deve permitir a exclusão de um único host ou
qualquer serviço dentro do host (Website Vulnerability Scanner)
https://app.pentest-tools.com/website-vulnerability-scanning/we
● Permitir ser parado a qualquer momento para que não
bsite-scanner
ocorra um impacto na infraestrutura computacional
● O teste de penetração deve possuir níveis (Network Scanner Online)
diferenciados, com no mínimo 3 níveis de varreduras https://app.pentest-tools.com/network-vulnerability-scanning/ne
● Realizar varreduras de vulnerabilidades classificadas twork-security-scanner-online-openvas
como críticas para um ação rápida de resolução

5
● Possuir formas de teste direcionado, teste de ação
única para um report rápido sobre determinado host ou EXTRA - Diferencial Competitivo
serviço (Cloud Vulnerability Scanner)
https://app.pentest-tools.com/network-vulnerability-scanning/clo
● Possuir função de higienização automática para limpar
ud-scanner
qualquer resíduo do teste executado
● Ter a cobertura mínima do OWASP top 10, incluindo
JAVA/ASP e RCE
● Possuir uma forma de validação por um gestor ou Necessidade de criar um template de SCAN voltado para
usuário específico, para dar maior visibilidade e OWASP TOP 10 - JAVA/ASP/RCE
transparência no processo de ataque
Referencia: https://owasp.org/www-project-top-ten/
● Identificar uma vulnerabilidade em um escopo de teste e
https://owasp.org/www-project-web-security-testing-guide/latest
versionar as atualizações para executar um processo /
completo de controle de qualidade

● Possuir funcionalidade de interceptar comunicações


entre duas partes e retransmitir os dados para outro https://pentest-tools.com/exploit-helpers/http-request-logger#us
dispositivo (de terceiros), incluindo técnicas baseadas e-cases
em rede MITM.
● Possuir algumas medidas para recuperar senhas em
texto simples de usuários, hosts e servidores,
quebrando hashes de senhas de dados armazenados
ou transportados de um sistema usando uma das Pentest-tools
seguintes combinações de técnicas de força bruta e (Password Auditor)
dicionário: https://app.pentest-tools.com/network-vulnerability-scanning/pa
ssword-auditor
○ Uso de senha padrão do fabricante em
dispositivos periféricos https://app.pentest-tools.com/wordlists
○ Validar a existência de senhas fracas

6
○ Verifique a robustez das senhas mais complexas
e teste se elas estão de acordo com a política
corporativa.
○ Use recursos de cracking baseados em hardware
para detectar falhas no ecossistema Kerberos compatibilidade futura
○ Teste a força da senha de contas privilegiadas
em endpoints não gerenciados Uso do Google GCP - Cuda (Nvidia T4) - Feature Request (!!!)
○ Aproveite o poder de computação de GPU compatibilidade futura

especializado para técnicas de cracking de alto


desempenho
○ Dicionário de senhas onde o sistema aplicará
automaticamente as transformações
○ Crie um dicionário personalizado de senhas para
caçar.

● Possuir um escopo específico para o Active Directory Kali Linux


para identificar vulnerabilidades em tempo real, https://www.kali.org/
referente a usuários, grupos e contas administrativas. Ferramentas: Bloodhond, Kerbrute, CrackMapExec, Impacket
Toolkit

(runtime text shell scripts)

https://www.purple-knight.com/

7
4. Soluções Comerciais Referenciais

https://pentera.io/ (Referencial usado pelo cliente - muito caro $$$$)


https://www.tenable.com/ $$$$
https://www.knowbe4.com/
https://www.immuniweb.com/use-cases/web-penetration-testing/
https://attackforge.com/
https://www.intruder.io/

5. Ferramentas de Apoio

https://github.com/pwndoc/pwndoc (usado pelo pentest-tools)


https://github.com/1N3/Sn1per (usado pelo pentest-tools)
https://github.com/CyberLegionLtd/nuclei (usado pelo pentest-tools)
www.pentest-tools.com (Versão Paga -atribuida a especialista@msbtec.com.br )
https://www.immuniweb.com/free/ (Relatório Interessante)
Mozilla Observatory - https://observatory.mozilla.org/
www.kali.org (validar uso de conteiner, scripts de apoio pertinente)
https://pentest.ws/ (alternativa ao pentest-tools - muito arcaica)

6. Conclusão
Este documento detalha os requisitos necessários para o desenvolvimento do sistema de
teste de vulnerabilidades em aplicações web, visando uma ferramenta eficaz e acessível
para usuários de língua portuguesa. A implementação desses requisitos deve seguir as
melhores práticas de desenvolvimento de software, garantindo a entrega de um produto
final seguro, confiável e fácil de usar.

8
APÊNDICE A - Primeiros passos para a equipe de desenvolvimento

Familiarização com a API do Pentest Tools


● Logar no Pentest Tools (https://pentest-tools.com)
● Gerar uma API key (https://app.pentest-tools.com/account/api)
● Acessar documentação da API (https://pentest-tools.com/docs/api/v2) /
(https://app.pentest-tools.com/api-schema.yml)
● Executar o website scanner e estudar o tipo de resultado fornecido pela API

UX
● Analisar:
● Dashboard (https://app.pentest-tools.com/dashboard)
● Scanner de vulnerabilidades
(https://app.pentest-tools.com/website-vulnerability-scanning/website-
scanner)
● Relatório de varredura
(https://app.pentest-tools.com/sample-reports/website-vulnscan-sam
ple-report.pdf), Relatório gerado manualmente para aplicação da
GovOne
● Criar novas propostas de interface que sejam mais modernas e mais simples
de utilizar.

9
Opções existentes no Pentest Tools

​ Definição de Alvo (Target):


● Permitir especificação de alvos através de URL ou IP.
​ Tipos de Escaneamento:
● Disponibilizar três modalidades: Light Scan, Deep Scan e Custom Scan.
● Light Scan: Não permite autenticação.
● Deep Scan: Escaneamento mais profundo com opções padrão.
● Custom Scan: Permite personalização detalhada do escaneamento.
​ Escaneamento Personalizado (Custom Scan):
● Testes Iniciais:
● Permitir habilitar/desabilitar testes específicos como Fingerprint
Website, Server Software Vulnerabilities, Robots.txt, entre outros.
● Engine Options:
● Escolha do Spidering Approach: Auto, Classic, SPA.
● Configuração de Limits: Spidering Depth, Requests per second.
● Gerenciamento de Included/Excluded URLs.
● Attack Options:
● Verificações Ativas: XSS, SQL Injection, Local File Inclusion, etc.
● Verificações Passivas: Security Headers, Cookie Security, Directory
Listing, etc.
​ Autenticação:
● Suportar autenticação via upload de arquivo ".side" (Selenium), formulário de
login automático, cookies e headers.
​ Tempo de Escaneamento Personalizado:
● Permitir definição de tempo máximo de execução, com valor padrão de 1440
minutos (24h).
​ Redirecionamentos:
● Configurações para seguir redirecionamentos: Nunca, Mesmo host, Mesmo
domínio, Sempre.
​ Notificações:
● Configuração para envio de notificações:
● Workspace: Configuração padrão do espaço de trabalho.
● Custom: Personalização com triggers e ações específicas (envio para
emails, Webhook, Microsoft Teams, Slack).
● None: Sem envio de notificações.

10

Você também pode gostar