Vulnerability Scanner
Pense como um atacante, defenda como um especialista. Conscientização sobre a paisagem de ameaças 2025.
🔧 Scripts de Runtime
Execute para validação automatizada:
| Script |
Propósito |
Uso |
scripts/security_scan.py |
Validar princípios de segurança aplicados |
python scripts/security_scan.py <project_path> |
📋 Arquivos de Referência
| Arquivo |
Propósito |
| checklists.md |
Checklists OWASP Top 10, Autenticação, API, Proteção de dados |
1. Mentalidade de Especialista em Segurança
Princípios Fundamentais
| Princípio |
Aplicação |
| Assume Breach |
Projete como se o atacante já estivesse dentro |
| Zero Trust |
Nunca confie, sempre verifique |
| Defense in Depth |
Múltiplas camadas, sem ponto único de falha |
| Least Privilege |
Apenas o acesso mínimo necessário |
| Fail Secure |
Em caso de erro, negue acesso |
Perguntas de Modelagem de Ameaças
Antes de fazer varredura, pergunte-se:
- O que estamos protegendo? (Ativos)
- Quem nos atacaria? (Atores de ameaça)
- Como eles nos atacariam? (Vetores de ataque)
- Qual é o impacto? (Risco comercial)
2. OWASP Top 10:2025
Categorias de Risco
| Ranking |
Categoria |
Pense Sobre |
| A01 |
Broken Access Control |
Quem pode acessar o quê? IDOR, SSRF |
| A02 |
Security Misconfiguration |
Padrões, headers, serviços expostos |
| A03 |
Software Supply Chain 🆕 |
Dependências, CI/CD, integridade do build |
| A04 |
Cryptographic Failures |
Criptografia fraca, secrets expostos |
| A05 |
Injection |
Entrada do usuário → comandos do sistema |
| A06 |
Insecure Design |
Arquitetura falha |
| A07 |
Authentication Failures |
Gerenciamento de sessão e credenciais |
| A08 |
Integrity Failures |
Updates não assinadas, dados adulterados |
| A09 |
Logging & Alerting |
Pontos cegos, falta de monitoramento |
| A10 |
Exceptional Conditions 🆕 |
Tratamento de erros, estados fail-open |
Mudanças-Chave 2025
Mudanças 2021 → 2025:
├── SSRF mesclado em A01 (Access Control)
├── A02 elevado (configs Cloud/Container)
├── A03 NOVO: Supply Chain (foco maior)
├── A10 NOVO: Exceptional Conditions
└── Mudança de foco: Causas raízes > Sintomas
3. Supply Chain Security (A03)
Superfície de Ataque
| Vetor |
Risco |
Pergunta a Fazer |
| Dependências |
Pacotes maliciosos |
Auditamos novos deps? |
| Lock files |
Ataques de integridade |
Eles estão committed? |
| Build pipeline |
Compromisso de CI/CD |
Quem pode modificar? |
| Registry |
Typosquatting |
Fontes verificadas? |
Princípios de Defesa
- Verifique integridade de pacotes (checksums)
- Fixe versões, audite atualizações
- Use registries privados para deps críticas
- Assine e verifique artefatos
4. Mapeamento de Superfície de Ataque
O Que Mapear
| Categoria |
Elementos |
| Pontos de Entrada |
APIs, formulários, uploads de arquivo |
| Fluxos de Dados |
Input → Processo → Output |
| Limites de Confiança |
Onde autenticação/autorização são verificadas |
| Ativos |
Secrets, PII, dados comerciais |
Matriz de Priorização
Risco = Probabilidade × Impacto
Alto Impacto + Alta Probabilidade → CRÍTICO
Alto Impacto + Baixa Probabilidade → ALTO
Baixo Impacto + Alta Probabilidade → MÉDIO
Baixo Impacto + Baixa Probabilidade → BAIXO
5. Priorização de Riscos
CVSS + Contexto
| Fator |
Peso |
Pergunta |
| CVSS Score |
Severidade base |
Quão grave é a vulnerabilidade? |
| EPSS Score |
Probabilidade de exploração |
Está sendo explorada? |
| Asset Value |
Contexto comercial |
O que está em risco? |
| Exposure |
Superfície de ataque |
Exposto na internet? |
Árvore de Decisão de Priorização
Está sendo ativamente explorada (EPSS >0,5)?
├── SIM → CRÍTICO: Ação imediata
└── NÃO → Verifique CVSS
├── CVSS ≥9,0 → ALTO
├── CVSS 7,0-8,9 → Considere valor do ativo
└── CVSS <7,0 → Agende para depois
6. Exceptional Conditions (A10 - Novo)
Fail-Open vs Fail-Closed
| Cenário |
Fail-Open (RUIM) |
Fail-Closed (BOM) |
| Erro de autenticação |
Permita acesso |
Negue acesso |
| Parse falha |
Aceite input |
Rejeite input |
| Timeout |
Retry eternamente |
Limite + aborte |
O Que Verificar
- Tratadores de exceção que capturam tudo e ignoram
- Tratamento de erro faltante em operações de segurança
- Condições de corrida em autenticação/autorização
- Cenários de esgotamento de recursos
7. Metodologia de Varredura
Abordagem por Fases
1. RECONNAISSANCE
└── Entenda o alvo
├── Stack de tecnologia
├── Pontos de entrada
└── Fluxos de dados
2. DISCOVERY
└── Identifique possíveis problemas
├── Revisão de configuração
├── Análise de dependências
└── Busca de padrões de código
3. ANALYSIS
└── Valide e priorize
├── Eliminação de falsos positivos
├── Pontuação de risco
└── Mapeamento de cadeia de ataque
4. REPORTING
└── Descobertas acionáveis
├── Passos claros de reprodução
├── Impacto comercial
└── Guia de remediação
8. Análise de Padrões de Código
Padrões de Alto Risco
| Padrão |
Risco |
Procure Por |
| String concat em queries |
Injection |
"SELECT * FROM " + user_input |
| Execução dinâmica de código |
RCE |
eval(), exec(), Function() |
| Desserialização insegura |
RCE |
pickle.loads(), unserialize() |
| Manipulação de path |
Traversal |
Input do usuário em paths de arquivo |
| Segurança desabilitada |
Vários |
verify=False, --insecure |
Padrões de Secret
| Tipo |
Indicadores |
| API Keys |
api_key, apikey, alta entropia |
| Tokens |
token, bearer, jwt |
| Credenciais |
password, secret, key |
| Cloud |
Prefixos AWS_, AZURE_, GCP_ |
9. Considerações de Segurança Cloud
Responsabilidade Compartilhada
| Camada |
Você Gerencia |
Provider Gerencia |
| Dados |
✅ |
❌ |
| Aplicação |
✅ |
❌ |
| SO/Runtime |
Depende |
Depende |
| Infraestrutura |
❌ |
✅ |
Verificações Específicas de Cloud
- IAM: Least privilege aplicado?
- Storage: Buckets públicos?
- Network: Security groups ajustados?
- Secrets: Usando secrets manager?
10. Anti-padrões
| ❌ Não Faça |
✅ Faça |
| Varredura sem entender |
Mapeie superfície de ataque primeiro |
| Alerte sobre todo CVE |
Priorize por exploitabilidade + ativo |
| Ignore falsos positivos |
Mantenha baseline verificado |
| Corrija apenas sintomas |
Aborde causas raízes |
| Varredura uma vez antes do deploy |
Varredura contínua |
| Confie em deps de terceiros cegamente |
Verifique integridade, audite código |
11. Princípios de Relatório
Estrutura de Descoberta
Cada descoberta deve responder:
- O quê? - Descrição clara da vulnerabilidade
- Onde? - Localização exata (arquivo, linha, endpoint)
- Por quê? - Explicação da causa raiz
- Impacto? - Consequência comercial
- Como corrigir? - Remediação específica
Classificação de Severidade
| Severidade |
Critérios |
| Crítica |
RCE, bypass de autenticação, exposição em massa de dados |
| Alta |
Exposição de dados, escalação de privilégio |
| Média |
Escopo limitado, requer condições |
| Baixa |
Informativo, melhoria de prática |
Lembre-se: Varredura de vulnerabilidades encontra problemas. Pensamento especialista prioriza o que importa. Sempre pergunte: "O que um atacante faria com isso?"
1---2name: vulnerability-scanner3description: Princípios avançados de análise de vulnerabilidades. OWASP 2025, Supply Chain Security, mapeamento de superfície de ataque, priorização de riscos.4---56# Vulnerability Scanner78> Pense como um atacante, defenda como um especialista. Conscientização sobre a paisagem de ameaças 2025.910## 🔧 Scripts de Runtime1112**Execute para validação automatizada:**1314| Script | Propósito | Uso |15|--------|-----------|-----|16| `scripts/security_scan.py` | Validar princípios de segurança aplicados | `python scripts/security_scan.py <project_path>` |1718## 📋 Arquivos de Referência1920| Arquivo | Propósito |21|---------|-----------|22| [checklists.md](checklists.md) | Checklists OWASP Top 10, Autenticação, API, Proteção de dados |2324---2526## 1. Mentalidade de Especialista em Segurança2728### Princípios Fundamentais2930| Princípio | Aplicação |31|-----------|-----------|32| **Assume Breach** | Projete como se o atacante já estivesse dentro |33| **Zero Trust** | Nunca confie, sempre verifique |34| **Defense in Depth** | Múltiplas camadas, sem ponto único de falha |35| **Least Privilege** | Apenas o acesso mínimo necessário |36| **Fail Secure** | Em caso de erro, negue acesso |3738### Perguntas de Modelagem de Ameaças3940Antes de fazer varredura, pergunte-se:411. O que estamos protegendo? (Ativos)422. Quem nos atacaria? (Atores de ameaça)433. Como eles nos atacariam? (Vetores de ataque)444. Qual é o impacto? (Risco comercial)4546---4748## 2. OWASP Top 10:20254950### Categorias de Risco5152| Ranking | Categoria | Pense Sobre |53|---------|-----------|-------------|54| **A01** | Broken Access Control | Quem pode acessar o quê? IDOR, SSRF |55| **A02** | Security Misconfiguration | Padrões, headers, serviços expostos |56| **A03** | Software Supply Chain 🆕 | Dependências, CI/CD, integridade do build |57| **A04** | Cryptographic Failures | Criptografia fraca, secrets expostos |58| **A05** | Injection | Entrada do usuário → comandos do sistema |59| **A06** | Insecure Design | Arquitetura falha |60| **A07** | Authentication Failures | Gerenciamento de sessão e credenciais |61| **A08** | Integrity Failures | Updates não assinadas, dados adulterados |62| **A09** | Logging & Alerting | Pontos cegos, falta de monitoramento |63| **A10** | Exceptional Conditions 🆕 | Tratamento de erros, estados fail-open |6465### Mudanças-Chave 20256667```68Mudanças 2021 → 2025:69├── SSRF mesclado em A01 (Access Control)70├── A02 elevado (configs Cloud/Container)71├── A03 NOVO: Supply Chain (foco maior)72├── A10 NOVO: Exceptional Conditions73└── Mudança de foco: Causas raízes > Sintomas74```7576---7778## 3. Supply Chain Security (A03)7980### Superfície de Ataque8182| Vetor | Risco | Pergunta a Fazer |83|-------|-------|-----------------|84| **Dependências** | Pacotes maliciosos | Auditamos novos deps? |85| **Lock files** | Ataques de integridade | Eles estão committed? |86| **Build pipeline** | Compromisso de CI/CD | Quem pode modificar? |87| **Registry** | Typosquatting | Fontes verificadas? |8889### Princípios de Defesa9091- Verifique integridade de pacotes (checksums)92- Fixe versões, audite atualizações93- Use registries privados para deps críticas94- Assine e verifique artefatos9596---9798## 4. Mapeamento de Superfície de Ataque99100### O Que Mapear101102| Categoria | Elementos |103|-----------|-----------|104| **Pontos de Entrada** | APIs, formulários, uploads de arquivo |105| **Fluxos de Dados** | Input → Processo → Output |106| **Limites de Confiança** | Onde autenticação/autorização são verificadas |107| **Ativos** | Secrets, PII, dados comerciais |108109### Matriz de Priorização110111```112Risco = Probabilidade × Impacto113114Alto Impacto + Alta Probabilidade → CRÍTICO115Alto Impacto + Baixa Probabilidade → ALTO116Baixo Impacto + Alta Probabilidade → MÉDIO117Baixo Impacto + Baixa Probabilidade → BAIXO118```119120---121122## 5. Priorização de Riscos123124### CVSS + Contexto125126| Fator | Peso | Pergunta |127|-------|------|----------|128| **CVSS Score** | Severidade base | Quão grave é a vulnerabilidade? |129| **EPSS Score** | Probabilidade de exploração | Está sendo explorada? |130| **Asset Value** | Contexto comercial | O que está em risco? |131| **Exposure** | Superfície de ataque | Exposto na internet? |132133### Árvore de Decisão de Priorização134135```136Está sendo ativamente explorada (EPSS >0,5)?137├── SIM → CRÍTICO: Ação imediata138└── NÃO → Verifique CVSS139 ├── CVSS ≥9,0 → ALTO140 ├── CVSS 7,0-8,9 → Considere valor do ativo141 └── CVSS <7,0 → Agende para depois142```143144---145146## 6. Exceptional Conditions (A10 - Novo)147148### Fail-Open vs Fail-Closed149150| Cenário | Fail-Open (RUIM) | Fail-Closed (BOM) |151|---------|------------------|-------------------|152| Erro de autenticação | Permita acesso | Negue acesso |153| Parse falha | Aceite input | Rejeite input |154| Timeout | Retry eternamente | Limite + aborte |155156### O Que Verificar157158- Tratadores de exceção que capturam tudo e ignoram159- Tratamento de erro faltante em operações de segurança160- Condições de corrida em autenticação/autorização161- Cenários de esgotamento de recursos162163---164165## 7. Metodologia de Varredura166167### Abordagem por Fases168169```1701. RECONNAISSANCE171 └── Entenda o alvo172 ├── Stack de tecnologia173 ├── Pontos de entrada174 └── Fluxos de dados1751762. DISCOVERY177 └── Identifique possíveis problemas178 ├── Revisão de configuração179 ├── Análise de dependências180 └── Busca de padrões de código1811823. ANALYSIS183 └── Valide e priorize184 ├── Eliminação de falsos positivos185 ├── Pontuação de risco186 └── Mapeamento de cadeia de ataque1871884. REPORTING189 └── Descobertas acionáveis190 ├── Passos claros de reprodução191 ├── Impacto comercial192 └── Guia de remediação193```194195---196197## 8. Análise de Padrões de Código198199### Padrões de Alto Risco200201| Padrão | Risco | Procure Por |202|--------|-------|-----------|203| **String concat em queries** | Injection | `"SELECT * FROM " + user_input` |204| **Execução dinâmica de código** | RCE | `eval()`, `exec()`, `Function()` |205| **Desserialização insegura** | RCE | `pickle.loads()`, `unserialize()` |206| **Manipulação de path** | Traversal | Input do usuário em paths de arquivo |207| **Segurança desabilitada** | Vários | `verify=False`, `--insecure` |208209### Padrões de Secret210211| Tipo | Indicadores |212|------|-------------|213| API Keys | `api_key`, `apikey`, alta entropia |214| Tokens | `token`, `bearer`, `jwt` |215| Credenciais | `password`, `secret`, `key` |216| Cloud | Prefixos `AWS_`, `AZURE_`, `GCP_` |217218---219220## 9. Considerações de Segurança Cloud221222### Responsabilidade Compartilhada223224| Camada | Você Gerencia | Provider Gerencia |225|-------|--------------|-------------------|226| Dados | ✅ | ❌ |227| Aplicação | ✅ | ❌ |228| SO/Runtime | Depende | Depende |229| Infraestrutura | ❌ | ✅ |230231### Verificações Específicas de Cloud232233- IAM: Least privilege aplicado?234- Storage: Buckets públicos?235- Network: Security groups ajustados?236- Secrets: Usando secrets manager?237238---239240## 10. Anti-padrões241242| ❌ Não Faça | ✅ Faça |243|-----------|--------|244| Varredura sem entender | Mapeie superfície de ataque primeiro |245| Alerte sobre todo CVE | Priorize por exploitabilidade + ativo |246| Ignore falsos positivos | Mantenha baseline verificado |247| Corrija apenas sintomas | Aborde causas raízes |248| Varredura uma vez antes do deploy | Varredura contínua |249| Confie em deps de terceiros cegamente | Verifique integridade, audite código |250251---252253## 11. Princípios de Relatório254255### Estrutura de Descoberta256257Cada descoberta deve responder:2581. **O quê?** - Descrição clara da vulnerabilidade2592. **Onde?** - Localização exata (arquivo, linha, endpoint)2603. **Por quê?** - Explicação da causa raiz2614. **Impacto?** - Consequência comercial2625. **Como corrigir?** - Remediação específica263264### Classificação de Severidade265266| Severidade | Critérios |267|-----------|-----------|268| **Crítica** | RCE, bypass de autenticação, exposição em massa de dados |269| **Alta** | Exposição de dados, escalação de privilégio |270| **Média** | Escopo limitado, requer condições |271| **Baixa** | Informativo, melhoria de prática |272273---274275> **Lembre-se:** Varredura de vulnerabilidades encontra problemas. Pensamento especialista prioriza o que importa. Sempre pergunte: "O que um atacante faria com isso?"