You are on page 1of 10

Asignatura

Seguridad en el
Software

Datos del alumno

Fecha

Apellidos: Rincn Peralta

22/09/2016

Nombre: Victor Julio

Actividades
Trabajo: Comparacin 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:
Introduccin a los S-SDLC.
Descripcin resumida de los diferentes tipos de S-SDLC.
Comparacin de los diferentes S-SDLC, cubriendo al menos las siguientes caractersticas:
o Actividades de Ingeniera de Requisitos.
o Actividades de diseo.
o Actividades de implementacin.
o Actividades de pruebas de verificacin y validacin.
o Recursos.
o Uso por la empresa.
o Etc.
Propuesta de un nuevo S-SDLC.
Conclusiones.
Extensin mxima de la actividad: 8 a 12 pginas, fuente Georgia 11 e interlineado 1,5.
INTRODUCCION

La mayora de vulnerabilidades 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 compaas, debido a que hoy en da casi todas las empresas dependen altamente de sus
aplicaciones como parte integral de la operacin normal. Por lo anterior es necesario implementar
efectivamente metodologas 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 Ingeniera
de Software y la Ingeniera de Seguridad se venan desarrollando de forma independiente, lo que
ocasionaba que la seguridad fuese considerada como parte del proceso de desarrollo software seguro,
ocasionando inconsistencias en los procesos, cosa contraria a lo que se hace hoy en da.
TEMA 1 Actividades

Asignatura
Seguridad en el
Software

Datos del alumno

Fecha

Apellidos: Rincn Peralta


Nombre: Victor Julio

22/09/2016

Tipos de S-SDLC
Microsoft Trustworthy Computing SDL
Este es uno de los ciclos de vida ms usados para la realizacin de software seguro. El esquema del S-SDLC
propuesto es el siguiente:

[1]
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 participacin de un asesor de
seguridad en la implementacin del SDL. Se utilizar la figura del asesor como gua a travs de los
procedimientos del SDL. En este punto cada equipo de desarrollo debe tener en cuenta como
requisitos las caractersticas 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 diseo son: los requisitos de diseo con sus
necesidades de seguridad quedarn definidos. Se realizar documentacin sobre los elementos que
se encuentren en la superficie de un ataque al software, y, por ltimo, se realizar un modelo de
amenazas, dnde pueden descubrirse nuevos requisitos de seguridad.
Las tareas de seguridad en las actividades de implementacin son: aplicacin de los estndares de
desarrollo y de pruebas. Posteriormente se aplicar software que compruebe la seguridad.
Adems, se realizarn pruebas de code review.
Las tareas de seguridad en las pruebas de verificacin y validacin son: anlisis dinmico sobre la
aplicacin, revisiones de cdigo desde el punto de vista de la seguridad y pruebas centradas en la
seguridad del software.
TEMA 1 Actividades

Asignatura
Seguridad en el
Software

Datos del alumno

Fecha

Apellidos: Rincn Peralta


Nombre: Victor Julio

22/09/2016

Se necesita generar un plan de incidentes al final del proceso, una revisin final de toda la
seguridad del proceso y crear un plan ejecutivo de respuesta ante incidentes, dnde se obtendr un
feedback de todo lo que ocurre en la liberacin del software.

CLASP
Comprehensive LIghtweight Application Security Process, de OWASP.
CLASP es un conjunto de piezas, el cual podra ser integrado en otros procesos de desarrollo de software.
Tiene ciertas propiedades como son su fcil adopcin 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 detrs 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, diseador, codificador, tester y
auditor de seguridad. Se puede ver que la seguridad se encuentra incluida, con una figura importante,
dentro del proceso. Todos los roles deben estar en cualquier proyecto, sino no se cumplira 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 identificacin de una poltica de seguridad, documentar los requisitos relevantes con
la seguridad, realizacin de code-signing, etctera.
La vista de vulnerabilidades es la encargada de clasificar los tipos de fallos de seguridad que se puedan
encontrar en el software. Consta de 5 subgrupos.[2]
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:
TEMA 1 Actividades

Asignatura

Datos del alumno

Fecha

Apellidos: Rincn Peralta

