Sub Grupo 13 - Seguridad en El Siclo Del Desarrollo

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 13

1

Seguridad en el Ciclo del Desarrollo

Implementación de Seguridad en el Modelo de Desarrollo Ágil XP

Modelos de Seguridad

Profesor:
Alfredo López Hernández

Presentado por:
Aponte Cardozo Danny Alejandro
González Vargas Sandra
Gratz Espinosa Laura
Osorno Gaviria Santiago - Cod. 100260394

Grupo B01

Institución Universitaria Politécnico Gran Colombiano

Junio de 2023
2

Tabla de Contenido

Introducción...............................................................................................................................3

Objetivos....................................................................................................................................4

Antecedentes..............................................................................................................................5

¿Qué es XP?...............................................................................................................................6

Características.........................................................................................................................6

Proceso XP.................................................................................................................................7

Fallas del Proceso Xp.............................................................................................................7

Cómo se Implementa Seguridad en XP..................................................................................7

Modelos Existentes..................................................................................................................10

Modelo de Amenazas y Contramedidas...............................................................................10

El Modelo de Control de Acceso..........................................................................................10

Modelo de Validación y Sanitización de Datos...................................................................10

Modelo de Pruebas de Seguridad.........................................................................................11

Recomendación de Modelo a Implementar..............................................................................12

Conclusiones............................................................................................................................13

Bibliografía..............................................................................................................................14
3

Introducción

En esta entrega se genera una investigación para examinar la implementación de

medidas de seguridad en el modelo de desarrollo ágil XP (Extreme Programming). para

comprender las mejores prácticas de seguridad en el desarrollo ágil de software, enfocándose

en cómo aplicarlas dentro del marco de trabajo de XP, Se deberá analizar y evaluar las

amenazas y vulnerabilidades potenciales del desarrollo ágil y sugerir métodos específicos

para reducir dichos riesgos, como la planificación, el diseño, la codificación y las pruebas.
4

Objetivos

El objetivo principal es adquirir los conocimientos y habilidades necesarios para

aplicar el modelo de desarrollo de software XP (Programación Extrema) en cualquier tipo de

programa. XP es una metodología ágil que se enfoca en la entrega rápida de software de alta

calidad a través de la colaboración estrecha entre los miembros del equipo de desarrollo.

Para lograr este objetivo, se buscará comprender los principios y prácticas

fundamentales de XP, como la planificación incremental, la retroalimentación continua y la

programación en parejas. Además, se estudiarán las herramientas y técnicas específicas

utilizadas en XP, como las pruebas unitarias automatizadas, la integración continua y la

refactorización de código. Al dominar el modelo XP, se podrá aplicar de manera efectiva en

diversos proyectos de desarrollo de software, optimizando la productividad y la calidad del

software entregado.

El objetivo secundario es precisar e implementar todos los métodos apropiados del

modelo XP en los proyectos de desarrollo de software. Esto implica comprender en detalle

cada uno de los métodos y prácticas específicas de XP y saber cuándo y cómo aplicarlos de

manera efectiva. Algunos de estos métodos incluyen la planificación de releases, el desarrollo

iterativo, la programación en parejas, la propiedad colectiva del código y las pruebas de

aceptación automatizadas.

Se buscará aprender a adaptar y personalizar estos métodos según las necesidades y

características del programa en desarrollo, garantizando una mayor eficiencia y éxito en el

proceso de desarrollo. Asimismo, se llevará a cabo la implementación práctica de estos

métodos, poniéndolos en acción en proyectos reales y evaluando sus resultados para obtener

un feedback constante y mejorar continuamente la aplicación del modelo XP.


5

Antecedentes

La adopción de metodologías ágiles en el entorno de desarrollo de software actual se

debe a la demanda de entregas rápidas y software de alta calidad. La Programación Extrema

(XP), que se enfoca en la colaboración estrecha y la entrega continua de software funcional,

es una de estas metodologías. XP ha demostrado ser efectivo en una variedad de proyectos, y

