Está en la página 1de 11

Asignatura Datos del alumno Fecha

Apellidos: Zúñiga Suárez


Seguridad en el
2018-03-29
Software
Nombre: María José

Actividades
Trabajo: Comparación de ciclos de vida de desarrollo de
software seguro (S-SDLC)
Como actividad puntuable para el tema 1, te propongo seguir profundizando en los
modelos S-SDLC, realizando un trabajo que contenga al menos el siguiente contenido:

Introducción a los S-SDLC.


La mayoría de vulnerabilidades de software se pueden solucionar en la fase de
desarrollo de los procesos de desarrollo de aplicaciones por ello es importante tener en
cuenta un desarrollo de software seguro ya que es de alta importancia en las
compañías, debido a que hoy en día casi todas las empresas dependen altamente de sus
aplicaciones como parte integral de la operación normal. Por lo anterior es necesario
implementar efectivamente metodologías de desarrollo seguro que se puedan aplicar
en cada fase del ciclo de vida de tal manera que la seguridad este presente desde el
inicio del proceso de desarrollo. Hace tiempo la Ingeniería de Software y la Ingeniería
de Seguridad se venían desarrollando de forma independiente, lo que ocasionaba que la
seguridad fuese considerada como parte del proceso de desarrollo de software seguro,
ocasionando inconsistencias en los procesos, cosa contraria a lo que se hace hoy en día.

El Secure Software Development Life Cycle es un conjunto de principios de diseño y


buenas prácticas a implantar, para detectar, prevenir y corregir los defectos de seguridad
en el desarrollo y adquisición de aplicaciones, de forma que se obtenga software de
confianza y robusto frente a taques maliciosos, que realice solo las funciones para las
que fue diseñado, que esté libre de vulnerabilidades, ya sean intencionalmente diseñadas
o accidentalmente insertadas durante su ciclo de vida y se asegure su integridad,
disponibilidad y confidencialidad”.

Descripción resumida de los diferentes tipos de S-SDLC.

Microsoft Trustworthy Computing SDL


Este es uno de los ciclos de vida más usados para la realización de software seguro. El
esquema del S-SDLC propuesto es el siguiente:

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Zúñiga Suárez
Seguridad en el
2018-03-29
Software
Nombre: María José

Y los pasos que se implementan son las siguientes:


 Formar a los desarrolladores en seguridad para que todos los componentes se
desarrollen conociendo las amenazas.
 Las tareas de seguridad en las actividades de requisitos son: establecer
que requisitos de seguridad existen en el proyecto, para ello puede necesitarse la
participación de un asesor de seguridad en la implementación del SDL. Se
utilizará la figura del asesor como guía a través de los procedimientos del SDL.
En este punto cada equipo de desarrollo debe tener en cuenta como requisitos
las características de seguridad para cada fase. Algunos requisitos pueden
aparecer a posteriori, por ejemplo, cuando se realice el modelo de amenazas.
 Las tareas de seguridad en las actividades de diseño son: los requisitos de
diseño con sus necesidades de seguridad quedarán definidos. Se realizará
documentación sobre los elementos que se encuentren en la superficie de un
ataque al software, y, por último, se realizará un modelo de amenazas, dónde
pueden descubrirse nuevos requisitos de seguridad.
 Las tareas de seguridad en las actividades de implementación son: aplicación de
los estándares de desarrollo y de pruebas. Posteriormente se aplicará
software que compruebe la seguridad. Además, se realizarán pruebas de code
review.
 Las tareas de seguridad en las pruebas de verificación y validación son: análisis
dinámico sobre la aplicación, revisiones de código desde el punto de vista de la
seguridad y pruebas centradas en la seguridad del software.
 Se necesita generar un plan de incidentes al final del proceso, una revisión final
de toda la seguridad del proceso y crear un plan ejecutivo de respuesta ante
incidentes, dónde se obtendrá un feedback de todo lo que ocurre en la liberación
del software.

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Zúñiga Suárez
Seguridad en el
2018-03-29
Software
Nombre: María José

CLASP
Comprehensive Lightweight Application Security Process.
CLASP es un conjunto de piezas, el cual podría ser integrado en otros procesos de
desarrollo de software. Tiene ciertas propiedades como son su fácil adopción a otros
entornos y la eficiencia. Su fuerte es la riqueza de recursos de seguridad que dispone, lo
cual deberá ser implementado en las actividades del SDLC. Tiene esta fuerza debido a
que OWASP está detrás de ello. CLASP se organiza en cinco vistas:
 Concepts view
 Role-Based view.
 Activity-Assesment view.
 Activity-Implementation view.
 Vulnerability view.

