Logo Studenta
¡Este material tiene más páginas!

Vista previa del material en texto

PROYECTO 
 
 
 
 
 Desarrollo de una Propuesta Metodológica para Determinar la Seguridad en una 
Aplicación Web 
 
 
 
 
 
 
 
 
 
 
 
 
MARTHA ASCENCIO MENDOZA 
PEDRO JULIÁN MORENO PATIÑO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
UNIVERSIDAD TECNOLOGICA DE PEREIRA 
FACULTAD DE INGENIERÍAS 
PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN 
PEREIRA 
2011 
 
 
PROYECTO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
MARTHA ASCENCIO MENDOZA 
PEDRO JULIÁN MORENO PATIÑO 
 
 
 
 
 
 
INVESTIGACIÓN 
 
 
 
 
 
 
 
 
 
 
 
 
UNIVERSIDAD TECNOLOGICA DE PEREIRA 
FACULTAD DE INGENIERÍAS 
PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN 
PEREIRA 
2011 
 
 
Nota aceptación: 
 
_____________________________ 
_____________________________ 
_____________________________ 
_____________________________ 
 
 
 
 
 
 
 
 
 
______________________________________ 
Firma Jurado 
 
 
 
 
______________________________________ 
Firma Jurado 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Pereira, 2011 
1 
 
DEDICATORIA 
 
Para nuestras familias. 
 
 
El Presente proyecto está dedicado a mi familia, mi esposo Luis Giraldo y mis hijos 
Jorge Luis y Diego Alejandro Giraldo Ascencio quienes con su amor, sacrificio y 
apoyo incondicional me ayudaron a culminar esta etapa en mi proyecto de vida. 
 
 
MARTHA ASCENCIO MENDOZA 
 
 
A mi madre Nelly Patiño Ordoñez por su dedicación y apoyo incondicional en todo 
el tiempo que me dio ánimos en esta etapa tan importante, a mi Padre Pedro 
Pablo Moreno Moreno por siempre aconsejarme y llevarme por los buenos 
caminos, a mis hermanos Juan Pablo Moreno Patiño y Gessler Anderson Moreno 
Patiño por acompañarme para lograr esta meta. 
 
 
PEDRO JULIÁN MORENO PATIÑO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 
 
AGRADECIMIENTOS 
 
 
Al Decano de la Facultad de Ingenierías: EEFC, el Ingeniero José Gilberto Vargas 
Cano y al Director del Programa de Ingeniería de Sistemas, el Ingeniero Carlos 
Augusto Meneses por su orientación y su constante apoyo a lo largo de la carrera. 
 
Al Ingeniero Jovanny Antonio Castaño Mejía por inspirarnos a lo que debe ser un 
Ingeniero de Sistemas, su importancia y papel en la sociedad, por su pasión y 
esfuerzo al tratar de transmitir sus enseñanzas y aporte al Programa de Ingeniería 
de Sistemas. 
 
Igualmente, agradezco a mis profesores de la Universidad Tecnológica de Pereira 
por su conocimiento, paciencia y ayuda para permitirnos culminar nuestro 
proyecto. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3 
 
GLOSARIO 
 
 
TICs: Tecnologías de la Información y la Comunicación. 
 
APLICACIÓN WEB: En Ingeniería del Software una aplicación Web es aquella que 
los usuarios pueden utilizar accediendo a un servidor web a través de un 
Navegador, por lo tanto estas aplicaciones se codifican en lenguajes soportados 
por el navegador, entre los lenguajes se encuentran Html, CSS, Java Script. 
 
NAVEGADOR WEB: Es un programa que permite visualizar documentos de 
hipertexto, que combinan texto, imágenes, sonido, video, animaciones, enlaces, 
links o hipervínculos. 
 
SERVIDOR WEB: Un servidor Web es un ordenador en el que se ejecuta un 
programa servidor HTTP (Hypertext Transfer Protocol), por lo que puede 
blicar un sitio web en 
Internet, en una intranet o en una extranet1. 
 
HTTP: Este es uno de los protocolos más importantes que se utilizan dentro de 
Internet; es el protocolo que rige la comunicación entre un cliente que utiliza un 
navegador Web. La función principal de un servidor Web es poner a disposición de 
clientes páginas Web. 
 
LENGUAJE DE PROGRAMACIÓN: Un lenguaje de Programación es un idioma 
artificial que permite crear programas y software. 
 
HTML: Es un lenguaje demarcado que permite la construcción de páginas web. 
 
VULNERABILIDAD: Es un fallo de seguridad. Es la debilidad en un sistema 
permitiendo a un atacante violar la confidencialidad, integridad, disponibilidad, 
control de acceso y consistencia del sistema o de sus datos o aplicaciones. 
 
RIESGO: Se denomina riesgo a la posibilidad de que se materialice o no una 
amenaza aprovechando una vulnerabilidad. 
 
MAGERIT: Metodología de análisis y gestión de riesgos de los sistemas de 
información. 
 
AMENAZA: En sistemas de información una amenaza es la presencia de uno o 
más factores de diversa índole (personas, máquinas o sucesos) que de tener la 
oportunidad atacarían al sistema aprovechando el nivel de vulnerabilidad 
ocasionando serios daños. 
 
1 BROCHARD, Johnny, INTERNET INFORMATION SERVICES 6, Servidor Web 
4 
 
ATAQUE: El ataque es la materialización de una amenaza. 
 
IMPACTO: El impacto son las consecuencias de la materialización de una o más 
amenazas sobre los activos, es decir son los daños causados. 
 
ACTIVOS: Los activos son los recursos que pertenecen al sistema de información 
o que están relacionados con éste: Datos, Software, Hardware, Redes, Soporte 
(DVD, Tarjetas de memoria, Discos duros externos), Personal. 
 
SEGURIDAD INFORMÁTICA: Es la disciplina que se ocupa de diseñar las 
normas, procedimientos, métodos y técnicas destinados a conseguir un sistema 
de información seguro y confiable. 
 
AUDITORÍA: Es la actividad consistente en la emisión de una opinión profesional 
sobre si el objeto sometido a análisis representa adecuadamente la realidad que 
pretende reflejar o cumple con las condiciones que han sido acordadas en el nivel 
de servicio2. 
 
AUDITORÍA INFORMÁTICA: La auditoría es un análisis pormenorizado de un 
sistema de información que permite descubrir, identificar y corregir 
vulnerabilidades en los activos que lo componen y en los procesos que se 
realizan. Su finalidad es verificar que se cumplen los objetivos de la política de 
seguridad de la organización. Proporciona una imagen real y actual del estado de 
seguridad de un sistema de información3. 
 
PROTOCOLO DE SEGURIDAD: Un protocolo de seguridad es un conjunto de 
programas que usan esquemas de seguridad criptográfica4. 
 
PRUEBAS DE INTRUSIÓN (PENTEST): Un test de penetración es el arte de 
ejecutar hacking ético donde un grupo de especialistas en seguridad de la 
información verifican y documentan la seguridad o los controles de protección de 
una plataforma tecnológica con las mismas técnicas de un hacker/cracker con el 
fin de lograr comprometer a algún activo alcanzable por algún punto de la 
superficie de ataque de un sistema5. 
 
WEB SHELL: Aplicación web para ejecutar comandos de sistema operativo. 
 
FRAMEWORK: Es un entorno de trabajo que posibilita hacer las cosas 
rápidamente a través de herramientas. 
 
2 SCHNEIDER, Ben. Outsourcing: La herramienta de gestión que revoluciona el mundo de los 
negocios, Grupo EDITORIAL NORMA, Pág. 183 
3 AGUILERA, Purificación. Seguridad Informática, EDITEX, Pág. 22 
4 LÓPEZ BROX, Antonio. Promociones en espacios comerciales, EDITORIAL VERTICE, Pág. 395 
5 MCCLURE, SM Stuart. Hackers, Secretos y soluciones para seguridad de redes , Osborne-
McGrawHill, 2001 
5 
 
PRUEBA DE CONCEPTO: La prueba de concepto refiere a una demostración que 
en principio demuestre cómo un sistema puede ser protegido o ser comprometido, 
sin la necesidad de construir un equipo de trabajo completo para ese propósito6. 
 
CGI: De sus siglas en Inglés Common Gateway Interface, Es una interfaz que 
posibilita ejecutar solicitudes de clientes en aplicaciones externas al Servidor Web, 
que por lo general están escritas en lenguajes de scripting. 
 
SHELL: Intérprete de comandos que posibilita el acceso a servicios del sistema 
operativo. 
 
EXPLOIT: Software creado con la finalidad de explotar y aprovechar una 
vulnerabilidad ó hueco de seguridad. 
 
METASPLOIT: Es un framework con un conjunto de herramientas y exploits, que 
posibilitan el acceso a un sistema con vulnerabilidades o huecos de seguridad. 
 
CONSOLA: Es una interfaz de Usuario que posibilita el uso de una Shell para 
ejecutar acciones en el sistema operativo.COMANDO: Es un software que es ejecutado a través de una Shell. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6 WORDLINGO, Prueba de concepto [En línea], 
<http://www.worldlingo.com/ma/enwiki/es/Proof_of_concept#In_security>, [Citado el 31 de Agosto 
de 2011] 
6 
 
