SlideShare una empresa de Scribd logo
Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Seguridad en la Web
03 de mayo de 2015 Página 1 de 4
Metodologías de Desarrollo de Aplicaciones
Web Seguras
Introducción
Bien es sabido que ningún sistema del tipo que sea, basado en hardware o software, es
totalmente seguro, ya sea en mayor o menor medida pero todos resultan inseguros. Por
ello se la famosa frase del prestigioso profesor de ciencias computacionales Gene Spafford
quién dice que “El único sistema seguro es aquel que está apagado y desconectado, ente-
rrado en un refugio de cemento, rodeado por gas venenoso y custodiado por guardianes
bien pagados y muy bien armados. Aun así, yo no apostaría mi vida por él”.
Es por ello que desde hace ya varios años los desarrolladores han comenzado a prestar
atención en este aspecto y tratar de revisar aspectos de seguridad en sus aplicaciones, sin
embargo la técnica tradicional que comúnmente se ocupa es la de desarrollar y una vez
concluida la aplicación realizar pruebas de seguridad, sin embargo han comenzado a darse
cuenta que esto resulta problemático, difícil de llevar a cabo y sobre todo más caro, pues
las correcciones implican la reingeniería de la aplicación, y ello sin considerar que estos pro-
blemas son exponenciales al tamaño y robustez de la aplicación.
Con el paso del tiempo los desarrolladores han ido percibiendo estos problemas y han
intentado nuevas formas, al grado de establecer muy completas propuestas de procesos a
llevar a cabo para construir aplicaciones seguras, incluso al punto de crear metodologías
que han sido ampliamente usadas. Las metodologías de desarrollo para software seguro
suelen ser un complemento de las metodologías de desarrollo tradicionales, ya que se en-
focan estrictamente en la seguridad, y aunque la mayoría de estás metodologías son de
propósito general para cualquier tipo de sistema, lenguaje, plataforma o tecnología; tam-
bién se han llegado a crear metodologías para usos específicos, como el caso de OWASP
que se enfoca al entorno web. Así pues, por esta creciente preocupación por desarrollar
aplicaciones web más seguras es que en este documento se recopilan y describe de forma
breve las que se podrían considerar como las dos metodologías más influyentes.
1. Security Quality Requirements Engineering (SQUARE)
SQUARE es una metodología creada en 2005 por el equipo CERT del Software Engineering
Institute (SEI) que se centra en la obtención y análisis de requerimientos, por lo que es per-
fectamente aplicable a la fase inicial del proceso de desarrollo de un software bajo meto-
dología tradicional, o a lo largo de todo el desarrollo en el caso de metodologías ágiles. Así
que SQUARE resulta ideal pues la mayor parte de problemas de un software se encuentran
en la fase de requisitos por lo que en aspectos de seguridad, resultará bastante apropiada
su implementación.
Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Seguridad en la Web
03 de mayo de 2015 Página 2 de 4
La razón por la que muchos proyectos de software fracasan o no alcanzan sus objetivos
iniciales es porque la fase de desarrollo que involucra la determinación, análisis y especifi-
cación fue llevada a cabo de forma escaza debido a su dificultad. Si a estos requisitos se le
suman los requisitos de seguridad, entonces el proceso se vuelve en una tarea aún más
difícil pero que bien vale la pena para lograr un software correcto, y en este caso, seguro,
pues precisamente SQUARE lo que plantea es establecer la seguridad desde las etapas tem-
pranas del ciclo de vida del desarrollo.
La metodología está basada en nueve pasos, los cuales se describen e el informe, se
indica su finalidad, las responsabilidades de los participantes, las técnicas que se pueden
emplear y resultados a obtener (Software Engineering Institute, 2005).
1. Establecer un vocabulario común.
2. Identificación de objetivos de seguridad.
3. Desarrollo de artefactos (escenarios, diseños, casos de mal uso, etc.)
4. Evaluación de riesgos
5. Elección de técnicas para obtener requisitos
6. Obtención de requisitos de seguridad
7. Clasificación de requisitos
8. Priorización de requisitos
9. Revisión de los requisitos
Se han creado diferentes informes sobre SQUARE, el primero describe la metodología,
el segundo muestra un ejemplo de la aplicación de la metodología a un sistema administra-
tivo y el cual puede servir de referencia para su implementación, y finalmente un tercer
informe presenta un caso de estudio donde se presentan los resultados después de haber
llevado a cabo la metodología con 3 clientes a lo largo de seis meses. SQUARE ha sido exi-
tosamente extendido que de hecho se ha incorporado en modelos del Ciclo de vida tradi-
cional, se le han creado métricas, evaluaciones de costos de adquisición, e incluso hecho
comparaciones con otras metodologías1.
2. Correctness by Construction (CbyC)
Por su parte CbyC es una metodología que desarrolló Praxis High Integrity Systems en 2001,
pero que está más orientada a la industria aeroespacial y sistemas críticos de seguridad, por
lo que bien puede ser implementada en cualquier otro contexto ya que combina los méto-
dos formales con el desarrollo ágil muy usado hoy en día. Con CbyC se busca desarrollar
desde un inicio sistemas de calidad y con requerimientos muy estrictos en seguridad lle-
gando a niveles extremadamente bajos de errores, ello gracias a que se basa en tres princi-
pios básicos (Build Security In, 2006):
1
Se puede consultar una amplia lista de informes con solo buscar “Security Quality Requirements Engineering“
en el sitio http://sei.cmu.edu/
Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Seguridad en la Web
03 de mayo de 2015 Página 3 de 4
1. Hacer que sea muy difícil introducir errores
2. Asegúrese de que los errores se eliminan lo más cerca posible del punto de intro-
ducción, ya que se harán a pesar principio 1
3. Generar pruebas de aptitud para el uso en todo el desarrollo como un subproducto
natural del proceso (debido a que muestra que el sistema desarrollado es seguro o
seguro es a menudo más difícil de lo que es así).
En CbyC se logra la detección temprana de errores y alta seguridad gracias a las técni-
cas que plantea y que a su vez también son los componentes básicos del proceso, estos
procesos o actividades de la metodología son:
1. Planificación de procesos
2. Capacitación del personal y de competencias
3. Trazabilidad de requisitos desde la especificación de casos de código y prueba
4. Gestión de fallos
5. Gestión del cambio
6. Gestión de la configuración
7. Recolección de métricas
Por otro lado las técnicas empleadas durante los procesos son:
 Hacer anotaciones de sonido para disminuir ambigüedades en la especificación de
