CICLO
DE VIDA DE DESARROLLO SEGURO DE SOFTWARE EN LA EMPRESA DATYS
SECURE
SOFTWARE DEVELOPMENT LIFECYCLE AT DATYS COMPANY
Sacha
Pelaiz Barranco I
Mercedes
Delgado Fernández II
I
Empresa DATYS Tecnologías y Sistemas, La Habana, Cuba
II Escuela
Superior de Cuadros del Estado y del Gobierno (ESCEG), La Habana, Cuba
*Autor para
dirigir correspondencia: sacha.pelaiz@datys.cu
Clasificación JEL: J24, O31, L86
DOI: https://doi.org/10.5281/zenodo.11221500
Recibido: 13/02/2024
Aceptado: 04/05/2024
Abordar la
seguridad en etapas demasiado avanzadas del SDLC, después de haber completado
las tareas más importantes de análisis, diseño y desarrollo, genera problemas
de eficiencia y seguridad, ya que el costo de solucionar vulnerabilidades
aumenta mientras más avanzada sea la fase del ciclo, y puede requerir que se
vuelva a desarrollar y probar todo el software. Asumir en la empresa DATYS un
SDLC tradicional ha impactado en que su proceso productivo, si bien es eficaz,
no es del todo eficiente, ya que –en general- las soluciones de software para
ser certificadas y liberadas, deben pasar múltiples iteraciones incurriéndose
en horas hombre extra plan, y dilatando en muchos casos su culminación. En este
artículo se proyecta la transformación del SDLC de la empresa DATYS a un ciclo
de vida de desarrollo seguro (SSDLC) a partir de integrar, de manera sistémica,
los aspectos de seguridad en cada fase del ciclo de vida de desarrollo.
Palabras clave: ciclo de vida, desarrollo, software, seguridad,
eficiencia
Abstract
Addressing security too late in the SDLC, after the most important analysis, design, and development tasks have been completed, creates efficiency and security issues, as the cost of fixing vulnerabilities increases the later in the cycle, and may require all software to be redeveloped and tested. Assuming a traditional SDLC in the DATYS company has had an impact on the fact that its production process, although effective, is not entirely efficient, since - in general - the software solutions to be certified and released must go through multiple iterations, incurring hours man extra plan, and in many cases delaying its completion. This article projects the transformation of the DATYS company's SDLC to a secure development life cycle (SSDLC) by systematically integrating security aspects into each phase of the development life cycle.
Keywords: lifecycle, development, software, security, efficiency
Introducción
La
Industria del Software es considerada una industria de conocimiento,
perteneciente a un sector que ha presentado con un crecimiento acelerado en los
últimos años.1-6 Una de las características principales de las
empresas de esta industria es que internalizan la investigación científica y la
innovación en la cadena de valor. Para este tipo de empresa la competencia (más
que en la escala y el costo) se centra en la innovación, que genera
diferenciación de productos y servicios. La innovación es un proceso fundamental
dentro de cualquier organización, y en particular en el sector empresarial, ya
que se convierte en el motor más importante para su desarrollo. Innovar permite
aumentar los beneficios de los productos y servicios; ofrece la oportunidad de
lograr una mayor satisfacción por parte de los clientes; generar incrementos en
la productividad, posicionamiento estratégico y aprovechar nuevas oportunidades
en el mercado logrando mayor competitividad.
En Cuba. la
voluntad del gobierno de impulsar la creación y el avance de organizaciones
empresariales que garanticen la integración de la investigación y la
innovación, el incremento rápido, eficiente y eficaz de nuevos productos y
servicios, con estándares de calidad reconocidos y una efectiva gestión de
comercialización interna y externa, ha quedado expresada en los Lineamientos de
la Política Económica y Social del Partido y la Revolución.7-8 DATYS
es una empresa que produce bienes y servicios informáticos (mayormente de
software) de alto valor agregado, sobre cuya base entrega soluciones adaptadas
a necesidades específicas de sus clientes, empleando conocimientos científicos
y tecnologías propias, combinados con la asimilación de conocimientos de
terceros -nacionales y foráneos-. En la empresa se tiene un enfoque continuo
hacia la mejora, orientados no solo en mantener los actuales niveles de
desempeño, si no creando nuevas oportunidades de negocios con nuevos e
innovadores productos y servicios con mayor calidad y seguridad.
La
seguridad del software debe ser un aspecto fundamental y prioritario para las
empresas que los desarrollan. Sistemáticamente se publican noticias de
ciberataques que se aprovechan de vulnerabilidades en las soluciones de
software. Un error durante el desarrollo de un software puede causar graves
consecuencias a las empresas que los utilizan, tales como: pérdida o robo de
información, daños a la imagen corporativa o sanciones económicas. Los riesgos
de ciberseguridad aumentan y evolucionan de una manera incontenible, en
correspondencia con los ciberataques que se diversifican y aumentan año tras
año,9,10 convirtiendo en imprescindibles los ciclos de vida de
desarrollo seguro de software, así como las metodologías que otorgan un papel
protagonista a la seguridad del software.
El ciclo de
vida de desarrollo de software (SDLC) es un marco o metodología de trabajo
utilizado para desarrollar, implementar y mantener software.11-13 El
SDLC formaliza las tareas o actividades en varias fases con el objetivo de
mejorar la calidad del software centrándose en el proceso. La formalización de
los pasos tiene como objetivo permitir la medición y el análisis para realizar
mejoras mientras se monitorea el progreso y los costos. Tradicionalmente el
desarrollo de software está enfocado -principalmente- en cumplir con las
funcionalidades exigidas por el cliente, es decir, garantizar la eficacia de
las soluciones de software, mientras que, a otras cuestiones, como la
seguridad, se les presta mucho menos atención y se le dedica menos recursos, y
casi siempre, al final del ciclo de vida de desarrollo.
Abordar la
seguridad en etapas demasiado avanzadas del SDLC (por lo general en la fase de
pruebas y control de la calidad), después de haber completado las tareas más
importantes de diseño y desarrollo, genera problemas de eficiencia, ya que, al
igual que con cualquier tipo de fallo, si se encuentra una vulnerabilidad
durante la fase de pruebas o tras entregar el software al cliente, el costo de
solucionarla puede ser muy alto, tanto en pérdidas económicas, prestigio de la
empresa que los desarrolló, como en tiempo de trabajo.14 Además, los
controles de seguridad que se ejecutan -por lo general- en la fase de pruebas o
control de la calidad generalmente se limitan al análisis y las pruebas de
intrusión. Por eso, es posible, que se pasen por alto problemas de seguridad
más complejos que, de detectarse, podrían retrasar la llegada del software al
cliente. Además, la resolución de los problemas lleva mucho tiempo y es más
costosa, ya que puede requerir que se vuelva a desarrollar y probar todo el
software.
Las
soluciones informáticas desarrolladas por DATYS para ser liberadas y
desplegadas, deben cumplir con los requerimientos de seguridad establecidos en
las normas nacionales, así como con los requerimientos del Departamento de
Calidad de la empresa, siendo un elemento clave su certificación por el
Departamento de Ciberseguridad del Ministerio del Interior. Se define entonces
el problema científico a resolver: ¿Cómo transformar el ciclo de vida de
desarrollo de software en la empresa DATYS, en un ciclo de vida de desarrollo
seguro de software (en lo adelante SSDLC por sus siglas en inglés), en interés
de alcanzar mayor eficiencia y seguridad en el proceso productivo de la empresa
hacia el 2025?
Este
problema se corresponde con la proyección estratégica de la empresa de
actualizar su proceso clave productivo de desarrollo de productos y servicios
informáticos, en función de lograr mayor eficiencia a partir del ahorro de horas-hombre
y recursos materiales, así como de proyectar la seguridad de las aplicaciones y
sistemas como un proceso transversal, que debe ser tenido en cuenta en todas
las fases del ciclo de vida de desarrollo de software. La solución a este
problema transita -esencialmente- por integrar los elementos de seguridad en
cada una de las fases del SDLC implementado en la empresa. Por consiguiente, el
objetivo del artículo está dirigido a: diseñar el ciclo de vida de desarrollo
seguro de software en la empresa DATYS, a partir de la integración de la
seguridad en cada una de las fases del ciclo, y en interés de alcanzar mayor
eficiencia y seguridad en el proceso clave de la organización.
Materiales y métodos
La
transformación del SDLC en la empresa DATYS en un SSDLC requirió de la
adaptación de la metodología de gestión de la innovación15-17 al
contexto de aplicación del desarrollo de software. Como parte de la
metodología, el diagnóstico organizacional integral realizado en la empresa a
su proceso productivo, permitió conocer las potencialidades de la organización
para la introducción de innovaciones, así como identificar las principales
causas que impactan en la eficiencia y la seguridad del ciclo de vida de desarrollo
de software, con la aplicación de varias técnicas soportadas en el trabajo en
equipo con directivos de la organización.
La
generación de la innovación con las fases y requisitos del SSDLC, la valoración
de los principales indicadores organizacionales y la propuesta de nuevos
indicadores o métricas relacionados con la seguridad del proceso de desarrollo
de software también forman parte de la metodología de gestión de la innovación
adoptada.15 Los pasos y métodos utilizados se muestran en la Tabla 1.
Tabla 1. Metodología de gestión de la
innovación para el SSDLC en DATYS
PASOS |
MÉTODOS |
1.
Diagnóstico
integral de DATYS sobre necesidades y oportunidades de mejora del ciclo de
vida de desarrollo de software. |
Vínculo con Lineamientos de la Política Económica y
Social 2021-2026 y Plan Nacional de Desarrollo económico y social al 2030 (PNDES
2030), estrategias genéricas, estadísticas de iteraciones, diagrama
causa-efecto, variables claves (MICMAC), escenarios (SMIC) |
2.
Identificación
en fases del SDLC los aspectos de seguridad a gestionar y elementos transformadores
|
Fases del SDLC según diagrama causa efecto y aspectos
de seguridad por fase |
Clasificación de la innovación y matriz de impacto, lista
de control del proyecto de innovación, fases del ciclo como subprocesos, diagrama
integral de seguridad de fases del SLDC y diagrama de flujo de procesos |
|
Indicadores de impacto de eficiencia y seguridad, diseño
de experimentos del SSDLC, gestión de riesgos, diagrama de actividades por ciclo
Deming (P-H-V-A), plan de actividades y Project por ciclo Deming |
Fuente: elaboración propia según metodología15
Para la realización de esta
investigación se emplearon herramientas de evaluación de gestión integrada y del
enfoque de procesos,18,19 métodos de análisis de razones
económico-financieras,20 matriz DAFO, métodos MICMAC y SMIC de la
prospectiva estratégica,21,22 encuestas y test de innovación a una
muestra de 10 directivos de la empresa,15 diagrama causa-efecto, Pareto
y técnicas de estadística descriptiva,15,23,24 diseño de
experimentos25 y herramientas de software Microsoft Office Excel y
Minitab.
Resultados
Diagnóstico integral de DATYS sobre
necesidades y oportunidades de mejora del ciclo de vida de desarrollo de
software
El ciclo de
vida de desarrollo del software con la integración de requisitos de calidad,
seguridad, eficacia y eficiencia es un tema que se vincula directamente con
cuatro capítulos de los Lineamientos de la Política Económica y Social y en
particular con más peso con los capítulos 5 y 2 (ver Figura 1). Con los proyectos del Plan Nacional de Desarrollo
Económico y Social al 2030 se obtuvo que el mayor vínculo del tema se tiene con
los ejes estratégicos del potencial humano, ciencia, tecnología e innovación,
así como con la eficiencia y la transformación productiva.
Figura 1. Vínculo con los Lineamientos de la
Política Económico y Social
Fuente: Elaboración propia
Las
necesidades de adoptar el SSDLC en DATYS se evidencia en la Tabla 1 con el número de iteraciones
que fueron requeridas para la certificación y liberación de tres productos de
software de la empresa en el 2022, en función de solucionar los problemas de
seguridad detectados.
Tabla 1. Iteraciones para certificación y
laboratorio de calidad de DATYS
Producto |
Número de
iteraciones |
Bugs de
seguridad |
Nuevo
desarrollo |
||
Certificación |
Calidad |
Certificación |
Calidad |
||
Producto 1 |
2 |
3 |
8 |
5 |
Si |
Producto 2 |
4 |
6 |
12 |
2 |
Si |
Producto 3 |
5 |
8 |
16 |
6 |
Si |
Fuente: Elaboración propia
Se puede
apreciar además que, para dar solución a los problemas de seguridad detectados,
hubo que realizar nuevos desarrollos, por lo que el número de horas-hombre (en
lo adelante HH) planificadas en esos proyectos aumentó, lo que derivó en
incumplimiento de planes y de los tiempos de entrega de estos productos al
cliente, haciendo ineficiente el proceso de desarrollo de esos productos.
La encuesta
de innovación aplicada a 10 directivos de la empresa DATYS permitió conocer que
las estrategias genéricas de mayor importancia en este orden son: Liderazgo,
Innovación y Calidad, cuyos valores (en un 50%) se encuentran acotados entre 2
y 6 (1 es el más importante); teniendo los dos últimos aspectos un impacto muy
importante en el proceso productivo de desarrollo de software.
El diagrama
causa-efecto o espina de pescado del Anexo
1 muestra como efecto a analizar la transformación del ciclo de vida de
desarrollo de software (SSDLC) en la empresa DATYS. a un ciclo de vida seguro.
La proyección de la innovación está en función de lograr mayor eficiencia a
partir del ahorro de HH y recursos materiales, así como de proyectar la
seguridad de las aplicaciones y sistemas como un proceso transversal, que debe
ser tenido en cuenta en todas las fases del ciclo de vida de desarrollo de
software. La propuesta innovadora elevaría la calidad del proceso a partir de
la implementación y uso de metodologías y estándares internacionales.
Con la aplicación del MICMAC (Matriz de
Impactos Cruzados de Multiplicación Aplicada a una
Clasificación)21 se pudo determinar el plano de influencias-dependencias indirectas potenciales
y con ello las variables claves del SSDLC referidas al control de calidad, evaluación de dependencias
e integración de herramientas de pruebas, cuestiones que se tuvieron en cuenta
en la propuesta de innovación.
Identificación
en fases del SDLC los aspectos de seguridad a gestionar
El SDLC
implementado en la empresa DATYS está conformado por 5 fases26: (1)
Análisis de requisitos, (2) Diseño, (3) Desarrollo, (4) Pruebas o Control de la
Calidad, y (5) Implantación o Despliegue, siendo la seguridad considerada
únicamente en la fase de Prueba o Control de la Calidad. La propuesta de SSDLC
para la empresa DATYS quedaría conformado por 6 fases (Figura 2), las que fueron convenientemente asociadas -relación 1 a
1- con las 6 causas identificadas en el diagrama causa-efecto, elaborado para
dar respuesta al problema planteado.
Figura 2. Propuesta de SSDLC a implementar en
DATYS.
Fuente: Elaboración propia
Los
aspectos de seguridad que deberán ser integrados y gestionados en cada una de
las fases del SSDLC, logrando que la seguridad sea gestionada de manera
transversal en todo el ciclo de vida de desarrollo del software de la
organización se presentan en la Tabla 2.
Tabla 2. Aspectos de seguridad a gestionar por
fases del SSDLC.
Fase del SSLDC |
Aspectos de seguridad |
Análisis de requisitos |
§ Identificación de riesgos § Requisitos de seguridad § Requisitos y políticas normativas § Modelado de amenazas § Privacidad y protección de datos § Seguridad en las interfaces y comunicaciones |
Diseño |
§ Arquitectura de seguridad § Gestión de configuraciones seguras § Documentación y formación |
Desarrollo |
§ Pruebas de seguridad § Uso de bibliotecas y frameworks seguros § Gestión de errores y excepciones § Buenas prácticas en el desarrollo de código § Capacitación y concienciación |
Prueba |
§ Análisis estático y dinámico de código § Pruebas de transferencia segura de datos |
Certificación |
§ Requisitos y políticas normativas |
Despliegue |
§ Configuración adecuada § Control de acceso § Monitorización y auditorías § Actualizaciones y parches § Implementación de medidas de mitigación § Registro de auditoría § Detección de actividades sospechosas § Análisis de logs § Gestión de incidentes |
Fuente: Elaboración propia
Para cada
fase detallaron los subprocesos con sus entradas y salidas, lo que se muestra a
modo de ejemplo para el diseño en la Figura
3.
. Subproceso: Fase Diseño
Fuente: elaboración propia
La Figura 4 muestra una vista integral de
la innovación propuesta para dar solución al problema planteado, siendo
complementada con un conjunto de elementos sin los cuales no se concretaría el
concepto de modelo de innovación integrado. Estos elementos están relacionados
con:
•
la gestión de los recursos y el talento humano,
•
la actualización de los manuales de procedimiento y reglamentos del
proceso productivo para lograr un proceso planificado, organizado, controlado y
que mejora a partir de su propia gestión,
•
la observancia continua de la evolución de la amenazas y riesgos de
seguridad,
•
la supervisión continua de la evolución del proyecto.