CONTENIDO 
 
 
DEDICATORIA .....................................................................................................................................1 
AGRADECIMIENTOS ..........................................................................................................................2 
GLOSARIO...........................................................................................................................................3 
INTRODUCCIÓN .................................................................................................................................8 
1. TITULO .....................................................................................................................................9 
2. FORMULACIÓN DEL PROBLEMA ...................................................................................... 10 
3. JUSTIFICACION ................................................................................................................... 11 
4. OBJETIVO GENERAL Y ESPECÍFICOS ............................................................................. 13 
4.1 OBJETIVO GENERAL ...................................................................................................... 13 
4.2 OBJETIVOS ESPECÍFICOS ............................................................................................. 13 
5. MARCO REFERENCIAL ....................................................................................................... 14 
5.1 MARCO TEÓRICO ........................................................................................................... 14 
5.1.1 APLICACIÓN WEB ............................................................................................................ 14 
5.1.2 SEGURIDAD INFORMÁTICA ........................................................................................... 17 
5.1.3 SEGURIDAD EN APLICACIONES WEB .......................................................................... 27 
5.1.4 VULNERABILIDADES EN LA WEB .................................................................................. 28 
5.1.5 HERRAMIENTAS DE PRUEBAS DE INTRUSIÓN ........................................................... 31 
5.1.6 LA SERIE 27000 ............................................................................................................... 45 
5.1.6.1 LA ISO 27001 ............................................................................................................ 45 
5.1.7 METODOLOGÍA OWASP ................................................................................................. 53 
5.1.8 METODOLOGÍA ISSAF .................................................................................................... 59 
5.2 MARCO NORMATIVO ...................................................................................................... 67 
5.2.1 LEY 1273 DE 2009 ............................................................................................................ 67 
6. PROPUESTA METODOLÓGICA.......................................................................................... 68 
6.1 ENFOQUE DE CAJA NEGRA .......................................................................................... 68 
6.2 ENFOQUE DE CAJA BLANCA ......................................................................................... 69 
6.2.1 CICLO DE DESARROLLO DEL SOFTWARE .................................................................. 70 
7. RECOMENDACIONES ......................................................................................................... 73 
8. CONCLUSIONES ................................................................................................................. 74 
9. REFERENCIAS BIBLIOGRÁFICAS ..................................................................................... 75 
 
 
7 
 
TABLA DE ILUSTRACIONES 
 
 
Ilustración 1 - Arquitectura Cliente Servidor ................................ ................................ ..... 14 
Ilustración 2 - Lenguajes de Programación Web ................................ .............................. 15 
Ilustración 3 - Funcionamiento de una Página Web ................................ ......................... 16 
Ilustración 4 - Seguridad Informática ................................ ................................ ................ 17 
Ilustración 5 - Gestión de Riesgos ................................ ................................ ................... 18 
Ilustración 6 - Resumen Seguridad Informática ................................ ............................... 26 
Ilustración 7 - Mapa de la guía para construir aplicaciones y servicios web seguros ....... 27 
Ilustración 8 - Cliente OPENVAS para buscar vulnerabilidades ................................ ...... 31 
Ilustración 9 - Cliente Nessus para buscar vulnerabilidades ................................ ............ 32 
Ilustración 10 - Escaneo de Servicios con NMAP ................................ ............................ 33 
Ilustración 11 - Escaneo de una aplicación Web con NIKTO ................................ ........... 34 
Ilustración 12 - Ataque de Inyección SQL con SQLMAP ................................ .................. 35 
Ilustración 13 - Resultado del Ataque de Inyección SQL con SQLNINJA ......................... 36 
Ilustración 14 - Funcionamiento de ataque XSS con XSSER ................................ .......... 37 
Ilustración 15 - Parámetros necesarios para Iniciar XSSER ................................ ............ 37 
Ilustración 16 - Resultado del ataque de XSSER ................................ ............................. 38 
Ilustración 17 - Escaneo de URL con Fimap ................................ ................................ .... 39 
Ilustración 18 - Interfaz y Consola de depuración de CSRFTESTER ............................... 40 
Ilustración 19 - Prueba de Intrusión con Owasp Mantra ................................ ................... 41 
Ilustración 20 - Estado del Escaneo, Owasp Mantra ................................ ........................ 41 
Ilustración 21 - Escaneo con Websecurify ................................ ................................ ....... 42 
Ilustración 22 - Reporte Websecurify ................................ ................................ ............... 43 
Ilustración 23 - Herramientas Backtrack ................................ ................................ .......... 44 
Ilustración 24 - Histórico de la ISO 27001 ................................ ................................ ........ 46 
Ilustración 25 - Modelo de Proceso PDCA ................................ ................................ ....... 47 
Ilustración 26 - Etapa de Planeación................................ ................................ ................ 48 
Ilustración 27 - Etapa de Implementación ................................ ................................ ........ 50 
Ilustración 28 - Etapa de Seguimiento ................................ ................................ ............. 51 
Ilustración 29 - Etapa de Mejora Continua ................................ ................................ ....... 52 
Ilustración 30 - Incremento de los costes de reparar bugs de seguridad en el SDLC ...... 53 
Ilustración 31 - Flujo de trabajo de la Metodología OWASP ................................ ............. 58 
Ilustración 32 - Metodología ISSAF ................................ ................................ ................. 60 
Ilustración 33 - Propuesta Metodológica ................................ ................................ .......... 728 
 
INTRODUCCIÓN 
 
 
La información es el activo más importante para toda organización, asegurarla trae 
beneficios y credibilidad para ella, entonces cabe preguntarnos ¿Dónde se 
encuentra la información o qué la manipula?. Es esencial saber que hoy en día la 
información se encuentra en una aplicación ó software, pero es muy importante 
conocer que el auge de las TICs y el Cloud Computing ha llevado a adquirir o 
desarrollar aplicaciones orientadas a la Web. 
 
Por esto debemos preguntarnos ¿Está la información segura?, por lo tanto no 
podemos dejar de hablar de la seguridad en aplicaciones Web, ya que a partir de 
ellas podemos obtener información. Ofrecer una propuesta metodológica para 
determinar la seguridad en una aplicación web puede ser de gran utilidad. 
 
La propuesta metodológica incluye componentes del estándar ISO 27001 y de 
metodologías existentes, tales como OWASP e ISSAF. 
 
Para hablar de seguridad de la información, no sé puede dejar de hablar de ISO 
27001, debido a que es el estándar de facto para la seguridad en la información, 
que ofrece un modelo para el establecimiento, implementación, operación, 
monitorización, revisión, mantenimiento y mejoras de todos los procesos que 
involucran la seguridad de la información en una organización por medio del 
Sistema de Gestión de la Seguridad de la Información (SGSI). 
 
OWASP es una metodología que tiene en cuenta la seguridad en el ciclo de 
desarrollo del software (SDLC). Por otro lado, ISSAF es una metodología para 
pruebas de intrusión en un sistema informático. 
 
Los capítulos 1º al 4º contienen el titulo, formulación del problema, justificación y 
objetivos respectivamente. En el capítulo 5º se abordan los conceptos teóricos que 
sirven de base para la elaboración de la propuesta, entre ellos se tiene aplicación 
Web, Seguridad Informática, Seguridad en aplicaciones Web, Vulnerabilidades en 
la Web, Herramientas de pruebas de Intrusión, ISO 27001, Metodología OWASP e 
ISSAF. 
 
En el capítulo 6º se presenta una propuesta metodológica para determinar la 
seguridad en una aplicación web bajo dos enfoques, el de caja negra y caja 
blanca. Los últimos tres capítulos contienen las recomendaciones, las 
conclusiones y la bibliografía respectivamente. 
 
 
 
 
 
9 
 
1. TITULO 
 
 
Desarrollo de una propuesta metodológica para determinar la seguridad en una 
aplicación web. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10 
 
2. FORMULACIÓN DEL PROBLEMA 
 
 
Durante años las aplicaciones web han sido vulneradas, permitiendo que agentes 
no autorizados tengan acceso a datos confidenciales y causando pérdida de 
información. Colombia es el cuarto país más vulnerable de América Latina luego 
de Brasil, México y Venezuela7. 
 
Este siglo ha sido catalogado como el siglo de la información8, por lo tanto son los 
datos y la información los que generan el activo más importante, de manera que 
ofrecer una aplicación web con altos niveles de seguridad, integridad y 
confiabilidad, es vital para las operaciones de cualquier negocio9. 
 
Otro de los factores que infieren en esta problemática es la falta de garantía a 
nivel empresarial respecto a la seguridad de los datos y aplicaciones. 
Aproximadamente el 60% de las empresas, no cuentan con una estrategia 
documentada de la seguridad en la información, y además solo el 28% tienen 
considerados los riesgos en sus planes de acción10. 
 
La seguridad informática en aplicaciones Web se ha convertido en un tema de 
importancia, vislumbrado a través de las cifras considerables que están invirtiendo 
las empresas para contrarrestar y prevenir los ataques a los que están expuestas, 
siendo vulnerables a muchos de estos riesgos. 
 
Cabe entonces, preguntarse, ¿sí desarrollar una propuesta metodológica para 
determinar el nivel de seguridad informática en las empresas , servirá como guía 
para adoptar mecanismos de protección y poder contar con un conjunto de 
recomendaciones que las orienten como parte de la estrategia de seguridad?. 
 
 
 
 
 
 
 
7 FEDESOFT, Colombia es el cuarto país más vulnerable de América Latina en seguridad 
informática [En línea], <http://www.fedesoft.org/noticiastic/colombia-es-el-cuarto-pais-mas-
vulnerable-de-america-latina-en-seguridad-informatica>, [Citado el 31 de Agosto de 2011] 
8 Stuart McClure, SM, Hackers, Secretos y soluciones para seguridad de redes, Osborne-
McGrawHill, 2001 
9 UNIVERSIDAD AUTÓNOMA DEL CARIBE, Test de penetración como apoyo a la evaluación 
de riesgos en seguridad de la información [En línea], 
<http://www.uac.edu.co/images/stories/publicaciones/revistas_cientificas/prospectiva/volumen-7-
no-1/articulo5-v7n1.pdf>, [Citado el 31 de Agosto de 2011] 
10 FEDESOFT, 60% de las empresas no tienen estrategia de seguridad [En línea], 
<http://www.fedesoft.org/noticiastic/60-de-las-empresas-no-tienen-estrategia-de-seguridad>, 
[Citado el 31 de Agosto de 2011] 
11 
 
3. JUSTIFICACION 
 
 
Las TICs, (Tecnologías de Información y Comunicación), especialmente el Internet 
han abierto un sin número de posibilidades de acceso a la información y de igual 
manera se han generado nuevos riesgos que involucran la seguridad de la misma. 
Este es un momento crítico de cambio, pues hay una gran apertura en las 
comunicaciones y las posibilidades para compartir información en internet 
demandan más seguridad para cada acción que se tome11. 
 
En este contexto, los ejercicios de riesgos y controles propios de las empresas, 
para establecer y analizar los activos de información, han dejado de que 
para transformarse día a día en una disciplina que adopta 
la organización, para lograr como parte de su gestión, que la información sea una 
ventaja clave y competitiva frente a su entorno de negocio12. 
 
