Sei sulla pagina 1di 7

Desarrollo de Aplicaciones Seguras con Scrum (SAD Scrum)

@asullom Junio 2013, Per Este trabajo presenta un modelo gil para desarrollar aplicaciones web ms seguras desde la definicin del proyecto hasta la entrega a los usuarios finales. Provee una serie de plantillas y recursos de seguridad para facilitar su aplicacin. Palabras claves: Administracin de proyectos, Desarrollo gil, Artefactos, Procesos de software, Historias de usuario, Prototipos. SAD, Scrum

Angel Sullon

Resumen

1. Introduccin
Cuando se tiene a un cliente en frente pidindote un software, es difcil describir lo que ocurre desde el primer contacto hasta que se termine el trabajo y se entregue el software solicitado. Hoy por hoy no solo se necesita seguir uno o varios modelos de proceso de desarrollo de software indistintamente si son tradicionales o giles, sino combinar estos procesos con diferentes prcticas previamente probadas, lo que conlleva a un retraso en el inicio del proyecto. Por su parte, los frameworks de programacin web tradicionales, y an los modernos solo consideran la seguridad para vulnerabilidades bsicas como la proteccin de recursos o carpetas del sistema basados en roles, dejando sueltos los problemas de seguridad ms comunes de la web y de la nube, siendo necesaria un mtodo de trabajo basado en ejemplos y componentes de seguridad para contrarrestar los riegos de la informacin que una aplicacin maneja sobre la Internet. Este trabajo pretende ser una gua para las actividades de definicin y desarrollo gil de un proyecto de software basado en Scrum, especialmente para la web y la nube, donde es necesaria una aplicacin ms segura que garantice la seguridad de la informacin de sus usuarios.

2. Antecedentes
La gua PMBOK, desarrollado por el PMI, es el conjunto de conocimientos en Direccin de proyectos y se constituye como estndar de Administracin de proyectos. Abarca tanto la definicin, ejecucin, control y cierre del proyecto. La gua SWEBOK, desarrollado por le SECC, promovido por la IEEE Computer Society, es el conjunto de conocimientos en los Procesos de Ingeniera de Software. La norma ISO/IEC 12207, es el estndar europeo para los procesos de software, el Per adapt este estndar como gua oficial para los proceso de software. Actualmente existen diversas

normas ISO que apoyan a los diferentes procesos especficos del software como la gestin de la seguridad (ISO 27001), etc. Para la seguridad tambin se han desarrollado varios marcos de trabajo, entre la ms desatacada, el proyecto abierto OWASP. El lenguaje de modelado UML, desarrollado por la Corporacin Rational Software, aprobado por la OMG, es un lenguaje para la especificacin, visualizacin, construccin y documentacin de los artefactos de un proceso de software. Entre las metodologas tradicionales que ms se destaca es la metodologa RUP, siendo a su vez criticado por su gran cantidad de modelos UMLs , documentos, roles y actividades. Entre las metodologas giles que ms se desataca es la metodologa Scrum, que a su vez integra otras metodologas como XP, TDD, ATDD, Kaban, etc. Sin embargo deja de lado los procesos de definicin del proyecto, solo abarca los procesos de desarrollo.

3. Metodologa de la Investigacin
La secuencia lgica de las actividades desarrolladas para definir el modelo y las actividades de SAD Scrum, se muestra en la figura 1.

act Metodologia de la Inv estigacion para SAD Scrum

Inicio

Gua de Administracin de Proyectos PMBOK

Procesos de softw are: SWEBOK, ISO 12207, Scrum, XP, TDD, ATDD, Kaban, AUP, MSF Agile, UML

Guas de seguridad: OWASP, OpenSAMM, ISO 27001, S3P, SDL, SAML

Definicin de las activ idades y componentes del Modelo de desarrollo seguro SAD Scrum

Elaboracin de las plantillas para los artefactos del proyecto

Diseo de los recursos de seguridad (los necesarios) [No]

Validacin de las activ idades del desarrollo seguro Modelo es completado? [Si] Redaccin y rev isin del informe de Tesis Fin

Implementacin de algunos recursos de seguridad

Figura 1 Metodologa de la investigacin @SadScrum Para la integracin de las prcticas de seguridad en la definicin y desarrollo de una aplicacin con Scrum, se revisaron tanto las guas de gestin de proyectos como los trabajos actuales de seguridad, con esta informacin se esboz el nuevo modelo, sus actividades, artefactos manteniendo los fundamentos de Scrum, esta propuesta se valid mediante el desarrollo de una aplicacin web para la nube, siguiendo cada actividad, plantilla y recurso de seguridad propuesto.

4. Modelo SAD Scrum


SAD Scrum, es una extensin de Scrum que abarca los procesos de definicin del proyecto (procesos que en Scrum no son considerados) y fortalece los procesos de desarrollo del producto de Scrum con la finalidad de obtener una aplicacin web ms segura.

Los procesos de definicin son tomados del PMBoK y de las mejores prcticas para desarrollar aplicaciones Web seguras. A partir de estos procesos se contina los procesos de desarrollo y gestin de Scrum bajo las mejores prcticas de la web segura. La figura 2 muestra los grupos de actividades del modelo SAD Scrum que son necesarios desarrollar para obtener una aplicacin ms segura mediante Scrum.