requisitos.
 Estricta validación de entregables en cada etapa de desarrollo.
 Desarrollo incremental, de forma que se escriba algo de código y se verifique.
 Evitar la repetición, pues si un requisito fue ambiguo entonces se repetirá el error.
 Hacerlo simple, pues de ello dependerá que las revisiones y desarrollo sean fáciles.
 Gestionar los riesgos para responder mejor ante incidencias.
 Pensar fuerte, para lograr los objetivos.
Así pues, CbyC es una excelente metodología pero no recomendada para todos los ca-
sos, sino para entornos que requieran demasiada seguridad, pues resulta demasiado es-
tricta y es necesario ceñirse específicamente a los procesos establecidos tanto en CbyC
como en la metodología de ingeniería de software usada, por lo que si el proceso de inge-
niería no se lleva a cabo correctamente, entonces no resulta viable usar CbyC.
3. Otras metodologías existentes
El análisis de resultados de Vega Zepeda (2011) recoge una lista de un par de metodologías
y varios procesos y mejoras de metodologías empleados para construir software seguro.
Entre ellos se pueden destacar el proceso de desarrollo propuesto por Apvrille y Pourzandi
que emplea el proceso de desarrollo iterativo adaptado con seguridad; el método Clean-
room que pretende lograr cero errores, es decir, más estricto que CbyC; también esta
RUPsec que es una extensión del Proceso de Desarrollo Unificado (RUP); CLASP es un mé-
todo que indica y documenta las actividades para hacer un software seguro.
Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Seguridad en la Web
03 de mayo de 2015 Página 4 de 4
Referencias Bibliográficas
Build Security In. (05 de Mayo de 2006). Build Security In. Recuperado el 02 de Mayo de
2015, de Correctness by Construction: https://buildsecurityin.us-
cert.gov/articles/knowledge/sdlc-process/correctness-by-construction
navegapolis.net. (17 de Enero de 2006). Recuperado el 02 de Mayo de 2015, de SQUARE:
metodología para requisitos de seguridad:
http://www.navegapolis.net/content/view/238/52/
Software Engineering Institute. (Noviembre de 2005). Software Engineering Institute.
Recuperado el 02 de Mayo de 2015, de Security Quality Requirements Engineering:
http://resources.sei.cmu.edu/library/asset-view.cfm?assetID=7657
Vega Zepeda, V. (Noviembre de 2011). Academia.edu. Obtenido de Ingeniería de
Requerimientos para Productos Seguros. Resultados de un Análisis Bibliográfico:
https://www.academia.edu/6997116/Ingenier%C3%ADa_de_Requerimientos_par
a_Productos_Seguros._Resultados_de_un_An%C3%A1lisis_Bibliogr%C3%A1fico

