¿Qué es security.txt?
El fichero security.txt es un estándar que permite a las organizaciones mostrar información concreta sobre cómo reportar vulnerabilidades de seguridad, incluyendo contactos o políticas de divulgación.
Mientras que ficheros similares como robots.txt controlan la interacción con rastreadores web, security.txt está destinado a ser leído por humanos y fomentar la colaboración en ciberseguridad.
¿En qué ubicación colocar security.txt?
La ubicación más común y recomendada es /.well-known/security.txt, personalmente, esta es la que utilizo.
Alternativamente, también es posible emplazar el fichero en la raíz del sitio web, según el estándar RFC 91161.
Formato y estructura de security.txt
Tan solo necesitas añadir dos campos obligatorios:
| Campo obligatorio | Descripción |
|---|---|
| Contact | Cómo contactar al equipo de seguridad. Puede estar indicado en más de una ocasión y admite un teléfono, email o URL. |
| Expires | Fecha y hora de expiración en el que security.txt ya no será válido. Debe estar en formato ISO 86012. |
Con esto es suficiente para la mayoría de casos. ¿Simple, verdad?
Ahora bien, si quieres completarlo con más datos, existen otros campos opcionales:
| Campo opcional | Descripción |
|---|---|
| Preferred-Languages | Idiomas admitidos para los reportes. Admite múltiples y es ideal ponerlo por orden de preferencia. Debe estar formato ISO 636-1. |
| Acknowledgments | En su caso, enlace donde se otorgue reconocimiento a investigadores que reportaron vulnerabilidades en el pasado. |
| Canonical | La URL principal donde se ubica el archivo. Muy recomendado, especialmente si hay varios subdominios o ubicaciones. |
| Policy | URL donde se detallen las reglas y procedimientos sobre cómo reportar vulnerabilidades. |
| Encryption | Enlace de la clave pública PGP, en el caso de que queramos ofrecer comunicaciones seguras. |
| Hiring | URL para ofertas de empleo relacionadas con la ciberseguridad. |
Ejemplo de un fichero básico
Un ejemplo básico podría ser el de mi página web:
Contact: mailto:[email protected]
Encryption: https://joseaguilera.com/.well-known/pgp-key.txt
Expires: 2030-12-31T23:59:00Z
Preferred-Languages: en, es
Puedes copiar y pegar, pero no te olvides de reemplazar e incluir tus datos en su lugar.
Ejemplos completos de security.txt
En función de la página web que revisemos, encontraremos ficheros más elaborados como sería el caso de Google.
Al ser una organización más grande, incluyen enlaces específicos para reglas e información sobre cómo hay que reportar, así como posibles recompensas.
Contact: https://g.co/vulnz
Contact: mailto:[email protected]
Encryption: https://services.google.com/corporate/publickey.txt
Acknowledgments: https://bughunters.google.com/
Policy: https://g.co/vrp
Hiring: https://g.co/SecurityPrivacyEngJobs
Expires: 2030-04-01T00:00:00z
Google no es la única empresa que lo utiliza. Empresas públicas y privadas de diferentes sectores ya lo están implementando:
| Empresa | URL |
|---|---|
| a | |
| AWS | a |
| Real Academia Española | a |
| Ayuntamiento de Madrid | a |
La fecha
Para encontrar más ejemplos en los que inspirarte, te recomiendo utilizar el Google Dork inurl:security.txt filetype:txt site:es. Reemplaza “es” por la extensión de dominio que quieras explorar.
Beneficios de implementar security.txt
- Fácil implementación, alto impacto: Añadir el fichero es cuestión de un par de minutos y mejora significativamente la comunicación con investigadores de seguridad.
- Reduce reportes no deseados en otros canales: Al ofrecer un canal de comunicación directo, disminuye la probabilidad de que vulnerabilidades sean divulgadas de forma pública protegiendo la reputación de tu organización, página web o empresa.
Limitaciones y consideraciones
Pese a que la utilización de security.txt es una magnífica práctica y mejora la comunicación en ciberseguridad, hay que tener algunas consideraciones al respecto.
Falta de adopción
Ya es un estándar y aunque su uso es muy recomendado, no es obligatorio y por ello no todos los sitios implementan.
Sin embargo, cada vez más empresas y organizaciones como las que he mencionado anteriormente son proactivas en ciberseguridad.
Además, nuevos actores como Cloudflare están incorporando funciones nativas que permiten añadir el fichero a tu página web de forma gratuita y con un clic.
No garantiza la seguridad por sí solo
security.txt únicamente define un canal de comunicación directo, pero no previene ataques ni vulnerabilidades, ni asegura que las organizaciones vayan a actuar rápidamente.
Riesgo de spam
Al exponer un punto de contacto público como un correo electrónico, se incrementa el riesgo de recibir reportes falsos o de impacto nulo o bajo, spam e intentos de phishing.
Por ejemplo, en ocasiones he recibido reportes cuyos remitentes aseguran haber encontrado alguna vulnerabilidad crítica y exigen un pago previo para obtener el reporte. ¡Mucho cuidado!
También es cada vez más común que herramientas automatizadas envíen reportes basura con recomendaciones que no tienen ningún impacto real.
Referencias
[1] Foudil, E., & Shafranovich, Y. (2021). A File Format to Aid in Security Vulnerability Disclosure. https://datatracker.ietf.org/doc/rfc9116/
[2] International Organization for Standardization. (2019). ISO 8601-1:2019 - Date and time - Representations for information interchange - Part 1: Basic rules. https://www.iso.org/standard/40874.html