Please enable JavaScript.
Coggle requires JavaScript to display documents.
Ciclo de vida del desarrollo de software seguro - Coggle Diagram
Ciclo de vida del desarrollo de software
seguro
SDLC es un proceso iterativo en el cual se identifican cuatro etapas principales: Requisitos, Diseño, Desarrollo y Pruebas, si en cada una de estas etapas se considera la seguridad como parte integral del software, se está hablando del ciclo de vida del desarrollo de software seguro (S-SDLC).
Modelos
Los siguientes modelos hacen énfasis en las etapas de ingeniería de requisitos, modelado, y especificación teniendo en cuenta que los costos de corrección del software son mucho menores si se abordan en las etapas tempranas del ciclo de vida del desarrollo.
UMLSec
Es una metodología de desarrollo basada en UML para especificar requisitos de seguridad relacionados con integridad y confidencialidad.
Se puede emplear
Mediante mecanismos ligeros de extensión de UML es posible expresar los estereotipos, las etiquetas, las restricciones y el comportamiento de un subsistema en presencia de un ataque.
Objetivo
Pretende evaluar que un atacante en una dependencia de un subsistema estereotipada, como secrecy, que tenga dos nodos n, m que se comunican a través de un enlace l nunca pueda leer el contenido del subsistema.
Operaciones
1 more item...
Casos de mal uso
Es el caso inverso de un caso de uso UML y es lo que el sistema no debería permitir.
Caso de uso
Define la secuencia de acciones que le dan un valor agregado al usuario, mientras que uno de mal uso define la secuencia de acciones que se traducen en pérdida para la organización o los usuarios interesados.
Actores
Son todas aquellas entidades externas al sistema que guardan una relación con este y que le demandan una funcionalidad y un mal actor es lo contrario a un actor, es un usuario que no se requiere que el sistema soporte y que podría ser un agresor.
Prueba
Test de mutación de datos
Se testea la aplicación ingresando en sus interfaces datos “mutados” con el objetivo de que todos los mutados fallen, así se podrá decir que el test responde a la definición concreta del código y que lo prueba correctamente.
Mutaciones
Con diferente signo
De diferente tipo
Con Código (ej: javascripts)
Con diferente longitud
Con caracteres especiales
Fuera de rango
Con valores nulos
Con valores aleatorios
Programación orientada a aspectos (POA)
Es una metodología de programación que permite la separación de los elementos funcionales del software de otros conceptos no funcionales pero son requeridos en el.
Elementos como
Distribución
El chequeo de errores
El manejo de memoria
La seguridad
La sincronización
El uso redes
Sus elementos constitutivos principales son
Uno o varios lenguajes de aspectos, para especificar el comportamiento de los distintos aspectos. Algunos ejemplos son COOL, para especificar sincronización, IDL para especificar distribución, ASPECJ de Java y otros.
Un tejedor de aspectos, del inglés weaver, que se encarga de combinar los lenguajes en tiempo de ejecución o de compilación.
El tejedor es el encargado principal del proceso de la POA, su función es
Realizar la parte final y más importante: tejer los diferentes mecanismos de abstracción y composición que aparecen tanto en los lenguajes de aspectos, como en los lenguajes de componentes, guiado por los puntos de enlace.
Un lenguaje para definir la funcionalidad básica, conocido como lenguaje base o componente. El mismo puede ser un lenguaje imperativo, o no, como por ejemplo C++, Java, Lisp, ML.
Esta programación permite a los desarrolladores
Escribir, ver, y editar un aspecto diseminado por todo el sistema como una entidad por separado, de una manera inteligente, eficiente e intuitiva.