Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DOCENTE
PENA DAZA ALEXANDRA
MAYO 2022
Contenido
INTRODUCCION............................................................................................................................... 4
OBJETIVO GENERAL......................................................................................................................... 5
OBJETIVO ESPECIFICO .................................................................................................................. 5
ANTECEDENTES ............................................................................................................................... 6
MODELOS EXISTENTES................................................................................................................. 8
OWASP ......................................................................................................................................... 8
Marco Teórico .......................................................................................................................... 8
Inyección SQL ........................................................................................................................... 8
Perdida de autenticacion y gestion de sesiones ...................................................................... 9
Secuencia de comandos en sitios cruzados XSS..................................................................... 10
Referencia directa insegura a objetos (Direct Object Re-ference) ........................................ 11
Configuracion de seguridad incorrecta .................................................................................. 12
Exposicion de datos sensibles ................................................................................................ 12
Ausencia de control de accesos a las funciones .................................................................... 13
Falsificación de peticiones en sitios cruzados CSRF ............................................................... 13
Uso de componentes con vulnerabilidades conocidas .......................................................... 14
Redirecciones y reenvios no validos ...................................................................................... 15
Ventajas y Desventajas del Modelo OWASP .......................................................................... 15
Conclusiones del Modelo OWASP.......................................................................................... 16
OPENSAMM - OPEN SOFTWARE ASSURANCE MATURIRY MODEL ........................................... 17
Marco Teorico ........................................................................................................................ 17
Principios bajo los cuales fue construido el Modelo SAMM:................................................. 17
Acercamiento a la mejora iterativa........................................................................................ 19
SAMM visto desde el Ciclo de Desarrollo de software .......................................................... 20
Planes a futuro ....................................................................................................................... 21
Otros acercamientos modernos............................................................................................. 21
Resumen descriptivo de las Funciones de Negocio y las Practicas de seguridad OPENSAMM
................................................................................................................................................ 22
Niveles de Madurez................................................................................................................ 22
Recomendaciones .................................................................................................................. 23
Donde encontrar la ultima version de SAMM?...................................................................... 23
Ventajas y Desventajas del Modelo OPENSAMM .................................................................. 24
Conclusiones del Modelo OPENSAMM .................................................................................. 24
NIST 800-64 - SECURITY CONSIDERATIONS IN THE SYSTEM DEVELOPMENT LIFE CYCLE ......... 25
Objetivo .................................................................................................................................. 25
Introduccion ..............................................................................¡Error! Marcador no definido.
Ciclo de vida de desarrollo de Software (SDLC) ..................................................................... 25
SDLC del NIST 800-64 ............................................................................................................. 26
Fase Inicializacion ................................................................................................................... 27
Fase de Adquisicion / Desarrollo............................................................................................ 28
Fase de Implementacion /Evaluacion .................................................................................... 31
Fase Operaciones y mantenimiento ...................................................................................... 33
Fase Disposicion ..................................................................................................................... 34
Conclusiones del Modelo NIST 800-64................................................................................... 35
MICROSOFT SECURITY DEVELOPMENT LIFE CYCLE ................................................................... 36
Seguridad en Analisis y De nicion de Requerimientos ........................................................... 38
Seguridad en el Dise~no ......................................................................................................... 39
Seguridad en la Codificación .................................................................................................. 40
Pruebas de Seguridad............................................................................................................. 41
Seguridad en la Implementacion ........................................................................................... 42
Ventajas y Desventajas del Modelo SSDLC ............................................................................ 43
Conclusiones del Modelo SSDLC ............................................................................................ 43
Recomendacion el modelo a implementar al del Grupo Consultor a Z-Software....................... 44
REFERENCIAS................................................................................................................................. 46
INTRODUCCION
El presente informe detalla la recomendación del consultor para la implementación del modelo
de seguridad en el ciclo de desarrollo para la empresa Z-Software, basados en la investigación de
los 4 modelos de seguridad en ciclos de desarrollo más comunes.
Las actividades para la realización de este Informe Final han sido las siguientes:
2. Interacción del grupo consultor sobre temas relevantes para el diseño ini-cial del proyecto.
• Evaluar los impactos tanto económicos como técnicos dentro de los proyectos de
desarrollo para los cuales la empresa es contratada.
• Implementar instrumentos que permitan a la empresa el seguimiento periódico de la
calidad.
• Identificar eventos críticos del proyecto para decidir sobre ajustes necesarios y asegurar
la continuidad de cada proyecto.
• En cada proyecto de desarrollo generar procesos de aprendizaje y retroalimentación
útiles a replicar en los futuros desarrollos de la empresa Z-Software
OBJETIVO ESPECIFICO
• Recomendar un Modelo de Seguridad que permita a la empresa Z-Software
garantizar la entrega de proyectos de desarrollo de alta calidad, proporcionando
fuertes controles de gestión y maximizando la productividad.
Cada vez más la seguridad a nivel individual y colectivo dependen de sistemas de información
cada vez más complejos e interconectados pero que a su vez se encuentran expuestos en la red
global, incluso un software también protege otro software.
Es debido a esto la gran relevancia que tiene el desarrollo del software, es por lo que los
diferentes atacantes maliciosos y recreativos cada d a se especializan más para atacar y extraer
información de esta creciente multiplicidad de sistemas de software, las amenazas de hoy en d a
cuentas con más recursos y están altamente motivadas para descubrir y explotar
vulnerabilidades en el software.
En una del Instituto Nacional de Estándares y Tecnóloga (NIST), se resume el desafío: muchos
ataques exitosos explotan errores en el código de software utilizado en computadoras y redes
toma as una gran relevancia la seguridad del software, en medida que más y más funciones
críticas se vuelven cada vez más dependientes del software, ese software se convierte en un
objetivo de alto valor.
El objetivo de los modelos de seguridad en los ciclos de desarrollo es informar a todas las partes
que intervienen en un proyecto de desarrollo sobre los procesos, métodos y técnicas existentes
que pueden ayudarlos a especificar, diseñar, implementar, configurar, actualizar y mantener
software que pueda lograr lo siguiente:
• Recuperarse rapidamente y mitigar el da~no de los ataques que no pueden ser resistidos.
La clave para asegurar el software es el proceso de desarrollo, incluyendo prácticas que no solo
ayuden a los desarrolladores a erradicar y eliminar defectos explotables a corto plazo, sino que
también, con el tiempo, aumentan la probabilidad de que dichos defectos no se introduzcan en
el primer lugar. Se pretende también abordar los riesgos asociados con la cadena de suministro
de software, incluidos los riesgos asociados con la selección y el uso de componentes de software
comerciales y de código abierto y la subcontratación de desarrollo de software.
La seguridad del software depende de la capacidad del equipo de desarrollo y de todas las partes
implicadas en el proyecto para anticipar lo inesperado, todo programa de seguridad de software
debe incluir la capacitación y la educación de los desarrolladores para hacer exactamente eso y
reconocer las implicaciones de seguridad no solo de defectos simples, sino también de series
anormales y combinaciones de funciones e interacciones dentro de su software, y entre su
software y otras entidades.
La compañía a Z-Software ha recibido quejas y reclamos de los clientes por la calidad del software
que desarrolla, evidenciando vulnerabilidades de seguridad, por lo cual nace la necesidad de dar
solución de nativa a estos inconvenientes mediante la implementación de un modelo que
permita asegurar la de seguridad en el ciclo de desarrollo.
MODELOS EXISTENTES
OWASP
Marco Teórico
OWASP es un proyecto que se dedica principalmente a ampliar, adquirir y a conservar
aplicaciones que son con cables para los dispositivos en los que se ejecute, en el 2013 se lanzó el
\top 10" que permite establecer un margen de seguridad en las aplicaciones por medio de la
identificación y exaltación de los riesgos más críticos que desafían la seguridad de las
organizaciones. Para establecer el proyecto top 10 se llevó a cabo un estudio por medio de
fuentes bibliógrafa cas, libros y diferentes herramientas, se tomaron datos estandariza-dos
incluyendo PCI, DISA, FTC entre otras; el top 10 fue denominado con este
Inyección SQL
La inyección directa de los comandos SQL es una habilidad maliciosa donde el atacante daña los
comandos SQL exhibiendo dentro de ellos datos etéreos y ocultos ubicando as peligrosos
comandos en la base de datos, donde el atacante logra ajustar de forma directa los parámetros
de nidos en el momento que se realiza una consulta SQL.
Ejemplo donde la inyección directa de SQL es efectiva. Existe un acoplamiento de caracteres que
tienen un significado específico para el manejador de la base de datos teniendo en cuenta que
estos caracteres hacen parte de dicho lenguaje del manejador; entre ellos encontramos algunos
ejemplos claros de los ataques de la inyección SQL:
En la figura 1 podemos observar la estructura del Ataque Blind SQL Injection recreado por Panda
Security bajo un entorno posible.
En esencia la secuencia de comandos en sitios cruzados es un tipo de inyec-cion HTML, este tipo
de ataque es el mas perjudicial en cuanto a la seguridad que requieren las aplicaciones, esta
acción maliciosa se efectua en el momento en que una aplicación adquiere información
producida por un usuario y es enviada a un navegador web sin ser aprobada o validada por su
contenido.
Los atacantes tienen el poder de realizar ejecuciones en cuanto a las secuen-cias de comandos
en un navegador Web perteneciente al usuario que en este caso es la v clima del ataque, XSS
permite al atacante realizar ciertos cambios en sus aplicaciones ya que puede modi car datos,
realizar cambios en diferentes sitios web que con gran frecuencia utiliza la v clima, también
pueden colocar dentro de las aplicaciones contenido incompatible con la información que all se
tenga registrada, por medio de comandos maliciosos el atacante toma el control total de las
busquedas que se realizan en el equipo de la v clima por medio de los navegadores, los atacantes
utilizan JavaScript para sus ataques aunque existen varios comandos que son usados para los
ataques web sin ser aprobada o validada por su contenido.
En términos generales esta acción ocurre cuando el atacante recurre a una apli-cacion web para
enviar un código malicioso por medio de un Script dentro del navegador a la v clima; es dif cil
identificar si el Script contiene contenido ma-licioso porque la victima puede pensar que este
proviene de un sitio que es con able y lo ejecuta, cuando el script malicioso es ejecutado este
obtiene acce-so a los tokens de sesion, a las cookies entre otras como se evidencia en la gura 2.
En cuanto a las aplicaciones web cada una genera paginas de salida diferentes a su contenido del
lado del navegador como ActiveX, JavaScript, Silverlight entre otras, este tipo de acciones hace
que sea mas ardua la deteccion automatizada.
En cuanto a la protección contra XSS se llega a la conclusion que por medio de la combinacion de
validación de listas blancas se permite veri car la direc-cion de los ataques y estas listas tienen la
capacidad de prevenir los ataques maliciosos.
Una de las formas para prevenir los ataques en las aplicaciones es estandari-zar un mecanismo
de validación de entrada que permita revisar la información que es ingresada o almacenada y
omitir la información maliciosa teniendo en cuenta aquellos mensajes de errores; se debe realizar
la codi cacion fuente de salida que permite que toda la información que el usuario suministra sea
debida-mente codi cada por medio de XML o HTML teniendo en cuenta el mecanismo de salida
de esta.
Tambien se debe realizar un proceso de especi cacion de la codi cacion de salida como (UTF8) y
denegar al atacante que coloque esta codi cacion en el nombre de los usuarios, es importante no
utilizar la validación de lista negra (blacklist) ya que los atacantes reemplazan los caracteres (\<"
\>") o las frases como script y les es posible atacar sigilosamente.
Esta acción sucede cuando un programador muestra una referencia destinada a un punto interno
de la aplicación, como por ejemplo al registro de la base de datos o a la URL, los atacantes
acceden a este tipo de herramientas para sacar in-formacion con dencial sin autorizacion del
usuario, como medida de prevencion se recomienda colocar un control de accesos para que no
se efectue dicho ataque.
Como es bien sabido las aplicaciones muestran a sus usuarios objetos internos y el atacante
puede acceder a estos objetos internos y realizar modificaciones, saltandose un control de
accesos malintencionadamente, en el siguiente caso se establece que el código utiliza la entrada
del usuario para modi car y cambiar nombres de chero, el atacante ingresa a otros recursos y
secciones mas privadas de la aplicación obteniendo toda su información.
Se debe proceder a usar referencias indirectas por usuario y por las sesiones a las que ingrese,
esta acción le impide al atacante acceder a la información y a los recursos no autorizados.
Un ejemplo claro es que en vez de usar la clave del recurso de bases de datos se procede a utilizar
los números de acceso y as revelar el valor que el usuario eligió, entonces la aplicación deber a
realizar una similitud entre la clave de la base de datos y la referencia indirecta, después se
procede a comprobar el acceso, ya que si no hay una previa comparación de control de acceso
para veri car si el usuario esta registrado, es posible que exista vulnerabilidad y por consiguiente
un posible ataque.
Se denomina como una mala con configuración de seguridad en lo que compete a las aplicaciones
web, ya que va desde la aplicación hasta el servidor, si no se efectúa una correcta configuración
de la base de datos de la aplicación, de los marcos de trabajo y del servidor de la aplicación este
se encuentra vulnerable a los ataques, por lo que se recomienda actualizar el software
seguidamente.
Por consiguiente, las aplicaciones usan el nombre real de las mismas para crear paginas web en
cuanto a su promoción, las aplicaciones se confían de la poca seguridad que hay en ellas y no con
si el usuario que accede esta autorizado para realizar dicha acción, este es un punto de referencia
para los atacantes ya que por ah pueden establecer los diferentes métodos de ataque a las
aplicaciones, obteniendo los valores de los parámetros y conseguir los códigos de acceso a las
aplicaciones.
prevención del ataque. Es importante realizar periódicamente escaneos y hacer auditorias para
encontrar las falencias de las aplicaciones y prevenir posibles ataques, puertos abiertos o
servicios innecesarios.
Las aplicaciones almacenan su información con un cifrado inseguro, ya que carece de algoritmos
o simplemente se asignan contraseñas débiles por parte de los usuarios, los cuales no están
cambiando las claves. Las aplicaciones tienden a con ar en la seguridad perimetral que se
implementen con ando en su fortaleza, también tienen de ciencias en la capa de transporte y por
consiguiente en la protección de del taco de peticiones y no poseen un adecuado uso de SSL/TLS.
Dentro de las aplicaciones se encuentran diferentes fallas debido a la exposición de datos
sensibles ya que estos datos deber estar protegidos, una posible solución para la protección de
los datos almacenados es utilizar módulos criptograma autorizados como FIPS 140, otra de las
viables soluciones es deshabilitar el cacheado de las páginas web que almacenen datos sensibles.
Una aplicación utiliza el cifrado automático para los números de tarjetas de crédito en la base de
datos local, lo que nos da a entender que automaticamente se descifran cuando se rescatan los
datos accediendo por este medio a una posible vulnerabilidad donde se produce un ataque de
inyección SQL per-mitiendo al atacante obtener especespecifica mente la información de las
tarjetas de
crédito; la aplicación deber a cifrar los números y acceder luego por medio de procedimiento de
descifrado utilizando una clave privada.
La ausencia de control, de accesos surge debido a que las aplicaciones no realizan los
procedimientos de seguridad de manera e cliente, a pesar de que estas confirman los derechos
de acceso a nivel de orden o función en la zona de comunicación con el usuario es necesario rati
car el control de acceso que se produce en el servidor al momento de cada función; si este
procedimiento no se realiza adecuadamente el atacante establecer control en las autorizaciones
y manejara a su antojo la aplicación; en consecuencia la acción del atacante es sacar datos
sensibles de las aplicaciones y enviarlas a paginas que se encuentran ocultas, ya que la
información ejecutada no es validada en el procesamiento de la URL.
Los atacantes pueden utilizar maniobras para conseguir su objetivo enviando una petición como
un usuario anónimo y as tener ingreso a la funcionalidad de privilegios en las aplicaciones, lo que
hace el atacante es modificar el URL a una función de privilegios, como no se tiene la su cliente
seguridad cualquier usuario anónimo puede acceder a funciones privadas en las aplicaciones que
no se encuentran protegidas ante las amenazas de los posibles ataques.
Los ataques CSRF exige realizar al navegador de la v clima el envio de una petición HTTP, pero
esta viene falso cada entrelazando información del usuario y es enviada a una pagina web que se
encuentra vulnerable, esta acción permite al atacante exigir al navegador del usuario victima
realizar pedidos como peticiones legitimas del usuario victima.
Este ataque se fundamenta en la familiaridad que posee la web en el usuario v clima del ataque,
estas acciones hacen que la v clima realice operaciones maliciosas sin ser consciente de lo que
esta haciendo, obteniendo datos por me-dio de la modificación de estos, en ese momento el
atacante accede a observar ese tipo de cambios y es donde toma control de la aplicación y por
consiguiente de la transferencia de información.
Los servicios de las aplicaciones web contienen las credenciales de los usuarios registrados y
autorizados a través de la IP, credenciales de dominio, entre otras; es posible que si la aplicación
no tiene manera de anular CSRF le es muy difícil diferenciar cuales son las peticiones legitimas
del usuario v clima y las peticiones CSRF que vendrán siendo un ataque para la aplicación.
prevención del ataque. Para prevenir estos posibles ataques se deben realizar métodos de
autenticación agregados para todas las peticiones que se realicen as es posible identificar cuáles
son las peticiones que no se encuentran autorizadas, existen varias técnicas para encontrar este
tipo de ataques como Synchronizer token pattern este tipo de técnica contiene un token secreto
para identificar el tipo de petición, por medio del servidor el token se genera y es comprobado
satisfactoriamente, as el atacante no podrá tener acceso al valor indicado de la petición y no
puede efectuar su ataque.
Es común que las aplicaciones web por medio de links envían a los usuarios a otras páginas web
con su información, pero este procedimiento acarrea datos que no son netamente con cables
para poder acceder al destino de la pagina web, ya que si la validación no es adecuada el
procedimiento que utilizan los atacantes es enviar a los usuarios a otros sitios como malware y
por consiguiente realizan reenvíos ingresando a paginas que no son compatibles.
Los atacantes son muy hábiles en cuanto a las técnicas que utilizan ya que pueden tergiversar la
información haciéndole creer a los usuarios que realicen varias peticiones a su aplicación web
siendo estas de carácter malicioso. Hay que tener en cuenta que los códigos HTML al que el
usuario accede pensando que es con abre podrá a ser atacado, en ese momento el código
malicioso roba los datos del usuario y sus contraseñas, esta acción de ataque permite el acceso
total al equipo de la victima.
Una posible solución a estos ataques es que los valores de los parámetros de destino sean valores
de mapeo, también se recomienda utilizar ESAPI para rectificar car el método sendRedirect()
posteriormente el usuario puede asegurarse que los destinos son con cables.
Se debe tener en cuenta la arquitectura del sistema, as como los mecanismos de autenticación y
sus respectivas sesiones de usuarios, controles de acceso, registros de actividad y
consideraciones de seguridad a nivel de criptografía.
OPENSAMM - OPEN SOFTWARE ASSURANCE MATURIRY MODEL
Marco Teórico
Este es una Metodología a que sirve para evaluar las practicas actuales de desarrollo seguro en
una organización, cuyas practicas pueden ser utilizadas para implementar un programa de
seguridad de aplicaciones en forma iterativa, donde se demuestra mejoras concretas en un
programa de aseguramiento de seguridad de aplicaciones y que además de ne y mide actividades
relacionadas a la seguridad en una organización.
Este modelo SAMM fue de nido para ser exilé de manera que pueda ser utilizado por
organizaciones pequeñas, medianas o grandes que utilicen cualquier estilo de desarrollo.
Además, este modelo puede ser aplicado en toda la organización, en una sola l nea de negocio o
incluso en un proyecto en particular.
Tres objetivos secuenciales para cada Practica de seguridad de nen como ir mejorando a lo largo
del tiempo.
Esto establece el concepto de \Nivel" en el que una organización se encuentra al cumplir una
determinada ‘Practica’.
Los tres niveles, que son los Niveles de Madurez, para cada \Practica" co-rresponden
generalmente a
Figura 7: Niveles de Madurez
Dado que cada una de las 12 \Practicas" es un area de madurez, los objeti-vos sucesivos
representan los componentes basicos para cualquier programa de mejora de la seguridad en el
desarrollo.
SAMM incluye documentos de evaluación para cada \Practica" de seguridad, donde se permite
tanto evaluaciones super ciales como detalladas.
• Ligero - Las hojas de trabajo de cada practica son evaluadas y las ca-li caciones son
asignadas en base a las respuestas. Este tipo de revisión usualmente es su cliente para
una organización que intenta comparar su programa de aseguramiento actual contra el
SAMM y desea tener rapida-mente una idea de donde estan posicionados.
Al medir una organización contra las practicas de seguridad de nidos, obtenemos un panorama
general de las actividades de seguridad existentes. Este tipo de revisiones es útil para entender
la amplitud de las actividades de seguridad que se han creado en la organización.
Es posible que las organizaciones se encuentren en niveles intermedios (+).
Cali car una organización usando las hojas de trabajo para revisión es sen-cillo. Después de
responder las preguntas, evalue la columna de respuestas para determinar el nivel. El cual se
indicar a con respuestas a rmativas para todas las preguntas sobre los marcadores a la derecha
de la columna de respuestas.
Planes a futuro
Niveles de Madurez
Cada una de las practicas de seguridad tiene tres niveles de madurez bien de nidos y un nivel
inicial (cero) implícito.
Dado el diseño central del modelo en s , una organización puede usar SAMM como un marco de
referencia para medir su programa de aseguramiento de Software y crear una tarjeta de
calificaciones. Usando tarjetas de calificaciones, una organización puede demostrar mejoras a
través de las iteraciones de desarrollo en el programa de aseguramiento. Y lo mas importante, la
organización puede usar las plantillas de planes de implementación de SAMM como gu a para
construir o mejorar su iniciativa de aseguramiento de Software.
Al medir una organización contra las practicas de seguridad de nidas, obtenemos un panorama
general de las actividades de seguridad existentes. Este tipo de revisiones es útil para entender
la amplitud de las actividades de seguridad que se han creado en la organización. Mas aun,
permite que la organización utilice SAMM para crear un plan de implementación futuro para la
mejora continua.
Recomendaciones
SAMM, es uno de los modelos mas recomendables que se suele implantar, este modelo de
Madurez para el Aseguramiento de Software (SAMM { Softwa-re Assurance Maturity Model) que
es un marco de trabajo abierto y exilé desarrollado por OWASP. Este modelo sirve para ayudar a
las organizaciones a formular e implementar una Estrategia de Seguridad para el Desarrollo de
Software que sea adecuada a las necesidades especie cas de cada organización y tiene, entre
otras, las siguientes carácter sticas:
Después de que OpenSAMM v1.0 fue donado a OWASP , evolución a OWASP SAMM, que es
desarrollado y mantenido por el equipo del proyecto OWASP SAMM. Puede encontrar las ultimas
descargas y lanzamientos en https://owaspsamm.org OWASP SAMM v1.5 lanzado OWASP
SAMMv1.1 disponible OpenSAMM Summit Dublin - Resultado
Como proyecto abierto, el contenido de SAMM siempre permanecer neutral para el vendedor y
estar disponible gratuitamente para que todos lo usen.
Ventajas y Desventajas del Modelo OPENSAMM
Para la construccion de software seguro es necesario hacer una tarea ardua de concientizacion y
divulgacion de la información ya que los directivos de las empresas al momento de adoptar este
método deben de estar bien informados de las bondades de utilizar un método de desarrollo de
software seguro, para que al momento de implementarlo toda la empresa a través de los
directivos lo lleven a cabo con la mentalidad de que el adoptar este método es bene cioso.
Las empresas deben de estar conscientes de que implementar este método im-plica costo y
esfuerzo en un principio mientras la empresa aprende, pero cuando se llega a un nivel optimo
esto es automático. Además de los bene cios del re-torno de inversion es muy satisfactoria y
sobre todo la reputacion de la empresa.
Mejorar la seguridad del software implica un cambio cultural en la organiza -cion, debemos
cambiar la forma en la que se trabaja aplicando Metodología as que sirvan para evaluar las
practicas actuales de desarrollo seguro, SAMM pue-de ser utilizado para implementar un
programa de seguridad de aplicaciones en forma iterativa.
Objetivo
Introducción
El método SDLC, es una gu a que se utiliza para implementar desde el prin-cipio del proyecto,
para evitar debilidades comunes, que conllevan a un código vulnerable y con de ciencias de
seguridad, ya que esto puede presentar con ictos de los objetivos de negocio estipulados en cada
fase de SDLC, en esta investi-gacion se utilizo la publicacion NIST SP 800-64, es una pauta que
asiste a las empresas a seleccionar y adquirir controles de seguridad rentables al explicar como
incluir los requerimientos de seguridad en el sistema de información apro-piadas del SDLC en las
que se encuentran las siguientes fases : inicializacion, adquisición/ desarrollo, implementación,
operaciones/ mantenimiento y dispo-sicion, cada una de las cinco fases incluye un grupo de pasos
de seguridad que son necesarios para la implementación de seguridad en el sistema durante su
desarrollo.
En esta primera fase del ciclo de vida del desarrollo, las atenciones de seguridad son clave para
una integración rapido y temprana, asegurando as que se consideren las amenazas, los requisitos
y las posibles limitaciones en la funcionalidad y la integración. En este punto, la seguridad se
considera mas en términos de riesgos comerciales con aportes de la o cina de seguridad de la
información. Las actividades de seguridad clave para esta fase incluyen:
Determinación de necesidades
Es una de nicion inicial de un problema que podr a resolverse mediante la automatización, Los
componentes tradicionales de la determinación de necesidades son el establecimiento de una
idea básica del sistema, la de nicion de requisitos preliminares, la evaluación de factibilidad, la
evaluación de tecnología a y alguna forma de aprobación para investigar mas el problema.
La fase de adquisición / desarrollo puede comenzar solo después de que una organización haya
determinado que existe una necesidad. Es posible que se ha-ya determinado una necesidad
durante la planificación estratégica o táctica. La fase de determinación de necesidades esta en
un nivel muy alto en términos de funcionalidad. Aquí no se de nen detalles especie cos de un
sistema. Se explora la idea de un sistema nuevo o sustancialmente mejorado y la viabilidad de la
idea. Durante esta fase temprana del desarrollo, la de nicion del requisito de seguridad debe
comenzar con la categorización de seguridad y la evaluación preliminar del riesgo.
La determinación de necesidades es una actividad anal tica que evalúa la capacidad de los activos
de una organización para satisfacer las demandas existentes y emergentes. La parte de seguridad
de la determinación de necesidades dar como resultado una descripción de alto nivel de los
controles de seguridad en el sistema propuesto y los requisitos de garantia. Este material se
utilizar para
respaldar la derivación de una estimación de costos que aborde todo el ciclo de vida. Se deben
estimar los costos totales del ciclo de vida, incluidos los costos de implementación y los costos
de gestión en servicio. Puede haber un equilibrio tal que el aumento de los gastos durante la
adquisición puede generar ahorros durante la operación del sistema. Deben considerarse las
implicaciones de seguridad de arquitecturas y tecnología as alternativas.
Determinación de necesidades
Categorización de seguridad
La empresa debe contar con una orientación estándar para establecer categorias de seguridad
los sistemas de información
Las categor as deben estar basados en el impacto potencial que ciertos eventos pueden causar
sobre los sistemas de información requeridos para cumplir la mision, proteger los activos, cumplir
las responsabilidades lega-les mantener la continuidad de las operaciones, y proteger a los
individuos.
Una evaluación de riesgo preliminar debe de nir el entorno de amena-za en el que operar el
producto o sistema. A esta evaluación le sigue una identificación inicial de los controles de
seguridad requeridos que de-ben cumplirse para proteger el producto / sistema en el entorno
operativo previsto.
Esta sección aborda consideraciones de seguridad exclusivas de la segunda fase SDLC. Las
actividades de seguridad clave para esta fase incluyen:
• Realice la evaluación de riesgos y use los resultados para complementar los controles de
seguridad de l nea de base.
• Analizar los requisitos de seguridad.
• Realizar pruebas funcionales y de seguridad.
• Preparar documentos iniciales para la certificación y acreditación del sistema.
• Diseño de arquitectura de seguridad.
Aunque esta sección presenta los componentes de seguridad de la información de manera
secuencial de arriba hacia abajo, el orden de nalizacion no es ne-cesariamente jo. Sera necesario
repetir el análisis de seguridad de los sistemas complejos hasta que se logre la consistencia y la
integridad.
Una revisión de arquitectura / diseño que evalúa el diseño plani cado del sistema y la posible
integración con otros sistemas, as como la incorpo-racion de servicios compartidos y controles
de seguridad comunes, tales como autenticación, recuperacion ante desastres, deteccion de
intrusiones o informes de incidentes.
Una revisión del rendimiento del sistema que evalúa si el sistema esta entregando o es capaz de
cumplir con las expectativas documentadas del propietario y si el sistema se comporta de manera
predecible si esta sujeto a un uso inadecuado. (Por ejemplo, la capacidad del sistema para
mantener la disponibilidad y la integridad de los datos en las cargas extremas de recursos
esperadas).
Una revisión del rendimiento del sistema que evalúa si el sistema esta entregando o es capaz de
cumplir con las expectativas documentadas del propietario y si el sistema se comporta de manera
predecible si esta sujeto a un uso inadecuado. (Por ejemplo, la capacidad del sistema para
mantener la disponibilidad y la integridad de los datos en las cargas extremas de recursos
esperadas).
El estado intermedio del proyecto y la revisión nanciera son importan-tes para detectar cambios
importantes en el nivel de esfuerzo plani cado para garantizar que las relaciones costo-bene cio
sean monitoreadas y se continúen las decisiones efectivas.
Puede ser necesaria una revisión de seguimiento de las decisiones de gestión de riesgos si, debido
a las revisiones antes mencionadas, el sistema y / o sus controles de seguridad y / o sus requisitos
cambian.
Consideraciones de seguridad
Facilita identificar los requerimientos de protección del sistema. Obser-vacion mas profunda y
detallada. Se debe realizar antes de la aprobación de las especi caciones del diseño. Puede
identificar de ciencias en el análisis de requerimientos de integridad, con genialidad y
disponibilidad o en el análisis de requerimientos de aseguramiento de seguridad.
Debe incluir un análisis de leyes y regulaciones que de nan requerimientos de seguridad m nimos
(baseline)
Para sistemas complejos, mas de una iteracion del análisis de requeri-mientos puede necesitarse.
• Mitigación del riesgo, que incluye un análisis costo-bene cio de los con-troles
recomendados.
• El enfoque mas efectivo en costo es incluir la seguridad al inicio del SDLC, debido a que:
• Es mas dif cil adicionar funcionalidad en un sistema después de que ha sido construido.
• Es menos costoso incluir medidas preventivas que tratar con el costo de un incidente de
seguridad.
Planeación de la Seguridad
• Asegurar que los controles de seguridad requeridos (planeados o existen-tes), para redes,
facilidades, sistemas de información, esten totalmente documentados.
• Provee una caracterizacion o descripción completa del sistema de información.
• Pueden incluirse referencias a documentos claves del programa de seguri-dad de la
información. Plan de administracion de la Con guracion Plan de contingencia Plan de
respuesta a incidentes. Plan de concientizacion y entrenamiento en seguridad.
• Reglas de comportamiento.
• Valoración del riesgo.
• Resultados de pruebas y evaluaciones de seguridad.
• Acuerdos de interconexion de sistemas
• Autorizaciones/acreditaciones de seguridad.
• Desarrollar controles de seguridad
• Dise~nar, desarrollar, modi car e implementar los controles, nuevos o adicio-nales,
referenciados en el Plan de Seguridad
• Prueba y Evaluación de la Seguridad Desarrollada
• Probar, si es posible, que los controles trabajan apropiadamente y son efec-tivos, antes
de colocarlos en produccion Las pruebas deben basarse en un plan de evaluación y
pruebas.
• Otros componentes de Planeación
Tipo de Contrato.
En esta fase de Implementación / Evaluación es la tercera del SDLC. Du-rante esta etapa, el
sistema se instalar y evaluar en el entorno operativo de la organización.
Antes de la puesta en funcionamiento del sistema, se debe asegurar que los controles de
seguridad establecidos en respuesta a los requerimientos de seguridad fueron incluidos durante
el proceso de desarrollo del sistema.
Operaciones y mantenimiento es la cuarta fase del SDLC. En esta fase, los sistemas estan en su
lugar y en funcionamiento, se desarrollan y prueban mejoras y / o modi caciones al sistema, y se
agrega o reemplaza hardware y / o soft-ware. El sistema se supervisa para un rendimiento
continuo de acuerdo con los requisitos de seguridad y se incorporan las modi caciones necesarias
del siste-ma. El sistema operativo se evalúa periodicamente para determinar como puede
hacerse mas efectivo, seguro y e cliente. Las operaciones continuan mientras el sistema se pueda
adaptar de manera efectiva para responder a las necesidades de una organización mientras se
mantiene un riesgo acordado nivel. Cuando se identi can las modi caciones o cambios necesarios,
el sistema puede volver a ingresar a una fase previa del SDLC.
Consideraciones de seguridad
• Cambios a un sistema pueden tener impacto signi cativo en la seguridad del sistema para
mantener la acreditación del sistema, es necesario:
• Monitoreo continuo
• Monitoreo de controles.
• Tecnicas de monitoreo
Fase Disposición
Por lo habitual, no hay un nal de nitivo para un sistema. Los sistemas normalmente
evolucionan o pasan a la proxima generacion debido a los requisitos cambiantes o las mejoras en
la tecnología a. Los planes de seguridad del sistema deben evolucionar continuamente con el
sistema. Gran parte de la información ambiental, de gestión y operativa aun debe ser relevante
y útil para desarrollar el plan de seguridad para el sistema de seguimiento.
Formas de saneamiento:
• Limpiar (no se puedan reconstruir datos haciendo un uso normal del sistema)
• Purga { depuracion (pueden reconstruirse datos a través de técnicas de laboratorio)
• Disposición del Hardware y Software
• Venta, dar de baja o descarte
• Software
• Se deben efectuar los acuerdos de licencias y las regulaciones
• Hardware
Para necesidad de destruirlo, excepto por algunos medios de alma-cenamiento que contienen
información sensitiva y que no pueden ser saneados sin destruccion Remocion o destruccion f
sica de los medios, de forma tal que el Hardware remanente pueda ser vendido o dado de baja
Algunos sistemas pueden contener información sensitiva des-pues de que el medio sea
removido. Si existe duda de que información sensitiva permanezca en el sistema, El O cial de
Seguridad debe ser consultado antes de disponer del sistema
Este trabajo fue realizado con el n de veri car la inseguridad de las aplica-ciones de un inadecuado
proceso de desarrollo y poder implementar un modelo SDLC que va a brindar seguridad y bene
ciar los productos y aplicaciones de la organización , si se incluye desde el inicio de las fases de
SDLC, normalmen-te disminuye los costos y brindara una seguridad mas e cliente que adicionarla
cuando esta operativo, las compa~n as que no lo hacen desde un inicio pagan su
precio tanto en lo economico como en la interrupcion del negocio.
MICROSOFT SECURITY DEVELOPMENT LIFE CYCLE
Los costos e impactos que tiene una vulnerabilidad entre mas tarde decteta dentro del SDLC son
mas altos, esto indica que es menos costoso para una or-ganizacion construir software seguro
que solucionar problemas en produccion.
En el articulo de la NASA Error Cost Escalation Through the Project Life Cycle indican que el costo
para corregir errores aumenta a medida que el pro-yecto madura, en el estudio realizado se
detecto que el costo de arreglar un error de requisitos descubierto durante la fase de requisitos
se de ne como 1 unidad, el costo de corregir ese error si se encuentra durante la fase de diseño
aumenta de 3 a 8 unidades; en la fase de fabricacion / construccion, el costo de arreglar el error
es de 7 a 16 unidades; en la fase de integración y prueba, el costo para corregir el error se
convierte en 21 -78 unidades; y en la fase de operaciones, el costo para corregir el error de
requisitos varia de 29 unidades a mas de 1500 unidades.
Figura 16: Costo Relativo de Arreglar un Error
La mejora de la seguridad en los procesos y practicas del ciclo de vida del desarrollo requiere un
cambio en el énfasis de las actividades para que as la seguridad tenga la misma importancia que
otras propiedades deseables como confiabilidad y rendimiento entre otras.
• Requisitos.
• Diseño e implementación.
Si bien en esta fase se tiene como objetivo traducir las necesidades y expectativas de los
interesados en un conjunto viable de requisitos de software es de vital importancia de unir los
requerimientos de seguridad que cada funcionalidad del sistema vaya a tener.
Estas tareas deben aplicarse selectivamente para especificar los requisitos para cada elemento
de la arquitectura, este conjunto de tareas debe ser aplicado al producto en todas sus fases de
desarrollo.
• Definición de la Arquitectura
• Plataforma
• Tipos de Accesos incluyendo los tipos de funcionalidades que cada rol debe manejar.
• Métodos de Autenticación.
La revisión de los requisitos funcionales debe incluir una evaluación de vulnerabilidad y riesgo de
seguridad que debe formar la base para capturar el conjunto de requisitos generales de seguridad
no funcionales o disposiciones de seguridad mitigando as los riesgos identificados.
Seguridad en el Diseño
Las suposiciones y elecciones de diseño que determinan como funcionar el software y como
interactuaran los diferentes componentes deben analizarse y ajustarse para minimizar sus
vulnerabilidades y futuros posibles ataques, los errores en el código fuente deben marcarse no
solo cuando dan como resultado una funcionalidad incorrecta, sino también cuando la
funcionalidad correcta puede corromperse por entradas o parámetros de configuración no
deseados e inusuales.
Dentro de la revisión de la literatura se describen alguna técnica a tener en cuenta en esta etapa
de desarrollo a n de garantizar la seguridad del software:
• Spoo ng: Los atacantes ngen ser alguien o algo que no son.
• Tampering: Los atacantes cambian los datos en transito o en un almacen de datos.
• Repudiaton: Los atacantes realizan acciones que no se pueden ras-trear.
• Information disclosure: Los atacantes obtienen acceso a datos en
• transito o en datos tienda a la que no deber an tener acceso.
• Denial of service: Los atacantes interrumpen el funcionamiento nor-mal del sistema
• Elevation of privilege: Los atacantes realizan acciones para las que no estan autorizados
realizar.
Método DREAD: Este modelo actua como un esquema de clasi cacion para cuanti car comparando
y priorizando la cantidad de riesgos presen-tados por cada amenaza que ha sido evaluada. DREAD
es un acrónimo creado por la letra inicial de cada categor a de análisis de riesgos.
Damage potential: clasi ca la extension del da~no que ocurre si una vulnerabilidad es explotada.
Reproducibility : clasi ca con que frecuencia un intento de explotar una vulnerabilidad realmente
funciona.
Exploitability: Asigna un numero al esfuerzo requerido para explotar vulnerabilidad. Esto también
considera las condiciones previas tales como si el usuario debe ser autenticado.
A ected users: Un valor que caracteriza el numero de instancias ins-taladas de sistema que se ver
a afectado si un exploit estuviera am-pliamente disponible.
Seguridad en la Codificación
Se deben generar criterios de seguridad para cada especificación, diseño y revisión de código,
como parte de la evaluación de ingeniería de software y la selección de componentes adquiridos
y reutilizados y como parte de la unidad de software y los planes de prueba de integración. Las
revisiones y / o pruebas de seguridad apropiadas de la fase del ciclo de vida establecerán si todos
los artefactos de software han satisfecho sus criterios de salida de seguridad al nal de una fase
del ciclo de vida antes de que se permita que el desarrollo pase a la siguiente fase.
• Durante esta etapa se deben tener en cuenta los siguientes aspectos para la seguridad en
el software:
Pruebas de Seguridad
Esta actividad tiene como objetivo evaluar la calidad de un software a n de mejorarlo, identi cando
defectos y problemas.
Se deben seguir los principios establecidos. A pesar de tener limitaciones, las pruebas de software
siguen dominando otras técnicas de verificación como análisis estático, verificación de modelos,
por lo tanto, es indispensable comprender los objetivos, principios y limitaciones de las pruebas
de software para que la efectividad de estas pueda ser maximizada.
Las pruebas de software también se utilizan para probar software para asegurar factores de como
la confiabilidad, usabilidad, integridad, capacidad entre otras, Las pruebas de software deben
realizarse de manera e cliente y efectivamente, dentro de los l mites presupuestarios y de
programación.
Siguiendo los principios establecidos las pruebas sean mas fáciles y efectivas y asegurarse de que
los objetivos de prueba se alcancen al máximo a pesar de tener ciertas limitaciones.
3. Test de Stress
Seguridad en la Implementación
La distribución ira precedida de una limpieza cuidadosa del código para eliminar cualquier
problema de seguridad residual. La preparación para la dis-tribucion también incluirá la
documentación de los parámetros de con gura-cion segura que deben establecerse cuando se
instala el software; Estos incluyen parámetros para el software en s y para cualquier componente
de su entorno de ejecución en el que se basar para protegerlo en la implementación.
Los nuevos requisitos que se cumplirán en futuras versiones se formularan en función de los
resultados de la evaluación y el análisis.
Ventajas y Desventajas del Modelo SSDLC
Es importante destacar que la seguridad debe ser contemplada desde el inicio en todo proyecto
de desarrollo de software esto con el n de de nir los reque-rimientos de seguridad que mitigaran
los riesgos que se pueden presentar al ser implementado en ambientes productivos.
Desarrollar software con un nivel aceptable de seguridad implica reducción de esfuerzos técnicos
y monetarios que repercuten en el buen prestigio de la com-pa~n a, as como en la e ciencia
operacional de un proyecto traduciéndose en mayores ganancias futuras.
Recomendación el modelo a implementar al del Grupo Consultor a Z-Software
Si bien la publicacion especial (SP) 800-64 del Instituto Nacional de Estandares y Tecnolog a (NIST)
tiene como objetivo ayudar a las agencias del gobierno a integrar las actividades esenciales de
seguridad en la metodolog a del SDLC que tienen establecida, consideramos que OPENSAMM
ayuda formular e implemen-tar una estrategia para la seguridad del software adaptables a cada
proyecto.
Lo anterior debido a que gracias a SAMM se puede:
Mas all de estos rasgosEsta describe las funciones y responsabilidades cla-ve de seguridad que
se necesitan en el desarrollo de la mayor a de los siste-mas de información identi cando
consideraciones de seguridad para cada fase (iniciacion/análisis, adquisición/diseño,
implementación/evaluación, operación/mantenimiento, disposición) del SDLC bajo los siguientes
parámetros:
La base del modelo se basa en las funciones centrales del desarrollo de software con practicas
de seguridad vinculadas a cada una donde los componentes basicos del modelo son los tres
niveles de madurez de nidos para cada una de las doce practicas de seguridad.
Esto permite de nir una amplia gama de actividades en que una organización podr a contratar
para reducir los riesgos de seguridad y aumentar la garant a del software.
Adicional se incluyen detalles para medir el desempe~no exitoso de la activi-dad, comprender la
garant a asociada bene cios, estimar personal y otros costos.
[1] Goertzel, K.M.,Security in the Software Life Cycle: Making Application Development
Processes { and Software Produced by Them { More Secure, [Online],
https://buildsecurityin.us-cert.gov
[2] Error Cost Escalation Through the Project Life Cycle, [Online], https://
ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20100036670.pdf
mx/jspui/bitstream/1008/411/1/ZACTE14.pdf
//www.opensamm.org/downloads/SAMM-1.0-es_MX.pdf
como-utilizar-serie-sp-800-norma-iso-27001/
[17
] Withdrawn NIST Technical Series Publication, [Onli-
ne], https://nvlpubs.nist.gov/nistpubs/Legacy/SP/
nistspecialpublication800-64r2.pdf
[18
] SDCL, [Online], https://brion25.blogspot.com/2013/05/
sdlc-software-development-life-cycle.html