su aplicación exitosa requiere una comprensión completa de sus valores y prácticas.

Sin embargo, contar con profesionales que dominen sus métodos y técnicas

específicas es esencial para una implementación exitosa de XP. Por lo tanto, es esencial

adquirir los conocimientos y habilidades requeridos para implementar el modelo XP en

cualquier tipo de aplicación. Esto implica comprender la programación en parejas, la

retroalimentación continua y la planificación incremental, entre otras características

esenciales de XP.

Además, es esencial aprender y dominar las herramientas y métodos específicos de

XP, como pruebas unitarias automatizadas, integración continua y refactorización de código.

Estas prácticas ayudan a garantizar la eficiencia del proceso de desarrollo y la calidad del

software entregado.

En pocas palabras, este ensayo se concentrará en los fundamentos del modelo XP y

sus aplicaciones prácticas, con el objetivo de obtener la información necesaria para usarlo de

manera efectiva en proyectos de desarrollo de software. La implementación exitosa de los

métodos de XP permitirá optimizar la productividad y la calidad del software entregado, lo

que es crucial en el contexto actual de desarrollo de software ágil.


6

¿Qué es XP?

Extreme Programming, también conocido como XP, es un framework ágil que tiene

como objetivo producir software de mayor valor a la vez que mejora la calidad del equipo de

desarrollo. A fin de desarrollar y gestionar proyectos con eficacia, flexibilidad y control.

XP es uno de los frameworks más utilizados dentro de las metodologías. Se trata de

una metodología de desarrollo cuyo objetivo es promover la aplicación de prácticas de

ingeniería apropiadas para la creación de software.

El Extreme Programming considera que los cambios de requisitos sobre la marcha son

acciones naturales e inevitables en el desarrollo de un proyecto, esta metodología considera

que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso

deseable en el desarrollo de proyectos. Además, los equipos que implementan XP son

capaces de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto,

esto es un punto más realista que intentar definir todos los requisitos al comienzo del

proyecto e invertir esfuerzos después en controlar los cambios en los requisitos.

Características

 Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras.

 Pruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo

pruebas de regresión.

 Programación en parejas: el código es revisado y discutido mientras se escribe entre

los integrantes de la pareja.

 Frecuente integración del equipo de programación con el cliente.


7

Proceso XP

Un proyecto XP tiene éxito cuando el cliente selecciona el valor de negocio a

implementar basado en la habilidad del equipo para medir la funcionalidad que puede

entregar a través del tiempo. El ciclo de desarrollo consiste (a grandes rasgos) en los

siguientes pasos:

 El cliente define el valor de negocio a implementar.

 El programador estima el esfuerzo necesario para su implementación.

 El cliente selecciona qué construir, de acuerdo con sus prioridades y las restricciones

de tiempo.

 El programador construye ese valor de negocio.

Fallas del Proceso Xp

 Dificultad para documentar: como esta metodología trabaja de forma rápida y con

cambios constantes, es difícil llevar un registro e historial de lo que se ha hecho.

 Es recomendable emplear XP solo en proyectos a corto plazo y simples, si son diseños

muy complejos, la programación extrema puede fallar, ya que no fomenta el uso de estructuras

formales y evita la documentación, así́ como los diseños convencionales.

 Problemas con el cliente: el hecho de involucrar al cliente en decisiones técnicas

cuando no es un experto en el proceso puede ser contraproducente y demorar el ciclo de

desarrollo del software.

Cómo se Implementa Seguridad en XP

El ciclo de aplicación ideal de XP consiste en seis fases: Exploración, Planificación de

la Entrega, Iteraciones, Producción, Mantenimiento y Muerte del Proyecto.

 Exploración: En esta fase, los clientes plantean a grandes rasgos las historias de

usuario que son de interés para la primera entrega del producto. Al mismo tiempo el equipo de

desarrollo se familiariza con las herramientas, tecnologías y prácticas que se utilizaran en el


8

proyecto. Se prueba la tecnología y se exploran las posibilidades de la arquitectura del sistema