Todas las vistas se interconectan entre sí, y este detalle es importante. Los roles dentro
de CLASP son muy importantes y existen siete: gerente, arquitecto, ingeniero de
requisitos, diseñador, codificador, tester y auditor de seguridad. Se puede ver que la
seguridad se encuentra incluida, con una figura importante, dentro del proceso.

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Zúñiga Suárez
Seguridad en el
2018-03-29
Software
Nombre: María José

Todos los roles deben estar en cualquier proyecto, sino no se cumpliría CLASP.
La vista Activity-Assesment es importante, ya que identifica 24 actividades o tareas que
pueden ejecutarse. Son tareas relacionadas con la seguridad del desarrollo del software,
Como por ejemplo la identificación de una política de seguridad, documentar los
requisitos relevantes con la seguridad, realización de code-signing, etc.
La vista de vulnerabilidades es la encargada de clasificar los tipos de fallos de seguridad
que se puedan encontrar en el software.

McGraw's
Propone unas prioridades para las tareas de seguridad y de este modo saber qué cosas
tenemos que proteger primero o tener en cuenta, las cuales se proponen en orden:
 Revisión de código (code review). Tarea de análisis de código estático, el cual
debe ser escrito teniendo conocimientos de seguridad y buenas
prácticas de programación. Fase de implementación.
 Análisis de riesgo. Esta tarea es ejecutada en tres fases y es de vital importancia
en la toma de decisiones del proceso. Fase de requisitos, análisis, diseño y
testing.
 Test de intrusión (Pentesting). Tanto en la fase de testing como la liberación de
la herramienta, este tipo de tareas pueden descubrir comportamientos
anómalos en la herramienta. Fase de testing.
 Test de caja negra basados en riesgos. Fase de testing.
 Casos de abuso o fuzzing a los inputs de la herramienta para comprobar su
comportamiento. Fase de testing.
 Requisitos de seguridad por parte de los desarrolladores. Fase de
requisitos y análisis.
 Operaciones de seguridad.

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Zúñiga Suárez
Seguridad en el
2018-03-29
Software
Nombre: María José

 Análisis externo, no obligatorio. Durante todas las fases.

Writing Secure Code.


Este modelo se divide en etapas, de las cuales tiene 13, y durante las distintas fases se
van realizando etapas para conseguir que la aplicación sea segura.
En la etapa inicial se habla de educación al desarrollador en términos de seguridad,
esto se realiza justo antes de comenzar las actividades de diseño de la aplicación.
Durante esta fase de diseño también se cumplen las etapas de cuestiones
relevantes a la seguridad y la realización del modelado de amenazas.

Una vez finalizada la fase de diseño se realiza una revisión del equipo de seguridad del
diseño de la aplicación. En la fase de implementación se crean documentos de
seguridad, se preparan herramientas y se estudia las guías de buenas prácticas y
codificación segura. En la fase de pruebas se utilizan las políticas de prueba seguras, se
revisan los fallos encontrados en el proceso hasta el momento y se realiza una revisión
externa de la aplicación. En la fase de mantenimiento se realiza una planificación de
Seguridad que indica como la empresa debe responder.

Oracle Software Security Assurance.

Este S-SDLC está compuesto de un número de actividades que se incluyen en las fases
conocidas de un SDLC para garantizar la seguridad del software de la empresa Oracle.

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Zúñiga Suárez
Seguridad en el
2018-03-29
Software
Nombre: María José

Este S-SDLC se compone de 5 fases:

 Manejo de vulnerabilidades, se realiza en las fases de diseño, implementación y


testing
 Eliminación de vulnerabilidad a través de actualizaciones críticas, se lleva a
cabo durante todo el proceso, pero sobretodo en su parte final (puesta en
marcha y testing).
 Buenas prácticas y compartición de éstas en seguridad y codificación segura, se
dan a los desarrolladores en la fase de requisitos y diseño
 Gestión de la configuración de seguridad y herramientas de validación y
verificación, se prepara al comenzar el proyecto y cubre, fase de requisitos,
diseño, implementación y testing.
 Comunicación de fallos de seguridad, es la respuesta que pone la empresa a los
usuarios, es un plan de respuesta ante incidentes cuando la aplicación se libera.

