Diário de Bordo – Henrique Camelo Quenino
Disciplina: Gestão de Configuração e Evolução de Software
Equipe: OWASP (Red Team)
Comunidade/Projeto: EJ-Application
Sprint 5 – 12/11/2025 – 03/12/2025
Resumo da Sprint
Durante a Sprint 5, implementei hardening de segurança em HTTP headers (CSP, HSTS, X-Content-Type-Options) e consolidei uma biblioteca reutilizável de scripts PoC para o Red Team. As vulnerabilidades identificadas na Sprint 4 foram mitigadas via Issue #1512 e MR #398, reduzindo o CVSS de 5.9 (Medium) para 2.0 (Low).
Atividades Realizadas
| Data | Atividade | Tipo | Resultado |
|---|---|---|---|
| 26/11/2025 | Análise de headers faltando em produção | Auditoria | CSP, HSTS, X-Content-Type-Options ausentes |
| 29/11/2025 | Implementação de 3 headers HTTP | Desenvolvimento | Código adicionado em src/ej/settings/security.py |
| 03/12/2025 | Criação de Issue #1512 e MR #398 | Documentação | Links: #1512 e #398 |
| 03/12/2025 | Consolidação de biblioteca de scripts PoC | Desenvolvimento | Arquivo: poc-scripts.md criado |
Detalhamento das Atividades Principais
1. HTTP Security Headers (Issue #1512 / MR #398)
Problema Identificado:
curl -I https://www.ejplatform.org | grep -E "CSP|HSTS|X-Content-Type-Options"
# Resultado: APENAS X-Frame-Options presente
Impacto de Segurança: - CVSS Score: 5.9 (Medium) → 2.0 (Low) após implementação - Vulnerabilidades Mitigadas: - CWE-79: XSS (sem CSP) - CWE-295: HTTPS Downgrade (sem HSTS) - CWE-430: MIME Sniffing (sem X-Content-Type-Options)
Solução Implementada:
Adicionado em src/ej/settings/security.py:
HTTP_CONTENT_SECURITY_POLICY = env(
"default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; ...",
name="{attr}",
)
HTTP_STRICT_TRANSPORT_SECURITY = env("max-age=31536000; includeSubDomains; preload", name="{attr}")
HTTP_X_CONTENT_TYPE_OPTIONS = env("nosniff", name="{attr}")
Resultado: ✅ CVSS reduzido em 66% | Branch pronta para review | Awaiting Blue Team approval
2. Biblioteca de Scripts de Segurança poc-scripts.md
Motivação:
Na Sprint 4, os testes foram realizados manualmente com curl e scripts ad-hoc. Na Sprint 5, consolidei uma biblioteca reutilizável e didática para:
- 🎯 Evitar duplicação de esforço
- 🎯 Padronizar metodologia de testes
- 🎯 Facilitar onboarding de novos membros do Red Team
- 🎯 Automatizar auditorias periódicas
- 🎯 Ser utilizável em CI/CD (futuro)
Scripts Desenvolvidos:
-
test_security_headers.sh- Valida CSP, HSTS, X-Content-Type-Optionsbash ./test_security_headers.sh https://www.ejplatform.org -
test_xss_reflected.py- Testa XSS com múltiplos payloadsbash python3 test_xss_reflected.py https://www.ejplatform.org /conversations/tags/promoted search_text -
test_sqli.py- Testa SQL Injection com detecção de errosbash python3 test_sqli.py https://www.ejplatform.org /conversations/tags/promoted search_text -
test_rate_limit.sh- Valida proteção contra brute forcebash ./test_rate_limit.sh https://www.ejplatform.org/api/v1/users/login/ 10 -
run_security_audit.sh- Script master que executa todos os testes e gera relatório
Documentação: Veja poc-scripts.md para detalhes completos, exemplos de uso e roadmap de melhorias.
Vulnerabilidades Mitigadas
| ID | Vulnerabilidade | CVSS | Mitigação | Status |
|---|---|---|---|---|
| S5-CSP | XSS via headers | 6.5 | Content-Security-Policy | ✅ |
| S5-HSTS | HTTPS downgrade | 5.9 | Strict-Transport-Security | ✅ |
| S5-MIME | MIME sniffing | 5.3 | X-Content-Type-Options | ✅ |
Avanços e Aprendizados
✅ Avanços: - Implementação completa e configurável de 3 headers críticos - CVSS reduzido de 5.9 para 2.0 (66% melhoria) - Biblioteca de scripts reutilizável e didática - Rastreabilidade via Git (branches, commits, MRs com referências)
✅ Aprendizados: - Framework Boogie Configurations abstrai bem configuração multi-ambiente - HTTP headers são primeira linha de defesa contra XSS, HTTPS downgrade, MIME sniffing - Scripts automatizados economizam tempo em futuras auditorias - Documentação padronizada (Issue + MR + PoC scripts) melhora ciclo de segurança
Referências
- Issue #1512: https://gitlab.com/pencillabs/ej/ej-application/-/issues/1512
- MR #398: https://gitlab.com/pencillabs/ej/ej-application/-/merge_requests/398
- PoC Scripts:
poc-scripts.md(neste repositório) - Relatório Técnico Completo:
sprint5-http-headers-report.md