Software

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 13

Asignatura Datos del alumno Fecha

Seguridad en el Apellidos: Cabrera Aguilar


22-03-2020
Software Nombre: Alexis Paul

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 Datos del alumno Fecha
Seguridad en el Apellidos: Cabrera Aguilar
22-03-2020
Software Nombre: Alexis Paul

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 Datos del alumno Fecha
Seguridad en el Apellidos: Cabrera Aguilar
22-03-2020
Software Nombre: Alexis Paul

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 Datos del alumno Fecha
Seguridad en el Apellidos: Cabrera Aguilar
22-03-2020
Software Nombre: Alexis Paul

 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 Datos del alumno Fecha
Seguridad en el Apellidos: Cabrera Aguilar
22-03-2020
Software Nombre: Alexis Paul

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 Datos del alumno Fecha
Seguridad en el Apellidos: Cabrera Aguilar
22-03-2020
Software Nombre: Alexis Paul

 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 Datos del alumno Fecha
Seguridad en el Apellidos: Cabrera Aguilar
22-03-2020
Software Nombre: Alexis Paul

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 Datos del alumno Fecha
Seguridad en el Apellidos: Cabrera Aguilar
22-03-2020
Software Nombre: Alexis Paul

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 Datos del alumno Fecha
Seguridad en el Apellidos: Cabrera Aguilar
22-03-2020
Software Nombre: Alexis Paul

 Comparación de los diferentes S-SDLC, cubriendo al menos las siguientes


características:

INGENIERÍA PRUEBAS Y
DE DISEÑO IMPLEMENTACIÓN VERIFICACIÓN EMPRESA METODOLOGÍA
REQUISITOS
S-SDLC
Permite valorar y
analizar la seguridad,
Define
para detectar Permite establecer Realiza pruebas para
proyecto
vulnerabilidades y medidas de poder encontrar las
Define
establecer un plan seguridad que ayuda vulnerabilidades que
Limitaciones.
Microsoft para combatir los a mejorar la calidad este causando fallas. Microsoft Tradicional
Especifica
riesgos encontrados. de las pruebas. Además se ejecuta un
TrustWorthy requisitos.
feedback para hacer
Computing SDL modificaciones y
mejoras.

The Building Establece el análisis Realiza pruebas de


de amenazas, penetración. Análisis de
Security In Precisa
técnicas de modelado Aplica revisiones al riesgo. Test de intrusión. GaryMCgr
Maturity análisis de
bajo estándares de código. Caja negra. Fuzzing. aw y
riesgo.
Model seguridad que Requisitos de seguridad. Cigital
Requisitos de Tradicional
(BSIMM) permiten revisar la Evaluación de
seguridad
fase de diseño. seguridad.
McGraw´s

Promueve el
desarrollo Tiene su propia Aplica un análisis Aplica un análisis
Oracle
seguro, define normativa de dinámico, durante dinámico, durante las
Software
metodologías seguridad para las fases finales del fases finales del
Oracle Tradicional
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
s haciendo un
previo estudio
de factibilidad

Valora Ejecuta revisión final Aplica soluciones de


Writing conocimiento de seguridad. seguridad,
Secure Code 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
Microsoft
dentro del amenazas. Tradicional
grupo.

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Seguridad en el Apellidos: Cabrera Aguilar
22-03-2020
Software Nombre: Alexis Paul

Proporciona un Emplea niveles de Establece procesos de


Promueve marco de trabajo el adaptabilidad para desarrollo usando Software
TSP-Secure
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 Tradicional
estándares de organizados con la estándares de el acoplamiento al
seguridad. idea de generar seguridad lenguaje de
software de calidad. programación y software
final.

Define Aplica análisis de Ejecuta


CLASP parámetros de amenazas, técnicas Aplica revisiones evaluación de
Seguridad. de modelado bajo al seguridad por OWASP
Estudio de estándares de
código. medio de test de Tradicional
amenazas. seguridad que
penetración.
permiten revisar la
fase de diseño

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Seguridad en el Apellidos: Cabrera Aguilar
22-03-2020
Software Nombre: Alexis Paul

 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 Datos del alumno Fecha
Seguridad en el Apellidos: Cabrera Aguilar
22-03-2020
Software Nombre: Alexis Paul

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 Datos del alumno Fecha
Seguridad en el Apellidos: Cabrera Aguilar
22-03-2020
Software Nombre: Alexis Paul

que estamos creando; ya que de esto dependerá que modelos podemos tomar como
referencia para nuestro proyecto.

TEMA 1 – Actividades

También podría gustarte