PROYECTO MARTHA ASCENCIO MENDOZA PEDRO JULIÁN MORENO PATIÑO



Documentos relacionados

AUDITORÍAS TÉCNICAS PARA LA CERTIFICACIÓN DE LOS SISTEMAS DE RECOGIDA DE INICIATIVAS CIUDADANAS EUROPEAS

Capítulo VII PLAN DE IMPLEMENTACIÓN DE ALTO NIVEL

Ataques XSS en Aplicaciones Web

Anexo I. Politicas Generales de Seguridad del proyecto CAT

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Elementos requeridos para crearlos (ejemplo: el compilador)

SEMANA 12 SEGURIDAD EN UNA RED

Material adicional del Seminario Taller Riesgo vs. Seguridad de la Información

Arquitectura de seguridad OSI (ISO )

CONCEPTOS GENERALES SOBRE SEGURIDAD INFORMATICA

Guía de doble autenticación

Requisitos de control de proveedores externos

Servicios de Seguridad de la Información

Cómo trabaja el Atacante? El atacante trabaja en 5 pasos, los cuales son: Ethical-Hacker.net. Reconocimiento. Borrado de Huellas.

100% Laboratorios en Vivo

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

En el artículo del mes pasado,

SISTEMA DE PAPELES DE TRABAJO PARA AUDITORÍA SPT AUDIT

ISO Anexo A OBJETIVOS DE CONTROL Y CONTROLES DE REFERENCIA DANIELA RAMIREZ PEÑARANDA WENDY CARRASCAL VILLAMIZAR

CAS-CHILE S.A. DE I. 2013

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

UNIVERSIDAD AUTÓNOMA DEL CARIBE

RETO FORENSE EPISODIO III Resumen Ejecutivo

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

I INTRODUCCIÓN. 1.1 Objetivos

1. Aplica medidas de seguridad pasiva en sistemas informáticos describiendo características de entornos y relacionándolas con sus necesidades

Seguridad en Administración de Redes. INTEGRANTES: Santa Elena Rodríguez Calzada María de los Ángeles Ramírez Ortiz Liliana Gpe. Olivares Valdovinos.

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Norma NTC-ISO/IEC Sistema de Gestión de Seguridad de Información

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

3-ANÁLISIS DE VULNERABILIDADES

Infraestructura Tecnológica. Sesión 10: Sistemas cortafuego

SEGURIDAD Y PROTECCION DE FICHEROS

SEGURIDAD INFORMATICA GENERALIDADES DE LA SEGURIDAD INFORMATICA

INFORME DE EVALUACION DEL SISTEMA DE GESTION DE LA SEGURIDAD DE LA INFORMACION (SGSI), PERIODO

Test de intrusión (Penetration Test) Introducción

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Presentación. Porqué formarte con nosotros?

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

POLÍTICAS DE SEGURIDAD PARA EL DESARROLLO DE SISTEMAS DE CAPUFE

Requerimientos Técnicos para mantenimiento anual de certificación del Área Perimetral

Contenido Derechos Reservados DIAN - Proyecto MUISCA

Qué son y cómo combatirlas

Haga clic para modificar el estilo de título del patrón Haga clic para modificar el estilo de texto del patrón

GUÍA DE SEGURIDAD DE LA INFORMACIÓN GUÍA GOBIERNO CORPORATIVO PARA EMPRESAS SEP

Políticas y Seguridad de la Información ECR EVALUADORA PREFIN S.A

APLICACIÓN DE LOS PRINCIPIOS DE BUENAS PRÁCTICAS DE LABORATORIO A LOS SISTEMAS INFORMATIZADOS

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Diseño dinámico de arquitecturas de información

Infraestructura Tecnológica. Sesión 5: Arquitectura cliente-servidor

La importancia de las pruebas de penetración (Parte I)

Metasploit framework, al igual que nessus, su versión paga es mucho más informática que la gratuita.

Resumen de los protocolos de seguridad del Registro Telemático

Auditorías de Seguridad: revisión como método de prevención. Vicente Aguilera Díaz Internet Security Auditors, S.L.

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Capítulo 5. Cliente-Servidor.

Visión General de GXportal. Última actualización: 2009

CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO

Infraestructura Tecnológica. Sesión 8: Configurar y administrar almacenamiento virtual

Beneficios estratégicos para su organización. Beneficios. Características V

SUPLEMENTO EUROPASS AL TÍTULO

Preguntas y respuestas sobre el cifrado de la información personal. La guía para aprender a cifrar tu información

Definición del Sistema de Gestión de Seguridad de la Información (SGSI) ALCALDÍA DE SANTA ROSA DE OSOS

Entidad Certificadora y Políticas Pertinentes

ISO/IEC Sistema de Gestión de Seguridad de la Información

Microsoft es una marca comercial registrada o una marca comercial de Microsoft Corporation en Estados Unidos y otros países.

Offensive State Auditoría de Aplicaciones Web

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Descripción. Este Software cumple los siguientes hitos:

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets


Qué es una página web?, qué conoces al respecto?, sabes crear una página

Introducción a la Firma Electrónica en MIDAS

Condiciones de servicio de Portal Expreso RSA

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS

Resumen del trabajo sobre DNSSEC

Sistemas de Gestión de Documentos Electrónicos de Archivo (SGDEA)

