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
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. |
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. |
- 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.
- 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.
Comentarios
Publicar un comentario