Segsoftt1trab VictorRincon
Segsoftt1trab VictorRincon
Segsoftt1trab VictorRincon
Seguridad en el
Software
Fecha
22/09/2016
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
Asignatura
Seguridad en el
Software
Fecha
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
Fecha
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
Fecha
Seguridad en el
Software
22/09/2016
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.
TEMA 1 Actividades
Asignatura
Seguridad en el
Software
Fecha
22/09/2016
[3]
TEMA 1 Actividades
Asignatura
Seguridad en el
Software
Fecha
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
Fecha
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
Fecha
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
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
Fecha
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
Fecha
22/09/2016
TEMA 1 Actividades