La seguridad no se agrega al final
Introducción
La seguridad del software ya no puede considerarse una actividad que se realiza únicamente
después de programar un sistema. Las vulnerabilidades pueden originarse desde la definición
de los requerimientos, la selección de la arquitectura o la configuración inicial del producto.
Por ello, la seguridad desde el diseño propone identificar riesgos y establecer controles desde
las primeras decisiones del proyecto, en lugar de corregir los problemas en producción.
Este enfoque requiere reconocer que la protección del sistema no depende únicamente del
especialista en seguridad. Analistas, arquitectos, programadores, encargados de pruebas y
operadores toman decisiones que pueden aumentar o reducir los riesgos. La seguridad debe
convertirse en una responsabilidad compartida durante todas las etapas del desarrollo.
Desarrollo
Cambio de paradigma
En la ingeniería de software, la seguridad suele revisarse al final, poco antes del despliegue.
Esta práctica resulta insuficiente ante amenazas cada vez más sofisticadas, cuya creación
también puede verse facilitada por la inteligencia artificial.
Tener un software seguro es una necesidad que se debe abordar desde su planeación, y no
como un agregado extra. Es necesario aplicar un enfoque proactivo, y no reactivo, en la seguridad para evitar las pérdidas de tiempo y dinero que pueden surgir por la necesidad de
aplicar un parche en un sistema que ya se encuentra en fases avanzadas de creación.
La responsabilidad compartida
Durante el desarrollo de un software, la seguridad no es algo que sea abordado únicamente
por un especialista. Por el contrario, es una cultura que debe aplicarse durante todo el ciclo de
vida del software por todos los involucrados en su creación. La seguridad comienza desde
que el analista toma las necesidades y las convierte en requerimientos técnicos. Se definen las
distintas reglas de negocio y las restricciones al acceso a la información desde el primer
momento; luego, con esta información, se toman decisiones sobre la estructura del software.
Con la implementación de los asistentes de inteligencia artificial y la generación automática
de código, el rol del programador cambia a dirigir y validar el código generado. Utilizar dicho
código sin revisarlo genera vulnerabilidades, cuya culpa recae sobre el programador. Por lo
tanto, el programador es responsable de leer, probar y validar la seguridad de cada parte del
código durante la creación.
El ciclo finaliza con el paso a producción. Aunque se cuente con despliegues automatizados,
se requiere de una supervisión constante para revisar permisos, configuraciones, credenciales
y secretos que puedan estar accesibles para todos.
Figura 1. Causas principales de los defectos de software. Fuente: Jones (2018).
Monitoreo y continuidad
La seguridad tampoco termina cuando el sistema llega a producción. Es necesario monitorear
registros, configuraciones, accesos y comportamientos anómalos para detectar incidentes oportunamente. La información obtenida debe utilizarse para corregir defectos, actualizar los
Conclusión
La seguridad debe integrarse desde el inicio, pues muchas decisiones que protegen un sistema
se toman antes de escribir el código. Considerarla desde los requerimientos y la arquitectura
reduce vulnerabilidades y evita correcciones costosas. Esta responsabilidad corresponde a
todos los participantes del ciclo de vida del software. La inteligencia artificial facilita la
generación de código, pero sus resultados requieren revisión, pruebas y supervisión humana.
Después del despliegue, el monitoreo continuo ayuda a detectar comportamientos anómalos,
corregir defectos y responder ante incidentes. Las copias de seguridad y los procedimientos
de recuperación también mantienen la continuidad del servicio. Por ello, la seguridad desde el
diseño es necesaria para desarrollar sistemas confiables y protegerlos durante su operación.
Referencias
Jones, Capers. Applied Software Measurement: Global Analysis of Productivity and Quality.
CRC Press, 2018.
National Institute of Standards and Technology (NIST). The NIST Cybersecurity Framework
(CSF) 2.0. NIST Cybersecurity White Paper (CSWP) 29: U.S. Department of Commerce,
2024. https://doi.org/10.6028/NIST.CSWP.29.
National Institute of Standards and Technology (NIST). Secure Software Development
Practices for Generative AI and Dual-Use Foundation Models. NIST SP 800-218A. 2024.
https://doi.org/10.6028/NIST.SP.800-218A.
Ver diseño original de las páginas