construyendo un prototipo. La fase de exploración toma de pocas semanas a pocos meses,

dependiendo del tamaño y familiaridad que tengan los programadores con la tecnología.

 Planificación de la Entrega: En esta fase el cliente establece la prioridad de cada

historia de usuario, y correspondientemente, los programadores realizan una estimación del

esfuerzo necesario de cada una de ellas. Se toman acuerdos sobre el contenido de la primera

entrega y se determina un cronograma en conjunto con el cliente. Una entrega debería obtenerse

en no más de tres meses.

 Iteraciones: Esta fase incluye varias iteraciones sobre el sistema antes de ser

entregado. El Plan de Entrega está compuesto por iteraciones de no más de tres semanas. En la

primera iteración se puede intentar establecer una arquitectura del sistema que pueda ser

utilizada durante el resto del proyecto. Esto se logra escogiendo las historias que fuercen la

creación de esta arquitectura, sin embargo, esto no siempre es posible ya que es el cliente quien

decide qué historias se implementaran en cada iteración (para maximizar el valor de negocio).

Al final de la última iteración el sistema estará́ listo para entrar en producción.

 Producción: La fase de producción requiere de pruebas adicionales y revisiones de

rendimiento antes de que el sistema sea trasladado al entorno del cliente. Al mismo tiempo, se

deben tomar decisiones sobre la inclusión de nuevas características a la versión actual, debido a

cambios durante esta fase.

 Mantenimiento: Mientras la primera versión se encuentra en producción, el proyecto

XP debe mantener el sistema en funcionamiento al mismo tiempo que desarrolla nuevas

iteraciones. Para realizar esto se requiere de tareas de soporte para el cliente. De esta forma, la

velocidad de desarrollo puede bajar después de la puesta del sistema en producción.

 Muerte del Proyecto: Es cuando el cliente no tiene más historias para ser incluidas en

el sistema. Esto requiere que se satisfagan las necesidades del cliente en otros aspectos como
9

rendimiento y confiabilidad del sistema. Se genera la documentación final del sistema y no se

realizan más cambios en la arquitectura. La muerte del proyecto también ocurre cuando el

sistema no genera los beneficios esperados por el cliente o cuando no hay presupuesto para

mantenerlo.

Modelos Existentes

La seguridad en Extreme Programming (XP) se refiere a la práctica de garantizar que

el software creado bajo esta metodología sea seguro y protegido contra posibles amenazas y

vulnerabilidades. XP enfatiza la seguridad como un componente crucial del desarrollo de

software y se concentra en implementar medidas de seguridad desde las etapas iniciales del

proceso de desarrollo. Los cuatro modelos de seguridad que se pueden aplicar en XP, junto

con ejemplos y una breve explicación, se presentan a continuación:

Modelo de Amenazas y Contramedidas:

Este modelo se enfoca en identificar las amenazas potenciales que podrían afectar la

seguridad del sistema y definir contramedidas adecuadas para mitigar o eliminar esas

amenazas. Por ejemplo, se pueden identificar amenazas como la inyección de código

malicioso, el acceso no autorizado a datos o la falta de cifrado en la comunicación, y luego

establecer contramedidas como la validación de entrada, la implementación de controles de

acceso y el uso de protocolos seguros.

El Modelo de Control de Acceso:

Se utiliza para establecer y administrar los permisos y restricciones de acceso al

sistema. Para garantizar que solo los usuarios autorizados puedan acceder a las funciones y

los datos relevantes en XP, se pueden utilizar métodos como la autenticación de usuarios, la

autorización basada en roles y la gestión de sesiones. Por ejemplo, se puede implementar un

modelo de control de acceso en un proyecto de desarrollo de un sistema de gestión de pedidos


10

que permita a los administradores acceder a todas las funcionalidades, mientras que los

usuarios comunes solo pueden crear y ver sus propios pedidos.

Modelo de Validación y Sanitización de Datos:

Este modelo se enfoca en proteger los datos de entrada de los ataques como la

