1 of 14

TIA: ARGUMENTANDO LA SEGURIDAD EN LAS FASES DE DESARROLLO DE SOFTWARE.

Angélica María Gómez Martínez

Grupo: 281

2 of 14

De acuerdo a la lectura y análisis realizados a los documentos suministrados para realizar esta TIA, usted debe desarrollar los siguientes planteamientos:

1. Elabore una tabla comparativa entre las fases del ciclo de vida del desarrollo de software (SDLC) con las fases del ciclo de vida del desarrollo de software seguro (S-SDLC)

2. Resuma mediante una tabla, las principales características de las metodologías de desarrollo de software seguro.

3. De todas las metodologías estudiadas cual de ellas seleccionaría para el desarrollo de software seguro. Especifique los criterios que tendría en cuenta para seleccionar dicha metodología. Un vez desarrollado este ítem, capture la pantalla de la diapositiva y publíquela en el blog portafolio.

4. Consulte y exponga las principales características del nuevo paradigma de desarrollo “Programación Orientada a Aspectos (POA)” y qué aportes hace este paradigma al desarrollo de software seguro.

2

INSTRUCCIONES

3 of 14

1. Elabore una tabla comparativa entre las fases del ciclo de vida del desarrollo de software (SDLC) con las fases del ciclo de vida del desarrollo de software seguro (S-SDLC)

3

Tabla comparativa entre SDLC y S-SDLC

SDLC

S-SDLC

Permite realizar pruebas orientadas a la seguridad en la etapa de pruebas, pero no garantiza encontrar fallas o vulnerabilidades a tiempo, generando costos elevados para la resolución de los mismos.

Garantiza y asegura las actividades orientadas a la seguridad del software, donde los enfoques principales son: testing, revisión de código, análisis de arquitectura y detección de fallas tempranas en el sistema.

Las etapas del SDLC son: análisis, diseño, codificación, testing y deployment.

Las etapas del S-SDLC son: requisitos, diseño, desarrollo y pruebas.

En la fase de testing, se enfoca en realizar pruebas de funcionalidad y calidad

En la fase de testing, se enfoca en realizar pruebas de seguridad y revisión de código.

La evaluación de riesgos de seguridad a menudo se realiza de manera limitada y se considera en etapas posteriores del ciclo de vida.

La evaluación de riesgos es una parte integral del proceso. Se identifican y analizan los riesgos de seguridad en cada fase, y se toman medidas preventivas y correctivas.

4 of 14

Continuación cuadro comparativo

4

Tabla comparativa entre SDLC y S-SDLC

SDLC

S-SDLC

Las pruebas de seguridad suelen llevarse a cabo de manera independiente y en etapas avanzadas del desarrollo, lo que puede resultar en la detección de vulnerabilidades tardías.

Las pruebas de seguridad se realizan de manera continua en cada fase del S-SDLC. Esto incluye pruebas de código, pruebas de penetración y revisión de seguridad.

La documentación de seguridad puede ser limitada y no estandarizada

Se promueve la documentación de seguridad detallada y estandarizada en cada fase del proceso, lo que facilita la gestión de la seguridad.

5 of 14

2.Resuma mediante una tabla, las principales características de las metodologías de desarrollo de software seguro.

5

Principales características de las metodologías de desarrollo de software seguro

METODOLOGÍA

CARACTERÍSTICAS

SREP

  • Implementa Common Criteria (CC) durante todas las fases del desarrollo.
  • Garantiza que los requisitos del software sean claros, completos y verificables alineados a los objetivos del proyecto.

SQUARE

  • Realiza un análisis enfocado en la seguridad, amenazas, y vulnerabilidades , lo que permite priorizar los requisitos de seguridad según la importancia y el impacto de los riesgos identificados.
  • Permite identificar las posibles amenazas, lo que permite comprender los riesgos de seguridad asociados con el software.

CoSMo

  • Se centra en la definición y representación de políticas de seguridad, que son las reglas y directrices que rigen el comportamiento del sistema en términos de seguridad.

6 of 14