Seguridad en el
Software

22/09/2016

Nombre: Victor Julio

Revisin de cdigo (code review). Tarea de anlisis de cdigo esttico, el cual debe ser
teniendo

conocimientos

de

seguridad

buenas

prcticas

escrito

de programacin. Fase de

implementacin.
Anlisis de riesgo. Esta tarea es ejecutada en tres fases y es de vital importancia en la toma de
decisiones del proceso. Fase de requisitos, anlisis, diseo y testing.
Test de intrusin (Pentesting). Tanto en la fase de testing como la liberacin de la herramienta,
este tipo de tareas pueden descubrir comportamientos anmalos 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 anlisis.
Operaciones de seguridad.
Anlisis 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 aplicacin sea segura.
En la etapa inicial se habla de educacin al desarrollador en trminos de seguridad, esto se realiza justo
antes de comenzar las actividades de diseo de la aplicacin. Durante esta fase de diseo tambin se
cumplen las etapas de cuestiones relevantes a la seguridad y la realizacin del modelado de amenazas.
Una vez finalizada la fase de diseo se realiza una revisin del equipo de seguridad del diseo de la
aplicacin. En la fase de implementacin se crean documentos de seguridad, se preparan herramientas
y se estudia las guas de buenas prcticas y codificacin segura. En la fase de pruebas se utilizan las polticas
de prueba seguras, se revisan los fallos encontrados en el proceso hasta el momento y se realiza una revisin
externa de la aplicacin. En la fase de mantenimiento se realiza una planificacin de
Seguridad que indica como la empresa debe responder.

TEMA 1 Actividades

Asignatura
Seguridad en el
Software

Datos del alumno

Fecha

Apellidos: Rincn Peralta


Nombre: Victor Julio

22/09/2016
[3]

Oracle Software Security Assurance.


Este S-SDLC est compuesto de un nmero de actividades que se incluyen en las fases conocidas de un
SDLC para garantizar la seguridad del software de la empresa Oracle. Este S-SDLC se compone de 5 fases:
Manejo de vulnerabilidades, se realiza en las fases de diseo, implementacin y testing
Eliminacin de vulnerabilidad a travs de actualizaciones crticas, se lleva a cabo durante todo el
proceso, pero sobretodo en su parte final (puesta en marcha y testing).
Buenas prcticas y comparticin de stas en seguridad y codificacin segura, se dan a los
desarrolladores en la fase de requisitos y diseo
Gestin de la configuracin de seguridad y herramientas de validacin y verificacin, se
prepara al comenzar el proyecto y cubre, fase de requisitos, diseo, implementacin y testing.
Comunicacin de fallos de seguridad, es la respuesta que pone la empresa a los usuarios, es un plan
de respuesta ante incidentes cuando la aplicacin se libera.

TEMA 1 Actividades

Asignatura
Seguridad en el
Software

Datos del alumno

Fecha

Apellidos: Rincn Peralta


Nombre: Victor Julio

22/09/2016

TSP-Secure
TSP extiende lo que plantea el TSP, Team Software Process, el objetivo es conseguir un desarrollo de
aplicaciones seguras mediante la intervencin en el proceso de la gua 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:
Ser capaces de detectar los fallos de seguridad en la generacin de cdigo (esto es aplicable al resto
de S-SDLC estudiados en la asignatura).
Ser capaces de responder rpidamente ante la insercin de nuevas amenazas en el cdigo y
promover la utilizacin de prcticas de seguridad para el desarrollo.
Se puede visualizar el flujo de los procesos mediante la siguiente imagen:
[3]

TEMA 1 Actividades

Asignatura
Seguridad en el
Software

Datos del alumno

Fecha

Apellidos: Rincn Peralta


Nombre: Victor Julio

22/09/2016