Guía de Apoyo Project Web Access. (Jefe de Proyectos)

Introducción a las Redes de Computadoras. Obligatorio

Práctica de Seguridad en Redes

Infraestructura Tecnológica. Sesión 2: Mejoras adicionales al servidor de archivos

UNIVERSIDAD DE ORIENTE FACULTAD DE CIENCIAS ECONOMICAS

Hacking ético y Seguridad en Red

INTRODUCCIÓN A LA SEGURIDAD EN SISTEMAS Y WEBS

Autorizan ejecución de la "Encuesta de Seguridad de la Información en la RESOLUCIÓN MINISTERIAL N PCM

CONTRALORIA GENERAL DE LA REPUBLICA UNIDAD DE TECNOLOGIAS DE INFORMACION POLITICAS DE USO DE LA RED INALAMBRICA INSTITUCIONAL

POLÍTICA DE PRIVACIDAD PARA APLICACIONES MÓVILES GRUPOCOPESA. 1. información que se obtiene la aplicación y su utilización

ENFOQUE ISO 9000:2000

ALERTA ANTIVIRUS: RECOMENDACIONES

Estándares de Seguridad

VENTAJAS Y RIESGOS DE LA TECNOLOGÍA INFORMÁTICA Y COMUNICACIONES (TIC), EN EL EJERCICIO DE LA REVISORÍA FISCAL.

GENERALIDADES DE BASES DE DATOS

SEGURIDAD INFORMÁTICA 2º SISTEMAS MICROINFORMÁTICOS Y REDES 1. CONTENIDOS MÍNIMOS PARA LA EVALUACIÓN POSITIVA

LABORATORIO 10. COPIAS DE SEGURIDAD, RESTAURACIÓN Y RECUPERACIÓN DE UNA BD

DIPLOMADO EN SEGURIDAD INFORMATICA

LA SEGURIDAD EN LOS SISTEMAS DE INFORMACIÓN

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Norma ISO 14001: 2015

Transcripción:

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

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 1

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. 2

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 extranet 1. 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 3

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 servicio 2. 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ón 3. PROTOCOLO DE SEGURIDAD: Un protocolo de seguridad es un conjunto de programas que usan esquemas de seguridad criptográfica 4. 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 sistema 5. 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 4

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ósito 6. 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] 5

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 6

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......... 72 7

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. 8

1. TITULO Desarrollo de una propuesta metodológica para determinar la seguridad en una aplicación web. 9

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 Venezuela 7. Este siglo ha sido catalogado como el siglo de la información 8, 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 negocio 9. 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ón 10. 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-masvulnerable-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] 10

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 tome 11. 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 negocio 12. Actualmente, con el auge del Cloud Computing todo el desarrollo de aplicaciones 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 negocio 13. 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ática 14. 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] 11

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 posee la 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. 12

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. 13

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 aplicaciones 15. Ilustración 1 - Arquitectura Cliente Servidor 16 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://proypnfi.foroactivo.net/search.forum?search_author=admin&show_results=posts>, [Citado el 5 de Septiembre de 2011] 14

páginas estáticas, Scripts o programas que al ser invocados se ejecutan y dan como resultado una página HTML 17. 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 WEB 18 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ágenes 19. 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] 15

web permitiendo el desarrollo de interfaces de usuario mejoradas y páginas web dinámicas 20. 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íficas 21. 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 Web 22 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-parala.html>, [Citado el 6 de Septiembre de 2011] 22 Ingeniería de Requerimientos, Arquitectura de Software [En línea], <http://proypnfi.foroactivo.net/search.forum?search_author=admin&show_results=posts>, [Citado el 7 de Septiembre de 2011] 16

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 computadora 23. Ilustración 4 - Seguridad Informática 24 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] 17

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 emplean técnicas criptográficas de cifrado que aseguran que la información no es modificada 25. 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 requeridos 26. 5.1.2.1 GESTIÓN DE RIESGO EN LA SEGURIDAD INFORMÁTICA 27 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] 18

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 RIESGOS 28 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. 19

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. 20

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. 21

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 que se 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. 22

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. 23

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: 24

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. 25

El siguiente mapa conceptual resume a groso modo la Seguridad Informática: Ilustración 6 - Resumen Seguridad Informática 26

5.1.3 SEGURIDAD EN APLICACIONES WEB 29 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] 27

5.1.4 VULNERABILIDADES EN LA WEB 30 Son todos aquellos problemas de seguridad que afectan las páginas web, por lo general estos problemas permiten 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] 28

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. 29

f) CROSS-SITE REQUEST FORGERY (CSRF 31 ): 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 Inclusion 32 ): por ejemplo: librerías $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] 30

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 vulnerabilidades 33 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] 31

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 vulnerabilidades 34 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] 32

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 NMAP 35 35 LYON, Gordon, Nmap [En línea], <http://nmap.org>, [Citado el 14 de Septiembre de 2011] 33

5.1.5.2 HERRAMIENTAS PARA EXPLOTAR VULNERABILIDADES WEB a) NIKTO 36 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íficos de 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 NIKTO 37 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] 34

b) SQLMAP 38 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 SQLMAP 39 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] 35

c) SQLNINJA 40 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 SQLNINJA 41 d) XSSer 42 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-hastala-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] 36