TSP-Secure

TSP extiende lo que plantea el TSP, Team Software Process, el objetivo es conseguir un
desarrollo de aplicaciones seguras mediante la intervención en el proceso de la guía
ofrecida por CERT. Otro objetivo es conseguir que las organizaciones puedan mejorar
su manera de construir software seguro o de calidad, y que éste sea compatible con el
CMMI (Capability Maturity Model Integration).

Los objetivos de TSP-Secure son:

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Zúñiga Suárez
Seguridad en el
2018-03-29
Software
Nombre: María José

 Ser capaces de detectar los fallos de seguridad en la generación de código (esto


es aplicable al resto de S-SDLC estudiados en la asignatura).
 Ser capaces de responder rápidamente ante la inserción de nuevas amenazas en
el código y promover la utilización de prácticas de seguridad para el desarrollo.

Se puede visualizar el flujo de los procesos mediante la siguiente imagen:

TSP-Secure, debe basarse durante la fase de requisitos de mínimo una norma de


codificación segura. Miembros del equipo aplican pruebas de conformidad, en temas de
seguridad de la aplicación, como parte del propio proceso de desarrollo, esto se va
realizando en cada fase del SDLC, con el fin de verificar que el código es seguro.
También dispone de planificación, procesamiento, calidad, medición y seguimiento de
los marcos de TSP.

Comparación de los diferentes S-SDLC, cubriendo al menos las siguientes


características:
INGENIERIA DE PRUEBAS Y EMPRESA METODOLOGÍA
S-SDLC REQUISITOS DISEÑO IMPLEMENTACION VERIFICACION
Valora y analiza Ejecuta pruebas Microsoft Tradicional
Define proyecto.
Microsoft los procesos de aplica medidas de para ver la
Define
TrustWorthy seguridad, seguridad en las posibilidad de
Limitaciones.
Computing trabaja las pruebas analizando la encontrar
Especifica
SDL vulnerabilidades, calidad posibles fallas.
requisitos.
aplica un análisis Realiza un

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Zúñiga Suárez
Seguridad en el
2018-03-29
Software
Nombre: María José

de riesgos y feedback y
ejecuta un plan ejecuta
de reducción de modificaciones
los mismos.
Aplica análisis OWASP Tradicional
de amenazas,
Define Ejecuta
técnicas de
parámetros de evaluación de
modelado bajo Aplica revisiones al
CLASP Seguridad. seguridad por
estándares de código.
Estudio de medio de test de
seguridad que
amenazas. penetración. .
permiten revisar
la fase de diseño.
Aplica análisis Ejecuta pruebas GaryMCgraw Tradicional
de de penetración. y Cigital
amenazas, Análisis de
técnicas de riesgo. Test
Define análisis de
modelado bajo de intrusión.
Riesgo. Aplica revisiones al
McGraw’s estándares de Caja negra.
Requisitos de código.
seguridad que Fuzzing.
Seguridad.
permiten revisar Requisitos de
la seguridad.
fase de diseño. Evaluación de
seguridad.
Promueve el Oracle Tradicional
desarrollo seguro, Tiene su propia Aplica un análisis
define normativa de Aplica un análisis dinámico,
metodologías seguridad para dinámico, durante las durante las fases
Oracle
consistentes identificar fases finales del finales del
Software
validadas a cada vulnerabilidades, software, dirigida a software, dirigida
Security
una de las validación de API’s e interfaces por a API’s e
Assurance
organizaciones datos y medio de técnicas de interfaces por
haciendo un administración fuzzing. medio de técnicas
previo estudio de de usuarios. de fuzzing.
factibilidad
Ejecuta revisión Tradicional
final de
Valora
seguridad.
conocimientos. Aplica soluciones de
Writing Determina Ejecuta pruebas
Específica roles seguridad, basándose
Secure criterios de de
de seguridad en estándares
Code seguridad vulnerabilidades.
dentro del respectivos
finales. Aplica
grupo.
análisis de
amenazas.

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Zúñiga Suárez
Seguridad en el
2018-03-29
Software
Nombre: María José

Establece Software Tradicional


Proporciona un procesos de Engineer
marco de trabajo desarrollo Institute
Promueve el cual facilita el Emplea niveles de usando
desarrollo de diseño y adaptabilidad para estrategias de
TSP-Secure software bajo métodos cada una de sus fases adaptación que
estándares de organizados con aplicando estándares permiten el
seguridad. la idea de de seguridad acoplamiento al
generar software lenguaje de
de calidad. programación y
software final.