Más contenido relacionado

PPTX
Pengenalan Dasar-Dasar Photoshop - dewifitriyani__
PDF
Metodología OOSE.pdf
PDF
Software engineering
PPTX
Psp (personal software process) guia 0 introducción
PPTX
Siebel ip17
PDF
Requirements Elicitation Techniques For Data Discovery
PDF
La necesidad de construir software seguro. IBM Software Summit #Start013
PPTX
La obsolencia programada
Pengenalan Dasar-Dasar Photoshop - dewifitriyani__
Metodología OOSE.pdf
Software engineering
Psp (personal software process) guia 0 introducción
Siebel ip17
Requirements Elicitation Techniques For Data Discovery
La necesidad de construir software seguro. IBM Software Summit #Start013
La obsolencia programada

Similar a Metodologías de Desarrollo de Aplicaciones Web Seguras (20)

PPT
Development of Secure Applications
PPTX
Metodología para el desarrollo de software para web.pptx
DOCX
Monografia
PPTX
Lineas de productos de software y metodo watch
PDF
Owasp Latam tour 2014 - Poniendo el caballo delante del carro
DOCX
Metodologia de software
DOCX
Seguridad en el ciclo de desarrollo del software
PDF
QA and Security Testing in the SDLC
PDF
Fundamentos de la calidad del software
PPTX
Modelo en cascada
PPTX
Modelo en cascada
PDF
Calidad y Seguridad en Procesos de Desarrollo de Software
PDF
Metodologias de Desarollo de Software - T.Práctico #2 (ISI-311)
PPTX
Sistemas i ultimo trabajo
DOCX
Desarrollo en espiral
DOCX
Metodologias de desarrollo de software
PDF
Metodologías de modelado para aplicaciones web
PDF
metodologias-desarrollo-software.pdf
PDF
metodologias-desarrollo-software.pdf
PDF
Metodologias desarrollo-software
Development of Secure Applications
Metodología para el desarrollo de software para web.pptx
Monografia
Lineas de productos de software y metodo watch
Owasp Latam tour 2014 - Poniendo el caballo delante del carro
Metodologia de software
Seguridad en el ciclo de desarrollo del software
QA and Security Testing in the SDLC
Fundamentos de la calidad del software
Modelo en cascada
Modelo en cascada
Calidad y Seguridad en Procesos de Desarrollo de Software
Metodologias de Desarollo de Software - T.Práctico #2 (ISI-311)
Sistemas i ultimo trabajo
Desarrollo en espiral
Metodologias de desarrollo de software
Metodologías de modelado para aplicaciones web
metodologias-desarrollo-software.pdf
metodologias-desarrollo-software.pdf
Metodologias desarrollo-software
Publicidad

Más de Héctor Garduño Real (20)

