Metodologas de desarrollo de software seguro con propiedades agiles
Secure software development methodologies with agile properties
Metodologias seguras de desenvolvimento de software com propriedades geis
Samuel Alfredo Lpez-Rodrguez I
samu.lpz@gmail.com
https://orcid.org/0000-0001-8848-537X
Vctor Ren Garca-Pea II
sercomgar@hotmail.com
https://orcid.org/0000-0002-3088-3559
Correspondencia: samu.lpz@gmail.com
Ciencias Sociales y Polticas
Artculo de investigacin
*Recibido: 01 de septiembre de 2020 *Aceptado: 23 de septiembre 2020 * Publicado: 28 de octubre de 2020
I. Master Universitario en Ingeniera de Software y Sistemas Informticos, Ingeniero en Sistemas, Actividades de Docencia en la Metodologa Aprendizaje Basado en Proyectos ABP, Universidad Laica Eloy Alfaro de Manab, Manta, Ecuador.
II. Diploma Superior en Diseo Curricular por Competencias, Magister en Redes de Comunicaciones, Ingeniero en Sistemas e Informtica, Licenciado en Sistemas Computacionales, Tcnico Ejecutivo Analista de Sistemas, Tecnlogo en Computacin e Informtica, Universidad Laica Eloy Alfaro de Manab, Manta, Ecuador.
Resumen
Actualmente los avances tecnolgicos estn acelerando la construccin vertiginosa de software, estos se encargan de procesar grandes volmenes de datos sensibles ya sea de personas o de organizaciones, aquello hace que la seguridad del software ya no sea considerada como un requisito no funcional, es ahora un elemento de suma importancia. Los ciberdelincuentes se han convertidos en expertos en perpetrar ataques por medio de la explotacin de vulnerabilidades en el software, se hace necesario analizar las nuevas tendencias en cuanto a su construccin mediante la implementacin de metodologas de desarrollo seguro. La seguridad es un tema que inquieta a investigadores y desarrolladores, que buscan un producto con el menor nmero de vulnerabilidades posible, pero a su vez tambin buscan un mtodo de desarrollo gil, por lo tanto, buscan implementar estas metodologas, pero no es fcil identificar las diferencias entre cada una de ellas, puesto que son variadas y complejas. Se observa entonces la importancia de investigar las metodologas de desarrollo para obtener un producto software ms seguro, en base a esto se plante el objetivo de analizar las metodologas de desarrollo seguro, mediante la recoleccin y tratamiento de la literatura correspondiente, un anlisis comparativo de sus caractersticas y su exposicin en el desarrollo. Como conclusin principal se corrobora la existencia de diferentes metodologas que se enfocan en la seguridad, pero de acuerdo a la bibliografa consultada solo las metodologas de desarrollo seguro Microsoft SDL y BSIMM poseen propiedades agiles.
Palabras Clave: Tecnologa de la Informacin y comunicacin; seguridad informtica; Metodologas; software; desarrollo.
Abstract
Currently technological advances are accelerating the rapid construction of software, these are responsible for processing large volumes of sensitive data either from individuals or organizations, that makes software security is no longer considered as a non-functional requirement, it is now an element of paramount importance. Cybercriminals have become experts in perpetrating attacks by exploiting vulnerabilities in software, it is necessary to analyze new trends in terms of its construction through the implementation of secure development methodologies. Security is an issue that worries researchers and developers, who seek a product with as few vulnerabilities as possible, but in turn also seek an agile development method, therefore, they seek to implement these methodologies, but it is not easy to identify the differences between each of them, since they are varied and complex. It is then observed the importance of investigating the development methodologies to obtain a more secure software product, based on this, the objective of analyzing the secure development methodologies was raised, through the collection and treatment of the corresponding literature, a comparative analysis of their characteristics and their exposure in the development. As main conclusion it is corroborated the existence of different methodologies that focus on security, but according to the consulted bibliography only the secure development methodologies Microsoft SDL and BSIMM have agile properties.
Keywords: Information and communication technology; information security; methodologies; software; development.
Resumo
Atualmente os avanos tecnolgicos esto acelerando a rpida construo de software, estes so responsveis pelo processamento de grandes volumes de dados sensveis de indivduos ou organizaes, o que faz com que a segurana de software no seja mais considerada como um requisito no funcional, agora um elemento de suma importncia. Os cibercriminosos se tornaram especialistas em perpetrar ataques explorando vulnerabilidades em software, necessrio analisar novas tendncias em termos de sua construo atravs da implementao de metodologias seguras de desenvolvimento. A segurana uma questo que preocupa pesquisadores e desenvolvedores, que buscam um produto com o mnimo de vulnerabilidades possvel, mas por sua vez tambm buscam um mtodo de desenvolvimento gil, portanto, procuram implementar estas metodologias, mas no fcil identificar as diferenas entre cada uma delas, uma vez que so variadas e complexas. Observa-se ento a importncia de investigar as metodologias de desenvolvimento para obter um produto de software mais seguro, com base nisso o objetivo de analisar as metodologias de desenvolvimento seguro foi levantado, atravs da coleta e tratamento da literatura correspondente, uma anlise comparativa de suas caractersticas e sua exposio no desenvolvimento. Como principal concluso, corroborada a existncia de diferentes metodologias com foco na segurana, mas de acordo com a bibliografia consultada, apenas as metodologias de desenvolvimento seguro Microsoft SDL e BSIMM possuem propriedades geis.
Palavras-chave: Tecnologia da informao e comunicao; segurana informtica; metodologas; software; desenvolvimento.
Introduccin
Las metodologas de desarrollo se originan como una respuesta a la crisis de los aos 70 que desencadeno un conjunto de problemas relacionados al proceso de construccin de un producto software eficaz, de calidad y a tiempo, existen numerosas metodologas dotadas con variadas caractersticas que las lleva a afrontar el desarrollo de software de diferentes formas, buscando obtener un producto de calidad, al pasar los aos algunas de ellas han quedado obsoletas y no responden a los nuevos desafos, la realidad actual exige la construccin guiada por mtodos adaptables a los cambios basados en la seguridad y agilidad.
Los cambios de requisitos de un producto software cuando se solicita su construccin y adems cuando est en plena etapa de desarrollo, conlleva la utilizacin de metodologas modernas que dejen atrs las tradicionales, debido a que sus conceptos son muy rgidos, no permiten la adaptabilidad y no toman en cuenta la seguridad, en consecuencia, estas no permiten satisfacer las necesidades del cliente. Para afrontar esta problemtica se han establecido metodologas que usan tcnicas agiles, que disminuyen el tiempo de fabricacin del producto software, fallos tcnicos, vulnerabilidades, rigidez al cambio de requisitos y a la evolucin.
Un producto software puede ser vulnerable, ya sea por propios fallos de construccin o por ataques provocados, para conseguir la disminucin de vulnerabilidades y que el producto sea considerado seguro, se deben aplicar medidas como la integracin de conceptos de seguridad en todas sus etapas de elaboracin. Al utilizar una metodologa de construccin que permita integrar la seguridad desde el ciclo de vida del software, se busca conseguir un producto robusto de confianza, que realice solo las funciones para lo que fue creado, minimizando comportamientos inesperados de manera que se asegure la integridad, confiabilidad y confidencialidad.
El propsito del presente artculo es analizar las metodologas seguras, que aplican conceptos de seguridad en el ciclo de vida del software, y que cuenten con propiedades para construir un software de forma gil, para ello se llev a cabo una comparativa obteniendo como resultado que existen numerosas metodologas que se enfocan especficamente en la seguridad, pero de acuerdo a la bibliografa consultada solo las metodologas Microsoft SDL y BSIMM aplican la seguridad y adems tienen propiedades agiles.
Materiales y mtodos
El tipo de investigacin llevada a cabo fue de tipo hermenutica, descriptiva y heurstica, con el propsito de seleccionar y analizar varias fuentes documentales cientficas, la informacin concerniente se someti a un proceso de exploracin, revisin bibliogrfica, resumen y descripcin (Guirao et al., 2008). El trabajo expondr una comparativa de las metodologas de desarrollo de software seguro para lo cual se han realizado las siguientes etapas:
Etapa 1. Investigacin de estudios previos, relacionados al tema obtenidos de fuentes bibliogrficas.
Etapa 2. Seleccin y tratamiento de la informacin sobre las diferentes metodologas encontradas.
Etapa 3. Anlisis comparativo de la informacin seleccionada y comprobacin de ella.
Etapa 4. Obtencin de la discusin y establecimiento de la conclusin sobre las metodologas de desarrollo de software seguro.
Microsoft Trustworthy Computing SDL
Microsoft ha establecido formalmente su desarrollo de software de seguridad mejorando el proceso SDL, durante sus "empujes de seguridad" de 2002, modificando sus procesos tradicionales de desarrollo de software integrando tareas y puestos de control destinados expresamente a mejorar la seguridad del software producidos por esos procesos, persiguiendo como propsito disminuir los defectos de diseo y el nivel de dao de cualquier falla de sus productos (Pradeep, 2014).
Microsoft ha declarado que su software desarrollado bajo el proceso SDL Inicialmente demostrado una reduccin del 50 por ciento en los boletines de sus principales productos en comparacin con versiones de los mismos productos desarrollados antes de SDL; Las estimaciones ms recientes de Microsoft demandan hasta un 87 por ciento en los boletines de seguridad (Goertzel et al., 2007).
Modelo del proceso SDL optimizado de Microsoft
El modelo de Microsoft fue creado considerando variables como el tamao de la organizacin, sus recursos, la parte directiva adems de tomar en cuenta que el desarrollo seguro es un proceso que puede resultar costoso y complicado adems de causar preocupaciones de cmo aplicarlo, las fases del modelo son (Microsoft Corporation, 2010):
Formacin, directivas y capacidades organizativas
Requisitos y diseo
Implementacin
Comprobacin
Lanzamiento y respuesta
Actividades de seguridad de SDL simplificadas.
Las actividades propuestas implementadas como parte del proceso de desarrollo del software aportan beneficios en materia de seguridad, adems es viable aadir actividades opcionales que quedan a juicio del asesor o equipo de seguridad.
Ilustracin 1: Ciclo de vida de desarrollo de software de Microsoft: simplificado
Fuente: (Microsoft Corporation, 2010)
Oracle Software Security Assurance Process
Oracle Corporation afirma haber adoptado un proceso de desarrollo seguro en el que todos los desarrolladores estn obligados a seguir normas de codificacin segura y utilizar bibliotecas estndar de funciones de seguridad (autenticacin, criptografa), y realizar pruebas de seguridad extensivas que incluyen pruebas de penetracin, exploracin automatizada de vulnerabilidades, validaciones contra listas de verificacin de seguridad y seguridad de terceros (gobierno e industria). Sus productos se envan con guas de configuracin seguras y las prcticas de gestin de la vulnerabilidad incluyen parches crticos correcciones a la base de cdigo principal, las cuales se utilizan para informar las revisiones (Oracle, 2020). Oracle Software Security Assurance (OSSA) es una metodologa de desarrollo seguro que incluye la seguridad en todas las fases del ciclo de vida del desarrollo de software, abarca el diseo y arquitectura, construccin, pruebas y mantenimiento de todos sus productos (Oracle Corporation, 2014).
Oracle ha formado a sus profesionales en la utilizacin de las normas de codificacin seguras de conocimiento general en las reas de principios, diseos y vulnerabilidades frecuentes para aportar una gua en cuestiones como la privacidad y validacin de datos, administracin de los usuarios. Los estndares deben estar aplicados en el diseo y construccin de sus productos, las normas de seguridad se han desarrollado por aos e incorporan las mejores prcticas, as como las lecciones aprendidas de las pruebas de vulnerabilidades, adems la metodologa permite la evaluacin, pruebas y anlisis de todos sus productos a lo largo de su vida til (Oracle Corporation, 2014).
La pruebas y anlisis incluyen tanto de sus componentes funcionales como aquellos no funcionales con la finalidad de verificar las caractersticas y la calidad del producto, se desarrollan diversos tipos de pruebas a las diferentes caractersticas de producto. Las pruebas funcionales son ejecutadas tpicamente por equipos de control de calidad, los cuales verifican las caractersticas de seguridad que previamente se haban planificado (Oracle Corporation, 2014).
Oracle utiliza el software Critical Patch Update para actualizar sus productos mediante parches crticos de seguridad que son lanzados incluso fuera del plazo, como alternativa en caso de vulnerabilidades particularmente criticas tambin ofrecen instrucciones y procedimientos para el manejo de ellas, esto proporciona ventajas a los clientes como (Oracle Corporation, 2014):
Seguridad mxima. Las vulnerabilidades son remediadas por orden de severidad, las vulnerabilidades ms crticas son corregidas por actualizaciones de parches.
Menores costos de administracin. Mediante un plan de revisin de seguridad fijo se revisa el funcionamiento del producto y de los parches.
Administracin simplificada de parches: las actualizaciones de parches son acumulativas.
CLASP
Desarrollado por el experto en seguridad de software John Viega, arquitecto jefe de seguridad y vicepresidente de McAfee, Inc., Comprehensive, Lightweight Application Security Process (CLASP), est metodologa fue diseada para insertar seguridad en cada fase del ciclo de vida. CLASP ha sido puesto en libertad bajo licencia de cdigo abierto. Su principal caracterstica es un conjunto de 30 actividades que se centran en la seguridad, estas pueden integrarse en el proceso de desarrollo de cualquier proyecto. CLASP brinda un enfoque prescriptivo y proporciona documentacin continua de actividades que las organizaciones deben realizar para mejorar la seguridad. Algunas de las 30 actividades clave incluyen lo siguiente (OWASP, 2016):
Monitorizar las mtricas de seguridad
Identificar las funciones y los requisitos del usuario
Investiga y evala las soluciones de seguridad
Realizar anlisis de seguridad del diseo del sistema
Identificar e implementar pruebas de seguridad.
Seven Touchpoints for Software Security
En su libro Building Security, Gary McGraw describe 7 puntos e identifica a su juicio las prcticas de seguridad ms destacadas que sern aplicadas a los artefactos en cada fase de desarrollo, estos puntos de contacto basados en la efectividad y experiencia se ordenan de la siguiente manera: (McGraw G. R., 2006).
Revisin del cdigo (los errores)
Anlisis de riesgo arquitectnico (defectos encontrados)
Pruebas de penetracin
Pruebas de seguridad basados en el riesgo
Casos de abuso
Requisitos de seguridad
Operaciones de seguridad
Conjuntamente con los siete puntos de contacto, McGraw menciona otro, este Bonus es el octavo y consiste en un anlisis externo, este punto ser realizado de forma independiente y consistir en la realizacin de pruebas, evaluaciones y revisiones del software (Goertzel et al., 2007).
TSP-Secure
El Centro de Coordinacin del instituto de ingeniera de software (SEI) y el Equipo de respuesta de emergencia informtica (CERT) de la Universidad Carnegie Mellon CMU (CERT / CC) desarroll el equipo proceso de software para desarrollo de software seguro (TSP-Secure). Los objetivos de TSP-Secure son reducir o eliminar las vulnerabilidades resultado de errores de diseo e implementacin de las aplicaciones, y proporcionar la capacidad de predecir posibles vulnerabilidades en el software entregado (Davis, 2006). Construido en el TSP de SEI, la filosofa central de TSP-Secure incorpora dos valores fundamentales (Goertzel et al., 2007):
1. Los ingenieros y gerentes deben establecer y mantener un ambiente de trabajo en equipo. Los procesos operativos de TSP ayudan a crear ingeniera y fomentar un entorno orientado al equipo.
2. TSP est diseado para guiar a los ingenieros a travs del proceso de ingeniera, se reduzca la probabilidad de que inadvertidamente salte pasos, organizar pasos en un orden improductivo, o pasar tiempo innecesario averiguando el siguiente movimiento.
Es una metodologa que se cre con el objetivo de crear un producto en de muy alta calidad en poco tiempo, se enfoca en el trabajo en equipo, en el rendimiento y en aprovechar eficientemente los recursos. TSP cuenta con un cmulo de procesos bien definidos que muestran lo que se debe realizar en cada etapa y como esta se conecta con otra.
Building Security In Maturity Model (BSIMM)
Es una metodologa que naci como una iniciativa del estudio de la seguridad en el desarrollo del software, su construccin se bas en datos adquiridos en 67 propuestas de seguridad de diversas empresas. BSIMM es un apoyo para medir la seguridad puesto que por medio de esta es posible comparar y contrastar la propia seguridad con la que tienen otras empresas, estas mediciones son tiles para planificar, estructurar y ejecutar la evolucin de la seguridad del software. El propsito de BSIMM es cuantificar las actividades con otras iniciativas de seguridad para ello utiliza un marco de referencia con una terminologa general para exponer los elementos ms visibles de las iniciativas de seguridad, esto permite comparar iniciativas (McGraw, Migues, & West, 2013).
Tabla 1: Modelo de Referencia para la Seguridad del Software (MRSS)
Modelo de referencia para la seguridad del software (MRSS) |
|||
Gobernanza |
Inteligencia |
Puntos de contacto con el SSDL |
Despliegue |
Estrategia y Mtricas |
Modelos de Ataque |
Anlisis de la Arquitectura |
Pruebas de Penetracin |
Cumplimiento y Poltica |
Caractersticas de Seguridad y Diseo |
Revisin de Cdigo |
Entorno del Software |
Capacitacin |
Normas y Requisitos |
Pruebas de Seguridad |
Gestin de Configuracin y Gestin de Vulnerabilidades |
Fuente: (McGraw, Migues, & West, 2013)
Open SAMM
Modelo de madurez para el aseguramiento de Software (SAMM) que sirve como marco de trabajo para exponer e implementar estrategias de seguridad para el software, fue definido para ser flexible y que pueda ser aplicado en toda organizacin, los recursos que brinda SAMM tienen como objetivo lo siguiente (Chandra, 2013).
Evaluar las prcticas de desarrollo seguro en una organizacin
Construir un programa de seguridad con etapas bien definidas
Mostrar mejoras concretas en el programa seguridad de aplicaciones
Definir y medir las actividades relacionadas a la seguridad en toda organizacin
Ilustracin
2:
SAMM / Software Assurance
Fuente: (Chandra, 2013)
Appropriate and Effective Guidance in Information Security (AEGIS)
Es una metodologa socio tcnica de ingeniera de software creada para dotar de seguridad a sistemas fundamentados en modelos activos, determinacin de requisitos de seguridad, anlisis de riesgo y entorno de uso. El propsito es dar a los desarrolladores herramientas intuitivas y simples para desarrollar un software seguro, considerando las necesidades del usuario y fomentando la seguridad (Flchais, 2005).
Ilustracin 3: Diagrama de actividad AEGIS
Fuente:
(Flchais, 2005)
Rational Unified Process-Secure (RUPSec)
Es un modelo extendido del RUP (Proceso racional unificado) al que se le aade extensiones de seguridad, con el propsito de adicionar e integrar artefactos, actividades y roles al RUP para la captura, modelado y documentacin de los requisitos y amenazas de seguridad del software, garantizando que este proceso sea implementado en todas las etapas de desarrollo subsiguiente (Ayatollahzadeh et al., 2005)
La metodologa RUPSec propone que las actividades y artefactos se basen en los casos de uso del RUP, aadiendo casos de mal uso de uso para despus desarrollar medidas que contrarrestaran las amenazas que fueron identificadas previamente con los casos de mal uso, las extensiones de seguridad al RUP se agregan a las siguientes actividades (Goertzel et al., 2007).
Mantener las reglas comerciales.
Determinar los actores del negocio y sus casos de uso, documentado los aspectos de seguridad y sus casos de uso.
Definir las entidades y empleados, precise el nivel de acceso de cada uno.
Determinar los requisitos de automatizacin, requisitos de seguridad empresarial y polticas de seguridad.
Detallar los requisitos del software y definir los requisitos de seguridad.
Secure Software Development Model (SSDM)
Modelo desarrollado por el investigador Simon Adesina quie buscaba dar respuesta a los problemas de seguridad surgidos en los procesos de desarrollo de las empresas de software, el SSDM integra ingeniera de seguridad usando un modelo unificado que integra un conjunto de tcnicas para producir un software seguro (Sodiya et al., 2006). SSDM delimita un flujo de trabajo seguro que consta de cuatro fases:
Capacitacin en seguridad. Educar al personal en conceptos de seguridad, conciencia, conocimiento de ataques, atacantes, intenciones e inters de los atacantes y el conocimiento de prcticas seguras.
Modelado de amenazas. Indique a los usuarios los atributos del software, identifique a los posibles atacantes dentro del ambiente de operacin, as como sus objetivos, tcnicas, patrones y comportamientos, con la finalidad de construir un perfil del atacante. posteriormente determine las vulnerabilidades en funcin del modelo de amenaza.
Especificaciones de seguridad. Enliste los posibles ataques y defina las probables medidas a tomar cuando se presenten problemas como, errores de desarrollo, implementacin, monitoreo de seguridad, adaptacin a situaciones de seguridad.
Revisin de las especificaciones de seguridad. Revisin, pruebas de penetracin de los posibles ataques identificados y los que a futuro se podran presentar.
Waterfall-Based Software Security Engineering Process Model
El modelo en cascada fue propuesto por Winston W. Royce en 1970, es secuencial y su progreso es hacia abajo siguiendo una lista de fase una de tras de otra, pero solo cuando se complete fase anterior se podr seguir a la siguiente (Bassil, 2012). Ha sido modificado por (Zulkernine & Ahamed, 2016) y sugieren la integracin al modelo actividades de seguridad y artefactos, las actividades se exponen a continuacin.
Fases del ciclo de vida |
Actividades de ingeniera de seguridad aadidas |
Ingeniera de sistemas |
Analizar las amenazas de seguridad Definir las necesidades de seguridad y limitaciones del software Producir requisitos de seguridad informales |
Especificacin de requisitos |
Identificar escenarios de ataque Producir especificaciones de seguridad Integre los requisitos funcionales de seguridad Producir requisitos de seguridad y software combinados |
Diseo de software |
Disear basada en escenarios de ataque |
Implementacin |
Identificar las fallas Capacidad de controlar vulnerabilidades en caso de ataque, restructuracin de cdigo |
Operacin |
Monitoreo de comportamientos inesperados, fallas e intrusiones Integre nuevas especificaciones de ataque dentro de los requisitos formales. |
Tabla 2: Waterfall-Based Software Security Engineering Process Model
Fuente: (Goertzel et al., 2007).
Viewnext
Es un modelo S-SDLC con adaptacin gil propuesto por (Caro, 2016) que aplica un concepto que se conoce como ciclo de vida de desarrollo de software seguro gil, sin embargo, no se especifica cmo se debe implementar, la estructura del metamodelo es la siguiente.
Polticas: Estrategias y orientacin, formacin, definicin de riesgos.
Metodologa SDL: Validacin de requisitos, modelado de amenazas, revisin de cdigo, revisin de desarrollo, Testing de seguridad, validacin de salidas.
Supervisin: Evaluacin y mtricas, estado del proyecto
Observatorio: Repositorio de vulnerabilidad, observatorio de seguridad, plan de respuesta e incidentes.
Anlisis y discusin de resultados
Tabla 3: Comparacin de propuestas de seguridad
|
Nombre |
Ao |
Aspectos destacados |
SSDL |
CLASP |
2006 |
24 mejores prcticas de seguridad formalizadas que cubren todo el SDL. |
Microsoft SDL |
2004 |
Completa integracin SDL en gran medida basado en el anlisis de riesgos y basado en un conjunto de actividades para cada fase, integrado en el paquete de desarrollo de Microsoft. Adecuado para desarrolladores de sistemas operativos y grandes empresas de software. |
|
Touchpoints |
2004 |
7 mejores prcticas que se pueden aplicar al SDL existente |
|
Iniciativa de seguridad |
OpenSAMM |
2009 |
Modelo de madurez medible con 3 niveles de madurez y 12 prcticas de seguridad. Se puede usar como punto de referencia |
BSIMM |
2009 |
12 mejores prcticas reales utilizadas por la industria con 3 niveles de madurez. Puede usarse como punto de referencia |
|
SAFECode |
2008 |
Descripcin de las mejores prcticas de la industria con nfasis en el liderazgo |
|
Securosis |
2009 |
SSDL se enfoca especficamente en las aplicaciones web y se enfoca en la automatizacin mediante el uso de herramientas |
Fuente: (Association Information, 2014)
Las propuestas en la tabla comparativa muestran que todas las contribuciones poseen prcticas de seguridad, con diferentes enfoques, pero tienen similitudes en cuanto a la formacin del personal, revisin de cdigo, revisin arquitectnica, pruebas de penetracin, documentacin y polticas de seguridad, que busca un propsito fabricar un producto software ms seguro.
Caracterstica |
SAMM |
BSIMM |
SSDL |
CLASP |
SDL |
Recursos |
Desarrolladores Arquitectos, administradores, QA Tester, Auditores de seguridad, dueos del negocio, personal de apoyo, operaciones |
Constructores, (desarrolladores, arquitectos, administradores) Tester Operaciones Administradores Ejecutivos Y mandos medios (dueos del negocio, administradores del producto) |
Arquitecto, desarrolladores, testers, administradores de programacin |
Tester oficia, administrador del proyecto, ingeniero de requerimientos, arquitecto de software |
Tester y lderes de equipo |
Tiempo |
20 practicas |
109 actividades |
6 fases |
24 actividades |
5 fases y 16 procedimientos |
Popularidad |
12% |
13% |
7% |
13% |
23% |
Tabla 4: Comparacin de las propuestas de seguridad ms destacadas
Fuente: (Gerr, 2010)
En esta comparativa segn (Gerr, 2010) se exponen las propuestas de seguridad de ms popularidad, en la cual SDL termina siendo la que mayor popularidad debido a la documentacin existente, la utilizacin de menos recursos, esto indica que sera la ms indicada para empezar un proyecto, pero se debe considerar que no todos los proyectos son iguales y no todas las organizaciones se acoplan a los diferentes mtodos, as que pueden existir diferencias pero tienen en comn ser las ms conocidas, documentadas y que ofrecen la gua para la construccin de un producto seguro y robusto.
Propiedad |
SDL |
TOUCHPOINTS |
General |
||
Aplicado a |
Fase del ciclo de vida del software |
Artefactos de desarrollo de software |
Adopcin |
Actividades de seguridad autnomas o todas (recomendadas), diecisis obligatorias para cumplir con SDL |
Independiente o todos los puntos de contacto (recomendado) |
Proceso |
Pesado y rgido |
Bastante ligero y flexible |
Equipo de educacin |
Parte fundamental de SDL |
Se presta poca atencin al tema |
de acuerdo a las fases de desarrollo |
||
Inicio del proyecto |
El personal involucrado est organizado y los roles asignados, el asesor de seguridad es el ms importante. determinar el tipo de errores de seguridad que sern atacados. Abordar los aspectos de logstica (por ejemplo, herramientas). Recopila y evala mtricas |
Recolectar y evaluar mtricas, mejorar la estrategia de medicin |
Anlisis y requisitos |
Anlisis de riesgos basado en escenarios de uso |
casos de anti adecuaciones y abusos, anlisis de riesgos arquitectnicos, requisitos de seguridad adicionales pueden identificarse |
Diseo arquitectnico y detallado |
Modelado riguroso y completo de amenazas. En el nivel de diseo detallado: evaluar el impacto del proyecto en la privacidad del usuario y la reduccin de la superficie de ataque |
El enfoque principal est en el modelo de amenaza: identificacin de amenazas y evaluacin de riesgos |
Implementacin y prueba |
Aparte de las pautas de codificacin segura, SDL no tiene actividades de implementacin reales. Enfoque en pruebas de seguridad, sombrero mayormente negro |
Enfatiza la importancia de las pruebas de seguridad: tres de los siete puntos de contacto se ocupan de las pruebas de seguridad. Prueba de sombrero blanco y sombrero negro. |
lanzamiento de implementacin y soporte |
Se centra en el plan de respuesta que define qu hacer cuando se descubre una nueva vulnerabilidad. La comunicacin con el cliente es importante |
Los puntos de contacto tienen un soporte muy limitado en esta fase, solo contribuyen con el ajuste fino de los controles de acceso y la configuracin de la monitorizacin y el registro |
Tabla 5: Comparacin entre SDL y Touchpoints
Fuente: Adaptado de (Tiirik, 2013)
De la tabla comparativa se extrae lo siguiente:
SDL es ms rgido, cuenta con un conjunto de procesos y actividades bien definidos mientras que touchpoints es ms ligero y adaptable.
La educacin en seguridad del software es un punto fuerte de SDL el equipo de desarrollo debe estar bien entrenado, mientras que en touchpoints el entrenamiento no es algo fundamental, pero se reconoce su importancia.
SDL describe de cmo organizar el personal que est inmerso en el proyecto, mientras que touchpoints maneja una estrategia de medicin contante mediante mtricas.
En la fase de anlisis y requisitos SDL enfatiza la importancia de la codificacin segura y utiliza escenarios para realizar el modelado de amenazas, mientras que touchpoints se enfatiza en pruebas de seguridad como caja blanca y caja negra.
La etapa final del proyecto tanto SDL como touchpoints realizan revisiones de seguridad mientras que la primera realiza pruebas de caja negra y una revisin de seguridad final, touchpoints usa caja negra y caja blanca, las dos se destacan por la utilizacin de herramientas automatizadas de revisin de cdigo.
Tabla 6: Anlisis comparativo de S-SDLC a nivel de recursos, artefactos, propiedades giles y uso
Modelo |
Recursos |
Artefactos |
gil |
Uso en la industria |
McGraw |
Guas de diseo seguras |
Casos de abuso para obtener casos de prueba |
No |
Reportado |
Microsoft SDL |
Guas de diseo seguras |
- |
Si |
Reportado |
CLASP |
Diseo de seguridad y guas de implementacin, listas de vulnerabilidad y sus posibles mitigaciones |
Pruebas basadas en requisitos |
No |
Reportado |
TSP |
- |
- |
No |
No reportado |
RUPSec |
Experto en seguridad |
- |
No |
No reportado |
BSIMM |
Modelos de seguridad, estndares, y procesos repetibles |
Dominios de seguridad |
Si |
Reportado |
OPEN SAMM |
Codificacin de seguridad y herramientas de medicin |
- |
No |
Reportado |
AEGIS |
- |
Casos de abuso para obtener casos de prueba |
No |
No reportado |
SSDM |
- |
- |
No |
No reportado |
Writing Secure Code |
Guas de mejores prcticas y programacin segura |
Elementos clave |
No |
No reportado |
Waterfall |
Mejores prcticas |
- |
No |
Reportado |
Viewnext |
polticas |
Niveles de seguridad |
Si |
No reportado |
SecSDM |
ISO (internacional Organizacin para Estandarizacin) normas, NIST (Instituto Nacional de Estndares y Tecnologa) pautas |
- |
No |
No reportado |
S2D-ProM |
- |
- |
No |
No reportado |
CbyC |
Mtodos formales |
- |
No |
No reportado |
SQUARE |
- |
- |
No |
No reportado |
Oracle SSA |
Mejores prcticas de codificacin segura |
Polticas |
No |
Reportado |
Fuente: Adaptado de (Mohino et al., 2019)
Cada metodologa expuesta se fundamenta en la seguridad, pero solo dos resaltan en su uso en la industria y que cuentan con propiedades agiles, Microsoft SDL y BSIMM.
Discusin
La incgnita planteada en esta investigacin sali del propsito de conocer las metodologas seguras que tengan propiedades agiles, se analiz la bibliografa y se hizo una comparativa, destacando las propiedades y actividades principales de las metodologas seguras. Las metodologas Microsoft SDL con su proceso simplificado gil donde se incluyen actividades de seguridad y BSIMM que tiene atributos agiles que se adaptan a las tendencias del mercado, son las metodologas seguras que tienen propiedades agiles, pero (Mohino et al., 2019) desatacan tambin Viewnext, propuesta que no se especifica como debe implementarse y que todava no reporta uso en el mercado, razn por la cual no podra ser usada en los actuales momentos, puesto que como menciona (Ros & Suntaxi, 2008) para seleccionar una metodologa es necesario que el equipo tenga un grado de conocimiento, adems (Carvajal, 2008) tambin destaca que es necesario que exista documentacin, certificacin y formacin, por estos motivos esta no sera una opcin para comenzar a construir software seguro de forma gil.
En cuanto a que metodologa segura es mejor que otra (Goertzel et al., 2007) definen 9 metodologas que han sido exitosas en mltiples proyectos a nivel mundial y que en ellas se aplica un modelo estndar de ciclo de vida, todas se fundamentan en la incorporacin de prcticas de seguridad. (Hudaib et al., 2017) mencionan que elegir un proceso de desarrollo es un verdadero desafo sin conocer la diferencia entre ellas, y como menciona (Brito Abundis, 2013) la mejor metodologa es aquella que se adapta al contexto, lo cierto es que el xito y buenos resultados que pueda tener una metodologa, depender del producto a fabricar y de algunos criterios como el grado de formacin y conocimiento del equipo, documentacin disponible y certificacin de la metodologa.
Por ultimo existen varios estudios y publicaciones en donde se utilizan metodologas seguras y agiles como lo es el trabajo expuesto por (Siponen et al., 2007) que indica cmo se pueden integrar las funciones de seguridad en un mtodo gil llamado desarrollo basado en caractersticas, mientras que (Ge et al., 2006) presenta un proceso gil para producir aplicaciones web seguras pero indican adems que la investigacin que lleva a cabo no es el desarrollo de un nuevo mtodo o proceso que se ocupa de cuestiones de seguridad, por el contrario se investig los mtodos de desarrollo y se los integro para abordar el desarrollo de aplicaciones web seguras, confirmndose la necesidad de crear nuevas metodologas que integren la seguridad y agilidad al proceso de desarrollo.
Las opiniones de los autores y los resultados obtenidos en el anlisis de las diferentes metodologas seguras, resaltan que las metodologas de desarrollo seguras ms ptimas para construir un producto software seguro de forma gil son Microsoft SDL y BSIMM, debido a sus actividades de seguridad, popularidad, uso en la industria, documentacin, facilidad de implementacin, y sus propiedades aglales.
Conclusiones
En la actualidad existen varias metodologas de desarrollo seguro, muchas de estas comparten procesos semejantes y sus prcticas de seguridad son muy similares, buscan que el producto software sea desarrollado con el menor nmero de vulnerabilidades, adems que las organizaciones y usuarios cuenten con una capa de proteccin ante posibles ataques.
El estudio de las metodologas demostr la posibilidad de mejorar la forma en cmo se construye software aadindole la seguridad y sus caractersticas junto con las tcnicas agiles al proceso de desarrollo, permitiendo la construccin de productos software de calidad que pueden acoplarse en entornos altamente cambiantes conservando la seguridad.
Las metodologas Microsoft SDL y BSIMM se enfocan en la seguridad y poseen propiedades agiles, siendo las alternativas ms ptimas para la construccin de un producto de calidad, siguiendo prcticas de seguridad y agilidad, estn bien documentadas, certificadas y son muy utilizadas en la industria.
Referencias
1. Association Information. (2014). Software Design and Development: Concepts, Methodologies, Tools, and Applications: Concepts, Methodologies, Tools, and Applications. IGI Global.
2. Ayatollahzadeh, M., Jaferian, P., Elahi, G., Baghi, H., & Sadeghian, B. (2005). RUPSec: An Extension on RUP for Developing Secure Systems - Requirements Discipline. PWASET, 208-212.
3. Bassil, Y. (2012). A Simulation Model for the Waterfall Software Development Life Cycle. ArXiv.
4. Brito Abundis, C. J. (2013). Metodologas para desarrollar software. ReCIBE.
5. Caro, A. (2016). Modelos de Desarrollo Seguro del Software. Obtenido de http://web.fdi.ucm.es/posgrado/conferencias/AndresCaroLindo-slides.pdf
6. Carvajal, J. (2008). Metodologas giles: Herramientas y Modelo de desarrollo para aplicaciones Java EE como metodologa empresarial. Obtenido de https://upcommons.upc.edu/handle/2099.1/5608?locale-attribute=es
7. Chandra, P. (2013). Software Assurance Maturity Model. San Fransisco: OWASP.
8. Davis, N. (2006). CISA. Obtenido de https://us-cert.cisa.gov/bsi/articles/knowledge/sdlc-process/secure-software-development-life-cycle-processes#tsp
9. Flchais, I. (2005). Designing Secure and Usable Systems. University College of London, 57-59.
10. Ge, X., Paige, R., Polack, F., Howard, C., & Brooke, P. (2006). Agile development of secure web applications. ICWE '06 Proceedings of the 6th international conference on Web engineering.
11. Gerr, D. (2010). Companies Actually Using Secure Development Life Cycles? Computer Society.
12. Goertzel, K. M., Winograd, T., McKinley, H. L., Oh, L. J., Colon, M., McGibbon, T., . . . Vienneau, R. (2007). Software Security Assurance. ATAC , DACS.
13. Guirao-Goris, J., Olmedo Salas, A., & Ferrer Ferrandis, E. (2008). El artculo de revisin. Revista Iberoamericana de Enfermeria Comunitaria, 15-25.
14. Hudaib, A., AlShraideh, M., Surakhi, O., & Khanafseh, M. (2017). A Survey on Design Methods for Secure Software Development. International journal of Computersand Technology, 1047-7062.
15. Laskowski, J. (2011). Agile IT Security Implementation Methodology. Reino Unido: Packt Publishing Ltd.
16. McGraw, G. R. (2006). Software Security: Building Security In Addison-Wesley Software Security. Pearson Education.
17. McGraw, G., Migues, S., & West, J. (2013). Bsimm. Obtenido de http://www.fundacionsadosky.org.ar/wp-content/uploads/2014/07/BSIMM-V-esp.pdf
18. Microsoft Corporation. (2010). Microsoft Corporation. Obtenido de https://www.microsoft.com/en-us/sdl/default.aspx
19. Mohino, J. d., Higuera, J. B., & Higuera, J. R. (2019). The Application of a New Secure Software Development Life Cycle (S-SDLC) with Agile Methodologies. Electronics, 04-06.
20. Oracle. (2020). Oracle Software Security Assurance. Obtenido de https://www.oracle.com/es/corporate/security-practices/assurance/
21. Oracle Corporation. (2014). Oracle. Obtenido de http://www.oracle.com/us/support/library/software-security-assurance-2293569.pdf
22. OWASP. (2016). OWASP. Obtenido de https://www.owasp.org/index.php/CLASP_Concepts
23. Pradeep, V. (2014). MSPoweruser. Obtenido de https://mspoweruser.com/microsoft-talks-about-sdl-and-how-it-changed-the-security-landscape-in-the-software-industry/
24. Ros, E., & Suntaxi, W. (2008). Desarrollo de un sistema informtico para los procesos de cosecha y post cosecha de la camaronera Pampas de Cayanca. Obtenido de https://bibdigital.epn.edu.ec/bitstream/15000/1072/1/CD-1905.pdf
25. Siponen, M., Baskerville, R., & Kuivalainen, T. (2007). Extending Security in Agile Software Development Methods. Idea Group.
26. Sodiya, A., Onashoga, S., & Ajay, O. (2006). Towards Building Secure Software Systems . Issues in Informing Science and Information Technology , 635-645.
27. Tiirik, K. (2013). Comparison of SDL and Touchpoints. Obtenido de https://courses.cs.ut.ee/MTAT.03.246/2013_spring/uploads/Main/essay09.pdf
28. Zulkernine, M., & Ahamed, S. I. (2016). Software Security Engineering: Toward Unifying Software Engineering and Security Engineering. Enterprise Information Systems Assurance and System Security: Managerial and Technical, 215-236.
2020 por los autores. Este artculo es de acceso abierto y distribuido segn los trminos y condiciones de la licencia Creative Commons Atribucin-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0) (https://creativecommons.org/licenses/by-nc-sa/4.0/).
Enlaces de Referencia
- Por el momento, no existen enlaces de referencia
Polo del Conocimiento
Revista Científico-Académica Multidisciplinaria
ISSN: 2550-682X
Casa Editora del Polo
Manta - Ecuador
Dirección: Ciudadela El Palmar, II Etapa, Manta - Manabí - Ecuador.
Código Postal: 130801
Teléfonos: 056051775/0991871420
Email: polodelconocimientorevista@gmail.com / director@polodelconocimiento.com
URL: https://www.polodelconocimiento.com/