Propuesta de un nuevo S-SDLC.


Desde mi punto de vista y por lo que he podido revisar de los diferentes modelos de
seguridad en el desarrollo, pienso que la gran experiencia que tienen las empresas
como Microsoft, Oracle, Owasp les ha dado la capacidad de ir mejorando el software
que proporcionan aplicando metodologías que puedan de alguna manera proteger la
información y disminuir las vulnerabilidades. Para un desarrollador de Software lo
principal es ofrecer aplicaciones seguras y que cumplan con las necesidades del usuario
final por lo que se debería aplicar una metodología ágil es decir en cada uno de los
ciclos de desarrollo empezando desde el análisis de requisitos hasta las pruebas de
implementación ir realizando pruebas de seguridad en cada uno de los módulos como
establece la metodología UML que a pesar de que es un poco tediosa en cuanto a
documentación se podría tomar como base para establecer las etapas de prueba de
código y seguridad.
Adicionando al modelo, se definen los roles de los participantes o desarrolladores

Determinar que todos deben tener parte en la formación de seguridad por parte de
personas que tengan las competencias pertinentes al tema.

Debe haber en la mayoría de los casos una persona o integrante del grupo que cumpla
las labores pertinentes de asegurar el producto final y su paso por las diferentes
fases, el objetivo es tomar la decisión final sobre las posibles incidencias en temas de
seguridad en el proyecto. Esta figura debe ser alguien experto en la materia y con la
suficiente experiencia. Denominado como Security Manager realizará en paralelo con el
Project Manager un seguimiento del proyecto.

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Zúñiga Suárez
Seguridad en el
2018-03-29
Software
Nombre: María José

En todas las fases del SDLC se realizará una feedback, es decir, desde la fase de
requisitos hasta la liberación se realizará una revisión de seguridad de todo lo que se
tenga hasta el momento.
Se realizarán pruebas de pentesting sobre las aplicaciones en 3 fases:
 Después de implementar la fase.
 Durante la de verificación de las fases.
 Antes de liberar el producto, en su totalidad.
Finalmente se debe cumplir con una prueba de intrusión. Todo esto debe ser guiado por
los ingenieros arquitectos o diseñadores del software dónde se integrará un proceso de
seguridad. Además se pueden aplicar técnicas de Fuzzing esta técnica de prueba de
software genera y envía datos secuenciales o aleatorios a una aplicación, con el objeto
de detectar defectos o vulnerabilidades existentes. Con esta técnica se consigue ver las
excepciones que devuelven nuestro equipo y posibles problemas no contemplados. Por
ejemplo con esta técnica se detectan algunos stackoverflow o la reacción de nuestro
programa al recibir campos incorrectos como por ejemplo un float en vez de un integer.

Conclusiones.

Con el siguiente trabajo pude concluir que la seguridad en el desarrollo de software es


de vital importancia ya que lo que se necesita es tener un producto final que cumpla
con las necesidades del usuario final y le brinde la mayor seguridad a sus datos. Las
diferentes metodologías que existen y nos presentan las empresas dedicadas al
desarrollo nos pueden servir como guía para la realización de pruebas de seguridad y
vulnerabilidad pero hay que tener en claro que no existe algo fijo en el tema de
desarrollo de Software ya que yo por mi parte lo considero un arte de crear y por lo
tanto no lleva un patrón fijo que no pueda cambiar ; al contrario es tan flexible que nos
permite adaptar cada sugerencia o etapa de algunos de los modelos al tipo de software
que estamos creando; ya que de esto dependerá que modelos podemos tomar como
referencia para nuestro proyecto.

Bibliografía:
 http://repository.libertadores.edu.co/bitstream/handle/11371/736/TrujilloSilvaDi
anaMarcela.pdf?sequence=2&isAllowed=y
 https://www.owasp.org/images/9/9d/OWASP-LATAMTour-Patagonia-2016-
rvfigueroa.pdf

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Zúñiga Suárez
Seguridad en el
2018-03-29
Software
Nombre: María José

 http://www.flu-project.com/2014/05/ciclos-de-vida-del-software-seguros-
s_19.html
 http://web.fdi.ucm.es/posgrado/conferencias/AndresCaroLindo-slides.pdf
 http://www.oracle.com/us/support/library/software-security-assurance-
2293569.pdf

TEMA 1 – Actividades

También podría gustarte