Actualmente, con el auge del Cloud Computing todo el desarrollo de apl icaciones 
está siendo orientada a la web, lo cual conlleva una gran responsabilidad por 
parte de los desarrolladores y proveedores de servicios en internet. 
 
Una aplicación web con altos niveles de seguridad, es un elemento diferenciador, 
generador de confianza y valor para la empresa, sus clientes y grupos de interés. 
Las empresas en Latinoamérica cada vez más encuentran en la seguridad de la 
información una forma para marcar la diferencia como socio estratégico del 
negocio13. 
 
Además la continua evolución de las TICs exige que los nuevos ingenieros se 
adapten rápido a los cambios, a las tendencias del mercado y propone el 
planteamiento de nuevas soluciones. Para esto es vital contar con herramientas 
robustas para revisar el nivel de calidad y seguridad de las aplicaciones, 
generando por consiguiente nuevas oportunidades de trabajo en un área que 
continuamente exige la participación de profesionales en seguridad informática14. 
 
11 AMÓRTEGUI T. Diego J., Ciberseguridad y Ciberterrorismo [En línea], 
<http://www.acis.org.co/fileadmin/Revista_119/Informe_Diego_Amortegui.pdf>, [Citado el 02 de 
Septiembre de 2011] 
12 CANO Jeimy J., Ciberseguridad y ciberdefensa: Dos tendencias emergentes en un contexto 
global [En línea], <http://www.acis.org.co/fileadmin/Revista_119/Editorial.pdf>, [Citado el 02 de 
Septiembre de 2011] 
13 ASOCIACIÓN DE INGENIEROS DE SISTEMAS, Seguridad de la información en Latinoamérica, 
Tendencias 2011 [En línea], 
<http://www.acis.org.co/fileadmin/Revista_119/Informe_Latinoamerica_2011.pdf>, [Citado el 02 de 
Septiembre de 2011] 
14 ASOCIACIÓN DE INGENIEROS DE SISTEMAS, Seguridad de la información en Latinoamérica, 
Tendencias 2011 [En línea], 
<http://www.acis.org.co/fileadmin/Revista_119/Informe_Latinoamerica_2011.pdf>, [Citado el 02 de 
Septiembre de 2011] 
12 
 
Este proyecto busca obtener una metodología que pueda brindar beneficios tales 
como: 
 
 Para las empresas que tienen presencia en la web, una herramienta 
metodológica que le permitirá determinar que vulnerabilidades poseela 
aplicación web. 
 
 Para los Ingenieros de sistemas y auditores de Sistemas, una 
herramienta útil para su trabajo que lo mantendrá a la vanguardia de las 
nuevas exigencias del mercado. 
 
 Para la academia, un punto de partida que enriquecerá el contenido del 
área de Auditoria de Sistemas. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13 
 
4. OBJETIVO GENERAL Y ESPECÍFICOS 
 
 
4.1 OBJETIVO GENERAL 
 
Desarrollar una propuesta metodológica para determinar la seguridad en una 
aplicación web. 
4.2 OBJETIVOS ESPECÍFICOS 
 
 Analizar los conceptos y fundamentos de seguridad en aplicaciones web. 
 
 Determinar los tipos de vulnerabilidades en las aplicaciones web. 
 
 Determinar que herramientas existen actualmente para detección de 
vulnerabilidades en aplicaciones web. 
 
 Determinar las características principales de algunas metodologías existentes 
para la seguridad en aplicaciones web. 
 
 Documentar la propuesta metodológica para determinar la seguridad en una 
aplicación web. 
 
 
 
 
 
 
 
 
 
 
14 
 
5. MARCO REFERENCIAL 
 
5.1 MARCO TEÓRICO 
 
5.1.1 APLICACIÓN WEB 
 
En Inge
acceso a través de un navegador Web sobre una red, ya sea Internet o una 
Intranet. Es de agregar que las aplicaciones web son codificadas en un lenguaje 
soportado por un navegador (Mozilla Firefox, Google Chrome, Internet Explorer, 
entre otros). 
 
Una Aplicación Web es un tipo especial de aplicación Cliente/Servidor, en el que el 
Cliente (Navegador Web), el Servidor (Servidor Web) y el Protocolo (HTTP) canal 
de comunicación están estandarizados y no es creado por el programador de 
aplicaciones15. 
 
Ilustración 1 - Arquitectura Cliente Servidor16 
 
El Cliente, gestiona las peticiones del usuario y la recepción de las páginas que 
provienen del servidor, igualmente, interpreta los documentos HTML y sus 
recursos. 
El Servidor, es el programa residente que espera peticiones: demonio (Daemon) 
en Unix y Servicio en servidores de Microsoft. En el servidor se encuentran 
 
15 Luján Mora Sergio, Programación en Internet: Clientes Web, Editorial Club Universitario, Pág. 8 
16 Ingeniería de Requerimientos, Arquitectura de Tres Capas [En línea], <http://proy-
pnfi.foroactivo.net/search.forum?search_author=Admin&show_results=posts>, [Citado el 5 de 
Septiembre de 2011] 
15 
 
páginas estáticas, Scripts o programas que al ser invocados se ejecutan y dan 
como resultado una página HTML17. 
Actualmente existen diferentes lenguajes de programación para hacer desarrollos 
en la web, estos han ido surgiendo de acuerdo a las tendencias y necesidades de 
las plataformas. En el inicio del Internet las aplicaciones web creadas fueron 
realizadas mediantes lenguajes estáticos, posteriormente con el desarrollo y el 
avance de nuevas tecnologías surgen nuevas necesidades que dio lugar al 
desarrollo de Lenguajes Dinámicos de Programación que utilizan Bases de Datos 
y permiten interactuar con los usuarios. 
LENGUAJES WEB18 
En programación un lenguaje es un conjunto de símbolos y reglas que permiten 
desarrollar programas definiendo su estructura, expresiones y significado de sus 
elementos. Esto sin lugar a dudas permite facilitar la tarea de programación, ya 
que posibilita ser leídos y escritos por personas representando los códigos de 
manera simbólica. 
 
Ilustración 2 - Lenguajes de Programación Web 
HTML: Es el lenguaje de marcado predominante para la construcción de páginas 
web. Es usado para describir la estructura y el contenido en forma de tex to, así 
como para complementar el texto con objetos tales como imágenes19. 
JavaScript: Es un lenguaje de scripting orientado a objetos utilizado para acceder 
a objetos en aplicaciones. Se utiliza principalmente, integrado en un navegador 
 
17 Universidad de Alicante, Qué es una aplicación Web [En línea], 
<http://rua.ua.es/dspace/bitstream/10045/4412/5/03c-AplicacionesWeb.pdf>, [Citado el 5 de 
Septiembre de 2011] 
18 Wikispaces, Lenguajes de Programación [En línea], 
<http://cervantes1bachdyg.wikispaces.com/lenguajes_programacion>, [Citado el 5 de Septiembre 
de 2011] 
19 CODEBOX, Glosario [En línea], <http://www.codebox.es/glosario>, [Citado el 5 de Septiembre de 
2011] 
16 
 
web permitiendo el desarrollo de interfaces de usuario mejoradas y páginas web 
dinámicas20. 
 
PHP: Es un lenguaje de programación utilizado para la creación del sitio web. 
PHP es un lenguaje de script interpretado en el lado del servidor utilizado para la 
generación de páginas web dinámicas, embebidas en páginas HTML y ejecutadas 
en el servidor. PHP no necesita ser compilado para ejecutarse. Para su 
funcionamiento necesita tener instalado Apache con las librerías de PHP. La 
mayor parte de su sintaxis ha sido tomada de C, Java y Perl con algunas 
características específicas21. 
 
Python: Es lenguaje de programación que busca principalmente la facilidad para 
hacer las cosas, este no maneja tipos (lo hace automáticamente), lo cual facilita la 
vida al programador, además el código no es compilado sino interpretado. 
 
En el siguiente gráfico se explica cómo funciona una aplicación web. De manera 
general, el cliente hace una solicitud al Servidor Web y éste la procesa, 
entregándole código HTML, éste puede ser estático (No se genera el código 
HTML desde un lenguaje de programación sino que directamente se entrega éste) 
ó dinámico (generado a través de lenguajes de programación web como JAVA, 
ASP.NET, PHP, entre otros), luego el código HTML es interpretado por el cliente 
(navegador Web) y es mostrado de manera amigable al Usuario Final. 
 
 
 
 
 
 
 
 
 
 
 
Ilustración 3 - Funcionamiento de una Página Web22 
 
 
 
20 PORTAL HACKER, Programación en General [En línea], 
<http://www.portalhacker.net/index.php/topic,115175.0/wap2.html>, [Citado el 6 de Septiembre de 
2011] 
21 New Web Star, Los diferentes lenguajes de programación para la web [En línea], 
<http://www.newwebstar.com/ebooks/133193-los-diferentes-lenguajes-de-programaciun-para-
la.html>, [Citado el 6 de Septiembre de 2011] 
22 Ingeniería de Requerimientos, Arquitectura de Software [En línea], <http://proy-
pnfi.foroactivo.net/search.forum?search_author=Admin&show_results=posts>, [Citado el 7 de 
Septiembre de 2011] 
17 
 
5.1.2 SEGURIDAD INFORMÁTICA 
 
El objetivo de la seguridad informática será mantener la integridad, disponibilidad, 
privacidad (sus aspectos fundamentales), control y autenticidad de la información 
manejada por computadora23. 
 
 
 
 
 
 
 
 
 
Ilustración 4 - Seguridad Informática24 
 
Así pues, la seguridad Informática no es otra cosa que la capacidad de 
salvaguardar intacta y protegida la información en un sistema informático. Sin 
embargo, la seguridad Informática abarca mucho más que la protección de la 
información, pero sin duda es ésta el activo más atractivo para los hackers, 
teniendo en cuenta que la información es la base económica de las empresas. 
 
La Seguridad Informática se basa en tres principios fundamentales: 
 
 Confidencialidad 
 Integridad 
 Disponibilidad 
 
