Page 1 - Secure Software Development Life Cycle
P. 1
Laboratorio de Ciberseguridad
Secure Software Development Life Cycle – S-SDLC
Dr. Miguel A. Rojas – mrojas@ude.edu.uy
A/S Diego Nogueira – dnogueira@ude.edu.uy
No es raro escuchar que se debe iniciar a los programar se ha vuelto algo relativamente
niños en conceptos de programación e incluir sencillo, en la mayoría de los casos esta
estos temas como parte del plan de estudios facilidad tiene como aspecto negativo la
académico desde la primaria y cada vez es carencia de seguridad de la aplicación.
más común escuchar que en unos pocos
años, todas las personas van a saber El concepto de Desarrollo seguro en el ciclo
programar ya sea de forma directa o indirecta de vida del software o Secure-Software
(utilizando alguna herramienta que los Development Life Cycle (S-SDLC) consiste
abstraiga de realizar programación de bajo en incluir en el ciclo de vida de desarrollo de
nivel). software conceptos de seguridad. El objetivo
de integrar estos conceptos tiene por
Los avances tecnológicos están derribando finalidad diseñar software más seguros y
las barreras o dificultades que provocaban confiables que presenten menos debilidades y
que la programación sea una actividad para sean más difíciles de vulnerar.
pocos, y en mayor o menor medida, se ha
iniciado un proceso de masificación en lo que La seguridad del software debe observarse
refiere a la programación. desde una perspectiva abarcativa en lo que
hace al ciclo de vida de desarrollo y todas sus
Al día de hoy, existen muchos mecanismos etapas, y no de forma exclusiva y orientada a
por los cuales se puede aprender los la etapa de codificación mediante la
conceptos básicos de programación y programación segura o defensiva.
desarrollo mediante un gran número de
canales de información, sean estos formales La seguridad del software comienza desde el
(Academias, Universidades, etc.) o informales momento del diseño. Se deben aplicar
(YouTube, Tutoriales, Blogs, etc.). conceptos de seguridad desde el inicio, como
ser en el diseño arquitectónico para luego
Adicionalmente, los avances tecnológicos aplicarlos en la implementación o desarrollo.
ocasionados a partir de herramientas de 4ta.
Generación e incluso en el último tiempo Existen tres métodos para incluir la seguridad
herramientas basadas en inteligencia artificial del software en el desarrollo, de forma
permiten que el desarrollo de software sea consciente, aplicando la seguridad desde la
cada vez más sencillo y amigable para aquellas fase de diseño, delegando la seguridad
personas con pocos conocimientos en mediante el uso de frameworks de desarrollo
informática e incluso cada vez más que ya incluyan la seguridad, aunque en este
escuchamos frases que sugieren que TODOS caso todavía podemos cometer errores de
pueden desarrollar o que en unos pocos años diseño, y por último un hibrido entre ambos
los programadores, tal como los conocemos métodos donde se puede incluir frameworks
hoy en día, van a desaparecer. que implementen patrones de diseño y
programación segura junto con la verificación
Si bien lo anterior es completamente cierto, activa e inclusión de prácticas en el ciclo de
aunque puede ser discutible si el rol del vida del producto.
programador va a desaparecer o simplemente
cambiar, se presenta un problema del que De acuerdo con Viega, J., & McGraw (2002)
muy pocos hablan, debido a que, en estas el S-SDLC incluye siete actividades, los cuales
ocasiones, poco se evalúa estas herramientas se presentan a continuación ordenados según
desde el punto de vista del desarrollo seguro su efectividad:
de software, esto quiere decir que, si bien
1. Revisión de código