Una lección sobre seguridad en el desarrollo
Recientemente, Meta ha sido sancionada con una multa de 91 millones de euros por no almacenar las contraseñas de sus usuarios de manera cifrada, sino en texto plano, un error que vulnera las normativas de protección de datos y pone en riesgo la seguridad de millones de personas. Este incidente, que ha sido publicado en diversos medios de comunicación, pone de manifiesto la importancia de una correcta gestión de los secretos y contraseñas en los sistemas de información.
Es necesario aclarar que no ha habido ninguna filtración o hackeo, por lo que sabemos a fecha de hoy, por tanto las credenciales de los usuarios están bajo el control exclusivo de META.
El Esquema Nacional de Seguridad (ENS) y la norma ISO/IEC 27001 son dos referentes clave en la regulación de la seguridad de la información, y ambos subrayan la necesidad de adoptar un enfoque integral que contemple la seguridad a lo largo de todo el ciclo de vida del software. En este sentido, la implementación de un Ciclo de Vida de Desarrollo Seguro (SSDLC, por sus siglas en inglés) se convierte en una pieza fundamental para garantizar que la gestión y encriptación de contraseñas y otros secretos sea una prioridad desde la fase de diseño.
En la metodología SSDLC, aspectos como la identificación y protección de datos sensibles se integran en todas las etapas de desarrollo. Esto incluye el uso de prácticas seguras de codificación, la auditoría de código y la revisión continua para prevenir vulnerabilidades que podrían ser explotadas por atacantes. El cifrado de contraseñas, en particular, es una medida crítica. De hecho, las guías CCN-STIC dentro del marco del ENS resaltan la necesidad de adoptar políticas de encriptación robustas como parte de las medidas de seguridad obligatorias, especialmente en el tratamiento de credenciales. Incluso en la guía CCN-STIC 807 se indica que algoritmos son los que el Centro Criptológico Nacional considera seguros y aptos para ser utilizados.
Desde una perspectiva más técnica, en el marco del desarrollo de software seguro, existen Common Weakness Enumerations (CWE) específicos que se centran en la encriptación de contraseñas y secretos. Algunos de los CWE más relevantes en este caso son:
- CWE-256: Almacenamiento de passwords en texto plano.
- CWE-327: Uso de criptografía insegura o desactualizada.
- CWE-311: Transmisión de información sensible en texto plano.
- CWE-798: Uso de credenciales «Hardcodeadas» en el código fuente.
Estos CWE destacan las fallas más comunes que los desarrolladores deben evitar para garantizar que las contraseñas y otros secretos sean gestionados de manera segura y conforme a las mejores prácticas internacionales.
Además, tanto el ENS como la ISO 27001 promueven una auditoría continua y la mejora constante en la gestión de los sistemas de información, asegurando que los procesos críticos, como el almacenamiento y protección de contraseñas, no solo cumplan con los estándares mínimos, sino que se fortalezcan continuamente para mitigar nuevos riesgos.
Conclusiones finales
Este incidente debería servir como una advertencia para todas las organizaciones que gestionan datos sensibles. La protección de las credenciales mediante cifrado es fundamental para evitar sanciones y, más importante aún, para garantizar la confianza de los usuarios. Implementar un SSDLC robusto que integre políticas de encriptación fuertes y alinearse con estándares como el ENS y la ISO 27001 es una estrategia que puede marcar la diferencia entre sufrir una brecha de seguridad o mantener la integridad de la información.