PDF
Guía para redactar trabajos profesionales.pdf
PDF
Sistema para la Evaluación del Aprendizaje en entornos B-Learning
PDF
Tesis - Fábrica de software Estado de México 2009
PDF
Asignatura: Informática 1
PDF
Asignatura: Interconectividad de Redes
PDF
Asignatura: Fundamentos de Redes de Computadoras
PDF
Asignatura: Desarrollo Sustentable
PDF
Asignatura: Introducción a las ciencias de la computación
PDF
Principales CMS y Estadísticas de uso
PDF
Práctica de instalación y uso de Joomla
PDF
Práctica de Creación de Máquina Virtual con LAMP en Amazon Web Services
PDF
Práctica con WebGoat: HTTP Splitting, DoS, Ma-licious Execution e Injection F...
PDF
Análisis de lecturas sobre el Internet de las Cosas
PDF
Caso de éxito de IoT: Agricultura inteligente en Viñedos 2.0
PDF
Análisis del Whitepaper DB4O
PDF
Práctica de instalación y uso de Alfresco
PDF
Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)
PDF
Más alla de la web 2.0
PDF
Práctica de herramientas web 2.0
PDF
Práctica en Joomla de reproductor de streaming de video y audio
Guía para redactar trabajos profesionales.pdf
Sistema para la Evaluación del Aprendizaje en entornos B-Learning
Tesis - Fábrica de software Estado de México 2009
Asignatura: Informática 1
Asignatura: Interconectividad de Redes
Asignatura: Fundamentos de Redes de Computadoras
Asignatura: Desarrollo Sustentable
Asignatura: Introducción a las ciencias de la computación
Principales CMS y Estadísticas de uso
Práctica de instalación y uso de Joomla
Práctica de Creación de Máquina Virtual con LAMP en Amazon Web Services
Práctica con WebGoat: HTTP Splitting, DoS, Ma-licious Execution e Injection F...
Análisis de lecturas sobre el Internet de las Cosas
Caso de éxito de IoT: Agricultura inteligente en Viñedos 2.0
Análisis del Whitepaper DB4O
Práctica de instalación y uso de Alfresco
Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)
Más alla de la web 2.0
Práctica de herramientas web 2.0
Práctica en Joomla de reproductor de streaming de video y audio
Publicidad

Último (9)

PPTX
Control de seguridad en los sitios web.pptx
PPTX
Conceptos basicos de Base de Datos y sus propiedades
PPTX
Fundamentos de Python - Curso de Python dia 1
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PPTX
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
PDF
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
PDF
Presentacion de compiladores e interpretes
PPTX
Implementación equipo monitor12.08.25.pptx
PPTX
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
Control de seguridad en los sitios web.pptx
Conceptos basicos de Base de Datos y sus propiedades
Fundamentos de Python - Curso de Python dia 1
AutoCAD Herramientas para el futuro, Juan Fandiño
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
Presentacion de compiladores e interpretes
Implementación equipo monitor12.08.25.pptx
Tratará sobre Grafos_y_Arboles_Presentacion.pptx

