software

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

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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