TSP-Secure, debe basarse durante la fase de requisitos de mnimo una norma de codificacin segura.
Miembros del equipo aplican pruebas de conformidad, en temas de seguridad de la aplicacin, como parte
del propio proceso de desarrollo, esto se va realizando en cada fase del SDLC, con el fin de verificar que el
cdigo es seguro. Tambin dispone de planificacin, procesamiento, calidad, medicin y seguimiento de los
marcos de TSP.
Propuesta de un nuevo S-SDLC
la experiencia de Microsoft es representativa, la adopcin del SDL. Segn la experiencia obtenida por
Microsoft, las ventajas de ofrecer un software ms seguro (por ejemplo, menor nmero de actualizaciones,
mayor satisfaccin de los clientes). Los productores de software deben tener en cuenta las amenazas de
seguridad. La seguridad es un requisito bsico para los proveedores de software, obligados por las fuerzas
del mercado, dada la necesidad de proteger infraestructuras de gran importancia y crear y preservar la
confiabilidad en la computacin. Uno de los retos ms importantes a los que se enfrentan todos los
proveedores de software es crear un software ms seguro que requiera menos actualizaciones y una
administracin de seguridad menos onerosa por eso, para mi caso elijo, Microsoft Trustworthy Computing
SDL.
Adicionando al modelo los siguientes pasos, se definen los roles de los participantes o desarrolladores
Se hace la claridad que todos deben tener parte en la formacin de seguridad por parte de personas
que tengan las competencias pertinentes al tema.
Debe haber en la mayora 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 decisin 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.

En todas las fases del SDLC se realizar una feedback, es decir, desde la fase de
requisitos hasta la liberacin se realizar una revisin de seguridad de todo lo que se
tenga hasta el momento.
+ Se realizarn pruebas de pentesting sobre las aplicaciones en 3 fases:
+ Despus de implementar la fase.
+ Durante la de verificacin de las fases.
+ Antes de liberar el producto, en su totalidad.
TEMA 1 Actividades

Asignatura
Seguridad en el
Software

Datos del alumno

Fecha

Apellidos: Rincn Peralta


Nombre: Victor Julio

22/09/2016

Finalmente se debe cumplir con una prueba de intrusin. Todo esto debe ser guiado por los
ingenieros arquitectos o diseadores del software dnde se integrar un proceso de seguridad.
Comparacin de los diferentes tipos de S-SDLC

S-SDLC

Microsoft
TrustWorth
y Computing
SDL

CLASP

McGraws

INGENIERIA
DE
REQUISITOS

DISEO

IMPLEMENTAC
ION

PRUEVAS Y
VERIFICACION

Valora y analiza los


procesos de
Ejecuta pruebas
Define
seguridad, trabaja
para ver la
aplica medidas
proyecto.
las
posibilidad de
de seguridad en
Define
vulnerabilidades,
encontrar posibles
las pruebas
Limitaciones.
aplica un anlisis
fallas.
analizando la
Especifica
de riesgos y
Realiza un
calidad
requisitos.
ejecuta un plan de
feedback y ejecuta
reduccin de los
modificaciones
mismos.
Aplica anlisis de
amenazas,
Define
tcnicas de
Ejecuta evaluacin
parmetros de
Aplica
modelado bajo
de seguridad por
Seguridad.
revisiones al
estndares de
medio de test de
Estudio de
cdigo.
seguridad que
penetracin.
.
amenazas.
permiten revisar la
fase de diseo.
Ejecuta pruebas de
Aplica anlisis de
penetracin.
amenazas,
Anlisis de riesgo.
tcnicas de
Define anlisis
Test de intrusin.
Aplica
modelado bajo
de Riesgo.
Caja negra.
revisiones al
estndares de
Requisitos de
Fuzzing.
cdigo.
seguridad que
Seguridad.
Requisitos de
permiten revisar la
seguridad.
fase de diseo.
Evaluacin de
seguridad.

Promueve el
desarrollo
seguro, define
Oracle
metodologas
Softwar consistentes
e
validadas a
Security cada una de
Assuran
las
ce
organizacione
s haciendo un
previo estudio
de factibilidad
TEMA 1 Actividades

Tiene su propia
normativa de
seguridad para
identificar
vulnerabilidades,
validacin de
datos y
administracin de
usuarios.

Aplica un
anlisis
Aplica un anlisis
dinmico,
dinmico, durante
durante las
las fases finales del
fases finales del
software, dirigida a
software,
APIs e interfaces
dirigida a APIs e
por medio de
interfaces por
tcnicas de
medio de
fuzzing.
tcnicas de
fuzzing.