2.Resuma mediante una tabla, las principales características de las metodologías de desarrollo de software seguro.

6

Principales características de las metodologías de desarrollo de software seguro

METODOLOGÍA

CARACTERÍSTICAS

UMLSec

  • Permite modelar y analizar los controles de seguridad que se implementarán para mitigar las amenazas y proteger el sistema.

Threat Modeling

  • Identifica de manera exhaustiva las amenazas potenciales que pueden afectar al sistema de software.
  • Evalúa el impacto y la probabilidad de que cada amenaza identificada se materialice.

STRIDE

  • Garantiza que el sistema cumpla con la triada CID: confidencialidad, integridad y disponibilidad.
  • Analiza y categoriza las amenazas de seguridad en un sistema.
  • Implementa controles de seguridad adecuados para mitigar los riesgos.

7 of 14

2.Resuma mediante una tabla, las principales características de las metodologías de desarrollo de software seguro.

7

Principales características de las metodologías de desarrollo de software seguro

METODOLOGÍA

CARACTERÍSTICAS

Árboles de ataque

  • Muestra cómo un atacante podría aprovechar las debilidades y vulnerabilidades en cada etapa del ataque.
  • Ayuda a determinar el impacto potencial de un ataque exitoso, lo que es crucial para comprender la gravedad de la amenaza.

Casos de mal uso

  • Identifican como podrían ser utilizados los casos de uso de manera indebida.
  • Permite realizar el análisis de riesgos al evaluar la probabilidad y el impacto de cada amenaza identificada

DREAD

  • Permite realizar una evaluación cuantitativa del riesgo
  • ayuda a los equipos a tomar decisiones informadas sobre cómo abordar las vulnerabilidades identificadas.
  • Gracias a sus cinco aspectos, es adaptable a las necesidades de los proyectos.

8 of 14

3. De todas las metodologías estudiadas cual de ellas seleccionará para el desarrollo de software seguro, especifique los criterios que tendría en cuenta para seleccionar dicha metodología. Un vez desarrollado este numeral, capture la pantalla de la diapositiva y publíquela en el blog portafolio.

Los criterios que se deben tener en cuenta para desarrollar un software seguro bajo la metodología SQUARE son:

  1. Historial de problemas de seguridad: Si el sistema cuenta con un historial conocido de problemas de seguridad, esto le permitirá abordar los problemas existentes para prevenir futuras vulnerabilidades.
  2. Complejidad del sistema: Permitirá explorar una variedad de requisitos de seguridad aprovechando completamente la metodología.
  3. Importancia estratégica: Este permite que la inversión de tiempo y recursos justifique la aplicación de la metodología.
  4. Acceso a personal capacitado: Los expertos en seguridad de la información podrán identificar y evaluar los requisitos de seguridad que se requieran de manera efectiva.
  5. Disponibilidad de recursos: Se debe evaluar si se cuenta con el tiempo y personal necesarios para cumplir los objetivos del estudio.

8

Metodología a seleccionar

9 of 14

6. Objetivo de estudio: Identificará requisitos de seguridad críticos, evaluar la efectividad de controles de seguridad existentes o diseñar un conjunto de requisitos de seguridad sólidos.

7. Escalabilidad del sistema: Permitirá considerar si el sistema es suficientemente complejo y grande para justificar la implementación de la metodología.

8. Impacto: Evaluará cómo esta decisión influirá en los gastos, el tiempo y los recursos disponibles.

9

Metodología a seleccionar

10 of 14

4. Consulte y exponga las principales características del nuevo paradigma de desarrollo “Programación Orientada a Aspectos (POA)” y qué aportes hace este paradigma al desarrollo de software seguro.

Referencie las fuentes de consulta, de acuerdo a las normas APA.