La confidencialidad es la seguridad de que los datos no son vistos por personas 
ajenas a la organización y que no tienen permiso para ello. Así pues, para 
controlar la confidencialidad de los datos se requiere la verificación y autorización. 
 
 
23 ALDEGANI, Gustavo. Miguel. Seguridad Informática. MP EDICIONES. ARGENTINA. 1997. Pág. 
22 
24 SOFTTRON NET, Seguridad Informática [En línea], 
<http://www.softtron.net/002/index.php/seguridad>, [Citado el 7 de Septiembre de 2011] 
18 
 
La Integridad se centra en que la información no sea manipulada, alterada o 
cambiada por el sistema que la almacena o por entes externos no autorizados. 
Para mantener la Integridad de la información entre quien envía y quien recibe, se 
empleantécnicas criptográficas de cifrado que aseguran que la información no es 
modificada25. 
 
La Disponibilidad, según el Programa MAGERIT, es el grado en que la información 
está en el lugar, momento y forma en que es requerido por personal autorizado, 
es decir, un sistema seguro debe mantener la información disponible para los 
usuarios que la requieran. 
 
Un posible método de ataque a un sistema informático es la denegación de 
servicio, que es lo opuesto a la disponibilidad, esto significa que el usuario no 
puede obtener del sistema los recursos requeridos26. 
 
 
5.1.2.1 GESTIÓN DE RIESGO EN LA SEGURIDAD INFORMÁTICA27 
 
La Gestión de Riesgo es un método para determinar, analizar, valorar y clasificar 
el riesgo para posteriormente implementar mecanismos que permitan controlarlo. 
La Gestión de Riesgo se divide en cuatro fases, Análisis, Clasificación, Reducción 
y Control, las cuales se citan a continuación: 
 
 
 
 
 
 
 
 
 
 
 
Ilustración 5 - Gestión de Riesgos 
 
25 ASENSIO, Gonzalo. Seguridad en Internet, EDITORIAL NOWTILUS, Pág. 15. 
26 AGUILERA, Purificación. Seguridad Informática, EDITORIAL EDITEX, Pág. 11. 
27 ERB, Markus, Gestión de Riesgo en la Seguridad Informática [En línea], 
<http://protejete.wordpress.com/gestion_rieso/gestion_riesgo_si/>, [Citado el 7 de Septiembre de 
2011] 
19 
 
 
 Análisis: En la fase de análisis se determina los componentes del sistema 
que requieren protección, las vulnerabilidades que lo debilitan y las 
amenazas que lo ponen en peligro, con el objetivo de revelar su grado de 
riesgo. Por lo tanto al identificar las vulnerabilidades y las amenazas del 
sistema, permitirá conocer los riesgos potenciales que atentan la seguridad 
del sistema. 
 
 Clasificación: En la fase de Clasificación se determina si los riesgos 
encontrados y los riesgos restantes son aceptables. 
 
 Reducción: En la fase de Reducción se define e implementa las medidas de 
protección y de igual forma se sensibiliza y capacita a los usuarios 
conforme a las necesidades. 
 
 Control: En la fase de Control se analiza el funcionamiento, la efectividad y 
el cumplimiento de las medidas y si es el caso ajustarlas. 
 
5.1.2.2 ANALISIS DE RIESGOS28 
 
Cuando se quiere dotar de seguridad a un sistema informático es necesario 
determinar los elementos o activos que requieren protección, identificar el nivel de 
vulnerabilidad de cada uno frente a determinadas amenazas y valorar el impacto 
que un ataque ocasionaría sobre el sistema informático. 
 
Los activos son los recursos que pertenecen al sistema de información, se pueden 
clasificar en: 
 
 Datos: Los datos son el núcleo (core) de la organización, toda empresa u 
organización depende de sus datos y éstos pueden ser: Económicos, 
fiscales, recurso humano, clientes o proveedores. 
 
 Software: Son el conjunto de aplicaciones instaladas que se encuentran en 
los equipos, que hacen parte del sistema de información, estas 
aplicaciones reciben, gestionan o transforman los datos. 
 
 Hardware: Conjunto de equipos (Servidores y Terminales) que contienen 
las aplicaciones y permiten su funcionamiento, de igual manera almacenan 
los datos del sistema de información. 
 
 Redes: Representa la vía de comunicación y transmisión de datos. 
 
 
28 AGUILERA, Purificación. Seguridad Informática, EDITORIAL EDITEX, Pág. 12-27. 
20 
 
 Soportes: Son los lugares donde la información queda registrada y 
almacenada durante un periodo de tiempo o de manera permanente: 
Tarjetas de memoria, Discos duros, DVD, CD. 
 
 Personal: Está conformado por las personas que interactúan con el sistema 
de información: Programadores, Administradores, Usuarios internos y 
externos. Estudios calculan que se producen más fallos de seguridad por 
intervención humana que por los fallos de software. 
 
 
AMENAZAS 
 
Una amenaza es la presencia de uno o más factores (Personas, máquinas o 
sucesos) que de tener la oportunidad atacan al sistema aprovechando el nivel de 
vulnerabilidad y causando daños sustanciales. 
 
Existen diferentes tipos de amenazas que pueden afectar el sistema, entre las 
cuales se encuentran las amenazas físicas, ambientales, software malicioso, robo, 
destrucción o modificación de la información, errores intencionados o no de los 
usuarios, entre otros. 
 
Según el origen las amenazas se clasifican en: 
 
 Accidentales: Las amenazas pueden ser incendios, inundaciones, fallos en 
los equipos, en redes, sistemas operativos o en software, errores humanos. 
 
 Intencionadas: Las amenazas intencionadas son debidas a la acción 
humana, ejemplo de ello son la inyección de software malicioso, intrusión 
informática, robo o hurto. Este tipo de amenaza puede ser originada desde 
fuera de la empresa o dentro de la misma organización. 
 
Según el daño o intervención las amenazas se pueden clasificar en 4 grupos: 
Interrupción, interceptación, Modificación y Fabricación. 
 
 Interrupción: El objetivo de ésta amenaza es deshabilitar el acceso a la 
información. Esta amenaza se puede llevar a cabo destruyendo 
componentes físicos como el disco duro, saturando los canales de 
comunicación o bloqueando el acceso a los datos. 
 
 Interceptación: La Interceptación es el acceso no autorizado a un 
determinado recurso del sistema con el objetivo de captar información 
confidencial de la organización. 
 
21 
 
 Modificación: Esta amenaza no solo accede a la información sino que 
además la modifica. 
 
 Fabricación: Esta amenaza agrega información falsa en el conjunto de 
información del sistema. 
 
Para poder realizar un análisis de riesgo en un sistema de información es 
necesario: 
 
i. Ejecutar un proceso secuencial de análisis de activos. 
ii. Identificar las vulnerabilidades. 
iii. Identificar y valorar las amenazas. 
iv. Identificar las medidas de seguridad existentes. 
v. Identificar los objetivos de seguridad de la información en la organización. 
vi. Determinar la medición de los riesgos, el impacto del ataque. 
vii. Seleccionar las medidas de protección. 
 
 
5.1.2.3 CONTROL DE RIESGOS 
 
Luego de realizar un análisis de los riesgos es necesario determinar qué servicios 
posee el sistema de información y cuales quedan al descubierto para 
posteriormente aplicar mecanismos de seguridad que permitan dotar al sistema de 
elementos suficientes para cumplir con los objetivos de la organización. 
 
5.1.2.3.1 Servicios de Seguridad 
 
Entre los servicios de seguridad se encuentran: 
 
 Integridad: La integridad asegura que los datos del sistema de información 
no han sido alterados por personas no autorizadas y el contenido de los 
mensajes recibidos es el correcto. 
 
 Confidencialidad: La confidencialidad por su parte proporciona protección 
contra la revelación voluntaria o accidental de los datos en una 
comunicación. 
 
 Disponibilidad: La disponibilidad permite que la información esté 
disponible cuando la requiera personal autorizado. 
 
 Autenticación: La autenticación se refiere a que el sistema debe ser capaz 
de verificar que un usuario identificado que accede a un sistema de 
información es efectivamente quien dice ser. 
22 
 
 
 No repudio: El no repudio consiste en no poder negar haber emitido una 
información que sí se emitió y en no poder negar su recepción, cuando sí 
fue recibida. 
 
 Control de acceso: En el control de acceso solo podrán acceder a 
recursos del sistema usuarios con autorización. 
 
 
5.1.2.3.2 Mecanismos De Seguridad 
 
 
Los mecanismos de seguridad se clasifican según la función que desempeñen, 
estos pueden ser Preventivos, Detectores o Correctores. 
 
 Preventivos: Los mecanismos preventivos actúan antes de que se 
produzca un ataque, su misión principal es evitar el ataque. 
 
 Detectores: Los mecanismos detectores actúan cuando el ataque se ha 
efectuado y antes de que éste cause daños en el sistema. 
 
 Correctores: Los mecanismos correctores actúan después de quese ha 
presentado un ataque y se haya producido daños. Su principal objetivo es 
el de corregir las consecuencias del daño. 
 
Existen otros mecanismos de seguridad que dependen del sistema de 
información, de su función y de los riesgos a los que se expone el sistema, entre 
los cuales se encuentran los mecanismos de seguridad físicos y lógicos. 
 
Los Mecanismos de Seguridad Físicos y Lógicos tienen como misión prevenir, 
detectar o corregir ataques al sistema, asegurando que los servicios de seguridad 
queden cubiertos. 
 
a) Seguridad Física: Su objetivo es proteger al sistema de peligros físicos y 
lógicos. Un ejemplo de ellos son los dispositivos físicos de protección como 
los pararrayos, detectores de humo, cortafuegos por hardware, etc. Y por 
otro lado se encuentran las copias de respaldo o copias de seguridad de la 
información. 
 
b) Seguridad Lógica: Su principal objetivo es proteger digitalmente la 
información. A continuación se citan algunos de ellos: 
 
 Control de acceso: Utilizando nombres de usuario y contraseña. 
 
23 
 
 Cifrado de datos: Los datos se enmascaran utilizando algoritmos de 
encriptación. Fortalece la confidencialidad. 
 
 Antivirus: Estos detectan e impiden la entrada de virus y software 
malicioso. Protege la integridad de la información. 
 
 Cortafuegos: Los cortafuegos son dispositivos de software, hardware 
