# Cybersec — Incidente Boletim Oficial (2026-06-10)

Documentação das ações de segurança realizadas após o comprometimento que derrubou a página do Boletim Oficial (backdoor em `public/index.php` e diretório `public/boletim-oficial/`).

## Relatórios

| # | Arquivo | Tema | Severidade |
|---|---------|------|------------|
| 01 | [2026-06-10-01-hardening-emergencial-apache.md](2026-06-10-01-hardening-emergencial-apache.md) | RCE Páginas HTML (Blade::render), hardening `.htaccess`, rota quebrada | Crítica |
| 02 | [2026-06-10-02-extensoes-perigosas-upload.md](2026-06-10-02-extensoes-perigosas-upload.md) | Blocklist de extensões perigosas em uploads | Média |
| 03 | [2026-06-10-03-dompdf-enable-php.md](2026-06-10-03-dompdf-enable-php.md) | Desativar PHP embutido do DomPDF globalmente | Média |
| 04 | [2026-06-10-04-xss-fale-conosco.md](2026-06-10-04-xss-fale-conosco.md) | XSS armazenado em "Fale Conosco" + sanitizador reutilizável | Média/Alta |
| 05 | [2026-06-10-05-padronizacao-uploads.md](2026-06-10-05-padronizacao-uploads.md) | Validação de conteúdo (magic bytes) em uploads | Média |
| 06 | [2026-06-10-06-endpoints-publicos-dados.md](2026-06-10-06-endpoints-publicos-dados.md) | Restrição de endpoints de dados (ATIVADO + DTO + throttle) | Média |
| 07 | [2026-06-10-07-avaliacao-apache-vhost.md](2026-06-10-07-avaliacao-apache-vhost.md) | Avaliação do vhost Apache de produção (`AllowOverride None`, FilesMatch, HSTS, SAPI, CSP) | Avaliação |
| 08 | [2026-07-02-08-mitigacoes-v2-v6-varredura.md](2026-07-02-08-mitigacoes-v2-v6-varredura.md) | Mitigações V2-V6 (IndicadoresTI), reCAPTCHA SSL, XSS em notícias, guards de regressão | Média |

## Vetor do incidente (resumo)

```
Conta admin/permissão comprometida
  -> Página HTML salva (campo "code") compilada por Blade::render() => RCE
  -> escrita em public/index.php (backdoor) e criação de public/boletim-oficial/
  -> Apache serve o diretório físico (RewriteCond %{REQUEST_FILENAME} !-d) => "directory shadowing"
  -> /boletim-oficial cai
```

## Pendências operacionais (servidor de produção)

Detalhadas no Relatório 01. Resumo:

- Permissões: `public/` e `index.php` somente leitura para o usuário do PHP-FPM; escrita só em `storage/` e `bootstrap/cache/`.
- Varredura de artefatos `.ph*`/`.phar`/`.pht`/`.inc` em `public/` e conferência de hash de `index.php`.
- Revisão de logs (Apache, SSH, painel) e rotação de credenciais (admin, SSH, banco, `.env`).
- Monitoramento de integridade de `public/`.
- Teste do `.htaccess`: `403` para `.phtml`/`.php` em `public/` e `public/storage/`.

## Acompanhamento recomendado (próximas fases)

- Content-Security-Policy no portal público.
- Avaliar `mews/purifier` (whitelist completa de HTML) para campos de texto rico.
- Auditar demais usos de `{!! !!}` que partam de entrada do usuário e reaproveitar `App\Helpers\HtmlSanitizer`.
- Revisar templates de PDF dos relatórios de Indicadores TI (garantir escape de dados).