Metodologías de Desarrollo de Aplicaciones Web Seguras

  • 1. Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Seguridad en la Web 03 de mayo de 2015 Página 1 de 4 Metodologías de Desarrollo de Aplicaciones Web Seguras Introducción Bien es sabido que ningún sistema del tipo que sea, basado en hardware o software, es totalmente seguro, ya sea en mayor o menor medida pero todos resultan inseguros. Por ello se la famosa frase del prestigioso profesor de ciencias computacionales Gene Spafford quién dice que “El único sistema seguro es aquel que está apagado y desconectado, ente- rrado en un refugio de cemento, rodeado por gas venenoso y custodiado por guardianes bien pagados y muy bien armados. Aun así, yo no apostaría mi vida por él”. Es por ello que desde hace ya varios años los desarrolladores han comenzado a prestar atención en este aspecto y tratar de revisar aspectos de seguridad en sus aplicaciones, sin embargo la técnica tradicional que comúnmente se ocupa es la de desarrollar y una vez concluida la aplicación realizar pruebas de seguridad, sin embargo han comenzado a darse cuenta que esto resulta problemático, difícil de llevar a cabo y sobre todo más caro, pues las correcciones implican la reingeniería de la aplicación, y ello sin considerar que estos pro- blemas son exponenciales al tamaño y robustez de la aplicación. Con el paso del tiempo los desarrolladores han ido percibiendo estos problemas y han intentado nuevas formas, al grado de establecer muy completas propuestas de procesos a llevar a cabo para construir aplicaciones seguras, incluso al punto de crear metodologías que han sido ampliamente usadas. Las metodologías de desarrollo para software seguro suelen ser un complemento de las metodologías de desarrollo tradicionales, ya que se en- focan estrictamente en la seguridad, y aunque la mayoría de estás metodologías son de propósito general para cualquier tipo de sistema, lenguaje, plataforma o tecnología; tam- bién se han llegado a crear metodologías para usos específicos, como el caso de OWASP que se enfoca al entorno web. Así pues, por esta creciente preocupación por desarrollar aplicaciones web más seguras es que en este documento se recopilan y describe de forma breve las que se podrían considerar como las dos metodologías más influyentes. 1. Security Quality Requirements Engineering (SQUARE) SQUARE es una metodología creada en 2005 por el equipo CERT del Software Engineering Institute (SEI) que se centra en la obtención y análisis de requerimientos, por lo que es per- fectamente aplicable a la fase inicial del proceso de desarrollo de un software bajo meto- dología tradicional, o a lo largo de todo el desarrollo en el caso de metodologías ágiles. Así que SQUARE resulta ideal pues la mayor parte de problemas de un software se encuentran en la fase de requisitos por lo que en aspectos de seguridad, resultará bastante apropiada su implementación.
  • 2. Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Seguridad en la Web 03 de mayo de 2015 Página 2 de 4 La razón por la que muchos proyectos de software fracasan o no alcanzan sus objetivos iniciales es porque la fase de desarrollo que involucra la determinación, análisis y especifi- cación fue llevada a cabo de forma escaza debido a su dificultad. Si a estos requisitos se le suman los requisitos de seguridad, entonces el proceso se vuelve en una tarea aún más difícil pero que bien vale la pena para lograr un software correcto, y en este caso, seguro, pues precisamente SQUARE lo que plantea es establecer la seguridad desde las etapas tem- pranas del ciclo de vida del desarrollo. La metodología está basada en nueve pasos, los cuales se describen e el informe, se indica su finalidad, las responsabilidades de los participantes, las técnicas que se pueden emplear y resultados a obtener (Software Engineering Institute, 2005). 1. Establecer un vocabulario común. 2. Identificación de objetivos de seguridad. 3. Desarrollo de artefactos (escenarios, diseños, casos de mal uso, etc.) 4. Evaluación de riesgos 5. Elección de técnicas para obtener requisitos 6. Obtención de requisitos de seguridad 7. Clasificación de requisitos 8. Priorización de requisitos 9. Revisión de los requisitos Se han creado diferentes informes sobre SQUARE, el primero describe la metodología, el segundo muestra un ejemplo de la aplicación de la metodología a un sistema administra- tivo y el cual puede servir de referencia para su implementación, y finalmente un tercer informe presenta un caso de estudio donde se presentan los resultados después de haber llevado a cabo la metodología con 3 clientes a lo largo de seis meses. SQUARE ha sido exi- tosamente extendido que de hecho se ha incorporado en modelos del Ciclo de vida tradi- cional, se le han creado métricas, evaluaciones de costos de adquisición, e incluso hecho comparaciones con otras metodologías1. 2. Correctness by Construction (CbyC) Por su parte CbyC es una metodología que desarrolló Praxis High Integrity Systems en 2001, pero que está más orientada a la industria aeroespacial y sistemas críticos de seguridad, por lo que bien puede ser implementada en cualquier otro contexto ya que combina los méto- dos formales con el desarrollo ágil muy usado hoy en día. Con CbyC se busca desarrollar desde un inicio sistemas de calidad y con requerimientos muy estrictos en seguridad lle- gando a niveles extremadamente bajos de errores, ello gracias a que se basa en tres princi- pios básicos (Build Security In, 2006): 1 Se puede consultar una amplia lista de informes con solo buscar “Security Quality Requirements Engineering“ en el sitio http://sei.cmu.edu/
  • 3. Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Seguridad en la Web 03 de mayo de 2015 Página 3 de 4 1. Hacer que sea muy difícil introducir errores 2. Asegúrese de que los errores se eliminan lo más cerca posible del punto de intro- ducción, ya que se harán a pesar principio 1 3. Generar pruebas de aptitud para el uso en todo el desarrollo como un subproducto natural del proceso (debido a que muestra que el sistema desarrollado es seguro o seguro es a menudo más difícil de lo que es así). En CbyC se logra la detección temprana de errores y alta seguridad gracias a las técni- cas que plantea y que a su vez también son los componentes básicos del proceso, estos procesos o actividades de la metodología son: 1. Planificación de procesos 2. Capacitación del personal y de competencias 3. Trazabilidad de requisitos desde la especificación de casos de código y prueba 4. Gestión de fallos 5. Gestión del cambio 6. Gestión de la configuración 7. Recolección de métricas Por otro lado las técnicas empleadas durante los procesos son:  Hacer anotaciones de sonido para disminuir ambigüedades en la especificación de requisitos.  Estricta validación de entregables en cada etapa de desarrollo.  Desarrollo incremental, de forma que se escriba algo de código y se verifique.  Evitar la repetición, pues si un requisito fue ambiguo entonces se repetirá el error.  Hacerlo simple, pues de ello dependerá que las revisiones y desarrollo sean fáciles.  Gestionar los riesgos para responder mejor ante incidencias.  Pensar fuerte, para lograr los objetivos. Así pues, CbyC es una excelente metodología pero no recomendada para todos los ca- sos, sino para entornos que requieran demasiada seguridad, pues resulta demasiado es- tricta y es necesario ceñirse específicamente a los procesos establecidos tanto en CbyC como en la metodología de ingeniería de software usada, por lo que si el proceso de inge- niería no se lleva a cabo correctamente, entonces no resulta viable usar CbyC. 3. Otras metodologías existentes El análisis de resultados de Vega Zepeda (2011) recoge una lista de un par de metodologías y varios procesos y mejoras de metodologías empleados para construir software seguro. Entre ellos se pueden destacar el proceso de desarrollo propuesto por Apvrille y Pourzandi que emplea el proceso de desarrollo iterativo adaptado con seguridad; el método Clean- room que pretende lograr cero errores, es decir, más estricto que CbyC; también esta RUPsec que es una extensión del Proceso de Desarrollo Unificado (RUP); CLASP es un mé- todo que indica y documenta las actividades para hacer un software seguro.
  • 4. Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Seguridad en la Web 03 de mayo de 2015 Página 4 de 4 Referencias Bibliográficas Build Security In. (05 de Mayo de 2006). Build Security In. Recuperado el 02 de Mayo de 2015, de Correctness by Construction: https://buildsecurityin.us- cert.gov/articles/knowledge/sdlc-process/correctness-by-construction navegapolis.net. (17 de Enero de 2006). Recuperado el 02 de Mayo de 2015, de SQUARE: metodología para requisitos de seguridad: http://www.navegapolis.net/content/view/238/52/ Software Engineering Institute. (Noviembre de 2005). Software Engineering Institute. Recuperado el 02 de Mayo de 2015, de Security Quality Requirements Engineering: http://resources.sei.cmu.edu/library/asset-view.cfm?assetID=7657 Vega Zepeda, V. (Noviembre de 2011). Academia.edu. Obtenido de Ingeniería de Requerimientos para Productos Seguros. Resultados de un Análisis Bibliográfico: https://www.academia.edu/6997116/Ingenier%C3%ADa_de_Requerimientos_par a_Productos_Seguros._Resultados_de_un_An%C3%A1lisis_Bibliogr%C3%A1fico