o mixtos que restringen el acceso al sistema. Protege la integridad 
de la información. 
 
 Firma digital: Es utilizada para la transmisión de mensajes 
telemáticos y en la gestión de documentos electrónicos. Protege la 
integridad y confidencialidad de la información. 
 
 Certificados digitales: Son documentos digitales que garantizan que 
una persona es quien dice ser. Protege la Integridad y 
confidencialidad de la información. 
 
Las redes inalámbricas necesitan precauciones adicionales tales como el 
usar un SSID (Service Set Identifier) que no es otra cosa que darle un 
nombre a la red, preferiblemente un nombre que no llame mucho la 
atención. Otra precaución es proteger la red mediante claves encriptadas 
WPA (Wifi Protected Access). Y por último el Filtrado de direcciones MAC 
(Media Access Control), este es un mecanismo de acceso al sistema 
mediante hardware, el cual solo admite determinadas direcciones. 
 
 
5.1.2.4 HERRAMIENTA DE ANÁLISIS Y GESTIÓN DE RIESGOS 
 
 
Los objetivos y normas de seguridad están recopilados en las Políticas de 
seguridad de cualquier organización. 
 
5.1.2.4.1 Política de Seguridad 
 
La política de seguridad recopila los objetivos de la organización en materia de 
seguridad del sistema de información, los cuales se encuentran categorizados en 
cuatro grupos. 
 
a) El primero de ellos es identificar las necesidades de seguridad y los riesgos 
que amenazan el sistema de información y de igual forma evaluar el 
impacto frente a un eventual ataque. 
 
24 
 
b) Tomar todas las medidas de seguridad que deban implementarse para 
afrontar los riesgos de cada activo. 
 
c) Determinar las reglas y los procedimientos que deben aplicarse para 
afrontar los riegos. 
 
d) Detectar todas las vulnerabilidades del sistema de información y controlar 
los fallos que se producen en los activos. 
 
e) Por último definir un plan de contingencia. 
 
5.1.2.4.2 Auditoría 
 
La Auditoría es un examen minucioso de un sistema de información, que permite 
identificar y corregir vulnerabilidades en los activos que lo conforman y en los 
procesos que se realizan. 
 
La finalidad de la Auditoría es verificar que se cumplan los objetivos de la Política 
de Seguridad de la organización, así pues proporciona una imagen real y actual 
del estado de seguridad de un sistema de información. 
 
Luego de realizar una Auditoría, es decir, de realizar un análisis e identificar 
vulnerabilidades, el Auditor elabora un informe que debe contener una descripción 
de los activos y procesos analizados, una evaluación de las vulnerabilidades 
detectadas, una verificación del cumplimiento de la normatividad y una propuesta 
de medidas preventivas y correctivas. 
 
Existen herramientas para evaluar la seguridad en un sistema de información, 
éstas pueden ser manuales o software específico para auditoría. Con respecto a 
las Manuales, éstas pueden ser por observación directa de los activos, 
mediciones, cuestionarios, entrevistas, pruebas de funcionamientos entre otras. La 
herramienta de software de Auditoría se le conoce por las siglas CAAT (Computer 
Assisted Audit Techniques), éstas ayudan a mejorar la eficiencia de una Auditoría, 
ya que proporcionan una imagen total o parcial en tiempo real de un sistema de 
información; emitiendo luego un informe de las vulnerabilidades encontradas. 
 
 
5.1.2.4.3 Plan de Contingencia 
 
El Plan de Contingencia contiene las medidas preventivas y de recuperación frente 
a cualquier tipo de amenaza. Estas pueden ser de tres tipos: 
 
25 
 
 Plan de Respaldo: En el plan de respaldo se aplican medidas preventivas 
ante cualquier amenaza para evitar que se produzcan daños. Por ejemplo, 
Copias de respaldo. 
 
 Plan de Emergencia: En el plan de emergencia se determina qué medidas 
tomar cuando se está materializando una amenaza o cuando acaba de 
producirse. Por ejemplo, restaurar las copias de seguridad. 
 
 Plan de Recuperación: En el plan de recuperación se indican las medidas 
que se aplicarán cuando se ha producido un desastre. El objetivo principal 
es evaluar el impacto y regresar a un estado normal de funcionamiento del 
sistema. 
 
5.1.2.4.4 Modelos de Seguridad 
 
Un modelo de seguridad es la expresión formal de una política de seguridad y se 
utiliza como directriz para evaluar los sistemas de información. Los modelos de 
seguridad se pueden clasificar en tres grupos: 
 
a) Matriz de acceso. Considera tres elementos básicos: el sujeto, objeto y tipo 
de acceso, es decir, un sujeto tiene o no permisos de acceso a un objeto 
del sistema. De esta manera se controla la integridad y confidencialidad de 
los datos. 
 
b) Acceso basado en funciones de control (RBAC Role Access Base Control): 
en este caso el acceso no se define en función de quién es el sujeto sino de 
qué función tiene. Este modelo controla la confidencialidad y la integridad 
de los datos. 
 
c) Multinivel. Se basa en la jerarquización de los datos, es decir, todos los 
datos son importantes, pero unos son más privados que otros. 
 
 
 
 
 
 
 
 
 
 
 
 
 
26 
 
El siguiente mapa conceptual resume a groso modo la Seguridad Informática: 
 
 
Ilustración 6 - Resumen Seguridad Informática 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27 
 
5.1.3 SEGURIDAD EN APLICACIONES WEB29 
 
La organización Open Web Application Security Project (OWASP) elaboró una 
guía para construir Aplicaciones Web Seguras y Servicios Web Seguros. Esta guía 
toma en cuenta desde las vulnerabilidades más antiguas como la Inyección SQL, 
hasta las más actuales como suplantación de identidad, sesiones, el cumplimiento 
de reglas y cuestiones de privacidad. Esto con el objetivo de ayudar a los 
desarrolladores, revisores de código, arquitectos de Software, entre otros, a tener 
pautas para evitar éstos problemas en el desarrollo, como otros mecanismos para 
hacer de las aplicaciones web más seguras. 
 
Principalmente la guía tiene en cuenta seguridad en aplicaciones Web y servicios, 
con ejemplos en los lenguajes de programación: J2EE, ASP.NET, PHP. 
 
La guía para construir Aplicaciones y servicios Web Seguros está compuesta por 
los siguientes ítems: 
 
 
Ilustración 7 - Mapa de la guía para construir aplicaciones y servicios web seguros 
 
29 OWASP Foundation, guía para construir aplicaciones y servicios web seguros [En línea], 
<https://www.owasp.org/images/b/b2/OWASP_Development_Guide_2.0.1_Spanish.pdf>, [Citado el 
12 de Septiembre de 2011] 
28 
 
5.1.4 VULNERABILIDADES EN LA WEB30 
 
Son todos aquellos problemas de seguridad que afectan las páginas web, por lo 
general estos problemaspermiten modificación y extracción de la información, lo 
cual es muy grave para las organizaciones; la mayoría de éstos son registrados 
por medio de un identificador de CVE (Common Vulnerabilty Exposure), él cual es 
un diccionario de los problemas de seguridad encontrados en la Internet. 
 
A continuación se hablará de algunas de ellas: 
 
a) CROSS SITE SCRIPTING (XSS): 
 
Es una técnica Hacking que permite a un atacante explotar vulnerabilidades en 
aplicaciones web e inyectar scripts del lado del cliente en éstas. Un ataque exitoso 
puede permitir al atacante secuestrar sesiones de usuario, robar información 
sensible o cambiar información en el sitio web. 
 
Hay dos tipos principales de XSS: 
 
 No persistente ó reflejado 
 Persistente ó almacenado 
El no persistente ó reflejado. Este ataque es uno de los más comunes, la raíz de 
la vulnerabilidad es el manejo inapropiado (falta de validación) de solicitudes de 
datos HTTP por el código del servidor, permitiendo a los sitios maliciosos reflejar 
código malicioso y atacar a otros usuarios. El principal vector de ataque es 
usualmente un mensaje de correo que contiene una URL maliciosa, cuando el 
usuario da clic en la URL, el código malicioso es ejecutado. Esta vulnerabilidad 
aprovecha el concepto de arquitectura cliente servidor (Servidor WEB 
Navegador Web), el navegador ejecuta el código porque cree que es el código 
original y no uno alterado. 
 
El persistente o almacenado. Este ataque no requiere usuarios que den clic en 
una URL con el fin de ejecutar código malicioso. En este caso el código es capaz 
de vivir en el servidor vulnerable y está embebido en el código HTML. Una vez 
más, este tipo de ataque es el resultado directo de validaciones pobres en el lado 
del servidor, lo que permite forzar entradas maliciosas que pueden ser mostradas 
en el sitio web. Este tipo de ataque es particularmente riesgoso, no solo porque no 
requiere una intervención directa del usuario sino porque tiene un alcance global 
más peligroso. 
 
 
30 HP DVLabs, The 2011 Mid-Year top cyber security risks report [En línea], 
<http://www.hpenterprisesecurity.com/collateral/report/CyberSecurityRisksReport.pdf>, [Citado el 
12 de Septiembre de 2011] 
29 
 
b) INYECCIÓN DE CÓDIGO SQL (SQL Injection): 
 
Esta vulnerabilidad surge de las malas prácticas de programación en las 
solicitudes HTTP (POST y GETs), así un atacante aprovecha el mal manejo de 
éstas, inyectando código SQL adicional, por ejemplo: 
 
 
 
 consultas SQL y el atacante 
puede aprovecharse para modificar la consulta y sacar información. 
 
 
c) EJECUCIÓN DE COMANDOS (Command Execution): 
 
Este tipo de vulnerabilidad toma ventaja de la falta de validación en las entradas 
en un sitio web, donde el atacante puede correr comandos del sistema operativo 
en la aplicación web vulnerada. Generalmente, esta vulnerabilidad permite 
aprovechar, que los datos de usuario son pasados como parámetros a 
operaciones de entrada y salida, para así añadir comandos de sistema operativo 
por medio de caracteres especiales como pipe (|). 
 
d) DESBORDAMIENTO DE BUFFER (Buffer Overflow): 
 
