Asignatura Seguridad en el Software Datos del alumno Apellidos: Cabrera Aguilar Nombre: Alexis Paul Fecha 22-03-2020
Views 797 Downloads 3 File size 490KB
Asignatura Seguridad en el Software
Datos del alumno Apellidos: Cabrera Aguilar Nombre: Alexis Paul
Fecha 22-03-2020
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. Descripción resumida de los diferentes tipos de S-SDLC. Comparación de los diferentes S-SDLC, cubriendo al menos las siguientes características: o Actividades de Ingeniería de Requisitos. o Actividades de diseño. o Actividades de implementación. o Actividades de pruebas de verificación y validación. o Recursos. o Uso por la empresa. o Etc. Propuesta de un nuevo S-SDLC. Conclusiones. Extensión máxima de la actividad: 8 a 12 páginas, fuente Georgia 11 e interlineado 1,5.
TEMA 1 – Actividades
Asignatura Seguridad en el Software
Datos del alumno Apellidos: Cabrera Aguilar Nombre: Alexis Paul
Fecha 22-03-2020
Introducción a los S-SDLC
El S-SDLC, Secure Systems Development Life Cycle, son unas técnicas de desarrollo que permiten crear un software de calidad desde que empezamos el proyecto, al que se le ha añadido una capa de seguridad, Esta capa de seguridad debe cumplir al menos los principios de confidencialidad, integridad y disponibilidad para considerar que son
seguros. Al tratarse de un ciclo conlleva a que tenga iteraciones que deben de ejecutarse durante todo el periodo de vida de las aplicaciones. Básicamente podemos indicar que el S-SDLC es un conjunto de principios de diseño 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 ataques 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”. (owasp, 2016) Descripción resumida de los diferentes tipos de S-SDLC.
Microsoft Trustworthy Computing SDL
Esquema del S-SDL de Microsoft
Uno de los modelos de ciclos de vida más popular y usados por desarrolladores de software es Microsoft Trustworthy Computing SDL que es una metodología propuesta por parte de Microsoft y una directiva obligatoria desde el año 2004. El proceso SDL combina un enfoque holístico y práctico para reducir el número y la severidad de las vulnerabilidades de los productos y servicios de Microsoft, limitando de esta manera las oportunidades para que los atacantes pongan en riesgo los equipos. Microsoft comparte libremente el proceso SDL con las organizaciones de desarrollo de los clientes y la
TEMA 1 – Actividades
Asignatura Seguridad en el Software
Datos del alumno Apellidos: Cabrera Aguilar Nombre: Alexis Paul
Fecha 22-03-2020
industria del software, donde se lo ha usado para desarrollar software más seguro. (recibe.cucei, 2013) En este ciclo de vida se llevan a cabo diversas tareas que son:
Diseñar y desarrollar software o aplicaciones que puedan combatir o prevenir las amenazas a las que puedan estar expuestas.
En las tareas de seguridad para las pruebas de verificación y validación, en este punto se hace una revisión de código desde el punto de vista de la seguridad y pruebas centradas en la seguridad del software.
Cada tarea de seguridad se debe establecer los requisitos de seguridad para el proyecto, para poder llevar a cabo es necesario que un asesor de seguridad forme parte en los puntos a establecer.
En las tareas de seguridad en las actividades de diseño, es necesario que se establezcan aquellas necesidades que se quedarán definidas para la seguridad.
En las tareas de seguridad en las actividades de implementación, aquí se deberán establecer los estándares de desarrollo y prueba del proyecto. Por lo que se hace una revisión al código para detectar fallas de seguridad.
Finalmente se ejecuta un plan de respuesta a incidentes al finalizar el proyecto.
The Building Security In Maturity Model (BSIMM) McGraw’s El ciclo de vida de software propuesto por McGraw, establece prioridades para saber que se debe proteger primero en las tareas de seguridad. A continuación, se exponen las prioridades de las tareas de seguridad:
Revisión de código se trata de llevar a cabo un análisis de código estático, el cual debe ser programado con los conocimientos necesarios de seguridad y buenas técnicas de programados. Esta prioridad se le conoce como la fase de implementación.
Análisis de riesgo es la parte que se ejecuta en tres fases y es de vital importancia para la toma de decisiones del proceso durante el proyecto. Esta prioridad se le conoce como la fase de requisitos, análisis, diseño y testing.
TEMA 1 – Actividades
Asignatura Seguridad en el Software
Datos del alumno Apellidos: Cabrera Aguilar Nombre: Alexis Paul
Fecha 22-03-2020
Test de intrusión es la parte donde se libera el proyecto para descubrir y encontrar fallas en la seguridad. Esta prioridad se le conoce como la fase de testing.
Test de caja negra basados en riesgos es la parte donde se lleva a cabo la prueba funcional para validar si el componente del software cumple o no con sus especificaciones. Esta prioridad se le conoce como la fase de testing.
Casos de abuso o fuzzing es la parte donde se realizan pruebas automáticas donde se proveen datos al azar, inválidos y no esperados en las entradas de datos del software. Esta prioridad se le conoce como la fase de testing.
Requisitos de seguridad por parte de los desarrolladores donde se comprueban que las funcionales se llevaron a cabo según lo destinado al software. Esta prioridad se le conoce como la fase de requisitos y análisis.
Operaciones de seguridad.
Esquema del McGraw´s
Writing Secure Code TEMA 1 – Actividades
Asignatura Seguridad en el Software
Datos del alumno Apellidos: Cabrera Aguilar Nombre: Alexis Paul
Fecha 22-03-2020
Este modelo se tienen 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. Las distintas fases las vamos describiendo a continuación:
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.
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. (flu-project, 2014)
Esquema del Writing Secure Code
TEMA 1 – Actividades
Asignatura Seguridad en el Software
Datos del alumno Apellidos: Cabrera Aguilar Nombre: Alexis Paul
Fecha 22-03-2020
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.
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.
TEMA 1 – Actividades
Asignatura Seguridad en el Software
Datos del alumno Apellidos: Cabrera Aguilar Nombre: Alexis Paul
Fecha 22-03-2020
Esquema del Oracle Software Security Assurance
TSP-Secure Modelo de ciclo de vida seguro TSP, Team Software Process, tiene como objetivo conseguir un desarrollo de aplicaciones seguras mediante la intervención en el proceso de la guía ofrecida por CERT. Además, también 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 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. 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. (us-cert, 2014)
TEMA 1 – Actividades
Asignatura Seguridad en el Software
Datos del alumno Apellidos: Cabrera Aguilar Nombre: Alexis Paul
Fecha 22-03-2020
Esquema del TSP-Secure
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. 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.
TEMA 1 – Actividades
Asignatura Seguridad en el Software
Datos del alumno
Fecha
Apellidos: Cabrera Aguilar
22-03-2020
Nombre: Alexis Paul
Comparación de los diferentes S-SDLC, cubriendo al menos las siguientes características: INGENIERÍA DE
S-SDLC
Microsoft TrustWorthy
REQUISITOS
Define proyecto Define Limitaciones. Especifica requisitos.
DISEÑO
IMPLEMENTACIÓN
Permite valorar y analizar la seguridad, para detectar vulnerabilidades y establecer un plan para combatir los riesgos encontrados.
Permite establecer medidas de seguridad que ayuda a mejorar la calidad de las pruebas.
Computing SDL
The Building Security In Maturity Model (BSIMM)
Establece el análisis Precisa análisis de riesgo. Requisitos de seguridad
McGraw´s
PRUEBAS Y VERIFICACIÓN
Realiza pruebas para poder encontrar las vulnerabilidades que este causando fallas. Además se ejecuta un feedback para hacer modificaciones y mejoras.
EMPRESA METODOLOGÍA
Microsoft
Tradicional
Realiza pruebas de
de amenazas,
penetración. Análisis de
técnicas de modelado
Aplica revisiones al
riesgo. Test de intrusión.
GaryMCgr
bajo estándares de
código.
Caja negra. Fuzzing.
aw y
seguridad que
Requisitos de seguridad.
Cigital
permiten revisar la
Evaluación de
fase de diseño.
seguridad.
Tradicional
Promueve el
Oracle Software
desarrollo
Tiene su propia
Aplica un análisis
Aplica un análisis
seguro, define
normativa de
dinámico, durante
dinámico, durante las
metodologías
seguridad para
las fases finales del
fases finales del
Security
consistentes
identificar
software, dirigida a
software, dirigida a API’s
Assurance
validadas a
vulnerabilidades,
API’s e interfaces
e interfaces por medio
cada una de
validación de datos y
por medio de
de técnicas de fuzzing.
las
administración de
técnicas de fuzzing.
organizacione
usuarios
Oracle
Tradicional
s haciendo un previo estudio de factibilidad
Writing Secure Code
Valora
Ejecuta revisión final
Aplica soluciones de
conocimiento
de seguridad.
seguridad,
s. Específica
Determina criterios
basándose en
Ejecuta pruebas de
roles de
de seguridad finales.
estándares
vulnerabilidades.
seguridad
Aplica análisis de
respectivos
dentro del
amenazas.
grupo.
TEMA 1 – Actividades
Microsoft
Tradicional
Asignatura Seguridad en el Software
TSP-Secure
Datos del alumno
Fecha
Apellidos: Cabrera Aguilar
22-03-2020
Nombre: Alexis Paul Proporciona un
Emplea niveles de
Establece procesos de
Promueve
marco de trabajo el
adaptabilidad para
desarrollo usando
Software
desarrollo de
cual facilita el diseño
cada una de sus
estrategias de
Engineer
software bajo
y métodos
fases aplicando
adaptación que permiten
Institute
estándares de
organizados con la
estándares de
el acoplamiento al
seguridad.
idea de generar
seguridad
lenguaje de
software de calidad.
Tradicional
programación y software final.
CLASP
Define
Aplica análisis de
parámetros de
amenazas, técnicas
Seguridad.
de modelado bajo
Estudio de
estándares de
amenazas.
seguridad que permiten revisar la fase de diseño
TEMA 1 – Actividades
Ejecuta Aplica revisiones
evaluación de
al
seguridad por
código.
medio de test de penetración.
OWASP Tradicional
Asignatura Seguridad en el Software
Datos del alumno Apellidos: Cabrera Aguilar Nombre: Alexis Paul
Fecha 22-03-2020
Microsoft Trustworthy Computing SDL. CLASP: Comprehensive Lightweight Application Security Process. Team Software Process (TSP). Oracle Software Security Assurance. Appropriate and Effective Guidance in Information Security (AEGIS). Rational Unified Process-Secure (RUPSec). Secure Software Development Model (SSDM). Waterfall-Based Software Security Engineering Process ModelBuilding Security In Maturity Model (BSIMM) . Software Assurance Maturity Model (OPEN SAMM)
Propuesta de S-SDLC
TEMA 1 – Actividades
Asignatura Seguridad en el Software
Datos del alumno Apellidos: Cabrera Aguilar Nombre: Alexis Paul
Fecha 22-03-2020
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 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. En primer lugar, y tras definir los roles de los participantes en el proyecto, todos deben asistir a la formación en seguridad por parte de expertos en la materia. Siempre habrá una figura de security manager que 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. El security manager realizará en paralelo con el project manager un seguimiento del proyecto. En todas las fases del SDLC se realizará una review de estado, 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 ese instante. Además, se extiende el modelado de amenazas a cada una de las siguientes fases (requisitos, diseño e implementación). De este modo será incremental, y las amenazas pueden ir saliendo en cada fase poco a poco. Se realizarán pruebas de pentesting sobre las aplicaciones en 3 fases, después de implementar, en la de verificación y antes de liberar se pasará una nueva prueba de intrusión. Todo esto debe ser guiado por Q&A dónde se integrará un proceso de seguridad, dónde se encuentre la figura del Security Manager, y disponga de un equipo con él para llevar a cabo todo lo necesario en el proyecto.
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 TEMA 1 – Actividades
Asignatura Seguridad en el Software
Datos del alumno Apellidos: Cabrera Aguilar Nombre: Alexis Paul
Fecha 22-03-2020
que estamos creando; ya que de esto dependerá que modelos podemos tomar como referencia para nuestro proyecto.
TEMA 1 – Actividades