Artículo original

 

 

 

 


CICLO DE VIDA DE DESARROLLO SEGURO DE SOFTWARE EN LA EMPRESA DATYS

 

SECURE SOFTWARE DEVELOPMENT LIFECYCLE AT DATYS COMPANY

 

 

 

Sacha Pelaiz Barranco I    https://orcid.org/0000-0003-1966-7203   

Mercedes Delgado Fernández II    https://orcid.org/0000-0003-2556-1712  

 

I Empresa DATYS Tecnologías y Sistemas, La Habana, Cuba

sacha.pelaiz@datys.cu

II Escuela Superior de Cuadros del Estado y del Gobierno (ESCEG), La Habana, Cuba

mercedes@esceg.cu

 

*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

 

Resumen

 

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

3.      Proyección y validación del SSDLC en DATYS   

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.