Es un ataque que ocurre cuando un usuario malicioso sobrecarga la memoria del 
sistema temporal (llamada buffer) para causar estragos en la máquina de la 
víctima. A menudo, los atacantes también incluyen código de instrucción para 
aprovechar más la vulnerabilidad, como por ejemplo ejecutar código malicioso, 
acceder o modificar datos confidenciales o incluso enviar información al atacante. 
 
e) DENEGACIÓN DE SERVICIO (DoS): 
 
Es un tipo de vulnerabilidad que permite a un atacante agotar los recursos 
informáticos de un sistema, por medio de millones de solicitudes, agotando 
recursos como CPU, Memoria, acceso a la red, que imposibilitan el acceso a dicho 
sistema. 
 
Este ataque tiene una variante llamada Ataque de Denegación de Servicio 
Distribuido (DDoS), en el cual varios computadores infectados con virus atacan el 
servidor objetivo desde muchos lugares. 
 
30 
 
f) CROSS-SITE REQUEST FORGERY (CSRF31): 
 
Es un ataque que fuerza a la victima a cargar una página que contiene una 
solicitud maliciosa, es maliciosa en el sentido en que hereda la identidad y 
privilegios de la victima para ejecutar acciones no deseadas en ella, como por 
ejemplo, cambiar la dirección de correo de la víctima, la dirección del hogar, o la 
contraseña. 
 
g) INCLUSIÓN REMOTA DE ARCHIVOS (Remote File Inclusion32): 
 
librerías
por ejemplo: 
 
$incfile = $_REQUEST["pag"]; 
include($incfile.".php"); 
 
Si observamos desde la URL: http://ejemplo.com/?pag=pagina1.php 
 
El valor asignado a pag es pagina1.php, pero imaginemos si en lugar de 
pagina1.php hubiera un link hacia otro sitio que tenga una web Shell, algo como: 
 
http://ejemplo.com/?pag=www.shellremota.com 
 
Lo cual posibilitaría la ejecución de comandos, modificación del sitio, entre otros. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31 OWASP Foundation, Cross-Site Request Forgery (CSRF) [En línea], 
<https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)>, [Citado el 13 de 
Septiembre de 2011] 
32 The Web Application Security Consortium, Remote File Inclusion [En línea], 
<http://projects.webappsec.org/w/page/13246955/Remote%20File%20Inclusion>, [Citado el 13 de 
Septiembre de 2011] 
31 
 
5.1.5 HERRAMIENTAS DE PRUEBAS DE INTRUSIÓN 
 
5.1.5.1 HERRAMIENTAS DE ANALISIS DE SISTEMA OPERATIVO Y 
SERVICIOS 
 
a) OPENVAS (Open Vulnerability Assessment System), es un framework de 
código abierto que analiza a profundidad que vulnerabilidades poseen los 
servicios que tiene instalado un Sistema Operativo, éste genera un reporte de 
utilidad que posteriormente se usa para parchear y corregir los problemas de 
seguridad de éstos. 
 
La siguiente gráfica muestra el cliente de Conexión de OpenVas, para iniciar 
sesión con el usuario y contraseña. 
 
 
Ilustración 8 - Cliente OPENVAS para buscar vulnerabilidades33 
 
 
b) NESSUS, es un escáner de vulnerabilidades que ofrece diariamente 
actualizaciones sobres problemas de seguridad, posibilitando analizar qué tipo 
 
33 La bitácora de Gabriel, Instalando OpenVas [En línea], 
<http://labitacoradegabriel.wordpress.com/2010/05/28/instalando-openvas/>, [Citado el 13 de 
Septiembre de 2011] 
32 
 
de problemas se encuentran en nuestros sistemas, para posteriormente 
parcharlos. 
 
Nessus posee un cliente para Windows y Linux. Este cliente se conecta al 
Servidor Nessus y agrega los hosts objetivo para buscar las vulnerabilidades. 
En la siguiente imagen se observa el cliente para Windows, donde el símbolo 
: 
 
 
Ilustración 9 - Cliente Nessus para buscar vulnerabilidades34 
 
c) NMAP, es una herramienta para escanear que servicios están disponibles y en 
que puertos, es muy útil para descubrir qué tipo de Sistema Operativo tiene el 
host analizado, como también que versiones de servicios y software tiene 
instalado. 
 
 
 
 
34 ClubHACKMag, Nessus [En línea], <http://chmag.in/article/apr2010/nessus>, [Citado el 14 de 
Septiembre de 2011] 
33 
 
En la siguiente imagen podemos observar un escaneo con nmap a los hosts 
scanme.nmap.org y d0ze, el parámetro -A es para habilitar la detección de 
Sistema Operativo y -T4 para una ejecución rápida. 
 
 
Ilustración 10 - Escaneo de Servicios con NMAP35 
 
 
 
 
35 LYON, Gordon, Nmap [En línea], <http://nmap.org>, [Citado el 14 de Septiembre de 2011] 
34 
 
5.1.5.2 HERRAMIENTAS PARA EXPLOTAR VULNERABILIDADES WEB 
 
a) NIKTO36 
 
Es un escáner de código abierto que lleva a cabo múltiples pruebas exhaustivas 
en los servidores web, incluyendo alrededor de 6400 archivos cgi potencialmente 
peligrosos, revisa además alrededor de 1200 versiones desactualizadas de 
servidores, y problemas específicosde más de 270 servidores. Éste también 
chequea la configuración y opciones del servidor, para tratar de identificar que 
software trae instalado, como también la versión del servidor web. 
 
El parámetro -h específica el host o dominio objetivo como podemos ver en la 
siguiente gráfica: 
 
 
Ilustración 11 - Escaneo de una aplicación Web con NIKTO37 
 
 
 
 
 
36 INC CIRT, Nikto [En línea], <http://cirt.net/nikto2>, [Citado el 14 de Septiembre de 2011] 
37 iEntry Network, Nikto Core version 2.01 Released [En línea], 
<http://www.linuxhaxor.net/?p=648>, [Citado el 19 de Septiembre de 2011] 
35 
 
b) SQLMAP38 
 
Es una herramienta de prueba de intrusión para automatizar el proceso de 
detección y explotación de fallas de inyección SQL, con el fin de tomar el control 
de la base de datos. Éste viene con un poderoso motor de detección que posee 
una amplia gama de pruebas, para acceder al sistema operativo y ejecutar 
consultas SQL. 
 
La herramienta se ejecuta de la siguiente manera: 
 
python sqlmap.py -u http://www.justice.gov.al/index.php?gj=gj1--dbs 
 
Donde -u es la URL o el enlace y --dbs es para enumerar las bases de datos 
disponibles. 
 
 
Ilustración 12 - Ataque de Inyección SQL con SQLMAP39 
 
 
 
38 SQLMAP Developers, SQLMAP [En línea], <http://sqlmap.sourceforge.net/>, [Citado el 19 de 
Septiembre de 2011] 
39 Hack Community, How to hack almost every site with sqlmap [En línea], 
<http://www.hackcommunity.com/Thread-SQL-how-to-hack-almost-every-site-with-sqlmap>, [Citado 
el 19 de Septiembre de 2011] 
36 
 
c) SQLNINJA40 
 
El principal objetivo de esta herramienta es explotar las vulnerabilidades de 
inyección SQL en aplicaciones Web que utilizan Microsoft SQL Server. 
 
Sqlninja se diferencia de otras herramientas, debido a que ellas están centradas a 
extraer información, en cambio Sqlninja se centra en conseguir una Shell 
interactiva con el servidor de bases de datos. 
 
Para poder iniciar el ataque es necesario configurar el archivo sqlninja.conf que se 
encuentra en el mismo directorio de la herramienta, de la siguiente forma: 
 
 
host = 172.16.24.151 # Host a atacar 
port = 80 # Puerto 
method = GET # Método HTTP GET 
page = /default.asp # Página principal del aplicativo 
stringstart = id=1; # Variable GET y su valor de iniciación 
stringend = 
lhost = 172.16.24.150 # IP donde se ejecuta el análisis 
msfpath = /opt/metasploit3/msf3/ # Path de metasploit Framework 
 
Luego desde la consola ejecutamos: 
# ./sqlninja -m test 
 
En la siguiente gráfica se observa el resultado de la ejecución del comando: 
 
 
Ilustración 13 - Resultado del Ataque de Inyección SQL con SQLNINJA41 
 
d) XSSer42 
 
que automatiza la detección y explotación, 
para reportar vulnerabilidades XSS en aplicaciones web. Además posee varias 
 
40 ICESURFER, SQLNINJA [En línea], <http://sqlninja.sourceforge.net/sqlninja-howto.html#s1>, 
[Citado el 19 de Septiembre de 2011] 
41 Selvi Savater, Jose, SQLNINJA [En línea], <http://www.pentester.es/2010/12/sql-injection-hasta-
la-cocina-ms-sql.html>, [Citado el 20 de Septiembre de 2011] 
42 XSSer Workgroup, XSSer [En línea], <http://xsser.sourceforge.net/>, [Citado el 20 de Septiembre 
de 2011] 
37 
 
opciones para tratar de eludir ciertos filtros y varias técnicas especiales que tratan 
de evitar la inyección de código. 
 
En la siguiente gráfica se explica el funcionamiento, donde a una variable por 
ventana un mensaje de texto: 
 
 
Ilustración 14 - Funcionamiento de ataque XSS con XSSER 
 
En esta otra gráfica se explica un ataque básico, donde python XSSer.py es el 
comando, -u es el dominio o host a atacar y -g especifica el archivo y su respectiva 
variable por GETs: 
 
 
 
Ilustración 15 - Parámetros necesarios para Iniciar XSSER 
 
 
 
 
38 
 
El resultado de este comando se puede observar en la siguiente gráfica. En la cual 
se muestra una inyección de XSS exitosa y la URL del ataque. 
 
 
Ilustración 16 - Resultado del ataque de XSSER43 
. 
e) FIMAP44 
 
Es una pequeña herramienta hecha en python que encuentra, prepara, audita y 
explota errores de inclusión local y remota de archivos en aplicaciones web. 
 
En la imagen se puede observar el origen de la vulnerabilidad y el modo de 
ejecución de fimap. Donde -u es el host o dominio objetivo. 
 
Una vez ejecutada la herramienta, se muestra que archivos son vulnerables a 
Remote File Inclusion (RFI). 
 
