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

 La entrada es el desarrollo de la primera actividad de la unidad 2 de seguridad informática.


INTRUCCIONES

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.

DESARROLLO

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)


FASE

SDLC

S-SDLC

Planificación

En esta fase, las personas clave y las partes interesadas involucradas en el proyecto  definen el sistema propuesto y determinan el alcance del proyecto.

Esta fase también define los requisitos necesarios para implementar el proyecto y la implementación de parámetros mínimos de seguridad para que las vulnerabilidades puedan ser gestionadas desde el principio.

Requisitos

Los expertos en tecnología de la información (TI) definen los requisitos comerciales del sistema en colaboración con los usuarios finales. Después de recopilar todos los requisitos, los profesionales de TI se reúnen nuevamente con los usuarios finales para revisar los requisitos y obtener la confirmación de los usuarios.

En este método se aplica el mismo control de definición de requisitos tanto con los usuarios como con el cliente, además de aplicar reglas y políticas de seguridad, creando controles de proyecto, y especialmente los requisitos definidos primero.

Diseño

Los desarrolladores crean un diseño técnico inicial que cumple con todos los requisitos comerciales del sistema definido en la fase posterior a la definición

Además del diseño funcional de la aplicación, se debe realizar un modelado de amenazas para identificar la amenaza integrada.

Desarrollo

 Los desarrolladores comenzarán a trabajar en el sistema actual. Esto incluye la creación de software y  la creación de un sistema de base de datos adecuado. 

 

En esta fase se presta especial atención a los procesos de desarrollo, la seguridad implementada en los ambientes de trabajo, asegurando las buenas prácticas en el uso de las herramientas y cumpliendo las condiciones de seguridad establecidas durante la planificación y análisis. en etapas. En esta etapa también se realizan auditorías de control de  procesos.

Verificación

Las pruebas comienzan cuando los analistas de control de calidad utilizan un plan de prueba detallado para verificar que el sistema cumple con los requisitos comerciales. 


Esta es la etapa donde se  prueba el desarrollo y se hacen más revisiones al código, utilizando las pruebas para probar las vulnerabilidades de la aplicación y errores de seguridad de la información.

Despliegue

Esta fase implica varios pasos sistemáticos para completar el sistema. Completar este paso garantiza que la información importante se conserve para futuras necesidades comerciales o  del sistema. 

 El nuevo sistema se ha distribuido a todos los usuarios finales para que puedan empezar a utilizarlo. Además, los expertos en TI proporcionan a los usuarios finales documentación del sistema  que explica cómo utilizar el sistema.

El S-SDLC también forma parte de la fase de implementación, implementando controles que permiten mantener la estabilidad de la seguridad durante la implementación y la transición a producción, que en esta fase se trata más de garantizar que los controles establecidos previamente funcionen como se espera.

Mantenimiento

Administra el sistema para garantizar que cumpla con los requisitos comerciales requeridos. Además, el personal de TI realiza un mantenimiento periódico del sistema para garantizar que funcione como se espera. 

La fase de mantenimiento adopta un enfoque en el que los procesos se monitorean continuamente y se implementan protocolos proactivos si algo sucede con los mecanismos de respuesta relacionados con brechas de seguridad previamente evaluadas y confirmadas.


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

 

Correctness by Construction (CbyC) 

- Definición muy detallada del comportamiento del sistema y diseño robusto y controlable 

 - Desarrollo incremental para mostrar el progreso en la retroalimentación y evaluación del producto. 

 - El software instalado se define como una forma de integración y validación continuas. 

: tiene una validación sólida para garantizar que los requisitos del usuario se vuelvan más específicos para el código en cada etapa del desarrollo. 

 - Se evitan repeticiones de procesos, ahorrando tiempo al cliente. 

: el objetivo es la facilidad de uso de los modelos construidos y en funcionamiento. 

 - Gestión detallada de riesgos.

SDL

-Modelado de amenazas que ayuda a los desarrolladores a encontrar partes del código que puedan tener vulnerabilidades o ser atacadas 

 -Existe un modelo basado en una metodología secuencial y otro en una metodología ágil 

 -Proporcionar una filosofía de seguridad a los usuarios a tiempo para todos los roles involucrados en el proceso. 

 - Mantener una planificación segura para reducir el margen de ataque 

 - La modelización de riesgos permite un conocimiento general de los modelos de riesgos. 

 -Usar codificación segura que exprese buenas prácticas para ser incluidas en el código 

 -Privacidad define tipos de datos confidenciales, desarrollar procedimientos de diseño centrados en la privacidad.

CLASP

