InternacionalAcceso estudiantes

La importancia de un desarrollo de software seguro con técnicas ágiles como scrum

Las técnicas ágiles se caracterizan por lograr la satisfacción del cliente a través de entregas rápidas y frecuentes de software funcional (es decir, interacciones cortas). Se basan en la utilización de un modelo de desarrollo iterativo e incremental,

Actualmente las organizaciones que desarrollan software están creando entornos de desarrollo que centran sus objetivos en alcanzar productos funcionales en el período más corto de tiempo y utilizando la menor cantidad de recursos posible. Implantan técnicas ágiles como por ejemplo ‘SCRUM’, una de las más conocidas y utilizadas.

Estas técnicas ágiles se caracterizan por lograr la satisfacción del cliente a través de entregas rápidas y frecuentes de software funcional (es decir, interacciones cortas). Se definen por utilizar un modelo de desarrollo iterativo e incremental, con aceptación de cambios en los requisitos finales, integración del cliente en el proceso de desarrollo, implementación en paralelo de varias versiones y equipos de desarrollo autónomos. Entre sus principales ventajas se encuentra la adaptación rápida al cambio y la monitorización del nivel de progreso, consiguiendo de cualquiera de los artefactos un producto del desarrollo.

Además, actualmente, dado la cantidad de incidentes de seguridad que a diario ocurren en las organizaciones por software con errores de seguridad, es necesario que, aparte de producir software que funcione correctamente, este también debe ser seguro.  Para ello las organizaciones deben insertar buenas prácticas de seguridad en el proceso de desarrollo de software (SDLC, Software Development Life Cycle) al objeto de obtener software más seguro o confiable. Estas actividades tienen por objetivo reducir el número de debilidades de diseño y errores de codificación. A este nuevo ciclo de vida con buenas prácticas de seguridad incluidas se le suele denominar S-SDLC [1].

Elementos cruciales como la “calidad” o la “seguridad” del software no se tienen en cuenta en las técnicas de desarrollo de software ágil.

En este escenario, aspectos cruciales como la “calidad” o la “seguridad” del software no se tienen en cuenta en las técnicas de desarrollo de software ágil. Estas técnicas se basan en el ‘Manifiesto Ágil’ cuyo único objetivo principal es producir software que funcione correctamente lo más rápido posible. Estos elementos son analizados en detalle en el Máster Universitario online en Ingeniería de Software y Sistemas Informáticos de UNIR.

scru1

Mucha discusión y debate se ha producido respecto a si es posible que los proyectos de software utilicen las técnicas ágiles para producir software seguro. En la siguiente tabla se resume, para cada principio básico del Manifiesto Ágil [2], su contribución u obstrucción al desarrollo de un software seguro.

 

PrincipioImplicaciónExplicación
1Prioridad principal es satisfacer al cliente. Esto se debe lograr de forma temprana y continua a través de entrega de software utilizable.ObstructivaA menos que el cliente muestre una sensibilidad muy alta por la seguridad, se obviarán las pruebas de seguridad y si se hacen, no se les asigna tiempo suficiente para especificar, verificar y probar los requisitos de seguridad.
2Se permite el cambio de requisitos, incluso en la fase más tardía del proceso de desarrollo de procesos. Ventaja competitiva.ObstructivaA menos que el cliente esté dispuesto a permitir la ampliación del tiempo necesario para evaluar el impacto en la seguridad del software de cada nuevo requisito o cambio y cambiar las restricciones de seguridad y mitigaciones de riesgo asociados con cada requisito funcional.
3Producción de frecuentes entregas de software. Idealmente, varías a la semana. Se da preferencia a la reducción de los tiempos de entrega.ObstructivaA menos que el cliente de mayor prioridad a la seguridad que a la necesidad de entregas rápidas.
4El proyecto es construido en base al compromiso, motivación y participación de sus componentes.NeutralPodría ser obstructiva si los componentes del proyecto ignoran las prioridades de seguridad.
5Los clientes, gerentes y desarrolladores deben colaborar diariamente, durante todo el desarrollo del proyecto.NeutralPodría ser contributivo si el equipo de desarrollo contara con expertos de seguridad y el equipo del cliente incluye la seguridad como una de sus prioridades
6Los desarrolladores deben tener los recursos y apoyo que necesitan.NeutralPodría ser contributivo si el ambiente de desarrollo incluye herramientas, plataformas, procesos y prácticas destinadas a producir software seguro.
7La dirección y el cliente confían en el trabajo hecho por los desarrolladores.ObstructivaA menos que los desarrolladores estén fuertemente comprometidos y sean capaces de aplicar prácticas de seguridad, herramientas e hitos de control en el ciclo de vida.
8La forma más eficiente y eficaz de transmitir información a los componentes de un equipo de desarrollo es a través de la comunicación cara a cara.ObstructivaEl proceso de garantía de la seguridad del software se basa en la documentación de las evidencias para que puedan ser evaluadas independientemente por expertos externos al equipo de desarrollo del proyecto.
9La producción de programas útiles es la principal medida del éxito.ObstructivaSi la validez del software se mira solo desde el punto de vista de funcionalidades, no se permitirá la realización de escaneos de vulnerabilidades, pruebas de penetración, o cualquier otra prueba de seguridad.
10La agilidad se ve reforzada por la continua atención a la excelencia técnica y buen diseño.ContributivaEspecialmente cuando «la excelencia técnica y buen diseño» reflejan una fuerte experiencia en el compromiso de asegurar el desarrollo de software.
11Sencillez, que se define como el arte de maximizar la cantidad de trabajo no realizado, es esencial para el éxito de proyectos de software.ContributivaSi la sencillez es una característica tanto del diseño como del código del software, será más fácil de analizar su seguridad.

 

Por Juan Antonio Sicilia Montalvo

Director académico del Máster en Ingeniería de Software y Sistemas Informáticos de UNIR.

 

De Vicente Mohino, J., Bermejo, J., Bermejo, J.R., Sicilia, J.A. (2019). The Application of a New Secure Software Development Life Cycle (S-SDLC) with Agile Methodologies. Electronics, 8 (11). https://doi.org/10.3390/electronics8111218Tabla 1 Principios del Manifiesto Ágil y su relación con la Seguridad del Software
Goertzel, K.M., et al. (2007). Software Security Assurance: State-Of-the-Art Report (SOAR). Information Assurance Technology Analysis Center (IATAC) and Data and Analysis Center for Software (DACS).

    Títulos que te pueden interesar

    Noticias relacionadas

    Docencia 100% online

    Nuestra metodología te permite estudiar sin desplazarte mediante un modelo de aprendizaje personalizado

    Clases en directo

    Nuestros profesores imparten 4.000 horas de clases online a la semana. Puedes asistir en directo o verlas en otro momento

    Mentor - UNIR

    En UNIR nunca estarás solo. Un mentor realizará un seguimiento individualizado y te ayudará en todo lo que necesites

    La fuerza que necesitas

    Nuestra vida académica y social

    Acompañamiento personalizado