inyección de código malicioso. Se deben utilizar métodos de validación apropiados para

garantizar que los datos enviados por los usuarios cumplan con los formatos y restricciones

esperados. Para evitar problemas de seguridad como la ejecución de código no deseado, es

esencial limpiar los datos antes de utilizarlos. Por ejemplo, en un proyecto de desarrollo de

una aplicación móvil que acepta números de tarjeta de crédito, se deben implementar

mecanismos de validación para garantizar que solo se ingresen números y un proceso de

sanitización para eliminar cualquier carácter no deseado antes de almacenar los datos.

Modelo de Pruebas de Seguridad:

Este modelo se basa en la realización de pruebas de seguridad exhaustivas para

identificar y corregir posibles vulnerabilidades en el software. Las pruebas de penetración, el

estrés y el cumplimiento de estándares de seguridad son ejemplos de pruebas de seguridad.

Antes de que el software sea implementado en un entorno de producción, estas pruebas

permiten detectar fallas y problemas de seguridad. Por ejemplo, se pueden realizar pruebas de

penetración en un proyecto de desarrollo de un sistema de comercio electrónico para evaluar

la resistencia del sistema con ataques externos y buscar posibles vulnerabilidades en la capa

de aplicación y la infraestructura subyacente.


11

Recomendación de Modelo a Implementar

En XP, se recomienda el Modelo de Amenazas y Contramedidas. Este modelo facilita

la identificación de amenazas y la definición de contramedidas específicas en función de los

riesgos. Al incluir este modelo en el proceso de desarrollo, se fomenta una mentalidad

proactiva hacia la seguridad y se pueden abordar los problemas de seguridad desde el inicio

del proyecto. Además, el Modelo de Amenazas y Contramedidas se adapta bien a la

naturaleza iterativa de XP porque se puede aplicar en cada ciclo de desarrollo para evaluar y

mejorar continuamente la seguridad del sistema.

Enlace del Video

https://www.youtube.com/watch?v=QK95qH8IrhM
12

Conclusiones

El modelo de desarrollo de software XP, también conocido como programación

extrema, es una metodología ágil que se centra en la entrega temprana y continua de software

de alta calidad. A través de la colaboración estrecha entre los miembros del equipo de

desarrollo, su objetivo principal es maximizar la productividad y la satisfacción del cliente.

Para aplicar este modelo a cualquier tipo de programa, es fundamental comprender y dominar

todos los métodos apropiados que se utilizan en XP.

En conclusión, al familiarizarse y aplicar los métodos de XP, se adquiere la capacidad

de desarrollar software de manera eficiente y efectiva, brindando resultados tangibles y

satisfactorios tanto para los desarrolladores como para los clientes. La implementación de XP

permite adoptar prácticas de desarrollo colaborativas, como la programación en pareja, las

revisiones de código continuas y las pruebas automatizadas, lo que conduce a una mayor

calidad del software. Además, XP promueve una comunicación abierta y constante entre el

equipo de desarrollo y el cliente, lo que garantiza que el software entregado cumpla con los

requisitos y expectativas del cliente. En resumen, al aprender e implementar todos los

métodos apropiados del modelo XP, se puede lograr un desarrollo de software exitoso,

eficiente y orientado al cliente.


13

Bibliografía

Wells, D. (s. f.). Extreme Programming: A Gentle Introduction.

http://www.extremeprogramming.org/

The ZAP Homepage. (s. f.). https://www.zaproxy.org/

Microsoft SDL - Security Development Lifecycle. (s. f.).

https://seguridadit.blogspot.com/2012/01/microsoft-sdl-security-development.html

Access Control - OWASP Cheat Sheet Series. (s. f.).

https://cheatsheetseries.owasp.org/cheatsheets/Access_Control_Cheat_Sheet.html

Input Validation - OWASP Cheat Sheet Series. (s. f.).

https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html

OWASP Web Security Testing Guide | OWASP Foundation. (s. f.).

https://owasp.org/www-project-web-security-testing-guide/

También podría gustarte