Asignatura
Seguridad en el
Software

Datos del alumno

Fecha

Apellidos: Rincn Peralta


Nombre: Victor Julio

22/09/2016

Writing
Secure
Code

Valora
Ejecuta revisin
conocimientos final de seguridad.
. Especfica
Determina criterios
roles de
de seguridad
seguridad
finales. Aplica
dentro del
anlisis de
grupo.
amenazas.

Aplica
soluciones de
seguridad,
basndose en
estndares
respectivos

Ejecuta pruebas de
vulnerabilidades.

TPS-Secure

Proporciona un
marco de trabajo
Promueve
el cual facilita el
desarrollo de
diseo y mtodos
software bajo
organizados con la
estndares de
idea de generar
seguridad.
software de
calidad.

Emplea niveles
de
adaptabilidad
para cada una
de sus fases
aplicando
estndares de
seguridad

Establece procesos
de desarrollo
usando estrategias
de adaptacin que
permiten el
acoplamiento al
lenguaje de
programacin y
software final.

Fuzzing
Se conoce como Fuzzing a la tcnica de prueba de software que genera y enva datos secuenciales o
aleatorios a una aplicacin, con el objeto de detectar defectos o vulnerabilidades existentes.. Con esta tcnica
se consigue ver las excepciones que devuelven nuestro equipo y posibles problemas no contemplados. Por
ejemplo con esta tcnica se detectan algunos stackoverflow o la reaccin de nuestro programa al recibir
campos incorrectos como por ejemplo un float en vez de un integer.
Existen proyectos que realizan este tipo de tests. como el de JBroFuzz.

Conclusiones

Luego de realizar este trabajo puedo decir que la seguridad en los sistemas de informacin es y seguir
siendo

una preocupacin latente en todas las compaas pero sobre todo en aquellas que basan sus

estrategias de negocio en los sistemas de informacin. Si bien se han presentado algunas soluciones al
problema, la problemtica es ms compleja, pues no en todas las organizaciones se hace uso de la
produccin de software seguro. Son muchos los aspectos que se deben tener en cuenta desde su concepcin,
su implantacin hasta inclusive el uso cotidiano. Como tambin se observ que existen diferentes aspectos a
tener en cuenta para poder atacar el problema y solucionar los mismos. Desafortunadamente a veces el tema
de la seguridad lo dejan como como un elemento aislado, sin muchas veces notar que es un elemento
TEMA 1 Actividades

Asignatura
Seguridad en el
Software

Datos del alumno

Fecha

Apellidos: Rincn Peralta


Nombre: Victor Julio

22/09/2016

transversal y multidimensional. En general los Ciber-delincuentes generalmente estn ms delante que


organizaciones, si se contina produciendo generalmente software de la manera tradicional, se seguir
explotando las vulnerabilidades podran sido evitadas utilizando metodologas como las observadas
anteriormente en este trabajo.
En este trabajo present de manera general, los procesos desarrollo de software ms usados los cuales se
enfocan en la mejora de la seguridad. El uso de alguna de estas metodologas permite disminuir en cierta
medida evitar los ataques a las vctimas, ocasionando prdidas a veces irreparables. Si bien escog una
metodologa, es bueno tener en cuenta que la mejor metodologa es la que se adapta al producto a desarrollar
especficamente, teniendo en cuenta el producto a tratar se puede escoger la metodologa idnea a tener en
cuenta.
Bibliografia
[1]http://www.flu-project.com/2014/05/ciclos-de-vida-del-software-seguros-s_29.html
[2]https://www.owasp.org/index.php/CLASP_Concepts
[3]http://www.flu-project.com/2014/05/ciclos-de-vida-del-software-seguros-s_27.html
http://www.oracle.com/us/support/library/software-security-assurance-2293569.pdf
http://recibe.cucei.udg.mx/revista/es/vol2-no3/pdf/computacion05.pdf
https://es.wikipedia.org/wiki/Capability_Maturity_Model_Integration

TEMA 1 Actividades