- Proporciona un conjunto de medidas de seguridad que facilitan y apoyan las operaciones. Recursos como una lista de 10

 vulnerabilidades de seguridad conocidas en el código fuente de la aplicación. 

 -Es un conjunto de funciones independientes que deben integrarse al proceso de desarrollo y su entorno de trabajo. Se definieron dos caminos ("patrimonio" y "campo verde") para la integración de actividades en un todo coherente y ordenado.


  

proporciona un amplio, conjunto de recursos de seguridad que facilitan y apoyan la ejecución de las actividades. Uno de estos recursos es una lista de 104 vulnerabilidades de seguridad conocidas en el código fuente de aplicación.

CMMI

Es un modelo que describe prácticas que se aplican en las industrias y que permiten desarrollar, mantener y adquirir productos y servicios de acuerdo a un marco que evalúa el nivel de madurez de la organización relacionando los procesos internos. Existen 3 modelos, CMMI para desarrollo, CMMI para adquisición y CMMI para servicios, cada una presenta sus propias características dependiendo del tipo de organización donde se quiera integrar.


El CMMI propone un marco de referencia que ayude a la organización a mejorar sus procesos, presentando una guía para mejorar la capacidad de desarrollar, adquirir y mantener productos y servicios además de aportar un conjunto de buenas prácticas para los procesos que se llevan a cabo dentro de la organización.


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. 

Desarrollo:

Entre los métodos estudiados, en general se encontró que SDL es la mejor opción porque es una metodología que se ha utilizado durante algún tiempo y ha demostrado ser eficaz para mantener los estándares de seguridad en un proyecto, teniendo en cuenta los conjuntos de códigos y las posibles vulnerabilidades durante la ejecución. proyecto. . desarrollo y diseño, ayuda a eliminar el código antiguo que ya no funcionaba o que no se podía mejorar, identifica y reemplaza los protocolos heredados y los problemas de las aplicaciones, y comprende cómo una aplicación no logra reducir la superficie de ataque y delinear las amenazas potenciales. 

En definitiva, es una elección fiable que permite desarrollar estándares de calidad y seguridad a todos los niveles. Es una de las opciones más populares porque funciona bien para la mayoría de los proyectos que requieren estándares de seguridad uniformes. Cabe mencionar que se puede crear un modelo basado en SDL, que permite la integración de otros aspectos de diferentes métodos que pueden ser de utilidad en la implementación del proyecto.

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.

Desarrollo:
La programación orientada a aspectos es un paradigma de programación que permite que las aplicaciones sean bastante modulares y compartan mejor la responsabilidad. 
 Gracias a POA, los diversos conceptos que componen una aplicación se pueden encapsular en unidades bien definidas, lo que elimina las dependencias entre cada módulo.

Características:
- Implementación de concepto independiente en POA. 
 el flujo de la composición va desde los conceptos que se cruzan hasta el concepto principal 

¿Qué aporta?
POA puede separar cada concepto con un acoplamiento mínimo, lo que da como resultado implementaciones modulares incluso en  presencia de conceptos superpuestos. Esto conduce a un código más  limpio y menos duplicado, lo que ahorra tiempo y dinero para proyectos futuros a largo plazo. 
: dividir la funcionalidad en varios módulos mejora el comportamiento del código  con conexiones directas entre  componentes en una estructura limpia y organizada.

Ventajas:
  • Puede crear módulos fáciles de implementar. 
  •  El código tiene un aspecto más limpio y  menos repeticiones, lo que evita el código desordenado y disperso. 
  •  Se basa en el paradigma del objeto, por lo que se puede aplicar sobre él. 
  •  Al separar conceptos, hay más libertad para eliminar o cambiar aspectos existentes. 
  •  Con una instalación separada, los recursos se pueden reutilizar  para otros sistemas con requisitos separados. 
  •  Al hacer cada parte del sistema por separado, es posible lograr una mayor coherencia y ensamblaje, donde los aspectos están debidamente conectados.
Desventajas
  • Posibles coincidencias entre código de función y código de formato. 
  • Es algo difícil determinar cuándo un POA es óptimo para un uso efectivo. 
  • Hace que el código sea difícil de entender porque el programa realiza tareas que no están en  métodos que deberían estarlo. 
  • Incompatibilidad de los mismos aspectos. 
  • Problemas  de desarrollo, dado que esta es una tecnología muy nueva, necesita actualizarse constantemente. 
  • Conflictos entre  aspectos y  mecanismos  del lenguaje. 
  • Algunos documentos.

Referencias

Programación Orientada a Aspectos. (s. f.). Recuperado 8 de octubre de 2022, de http://ferestrepoca.github.io/paradigmas-de-programacion/poa/poa_teoria/Pages/ventajasydesventajas.html

Ruelas, U. (2017, 18 mayo). ¿Qué es la programación orientada a aspectos (POA)? Recuperado 8 de octubre de 2022, de https://codingornot.com/que-es-la-programacion-orientada-a-aspectos-aop 




Comentarios