43 Ethical Hacking-Your Way To The World Of IT Security, XSSer- Cross Site Scripting Penetration 
Tool [En línea], <http://www.ehacking.net/2011/02/xsser-cross-site-scripting-penetration.html>, 
[Citado el 20 de Septiembre de 2011] 
44 Karim, Iman, FIMAP [En línea], <http://code.google.com/p/fimap/>, [Citado el 20 de Septiembre 
de 2011] 
39 
 
 
Ilustración 17 - Escaneo de URL con Fimap45 
 
 
f) CSRFTESTER46 
 
Es una herramienta de código abierto desarrollada en JAVA que actúa como un 
servidor proxy que depura las solicitudes HTTP en el navegador Web en busca de 
vulnerabilidades de tipo CSRF. Cabe resaltar que para utilizar esta aplicación se 
debe tener la máquina virtual de JAVA. 
 
Una vez ejecutada, ésta abre el puerto 8008 (Modo proxy). Además el puerto debe 
configurarse en el navegador Web, donde se interceptarán todas las solicitudes 
HTTP en búsqueda de vulnerabilidades CSRF, para iniciar éste modo basta con 
observarse mejor en la siguiente imagen: 
 
45 DALLA PIAZZA, Alessio, Fimap: Scanner LFI(Local File Inclusion ) and RFI(Remote File 
Inclusion) [En línea], <http://www.clshack.it/en/fimap-scanner-lfilocal-file-inclusion-and-rfiremote-file-
inclusion.html>, [Citado el 21 de Septiembre de 2011] 
46 OWASP FOUNDATION, CSRFTESTER [En línea], 
<https://www.owasp.org/index.php/CSRFTester_Usage>, [Citado el 21 de Septiembre de 2011] 
40 
 
 
Ilustración 18 - Interfaz y Consola de depuración de CSRFTESTER47 
 
g) OWASP MANTRA 
 
Mantra es una colección de herramientas libres y de código abierto, integradas en 
un navegador basado en Firefox, la mayoría de estas herramientas son conocidas 
como complementos o extensiones del navegador. 
 
Lo primero para ejecutar estas herramientas es abrir la URL objetivo, en este caso 
 
como se observa en la siguiente imagen: 
 
 
47 Selvi Savater, Jose, Creando PoC CSRF: CSRFTester 1.0 [En línea], 
<http://www.pentester.es/2010/05/creando-poc-csrf-csrftester-10.html>, [Citado el 21 de 
Septiembre de 2011] 
41 
 
 
Ilustración 19 - Prueba de Intrusión con Owasp Mantra 
 
 
 
Ilustración 20 - Estado del Escaneo, Owasp Mantra 
 
42 
 
h) WEBSECURIFY 
 
Es un complemento disponible para los navegadores Google Chrome y Firefox 
que utiliza un motor de reconocimiento de vulnerabilidades Web, también está 
disponible para versiones de escritorio en MAC, Windows y Linux. 
 
Para este caso se usará como una extensión del navegador. En la siguiente 
imagen se observa como inicia el proceso para el sitio http://isc.utp.edu.co: 
 
 
Ilustración 21 - Escaneo con Websecurify 
 
 
 
 
 
 
 
 
 
 
 
43 
 
El resultado del escaneo es mostrado como reporte de una manera muy 
interesante, dando una serie de recomendaciones: 
 
 
Ilustración 22 - Reporte Websecurify 
 
5.1.5.3 SISTEMA OPERATIVO PARA PRUEBAS DE INTRUSIÓN 
 
Hoy en día Backtrack ha sido un sistema operativo que ha ganado terreno en el 
campo de la Seguridad informática. 
 
Backtrack es un arsenal de herramientas de pruebas de intrusión, basada en un 
Sistema Operativo tipo Linux, que ayuda a profesionales de la seguridad a realizar 
las evaluaciones necesarias a sistemas de información, para encontrar que 
problemas de seguridad los afectan48. 
 
Backtrack funciona en modo LIVECD, es decir, solo se carga en Memoria RAM sinnecesidad de instalarse, pero también tiene un modo de instalación para tener el 
sistema operativo permanentemente. 
 
 
 
 
 
 
48 Offensive Security, Backtrack [En línea], <http://www.backtrack-linux.org/>, [Citado el 26 de 
Septiembre de 2011] 
44 
 
Cabe anotar que muchas de las herramientas anteriormente mencionadas están 
disponibles en este sistema operativo, además de otras que podrán ser muy útiles, 
éstas se encuentran en el menú Backtrack y por consola en /pentest/web. 
 
 
 
Ilustración 23 - Herramientas Backtrack 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45 
 
5.1.6 LA SERIE 2700049 
 
La serie ISO/IEC 27000 es un conjunto de estándares de seguridad que contienen 
las mejores prácticas recomendadas en Seguridad de la Información, a 
continuación se resumen algunas de ellas: 
 
ISO 27001: La norma ISO 27001 contiene los requisitos para implantación del 
sistema de gestión de seguridad de la información (SGSI). Es certificable. 
 
ISO 27002: Es una guía de buenas prácticas que describe los objetivos de control 
y controles recomendables en la seguridad de la información. 
 
ISO 27005: Establece las directrices para la Gestión del riesgo en la seguridad de 
la información. 
 
ISO 27007: Consiste en una guía de auditoría de un Sistema de Gestión de 
Seguridad en la Información. 
 
ISO 27032: Es una guía relativa a la Ciberseguridad. 
 
ISO 27034: Su fecha prevista de publicación es Diciembre de 2011. La ISO 27034, 
servirá como una guía de seguridad en aplicaciones. 
 
5.1.6.1 LA ISO 27001 
 
La información es un bien intangible vital para el funcionamiento de cualquier 
empresa. En la actualidad las organizaciones se están viendo obligadas a darle 
mayor importancia a la conservación y aseguramiento de la información y a los 
mecanismos tecnológicos que la procesan. 
 
Para una adecuada Administración de la Seguridad de la Información en una 
organización es necesario establecer un sistema que aborde esta tarea de una 
forma clara, sistemática, documentada basada en objetivos precisos de seguridad 
y una valoración de los riesgos a los que está expuesta la información de la 
organización. 
 
La ISO/IEC 27000, es un conjunto de estándares desarrollados que proporcionan 
un punto de referencia en la gestión de la seguridad de la información para 
cualquier organización. A continuación se relacionan las distintas normas que 
componen la Serie ISO 27000: 
 
 
49 ISO27000.ES, ISO 27000 [En línea], <http://www.iso27000.es/download/doc_iso27000_all.pdf>, 
[Citado el 3 de Octubre de 2011] 
46 
 
Desde el año 1901 la organización Británica British Standards Institution (BSI) es 
responsable de la publicación de normas importantes que han sido el marco 
referencial de diferentes organizaciones. 
 
En 1995 la British Standards Institution publica la norma BS 7799 con el objeto de 
proporcionar a cualquier empresa un conjunto de buenas prácticas para la gestión 
de la seguridad de la información. 
 
En la siguiente ilustración se visualiza la historia de la ISO 27001: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Ilustración 24 - Histórico de la ISO 27001 
47 
 
El Estandar para la seguridad de la Información ISO 27001 fue diseñado para 
proveer un modelo para el establecimiento, implementación, operación, 
monitorización, revisión, mantenimiento y mejoras de todos lo procesos que 
involucran la Seguridad de la Información en una organización por medio del 
Sistema de la Gestión de la Seguridad de la Información (SGSI). 
 
La ISO 27001 adopta el modelo del proceso (PDCA) Planear Hacer Chequear 
 Actuar, que se puede aplicar a los procesos SGSI. La siguiente figura ilustra el 
proceso: 
Ilustración 25 - Modelo de Proceso PDCA 
 
A continuación se detalla cada una de las actividades que se llevan a cabo en la 
Planificación, Implementación, Seguimiento y Mejora continua: 
 
48 
 
5.1.6.1 PLANIFICACIÓN 
 
 
Ilustración 26 - Etapa de Planeación 
 
 Definir alcance del SGSI. El SGSI no tiene por qué abarcar toda la 
organización, pero es recomendable iniciar por un alcance limitado. 
 
 Definir política de seguridad. Las políticas de seguridad deben incluir un 
marco general y los objetivos de seguridad de la información de la 
organización. Es de vital importancia alinear la gestión de riesgos con los 
requisitos del negocio, legales y contractuales en cuanto a seguridad; de 
igual manera establecer criterios de evaluación y que estos sean 
aprobados por la Dirección. La política de seguridad es un documento que 
no es otra cosa que una declaración de intenciones de la Dirección. 
 
 Definir el enfoque de evaluación de riesgos. Es necesario definir una 
metodología de evaluación de riesgos apropiada para el SGSI y las 
necesidades de la organización, de igual manera desarrollar criterios de 
aceptación de riesgos y determinar el nivel de riesgo aceptable. 
 
 Inventario de activos: El Inventario de activos son todos aquellos activos de 
información que tienen algún valor para la empresa u organización y se 
encuentra dentro del alcance del SGSI. 
 
49 
 
 Identificar amenazas y vulnerabilidades. Las amenazas y vulnerabilidades 
es todo aquello que afecta a los activos del inventario (La Información). 
 
 Identificar los impactos. Es todo aquello que podría suponer una pérdida de 
la confidencialidad, integridad o disponibilidad de cada uno de los activos. 
 
 Análisis y evaluación de los riesgos. El análisis y evaluación de los riesgos 
es evaluar el daño resultante de un fallo de seguridad, es decir, que una 
amenaza externa aproveche una vulnerabilidad interna y la probabilidad de 
ocurrencia del fallo; estimar el nivel de riesgo resultante y determinar si el 
riesgo es aceptable (en función de los niveles definidos previamente) o 
requiere tratamiento. 
 
 Identificar y evaluar opciones para el tratamiento del riesgo. El riesgo puede 
ser reducido o mitigado mediante controles, eliminado, si se elimina el 
activo, aceptado o transferido, ya sea utilizando un seguro o a través de 
outsourcing. 
 
 Selección de controles. Se seleccionan controles para el tratamiento del 
riesgo en función de la evaluación. 
 
 Aprobación por parte de la Dirección del riesgo y autorización de implantar 
