- All SKILL.md files now <500 lines (avg reduction 69%) - Detailed content extracted to references/ subdirectories - Frontmatter standardised: only name + description (Anthropic standard) - New skills: brand-guidelines, spec-coauthor, report-templates, skill-creator - Design skills: anti-slop guidelines, premium-proposals reference - Removed non-standard frontmatter fields (triggers, version, author, category) Plugins affected: infraestrutura, marketing, dev-tools, crm-ops, gestao, core-tools, negocio, perfex-dev, wordpress, design-media Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
238 lines
5.2 KiB
Markdown
238 lines
5.2 KiB
Markdown
# /security-audit - Template de Relatório e Ferramentas
|
|
|
|
## Template Relatório de Segurança
|
|
|
|
```markdown
|
|
# RELATORIO DE SEGURANCA
|
|
|
|
**Sistema:** [Nome do Sistema/Aplicação]
|
|
**Data:** [YYYY-MM-DD]
|
|
**Auditor:** Security Compliance Specialist - Descomplicar®
|
|
**Scope:** [Frontend | Backend | Infra | Full Stack]
|
|
|
|
---
|
|
|
|
## EXECUTIVE SUMMARY
|
|
|
|
[2-3 parágrafos resumindo estado de segurança global]
|
|
|
|
**Score Global:** [X]/100
|
|
**CVSS Médio:** [X.X]
|
|
|
|
**Breakdown:**
|
|
- Críticos: [N] findings
|
|
- Altos: [N] findings
|
|
- Médios: [N] findings
|
|
- Baixos: [N] findings
|
|
|
|
---
|
|
|
|
## FINDINGS
|
|
|
|
### CRITICOS ([N] findings)
|
|
|
|
#### FINDING-001: SQL Injection em Login
|
|
|
|
- **Severidade:** CRÍTICO (CVSS 9.8)
|
|
- **Componente:** `login.php` linha 45
|
|
- **Categoria OWASP:** A03 - Injection
|
|
|
|
**Descrição:**
|
|
Parâmetro `username` não sanitizado, permitindo SQL injection.
|
|
|
|
**Evidência:**
|
|
```php
|
|
$sql = "SELECT * FROM users WHERE username = '" . $_POST['username'] . "'";
|
|
```
|
|
|
|
**Proof of Concept:**
|
|
```bash
|
|
curl -X POST https://site.com/login \
|
|
-d "username=' OR '1'='1&password=anything"
|
|
```
|
|
|
|
**Impacto:**
|
|
- Acesso total à base de dados
|
|
- Bypass de autenticação
|
|
- Exfiltração de dados de clientes
|
|
|
|
**Remediação:**
|
|
```php
|
|
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
|
|
$stmt->execute([$_POST['username']]);
|
|
```
|
|
|
|
**Prazo:** IMEDIATO
|
|
**Status:** OPEN
|
|
|
|
---
|
|
|
|
## OWASP TOP 10 COMPLIANCE
|
|
|
|
| # | Categoria | Status | Findings |
|
|
|---|-----------|--------|----------|
|
|
| A01 | Broken Access Control | Parcial | 2 médios |
|
|
| A02 | Cryptographic Failures | OK | 0 |
|
|
| A03 | Injection | Falha | 1 crítico, 1 alto |
|
|
| A04 | Insecure Design | Parcial | 1 médio |
|
|
| A05 | Security Misconfiguration | Atenção | 3 altos |
|
|
| A06 | Vulnerable Components | Parcial | 5 baixos |
|
|
| A07 | Auth Failures | OK | 0 |
|
|
| A08 | Data Integrity | OK | 0 |
|
|
| A09 | Logging Failures | Parcial | 1 médio |
|
|
| A10 | SSRF | OK | 0 |
|
|
|
|
---
|
|
|
|
## COMPLIANCE GDPR
|
|
|
|
- [ ] Consentimento explícito capturado
|
|
- [ ] Direito ao esquecimento implementado
|
|
- [ ] Portabilidade de dados possível
|
|
- [ ] Retenção de dados definida
|
|
- [ ] Encriptação de dados sensíveis
|
|
- [ ] Logging de acessos activo
|
|
|
|
**Score GDPR:** 75/100 (Parcialmente Conforme)
|
|
|
|
---
|
|
|
|
**Confidencial - Descomplicar® Crescimento Digital**
|
|
```
|
|
|
|
---
|
|
|
|
## Checklist GDPR Completo
|
|
|
|
### Consentimento
|
|
- [ ] Opt-in explícito (não pré-seleccionado)
|
|
- [ ] Linguagem clara
|
|
- [ ] Granular (newsletter ≠ tracking)
|
|
- [ ] Fácil de retirar
|
|
|
|
### Direitos do Titular
|
|
- [ ] Direito ao acesso (exportar dados)
|
|
- [ ] Direito à rectificação (editar dados)
|
|
- [ ] Direito ao esquecimento (delete account)
|
|
- [ ] Direito à portabilidade (formato standard)
|
|
- [ ] Direito à oposição (opt-out processing)
|
|
|
|
### Segurança
|
|
- [ ] Encriptação em trânsito (HTTPS)
|
|
- [ ] Encriptação em repouso (BD sensível)
|
|
- [ ] Passwords com hash forte (bcrypt)
|
|
- [ ] Logs de acesso a dados pessoais
|
|
- [ ] Notificação de breach (<72h)
|
|
|
|
### Documentação
|
|
- [ ] Privacy policy actualizada (última 12 meses)
|
|
- [ ] Cookie policy clara
|
|
- [ ] Terms of service
|
|
- [ ] Data processing agreement (DPA)
|
|
|
|
---
|
|
|
|
## Ferramentas de Análise
|
|
|
|
### Análise Estática (SAST)
|
|
|
|
```bash
|
|
# PHP - PHPStan
|
|
phpstan analyse --level=max src/
|
|
|
|
# PHP - Psalm
|
|
psalm --show-info=true
|
|
|
|
# PHP - Security Checker
|
|
local-php-security-checker
|
|
|
|
# JavaScript - ESLint
|
|
eslint --ext .js,.jsx src/
|
|
|
|
# Python - Bandit
|
|
bandit -r project/
|
|
```
|
|
|
|
### Análise Dinâmica (DAST)
|
|
|
|
```bash
|
|
# OWASP ZAP (headless)
|
|
zap-cli quick-scan -s all https://site.com
|
|
|
|
# Nikto
|
|
nikto -h https://site.com
|
|
|
|
# SQLMap
|
|
sqlmap -u "https://site.com/page?id=1" --batch
|
|
|
|
# Nmap
|
|
nmap -sV -sC site.com
|
|
|
|
# WPScan (WordPress)
|
|
wpscan --url https://site.com --api-token YOUR_TOKEN
|
|
```
|
|
|
|
---
|
|
|
|
## Hardening Checklist
|
|
|
|
### Sistema Operativo (Linux)
|
|
- [ ] Firewall activo (iptables/firewalld)
|
|
- [ ] SELinux/AppArmor activado
|
|
- [ ] SSH com key-based auth (não password)
|
|
- [ ] SSH não permite root login
|
|
- [ ] Fail2ban instalado e configurado
|
|
- [ ] Automatic security updates
|
|
- [ ] Portas desnecessárias fechadas
|
|
|
|
### Web Server (Nginx/Apache)
|
|
- [ ] Server tokens desactivado
|
|
- [ ] Directory listing desactivado
|
|
- [ ] Security headers configurados
|
|
- [ ] SSL/TLS configurado (A+ SSL Labs)
|
|
- [ ] Apenas TLS 1.2+ (não SSL, TLS 1.0, 1.1)
|
|
- [ ] HTTP/2 activado
|
|
|
|
### PHP
|
|
- [ ] `display_errors = Off` em produção
|
|
- [ ] `expose_php = Off`
|
|
- [ ] `open_basedir` configurado
|
|
- [ ] `disable_functions` configurado
|
|
- [ ] File uploads limitados
|
|
- [ ] OPcache activado
|
|
|
|
### MySQL
|
|
- [ ] Bind apenas localhost (se possível)
|
|
- [ ] Root sem acesso remoto
|
|
- [ ] Passwords fortes
|
|
- [ ] `skip-name-resolve`
|
|
- [ ] Slow query log activado
|
|
|
|
---
|
|
|
|
## Severidade de Findings
|
|
|
|
```
|
|
CRÍTICO (Score 9-10)
|
|
Exploração imediata possível, dados em risco
|
|
RCE, SQL Injection, Authentication Bypass
|
|
→ Corrigir IMEDIATAMENTE (<24h)
|
|
|
|
ALTO (Score 7-8.9)
|
|
Vulnerabilidade significativa
|
|
XSS Stored, CSRF, Insecure Deserialization
|
|
→ Corrigir em 24-48h
|
|
|
|
MÉDIO (Score 4-6.9)
|
|
Risco moderado
|
|
XSS Reflected, Information Disclosure, Missing Headers
|
|
→ Corrigir em 7 dias
|
|
|
|
BAIXO (Score 1-3.9)
|
|
Melhoria recomendada
|
|
Weak Password Policy, Verbose Errors, Outdated Libraries
|
|
→ Corrigir em 30 dias
|
|
```
|
|
|
|
**Cálculo CVSS v3:** https://www.first.org/cvss/calculator/3.1
|