Argumentando la seguridad en las fases del desarrollo de software
TIA:
ARGUMENTANDO LA SEGURIDAD EN LAS FASES DE
DESARROLLO DE SOFTWARE.
Deicy
Johana Berrío Galvis
Santiago
Ramírez Valencia
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.
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)
Fases
|
SDLC |
S-SDLC |
|
Planificación
del concepto |
Análisis |
|
Definir los requisitos |
Diseño |
|
Diseño |
Desarrollo |
|
Desarrollo y pruebas |
Pruebas |
|
Puesta en marcha |
Despliegue y mantenimiento |
|
Operaciones y mantenimientos |
|
|
Disposición |
|
3
comparativa entre SDLC y S-SDLC
|
SDLC |
S-SDLC |
|
Despliega el análisis en dos etapas
diferentes, que son la de planificación de concepto y la definición de
requisitos. |
En una sola etapa se hacen la
planificación y definición de requisitos; que es la de análisis |
|
Ambas manejan un ciclo de diseño |
Ambas manejan un ciclo de diseño |
|
En un solo ciclo se hace el desarrollo
y las pruebas |
Maneja un ciclo de desarrollo y por
aparte uno de pruebas |
|
Despliega en dos ciclos diferentes la
puesta en marcha y las operaciones y mantenimiento, es decir lo hace de una
manera mas especifica al hacerla por separado |
Se maneja en un solo ciclo lo que es la
puesta en marcha y el mantenimiento del sistema. (Despliegue y mantenimiento) |
|
Maneja un ciclo adicional que es el de
disposición, donde se dan las directrices para su descontinuación |
No maneja un ciclo de disposición |
4
2.
Resuma mediante una tabla, las
principales características de las metodologías de desarrollo de software seguro.
|
Metodologías
|
Características |
|
S-SDLC |
Metodología
para el desarrollo de software, que hace hincapié en la seguridad en cada
fase del ciclo de vida, desde el inicio, hasta el fin. |
|
SREP |
Método
basado en activos y orientado a riesgos, que permite el establecimiento de
requisitos de seguridad durante el desarrollo de las aplicaciones. |
|
SQUARE |
Propone varios
pasos para construir modelos de seguridad desde las etapas tempranas del ciclo
de vida del software. En el proceso del modelo se hace un análisis enfocado a
la seguridad, los patrones de ataque, las amenazas y las vulnerabilidades y
se desarrollan malos casos de uso/abuso |
|
CoSMo |
Conjunto de
leyes, normas y prácticas que regulan cómo una organización gestiona, protege
y distribuye información sensible. |
|
UMLSec |
Es una
metodología de desarrollo basada en UML para especificar requisitos de
seguridad relacionados con integridad y confidencialidad. 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. |
|
Casos de Mal Uso |
Es
el caso inverso de un caso de uso UML y es lo que el sistema no debería
permitir |
|
DREAD |
Ayuda
a ponderar las amenazas identificadas. |
|
Árboles de ataque |
Es
un método que permite identificar vulnerabilidades en cada uno de los
componentes del software y jerarquizarlos |
|
STRIDE |
Ayuda a
identificar amenazas en los componentes de un sistema Spoofing
Identity: Suplantar la identidad de otro usuario o servicio. Tampering with
Data: Modificar maliciosamente datos almacenados. Repudiation:
Imposibilidad de identificar el autor de una acción. IInformation
Disclosure: Divulgar información a usuarios no autorizados. Denial of
Service: Provocar que un servicio deje de funcionar. Elevation of
privilege: Conseguir privilegios mayores a los asignados |
|
Threat Modeling |
Técnica
formal, estructurada y repetible que permite determinar y ponderar los
riesgos y amenazas
a los que estará expuesta la aplicación. |
5
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.
Escogería S-SDLC (Secure Software
Development Life Cycle), ya que se basa en verificar los requisitos de
seguridad a lo largo de las distintas fases de construcción del software:
análisis, diseño, desarrollo, pruebas y mantenimiento. Sobre todo, durante las
dos primeras, ya que gran parte de las debilidades de los sistemas se generan
incluso antes de comenzar las tareas de programación.
Esta metodología hace aplicaciones
más robustas, disminución de problemas en producción y ahorro en tiempo de
desarrollo, ya que se construye con la seguridad en mente (sin olvidar la
usabilidad o aspectos de rendimiento), los posibles bugs que se vayan
introduciendo se detectarán en fases más tempranas, y por lo tanto los cambios
para arreglarlo serán menores.
Criterios que tendría en cuenta:
·
Las características de la
metodología.
·
Que considere la seguridad en todas
las fases del desarrollo del software.
·
Las tareas que este incorpora para
llevar a cabo un proceso eficaz.
·
Que sea de fácil acceso, que resulte
lo suficientemente sencilla y fácil de usar.
·
Que se ajuste a las necesidades del
proyecto a desarrollar.
·
En el grado de adaptabilidad, que se
mantenga vigente de acuerdo a los cambios que el contexto exija y que sea
innovadora.
6
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.
POA
La programación orientada a aspectos (POA) es una nueva
metodología de programación que aspira a soportar la separación de competencias
para los aspectos antes mencionados. Es decir, que intenta separar los
componentes y los aspectos unos de otros, proporcionando mecanismos que hagan
posible abstraerlos y componerlos para formar todo el sistema. En definitiva,
lo que se persigue es implementar una aplicación de forma eficiente y fácil de
entender.
Características
de la POA
·
De la consecución de estos
objetivos se pueden obtener las siguientes ventajas:
·
Un código menos enmarañado, más
natural y más reducido.
·
Una mayor facilidad para razonar
sobre las materias, ya que están separadas y tienen una dependencia mínima.
·
Más facilidad para depurar y hacer
modificaciones en el código.
Bibliografía
POA:
Uriel Ruelas. (mayo 18, 2017). ¿Qué es la
programación orientada a aspectos (POA)?. codingornot.com Recuperado de https://codingornot.com/que-es-la-programacion-orientada-a-aspectos-aop
Vidal,
Cristian L, Hernández, Dannia D, Pereira, Cristian A, & Del Río, María C.
(2012). Aplicación de la Modelación Orientada a Aspectos. Información
tecnológica, 23(1), 3-12. https://dx.doi.org/10.4067/S0718-07642012000100002
7
I
hl ST
IT U
C I
O
N U N
I V
E
RS ITA R I A
PASCUAL BRAVO
Unidad de Educacién
Virtual

Comentarios
Publicar un comentario