Características del POA:

  • Reutilización del código: El código será más versátil y podrá utilizarse en diferentes contextos según sea necesario, sin causar problemas de compatibilidad, esto mejora la mantenibilidad y la consistencia del código.

  • Mejor capacidad para comprender el código: Separando y reduciendo las interacciones entre partes del código, será más fácil comprender cómo funcionan.

  • Menor impacto de cambios: Al modificar una parte del código, no afectará significativamente a otras partes, reduciendo así los efectos secundarios no deseados.

  • Mejora la legibilidad del código: Al separar las preocupaciones en aspectos, el código principal de la aplicación se vuelve más limpio y legible, ya que se centra en la lógica de negocio principal sin distracciones relacionadas con preocupaciones transversales.

  • Interacción a través de puntos de enlance: Brindan la intefaz entre aspectos y componentes.

10

Programación Orientada a Aspectos (POA)

11 of 14

  • Separación de preocupaciones: Permite que cada preocupación se aborde de manera independiente, lo que facilita la comprensión y el mantenimiento del código.

  • Manejo de aspectos transversales: Permite abordar las preocupaciones de manera más eficiente al encapsularlas en aspectos y aplicarlos en varios puntos de corte.

  • Unidades de aspectos: Los aspectos son unidades autónomas que representan una preocupación y pueden ser tratadas como módulos independientes dentro del sistema.

Los aportes de la POA son:

  • Controles de acceso y autorización, asegurando que los recursos solamente sean accesibles por usuarios autorizados.

  • Inyección de aspectos de seguimiento, que permiten ejecutar los puntos de corte de seguridad en el código de seguimiento.

  • Sanitización de datos, gracias a los aspectos de validación, este permite validar, rechazar o registrar un evento de seguridad según los datos de entrada y las reglas definidas.

  • El bajo costo de mantenimiento, ya que, al tener todo el código relativo a la seguridad en una sola unidad, se simplifica la introducción de cambios.

11

Programación Orientada a Aspectos (POA)

12 of 14

  • Aplicación de actualizaciones en seguridad de manera centralizada en aspectos específicos cuando se descubren vulnerabilidades o se necesitan parches de seguridad, lo que simplifica la gestión de la seguridad y garantiza una respuesta rápida a las amenazas.

  • Facilita la colaboración entre equipos de desarrollo y equipos de seguridad al proporcionar un enfoque estructurado y coherente para abordar las preocupaciones de seguridad en cada una de las fases del desarrollo.

  • Contribución significativa a la implementación efectiva de las funciones de auditoría y seguimiento de seguridad, fundamental para la detección de amenazas y la respuesta a incidentes.

  • Permite definir políticas de seguridad coherentes y aplicarlas de manera consistente en todo el sistema, donde es esencial mantener la coherencia en la autenticación, autorización y control de acceso.

12

Programación Orientada a Aspectos (POA)

13 of 14

13

Programación Orientada a Aspectos (POA)

  • Staff Tech. (16 de Marzo de 2023). Manual de programación segura. Obtenido de Manual de programación segura: https://es.linkedin.com/pulse/manual-de-programaci%C3%B3n-segura-your-team-2023-your-team-tech
  • Asteasuain Fernando, Bernardo Ezequiel Contreras, “Programación Orientada a Aspectos: Análisis del Paradigma”, Tesis de Licenciatura en Ciencias de la

Computación. Universidad Nacional del Sur, noviembre de 2002.

  • V, Ospina Valencia , C. A., & Parra Durán, C. A. (2007).Repositorio Eafit. Obtenido de Repositorio Eafit: https://repository.eafit.edu.co/bitstream/handle/10784/2447/Carlos_Ospina_Carlos_Parra_2007.pdf?sequence=3
  • Narvaéz Camayo, A. M., & Trejo Narváez, O. A. (2008). Arquitectura para aplicaciones Web Orientada a Aspectos basada en los conceptos de. Obtenido de Arquitectura para aplicaciones Web Orientada a Aspectos basada en los conceptos de: http://repositorio.unicauca.edu.co:8080/bitstream/handle/123456789/2014/Arquitectura%20para%20aplicaciones%20web%20orientada%20a%20aspectos%20basada%20en%20los%20conceptos%20de%20separaci%C3%B3n%20de%20incumbencias.pdf?sequence=1&isAllowed=y

REFERENCIAS

14 of 14