Parte 5 da série "Segurança Web na UE: 10 Passos Para uma Melhor Classificação"
Porquê o security.txt
Um investigador de segurança encontra uma vulnerabilidade no seu website. Quem contacta?
Sem security.txt: Procura no website, encontra info@, envia um e-mail. Chega ao departamento de marketing, é eliminado como spam ou ignorado. A vulnerabilidade permanece aberta.
Com security.txt: Visita /.well-known/security.txt, encontra o contacto de segurança, a chave PGP e a política de divulgação. O relatório chega imediatamente à equipa certa.
Taxa de adoção na UE: 2,8%. No entanto, websites com security.txt obtêm em média uma pontuação 31% superior aos que não o possuem.
A Correlação
| Métrica | COM security.txt | SEM | Fator |
|---|---|---|---|
| Pontuação composta | 55 | 42 | +31% |
| HSTS | 72% | 26% | 2,8x |
| CSP | 47% | 10% | 4,7x |
| Classificação F | 6% | 44% | 7x menos |
O security.txt não é uma solução milagrosa. Mas quem dedica tempo a configurá-lo geralmente já tratou de tudo o resto.
Como Configurar o security.txt
Passo 1: Criar o Ficheiro
Crie o ficheiro /.well-known/security.txt no seu servidor web:
Contact: mailto:security@o-seu-dominio.pt
Expires: 2027-04-13T00:00:00.000Z
Preferred-Languages: pt
Campos obrigatórios (RFC 9116):
- Contact: — endereço de e-mail ou URL para relatórios de segurança
- Expires: — data de expiração (máximo 1 ano no futuro)
Campos opcionais:
- Encryption: — chave PGP para relatórios encriptados
- Acknowledgments: — reconhecimento para investigadores responsáveis
- Canonical: — URL canónico do ficheiro
- Policy: — ligação para a Política de Divulgação de Vulnerabilidades
- Hiring: — ligação para vagas na área de segurança
Passo 2: Torná-lo Acessível
O ficheiro deve estar acessível em https://o-seu-dominio.pt/.well-known/security.txt. Para a maioria das configurações:
Nginx:
location = /.well-known/security.txt {
alias /var/www/o-seu-dominio.pt/security.txt;
}
Apache: Basta colocar o ficheiro em /.well-known/ na raiz do documento.
WordPress: Utilize o plugin "WP Security.txt" ou coloque manualmente o ficheiro em .well-known/ na raiz do website.
Passo 3: Fornecer uma Chave PGP (recomendado)
Contact: mailto:security@o-seu-dominio.pt
Encryption: https://o-seu-dominio.pt/.well-known/pgp-key.txt
Expires: 2027-04-13T00:00:00.000Z
A ENISA recomenda a opção de encriptação para que os investigadores de segurança possam submeter detalhes sensíveis de forma protegida.
Adoção por Setor
| Setor | Adoção | Pontuação média com | Pontuação média sem |
|---|---|---|---|
| Banca | 23,9% | 69 | 55 |
| Comércio eletrónico | 15,6% | 64 | 53 |
| Educação | 8,1% | 53 | 42 |
| Tecnologia | 5,3% | 63 | 45 |
| Saúde | 2,0% | 58 | 42 |
| Hotelaria | 1,1% | 51 | 40 |
A banca lidera — quase um em cada quatro bancos possui security.txt. A hotelaria (hotéis, restaurantes) situa-se em 1,1%.
Contexto Regulamentar
- NIS2, art. 21.o, n.o 2, alínea e) exige explicitamente o "tratamento e divulgação de vulnerabilidades" — o security.txt é o mecanismo padronizado para este fim
- CRA, art. 14.o — a divulgação coordenada de vulnerabilidades torna-se obrigatória a partir de dezembro de 2027 para fabricantes de produtos digitais
- ENISA lista o security.txt como boa prática para a divulgação de vulnerabilidades
- CERT nacionais por toda a Europa (CNCS, NCSC-NL, ANSSI, BSI) recomendam ou utilizam o security.txt nos seus próprios domínios
Erros Comuns
1. Esquecer o Expires. Sem Expires, o ficheiro é inválido segundo o RFC 9116. Defina-o para 1 ano no futuro e crie um lembrete para o atualizar.
2. HTTP em vez de HTTPS. O ficheiro deve ser servido por HTTPS — um security.txt não encriptado pode ser adulterado.
3. info@ como contacto. Contact: mailto:info@... chega ao marketing. Configure um endereço security@ dedicado que chegue a uma pessoa responsável pela segurança.
Verifique o Seu security.txt
Na próxima semana na Parte 6: DKIM — porque apenas 31% dos domínios da UE assinam os seus e-mails.