Figura 2 Modelo SAD Scrum Los artefactos y sus plantillas para la fase de definicin del proyecto son: 1. 2. 3. 4. 5. 6. 7. Acta de constitucin del proyecto (https://t.co/j39WthYXLx) Historias y ejemplos de usuario o Requisitos del Sistema Arquitectura de la aplicacin (https://github.com/sadscrum) Plan del proyecto para c/rea de conocimiento del PMBoK (opcional) Estndares de desarrollo (https://t.co/Vhg0L6sQpq) Mtodo de trabajo del equipo (https://t.co/dT8oVmZwV2) Mdulo de administracin de la aplicacin (para python descargar de https://github.com/submitconsulting/django_backend-root) 8. Prototipos principales 9. Modelo de Base de Datos Los artefactos para la fase de desarrollo del producto son: 10. 11. 12. 13. 14. Diseo del sistema Product Backlog Sprints Backlogs Incrementos o Cdigo fuente Backlog de Errores/Impedimentos/Vulnerabilidades

15. Burndowns de los Sprints 16. Burndown del Product SAD Scrum cuenta, para algunos lenguajes de programacin como JSP y PHP, recursos de seguridad listos para ser integrados en un proyecto especfico, y para los frameworks como KumbiaPHP y Django, se tiene listo el diseo de seguridad para la nube extendido de dichos frameworks, sin embargo estos recursos y diseos pueden ser adaptados a otros lenguajes de programacin y a otros frameworks de programacin. Estos recursos, segn la caracterstica ms cercana a su proyecto, pueden descargarse de https://github.com/sadscrum La aprobacin del acta de constitucin del proyecto es fundamental para elaborar los otros documentos preliminares, as como la arquitectura de la aplicacin es la base para elaborar los siguientes siete artefactos. Los Prototipos principales son usados para validar las historias de usuario durante la reunin con los principales usuarios del sistema. Los seis ltimos artefactos son artefactos Scrum, solo se indica dar consideracin especial al Backlog de vulnerabilidades. Todos estos artefactos deben ser actualizados durante la fase de desarrollo de la aplicacin. Para un proyecto de software especfico y que requiera cierto nivel de seguridad, SAD Scrum propone la siguiente secuencia lgica de las actividades a desarrollar.

act Activ idades SAD Scrum

Definir el Acta de Constitucin del Proyecto y Elaborar los prototipos e Historias de usuario

Modelar Casos de uso del sistema

[No] [No] Historias claras? [No] [Si] Mayor comprensin? [Si] Modelar el Negocio (futuro)

Elaborar los otros artefactos preliminares de SAD scrum

Validar Prototipos e Historias y ej emplo de usuario (+seguridad)

Entregar productos

Redactar Manual de Instalacin y del Usuario

Aceptado? [Si] Planificar el proyecto y comenzar a disear el Sistema Definir y realizar las tareas de desarrollo (y pruebas)

Figura 3 Actividades de SadScrum Cmo SAD Scrum define el proyecto, es personalizando el Acta de constitucin del proyecto de PMBOK para proyectos de software, en esta acta se incluyen los requisitos de seguridad ms relevantes, el objetivo de esta fase es validar las historias de usuario, mientras que el equipo scrum va obteniendo los otros arfecatos preliminares, incluso se debe de tener el mdulo de administracin para la aplicaicn ya lista, pues se toma como base para los otros mdulos, siguiendo el estilo de codificacin, se reutiliza el mismo fronted, etc. Una tcnica para validar las historias de usuario es mediante la presentacin de prototipos a los clientes y usuarios finales, y en otra reunin con el dueo del producto se validan dichas historias. Una vez validada los prototipos y las historias se procede a planificar detalladamente el proyecto o proceder directamente a disear el sistema, donde los diagramas de clases deben estar listos almenos a un sprint de anticipacin. Con estos avances ya se puede entrar al proceso Scrum hasta completar todos los entregables pactados en el Acta de constitucin del proyecto.

5. Conclusiones y Recomendaciones
Se concluye que se log elaborar un nuevo modelo de desarrollo de aplicaciones seguras considerando la seguridad desde la definicin del proyecto hasta su validacin mediante los principios, conceptos y prcticas de Scrum.

Para muchas actividades se logr publicar en la Internet las plantillas as como los recursos de seguridad para facilitar una rpida aplicacin de este modelo. Para iniciar su proyecto se recomienda seguir las actividades y personalizar las plantillas y los recursos de seguridad propuestas por este modelo.

6. Referencias
OWASP, 2010. OWASP Top 10 2010 Los diez riesgos ms importantes en Aplicaciones Web . 22 p. Edicin en espaol ISO 27001, 2005. Tecnologa de la Informacin Tcnicas de seguridad Sistemas de gestin de la informacin Requerimientos. 1ra ed. 41 p. Uso para fines didcticos. ISO 17799, 2005. Tecnologa de la Informacin Tcnicas de seguridad Cdigo para la prctica de la gestin de la seguridad de la informacin. 2ra ed. 170 p. Schwaber K, Sutherland J. 2011. The Scrum Guide. The Definitive Guide to Scrum: The Rules of the Game. 17 p. Palacio J, Ruata C. 2011. Scrum Manager Gestin de Proyectos. Rev 1.4. 131 p. ISO 9000, 2005. Sistemas de gestin de calidadFundamentos y vocabulario. Ginebra, Suiza. 42 p. Barnum, S., McGraw, G., 2005, Knowledge for Software Security,IEEE Security & Privacity, 74-78 McGraw, G., 2006, Software Security. Building Security In.

Potrebbero piacerti anche