el SGSI. Es de aclarar que los riesgos de seguridad de la información son 
riesgos de la organización por ende es la Dirección quien puede tomar 
decisiones sobre su aceptación o tratamiento. 
 
 Confeccionar una Declaración de Aplicabilidad, la llamada SOA (Statement 
of Applicability) es un resumen de las decisiones tomadas en cuanto al 
tratamiento del riesgo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50 
 
5.1.6.2 IMPLEMENTACIÓN 
 
 
 
Ilustración 27 - Etapa de Implementación 
 
 Definir el plan de tratamiento de riesgos: Que identifique las acciones, 
recursos, responsabilidades y prioridades en la gestión de los riesgos de 
seguridad de la información. 
 
 Implantar plan de tratamiento de riesgos: Con la meta de alcanzar los 
objetivos de control identificados. 
 
 Implementar los controles: Todos los que se seleccionaron en la fase 
anterior. 
 
 Formación y concienciación: De todo el personal en lo relativo a la 
seguridad de la información. 
 
 Desarrollo del marco normativo necesario: normas, manuales, 
procedimientos e instrucciones. 
 
 Gestionar las operaciones del SGSI y todos los recursos que se le asignen. 
 
 Implantar procedimientos y controles de detección y respuesta a incidentes 
de seguridad. 
 
 
 
 
 
 
51 
 
5.1.6.3 SEGUIMIENTO 
 
 
Ilustración 28 - Etapa de Seguimiento 
 Ejecutar procedimientos y controles de monitorización y revisión: En esta 
etapa se detectan errores en resultados de procesamiento e incidentes de 
seguridad. 
 
 Revisar regularmente la eficacia del SGSI: Esta revisión se hace en función 
de los resultados de auditorías de seguridad, incidentes, mediciones de 
eficacia, sugerencias y feedbackde todos los interesados. 
 
 Medir la eficacia de los controles: Se realiza para verificar que se cumple 
con los requisitos de seguridad. 
 
 Revisar regularmente la evaluación de riesgos: Cualquier cambio en la 
organización, tecnología, procesos y objetivos de negocio, amenazas, 
eficacia de los controles o el entorno tienen una influencia sobre los riesgos 
evaluados, el riesgo residual y el nivel de riesgo aceptado. 
 
 Realizar regularmente auditorías internas: Con el fin de determinar si los 
controles, procesos y procedimientos del SGSI mantienen la conformidad 
con los requisitos de ISO 27001. 
 
 Revisar regularmente el SGSI por parte de la Dirección: Con el objetivo de 
determinar si el alcance definido sigue siendo el adecuado, de igual forma, 
identificar mejoras al proceso del SGSI, la política de seguridad o a los 
objetivos de seguridad de la información. 
 
52 
 
 Registrar acciones y eventos que puedan tener impacto en la eficacia o el 
rendimiento del SGSI: sirven como evidencia documental de conformidad 
con los requisitos y uso eficaz del SGSI. 
 
5.1.6.4 MEJORA CONTINUA 
 
Ilustración 29 - Etapa de Mejora Continua 
 Implantar mejoras: Poner en marcha todas las mejoras que se hayan 
propuesto en la fase anterior. 
 
 Acciones correctivas: Para solucionar no conformidades detectadas. 
 
 Acciones preventivas: Para prevenir potenciales no conformidades. 
 
 Comunicar las acciones y mejoras: A todos los interesados y con el nivel 
adecuado de detalle. 
 
 Asegurarse de que las mejoras alcanzan los objetivos pretendidos: La 
eficacia de cualquier acción, medida o cambio debe comprobarse siempre. 
 
53 
 
5.1.7 METODOLOGÍA OWASP50 
 
La metodología OWASP (Open Web Application Security Project) está diseñada 
como un marco de trabajo que ayude en el proceso del ciclo de desarrollo del 
software (SDLC), ésta provee una solución flexible que mejora el proceso de 
desarrollo, teniendo en cuenta desde el inicio el tema de la seguridad en la 
ingeniería de software. 
 
En la siguiente gráfica observamos cómo se hace más costoso reparar un 
problema de seguridad en el ciclo de desarrollo del Software, es decir, entre más 
avanzado está el proceso más costoso va ser arreglarlo. 
 
 
Ilustración 30 - Incremento de los costes de reparar bugs de seguridad en el SDLC 
 
Estructuralmente esta metodología consta de las siguientes fases: 
 
FASE 1: Antes de empezar el desarrollo 
 
Es importante antes de empezar todo desarrollo de software tener en cuenta lo 
siguiente: 
 
 Comprobar si el ciclo de desarrollo del Software (SDLC) incluye de manera 
nativa el proceso de la seguridad 
 Comprobar si los estándares y políticas de seguridad adecuados están 
implementados 
 Desarrollar criterios de medición y métricas 
 
 
50 OWASP FOUNDATION, Metodología OWASP [En línea], 
<https://www.owasp.org/images/8/80/Gu%C3%ADa_de_pruebas_de_OWASP_ver_3.0.pdf>, 
[Citado el 10 de Octubre de 2011] 
54 
 
FASE 1.1. Revisión de estándares y políticas 
 
Asegurar que las políticas, documentación y estándares están siendo 
implementados, fija una trayectoria a seguir para todos los integrantes del equipo 
de desarrollo. 
 
Por lo tanto si se está desarrollando software en PHP, debe haber un estándar 
para desarrollar aplicaciones seguras en PHP, si se va a realizar un modulo que 
maneja cifrado es importante obtener los estándares de criptografía. 
 
FASE 1.2 Desarrollo de métricas y criterios de medición 
 
Si antes de empezar el desarrollo se tiene claro qué se quiere medir, la 
recolección de información en puntos clave del desarrollo mostrará más 
claramente cómo van los procesos, para así tomar acciones correctivas y mejoras. 
 
FASE 2: Durante el diseño y la definición 
 
El proceso de Ingeniería de software es de vital importancia para obtener un 
producto de excelente calidad, un mal diseño y definición puede significar perdida 
de dinero y clientes para las organizaciones, por lo que tener en cuenta la 
seguridad es un factor clave en el negocio. 
 
FASE 2.1 Revisión de los requisitos de seguridad 
 
Los requerimientos de seguridad, definen como funciona una aplicación desde el 
punto de vista de seguridad, por lo tanto es fundamental ser lo más claro posible 
con la definición de éstos, además se deben probar y evaluar para corregir 
deficiencias y obtener mejoras, para que el equipo de trabajo alcance lo que se 
planteo. 
 
En este proceso es esencial tener en cuenta los siguientes mecanismos de 
seguridad: 
 
 Gestión de Usuarios (reinicio de contraseña, cifrado de contraseña, etc.). 
 Autenticación. 
 Autorización. 
 Confidencialidad de los datos. 
 Integridad. 
 Contabilidad. 
55 
 
 Gestión de Sesiones. 
 Seguridad de Transporte. 
 Separación de Sistemas en niveles. 
 Privacidad. 
 
FASE 2.2 Revisión de diseño de arquitectura 
 
Anteriormente se mencionó la importancia de tener todo documentado, por lo que 
tener muy bien documentada la arquitectura es significativo, es decir, tener todos 
los modelos, documentos, entre otros, a disponibilidad del equipo de trabajo, 
ayuda a comprobar si lo que se diseñó a partir de los requerimientos si fue 
aplicado y si tiene un nivel adecuado de seguridad, además de detectar problemas 
de seguridad que no se hayan tenido en cuenta o malos diseños. 
 
Identificar estos problemas en esta fase temprana de desarrollo ayuda a ahorrar 
costos, y en ésta los cambios pueden hacerse mucho más efectivos, tanto que se 
puede avisar las vulnerabilidades encontradas al arquitecto de software para su 
ágil corrección. 
 
 
FASE 2.3 Creación y revisión de modelos UML 
 
Cuando el diseño y la arquitectura han sido finalizados, es una buena práctica 
modelarlos bajo la metodología UML, debido a que ésta describe mejor el 
funcionamiento de las aplicaciones. 
 
No se debe ignorar el hecho de reunir al equipo de trabajo para comprender los 
modelos UML y mejorarlos. 
 
 
FASE 2.4 Creación y revisión de modelos de amenaza 
 
Teniendo total compresión del modelamiento UML, es decir, el funcionamiento de 
la aplicación, se debe ahora hacer el modelado de amenazas realistas, él cual 
debe asegurar que las amenazas son mitigadas por medio de la modificación del 
diseño original. 
 
 
 
 
56 
 
FASE 3: Durante el desarrollo 
 
Llegar del diseño a la implementación puede inferir en cambios de diseño durante 
el desarrollo, por lo general son cambios pequeños, los cuales pueden haber sido 
pasados por alto durante la etapa de diseño, por otro lado si hay problemas en la 
arquitectura y diseño, los desarrolladores deben afrontar decisiones muy difíciles, 
éstos problemas pueden ser debidos a políticas y estándares insuficientes. 
 
FASE 3.1 Inspección de códigos por fases 
 
En esta fase el equipo de seguridad debe realizar una inspección minuciosa de 
código por fases de alto nivel, es decir, ellos deben reunirse con los 
desarrolladores y en algunas ocasiones con los arquitectos, para conseguir una 
explicación del funcionamiento del código, el diseño y arquitectura 
respectivamente, para así, obtener una retroalimentación de los diferentes actores 
y revisar si el diseño, arquitectura e implementación coinciden. En esta etapa el 
propósito no es revisar el código sino mirar el flujo de programación, su esquema y 
la estructura del código. 
 
FASE 3.2 Revisiones de código 
 
En esta subfase se tiene en consideración la etapa anterior, ya que ella es el 
punto de partida para mirar la congruencia del desarrollo. A partir de aquí el 
equipo de seguridad o la persona encarga de ésta puede empezar a buscar 
vulnerabilidades en el desarrollo. 
 
FASE 4: Durante la implementación 
 
FASE 4.1 Pruebas de intrusión en aplicaciones 
 
Luego de haber revisado la congruencia entre los requisitos, el diseño y la revisión 
del código, se asume que se identifican todas las incidencias, de no ser así, es 
decir, no se identifican los problemas, las pruebas de intrusión son un mecanismo 
adicional