tema2

Seguridad de las aplicaciones online [2.1] ¿Cómo estudiar este tema? [2.2] Política de seguridad. Principios de segurida

Views 438 Downloads 3 File size 798KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Seguridad de las aplicaciones online [2.1] ¿Cómo estudiar este tema? [2.2] Política de seguridad. Principios de seguridad [2.3] Estándares de seguridad de aplicaciones [2.4] Vulnerabilidades en seguridad. OWASP TOP TEN, SANS TOP 25 [2.5] Vulnerabilidades de seguridad en aplicaciones web. Análisis y características [2.6] Evaluación de la seguridad de las aplicaciones web

TEMA

2

[2.7] Seguridad online

TEMA 2 – Esquema

2 ataques

Amenazas y

aplicaciones web

Vulnerabilidades en

Seguridad online: Protección Monitorización Auditoría Backups

Análisis y test de seguridad de las aplicaciones web: Análisis estático Análisis dinámico Análisis híbrido

Estándares de seguridad

Principios de seguridad

POLÍTICA de SEGURIDAD:

Seguridad de las aplicaciones online

Seguridad en Aplicaciones en Línea

Esquema

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

Ideas clave 2.1. ¿Cómo estudiar este tema? Para el estudio del apartado 2.2. «Política de seguridad, principios de seguridad» debes leer las páginas 144-164 del libro Seguridad en las comunicaciones y la información, de Gabriel Díaz Orueta. Para los apartados 2.3., 2.5. y 2.7. se ha de seguir el documento elaborado por el profesor para este tema 2: «Seguridad de las aplicaciones online» Para el estudio del punto 2.4, leer el apartado 2.5 de la guía: The WASC Threat Classification

v2.0.

Recuperado

el

24

de

abril

de

2013

de:

http://projects.webappsec.org/w/page/13246978/Threat%20Classification Para los apartados 2.7.se ha de seguir el documento elaborado por el profesor para este tema 2: «Seguridad de las aplicaciones online» y además: OWASP Development Guide 2.0.1, licencia libre, páginas 171 a 184. Recuperado el 24 de abril de 2013 de: https://www.owasp.org/images/b/b2/OWASP_Development_Guide_2.0.1_Spanish.pdf En este tema se abordan las actividades a realizar para obtener una seguridad lo más óptima posible de una aplicación desplegada en online. Las aplicaciones web desplegadas en las intranets de las organizaciones y en Internet suponen un amplio porcentaje del total de las aplicaciones. Debido a este hecho, este tema se centra en las medidas a adoptar para proteger estas aplicaciones ya que los problemas de seguridad de las aplicaciones no-web son un subconjunto de los problemas de las aplicaciones web. El tercer tipo de aplicaciones, en auge, son las aplicaciones móviles donde el cliente es un Smartphone, teléfono móvil, tableta, portátil, etc. Los ataques a dispositivos móviles están creciendo en la medida que aumenta el uso de las aplicaciones móviles (mcommerce) para banking, compras, etc. que se pueden utilizar desde ellos. La arquitectura de estas aplicaciones móviles es similar a la de las aplicaciones web. La

TEMA 2 – Ideas clave

3

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

mayor diferencia está en el canal de comunicación y la forma de proveer comunicación segura.

2.2. Política de seguridad. Principios de seguridad La política de seguridad de una organización es un conjunto de normas que rigen y determinan lo que se puede hacer y lo que no dentro de ella. Según el IETF se define como: «Una serie de sentencias formales (normas) que deben cumplir todas las personas que tengan acceso a cualquier información y tecnología de una organización» Entre las características más importantes de toda política de seguridad se pueden destacar [1]: Define el comportamiento apropiado para cada caso. Establece qué herramientas son necesarias y qué procedimientos. Sirve para comunicar un consenso del uso de datos y aplicaciones dentro de la organización. Proporciona una base para la demostración del uso inapropiado de recursos, por parte de empleados o de externos. La política de seguridad de una organización es algo en constante movimiento, que permite que el mantenimiento de la seguridad sea un proceso vivo y administrable de forma estructurada y organizada. Por tanto la seguridad es un proceso que se tiene que alcanzar mediante el desarrollo de la política de seguridad que ha de entenderse como algo dinámico que se tiene que actualizar observando una serie de principios de seguridad como:

TEMA 2 – Ideas clave

4

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

Principios de seguridad: Principio de mínimos privilegios. Principio de profundidad en la defensa. Principio de diversidad de la defensa. Identificación de puntos débiles. Centralización de la gestión de la seguridad. Principio de simplicidad.

Este apartado explica los tipos de normativas necesarias en una política de seguridad y también las fases y actividades a llevar a cabo dentro del proceso de seguridad de acuerdo con los principios de seguridad que deben regir toda política de seguridad. Además explica cómo es la puesta en marcha del proceso de seguridad que se puede escenificar como una rueda con las siguientes fases y actividades:

Implementación: medidas básicas, cortafuegos, redes privadas virtuales, etc.

Política de seguridad Análisis de vulnerabilidades: analizadores y pruebas

Monitorización: auditorías, sistemas de detección de intrusiones

Figura 1. Fases de la política de seguridad

TEMA 2 – Ideas clave

5

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

2.3. Estándares de seguridad de aplicaciones Para abordar el diseño de la seguridad de un sistema o aplicación es necesario obtener una adecuada visión de la tarea ante la que nos encontramos. La tarea de diseñar, implementar, probar, desplegar y proteger una aplicación en online es complicada y necesita reunir el conocimiento adecuado. Este conocimiento puede reunirse a través de varias fuentes, una de ellas es recurrir a organizaciones y estándares que se vienen ocupando desde hace tiempo de recopilar información sobre metodologías, protocolos, criptografía, paradigmas, proyectos de referencia, estudios sobre aspectos concretos de seguridad, herramientas de test, formas y herramientas de protección en tiempo real, etc. En el tema que nos ocupa, la información y el conocimiento que se puede aprovechar de un estándar de seguridad conocido pueden abarcar aspectos como: Vulnerabilidades de seguridad, naturaleza, características, importancia, estadísticas, etc. Metodologías de desarrollo de aplicaciones, ciclos de vida de desarrollo seguro, SSDLC. Metodologías de pruebas y testing de seguridad de aplicaciones. Herramientas de test de la seguridad, tipos, características, etc. Herramientas de protección online. Listas, características, etc. Metodologías de evaluación de herramientas de test de la seguridad. Benchmarks

para

evaluación

de

herramientas

de

seguridad

y

de

las

vulnerabilidades. Entre los estándares más conocidos que se dedican a la mejora de la seguridad de las aplicaciones se pueden citar los siguientes: OWASP SANS WASC MITRE CWE NIST

TEMA 2 – Ideas clave

6

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

2.4. Vulnerabilidades de seguridad en aplicaciones web Este apartado se ha de estudiar en la página web de WASC, en su proyecto «The WASC Threat Classification v2.0». Las vulnerabilidades de esta clasificación tienen su correspondencia con otras clasificaciones vistas anteriormente como OWASP TOP TEN y SANS TOP 25: http://projects.webappsec.org/w/page/13246978/Threat%20Classification Tiene como objetivo entender cómo se dan las principales vulnerabilidades y amenazas en las aplicaciones web que se pueden consultar en el enlace anterior, la idea es entender la naturaleza de cada vulnerabilidad de la tabla 1, extraer el concepto de cada una: Attacks

Weaknesses

Abuse of Functionality

Application Misconfiguration

Brute Force

Directory Indexing

Cross-Site Scripting

Improper Filesystem Permissions

Cross-Site Request Forgery

Improper Input Handling

Denial of Service

Improper Output Handling

HTTP Response Splitting

Information Leakage

Path Traversal

Insufficient Anti-automation

Remote File Inclusion (RFI)

Insufficient Authentication

Session Fixation

Insufficient Authorization

SQL Injection

Insufficient Session Expiration

URL Redirector Abuse

Insufficient Transport Layer Protection Server Misconfiguration

Tabla 1 .The WASC Threat Classification v2.0. Vulnerabilidades más importantes

2.5. OWASP TOP TEN, SANS TOP 25 Las vulnerabilidades de software son simplemente debilidades en un sistema que los atacantes pueden aprovechar para obtener alguna ventaja. En el contexto de la seguridad del software, las vulnerabilidades son defectos o descuidos específicos en una parte del software que permiten que los atacantes hagan algo malicioso o que

TEMA 2 – Ideas clave

7

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

alteren información sensible o que interrumpan o destruyan un sistema o tomar el control de un sistema informático o de un programa. Son errores, o descuidos en los programas que dan lugar a comportamiento inesperado y típicamente indeseable. Se puede afirmar que para que una vulnerabilidad (debilidad en el diseño, código, configuración, protección online de una aplicación) se materialice en una aplicación y se genere un impacto de negocio para la organización, es necesario que intervengan una serie de factores: Agente o amenaza, es la persona que realiza el ataque. Vectores de ataque, medio del que se sirve para llevar a cabo el ataque. Debilidad, vulnerabilidad de seguridad. Ausencia o fallo en el control. Impacto en algún activo de los sistemas de información de la organización. Impacto en el negocio de la organización. En este apartado se examinan varias clasificaciones de importantes estándares como OWASP TOP TEN ó SANS TOP 25 que son el resultado de estudios detallados de la frecuencia e importancia por el daño que ocasionan de las vulnerabilidades que tienen las aplicaciones desplegadas y los ataques que sufren aprovechando la existencia de las citadas vulnerabilidades. Asimismo se analiza la evolución y tendencia de los ataques y vulnerabilidades a lo largo de un período de tiempo para entender sobre todo qué buscan los atacantes en cada momento y preparar la defensa de las aplicaciones teniendo también ese conocimiento como base.

2.6. Evaluación de la seguridad de las aplicaciones web Una vez desarrollada la primera versión de la aplicación o por partes de la misma, pasar a la detección mediante revisiones de código manuales o con diversos tipos de herramientas automáticas especializadas de revisión de código fuente o ejecutable de tipo estático, de tipo dinámico en tiempo de ejecución y otras que se verán más adelante. También se puede contemplar el análisis manual de Stuttard [21] en un intento de «hackeo ético» de la aplicación desplegada, lo cual, supone personal muy especializado y aún así es muy difícil cubrir toda la superficie de ataque de la aplicación y costoso en tiempo. Para llevar a cabo un análisis de seguridad de una aplicación web, realizado

TEMA 2 – Ideas clave

8

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

con cualquier método, se tiene que cubrir toda la superficie de ataque de la misma cubriendo todas la partes y capas de la aplicación. En consecuencia con lo anterior, es necesario utilizar herramientas que automaticen el análisis de la seguridad para poder cubrir lo más posible la superficie de ataque de una aplicación que puede tener millones de líneas de código. Los tipos de herramientas semiautomáticas

(requieren

auditoría

posterior

de

sus

informes)

más

recomendables para llevar a cabo una evaluación de la seguridad de la aplicación según la fase del SSDLC son: Análisis estático de codigo fuente / ejecutable WhiteBox. SAST (static analysis security tools) Análisis dinámico BlackBox, DAST (dynamic analysis security tools) Análisis dinámico WhiteBox. RAST (real analysis security tools) o también denominadas IAST (Interactive analysis security tools) Herramientas híbridas de las tecnologías anteriores: o SAST-DAST o DAST-RAST o SAT-DAST-RAST En este apartado se profundiza en las características de cada uno de los tipos de herramientas y su arquitectura y sobre todo en las posibilidades de cada una en cuanto a las posibilidades de detección de amenazas y la calidad de sus informes de análisis de vulnerabilidades de seguridad. Lo ideal sería disponer de una herramienta híbrida de los tipos SAST, DASD y RAST que permite correlación de resultados y por tanto una mejor unificación de los mismos y de depuración de resultados. Para cubrir toda la superficie de ataque de una aplicación en un análisis lo más deseable es utilizar varios tipos de herramientas e incluso varias del mismo tipo para obtener mejores resultados de conjunto. Las herramientas SAST, por ejemplo, según el fabricante utilizan distintos métodos y algoritmos de búsqueda de vulnerabilidades por lo que analizando el mismo código los resultados pueden diferir bastante. Por todo esto es necesario combinarlas en un ciclo de vida de desarrollo seguro SSDLC como el de la figura 2.

REQUISITOS

Diseño

TEMA 2 – Ideas clave

IMPL

Ó

9

PRUEBAS

DESPLIEGUE

--------->

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

Figura 2. SSDLC

Se aportan también estadísticas comparativas de resultados de análisis de aplicaciones por parte de empresas que se dedican al análisis de la seguridad de aplicaciones y de consorcios dedicados a la seguridad de aplicaciones web conocidos.

2.7. Seguridad en el diseño de las aplicaciones web En este apartado se aborda el diseño del control de acceso en aplicaciones web, que tiene 3 fases:

Figura 3. Fases del control de acceso.

Un control de acceso a aplicaciones web requiere de un diseño y de una implementación segura de cada una de las fases. Por sus características las aplicaciones web utilizan el protocolo http con una serie de problemáticas (ver apartado 3.1) que hay que superar desde el punto de vista de la seguridad.

TEMA 2 – Ideas clave

10

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

2.8. Seguridad online Como se comentó al comienzo del tema, la seguridad online de las aplicaciones tiene como punto de partida la política de seguridad de la organización, que además de contemplar los procesos de desarrollo de sistemas y aplicaciones estableciendo un SSDLC, ciclo de vida de desarrollo de software seguro, debe establecer adecuados controles de protección, de auditoría y monitorización y de los mecanismos y medios de respuesta ante los incidentes detectados que hagan volver a los entornos a la normalidad. Una aceptable garantía de seguridad para una aplicación desplegada en producción pasa por haber realizado cada una de las prácticas de seguridad de cada una de las fases de seguridad del SSDLC (figura 4): Derivación de requisitos de seguridad y de casos de abuso. Análisis y gestión del riesgo. Análisis de código. Pruebas funcionales de seguridad. Test de penetración. Revisión externa. Operaciones de seguridad.

Figura 4. Modelo de SSDLC de MacGraw.

TEMA 2 – Ideas clave

11

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

En cada fase del SSDLC, se tiene que abordar el diseño de la seguridad inherente a la propia aplicación (la seguridad de la plataforma, sistemas operativos, seguridad perimetral se contempla en otras asignaturas). Los aspectos a abordar para que la seguridad de la aplicación sea lo más óptima posible pasan por un diseño e implementación seguros de: Seguridad física, del personal e instalaciones. Autenticación, autorización y gestión del estado de sesión. Validación de entradas y salidas de la aplicación. Configuración segura: Cliente, Servidor y Conexiones entre capas. Mecanismos de protección externos. Firewalls de aplicaciones web.

SERVIDOR BASE DE DATOS

SERVIDOR APLICACIONES

NAVEGADOR

APLICACION

SEGURIDAD USUARIO LOPD-LSSICE

SEGURIDAD CONEXIÓN

SEGURIDAD CONEXIÓN GESTION DE SESIONES

AUTENTICACION - AUTORIZACION

Figura5. Arquitectura de 3 capas de aplicaciones web.

Las operaciones de seguridad que hay que llevar a cabo la aplicación desplegada incluyen: Auditoría y monitorización. Gestión de incidentes, backups y recuperación, centro de respaldo. Formación continua. Por último, no hay que olvidar que una adecuada formación y concienciación continua en todo lo que se refiere a aspectos de seguridad es imprescindible fomentando en la empresa una cultura por la «seguridad» acorde con los tiempos que corren, donde cada vez parece que surgen más y nuevas amenazas que requieren estar prevenidos y preparados para hacerles frente en la mejor medida posible.

TEMA 2 – Ideas clave

12

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

Cuando se materializa una amenaza, hay que detectarla y en función de su naturaleza actuar en consecuencia de la mejor forma y medida posible, de tal forma, que el daño posible para la empresa se minimice al máximo y el impacto sufrido por sus activos sea el menor posible. El impacto es directamente proporcional al coste económico. En el apartado de la seguridad han de intervenir y estar concienciados todos los elementos de la organización, de nada sirve invertir ingentes cantidades de dinero en equipamiento como firewall, IDS,s, etc. si luego su configuración no se realiza de forma segura de acuerdo con estándares o si alguien suministra información aparentemente no importante a alguien que tampoco lo parecía, o deja información al alcance de terceros por descuido. Todas estas negligencias que pueden suponer fugas en la seguridad y son la causa finalmente en grandes pérdidas económicas y de competitividad para la organización. La formación y concienciación en seguridad es fundamental en todos los estamentos de la organización. Normalmente, cualquier medida que implique concienciar al personal o implantar cualquier medida o procedimiento de seguridad en cualquier parte de un área o departamento causa fastidio o rechazo por parte del personal que ha de observarlas. La mejor forma de tener éxito en este campo es intentar conseguir que cada individuo entienda y comprenda la importancia de la medida, que tiene que ver finalmente con alcanzar los objetivos de la organización y que el fallo o descuido personal tiene incidencia en lo colectivo.

TEMA 2 – Ideas clave

13

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

Material complementario Lecciones magistrales Análisis de seguridad de las aplicaciones web Cómo se puede llevar a cabo el Análisis de la seguridad de las aplicaciones web mediante herramientas semi-automáticas de distinto tipo de forma que se puedan combinar y complementar para cubrir toda la superficie de ataque de una aplicación en un tiempo razonable. El vídeo está disponible en el aula virtual.

No dejes de leer… Attacking Web Application Management Scambray, J., Liu, V., and Sima, C. (2011). Hacking exposed web applications (3ªEd.) McGraw Hill El libro trata los ataques a la administración y gestión de servidores de aplicaciones web, es especialmente recomendable la lectura del Capítulo 8 sobre Attacking Web Application Management. Accede al libro desde el aula virtual o a través de la siguiente dirección web: http://old.shahed.ac.ir/references/HackingExposedTMWebApplicationsJoelScambray.pdf

TEMA 2 – Material complementario

14

Seguridad en Aplicaciones en Línea

Seguridad en servidores de aplicaciones Web Ampliación sobre seguridad en servidores de aplicaciones Web. En ellos se instalan las aplicaciones web y en estas guías se abordan todos los aspectos que tienen que ver con la seguridad de un servidor de aplicaciones genérico que puede servir como base para implementar todos los aspectos de seguridad de cualquier servidor de aplicaciones. Accede al documento desde el aula virtual o a través de la siguiente dirección web: http://csrc.nist.gov/publications/nistpubs/800-44-ver2/SP800-44v2.pdf

Seguridad en BEA WEBLOGIC Seguridad en servidores de aplicaciones BEA WEBLOGIC. Es un guía específica de uno de los servidores de aplicaciones comerciales más utilizados hoy en día. Accede al documento desde el aula virtual o a través de la siguiente dirección web: http://www.nsa.gov/ia/_files/webs/I33-004R-2005.pdf

Seguridad en APACHE TOMCAT Seguridad en servidores de aplicaciones APACHE TOMCAT. Es una guía específica de uno de los servidores de aplicaciones open source más utilizados hoy en día. Accede al documento desde el aula virtual o a través de la siguiente dirección web: https://www.owasp.org/index.php/Securing_tomcat#Status https://tomcat.apache.org/tomcat-7.0-doc/security-howto.html

TEMA 2 – Material complementario

15

Seguridad en Aplicaciones en Línea

Seguridad en navegadores web Documentos con información sobre seguridad en distintos navegadores web. La capa cliente constituye el objetivo más frecuente de ataques de las aplicaciones web. Es necesario hacer hincapié en la configuración segura del equipo del cliente y del navegador web instalado. Accede a los documentos desde el aula virtual o a través de las siguientes direcciones web: Deploying and Securing Google Chrome in a Windows Enterprise https://www.iad.gov/iad/library/ia-guidance/securityconfiguration/applications/deploying-and-securing-google-chrome-in-a-windowsenterprise.cfm Guide to Securing Netscape 7.02: http://isp.netscape.com/ Browser Security Handbook, part 2: http://code.google.com/p/browsersec/wiki/Part2#Protocol-level_encryption_facilities

SAST vs DASD El proyecto abierto de WASC

Web Application Security Statistics, presenta

estadísticas comparativas, muy interesantes sobre análisis de seguridad de aplicaciones web realizado tanto con herramientas de análisis estático de caja blanca como dinámicas de caja negra. Accede al documento desde el aula virtual o a través de la siguiente dirección web: http://projects.webappsec.org/w/page/13246989/Web%20Application%20Security%2 0Statistics

TEMA 2 – Material complementario

16

Seguridad en Aplicaciones en Línea

Hp Fortify Security Center, Whitehat Sentinel Soluciones comerciales de seguridad integradas que ofrecen soluciones y herramientas de seguridad de caja blanca y de caja negra: SAST- DASD –RAST (IAST), necesarias para realizar un análisis de seguridad eficaz en un tiempo razonable permitiendo incrementar, a la vez, el conocimiento que se tiene de la aplicación con vistas a abordar la solución de los problemas de seguridad encontrados. Accede al documento desde el aula virtual o a través de la siguiente dirección web: http://www8.hp.com/us/en/softwaresolutions/software.html?compURI=1337262#tab=TAB2

No dejes de ver… OWASP Webgoat project: Movie Demonstration Solutions Tutorial (información y vídeos) del proyecto abierto OWASP, sobre las vulnerabilidades más frecuentes e importantes que sufren de las aplicaciones web. Cada vídeo muestra como se materializa una amenaza concreta sobre una vulnerabilidad existente en la aplicación web.

Accede al vídeo desde el aula virtual o a través de la siguiente dirección web: https://www.owasp.org/index.php/Category:OWASP_WebGoat_Project

TEMA 2 – Material complementario

17

Seguridad en Aplicaciones en Línea

A fondo Evaluación de DAST y SAST El consorcio abierto WASC pone a nuestra disposición su proyecto sobre los criterios para evaluación de herramientas DAST y SAST para análisis de la seguridad DAST y SAST de las aplicaciones web. Accede a los documentos desde el aula virtual o a través de las siguientes direcciones web:

WASC: Web Application Security Scanner Evaluation Criteria: http://projects.webappsec.org/w/page/13246986/Web%20Application%20Security%2 0Scanner%20Evaluation%20Criteria WASC: Static Analysis Tool Evaluation Criteria: http://json.org/json-es.html

WASC: Web Application Firewall Evaluation Criteria El consorcio abierto WASC pone a nuestra disposición su proyecto sobre los criterios para evaluación de CORTAFUEGOS que se pueden utilizar en la protección online de las aplicaciones web mediante la creación de reglas de protección que actúan sobre los puertos más utilizados por estas aplicaciones. Accede al documento desde el aula virtual o a través de la siguiente dirección web: http://projects.webappsec.org/w/page/13246985/Web%20Application%20Firewall%2 0Evaluation%20Criteria

TEMA 2 – Material complementario

18

Seguridad en Aplicaciones en Línea

Webgrafía WASC Página web del Web Application Security Consortium, una Organización sin ánimo de lucro, formada por un grupo internacional de expertos, profesionales de la industria y representantes de organizaciones que producen software libre y ampliamente acordados estándares de seguridad de mejores prácticas para la World Wide Web.

http://www.webappsec.org/

NIST Sitio web del National Institute of Standars and Technology: information Technology Laboratory. Reúne amplio conocimiento, guías, recursos y proyectos sobre la implementación de la seguridad del software de aplicaciones, sistemas operativos, bases de datos y redes de comunicaciones entre otros.

http://csrc.nist.gov/

Bibliografía Bibliografía básica Díaz Orueta, G. Seguridad en las comunicaciones y la información. Universidad Nacional de Educación a Distancia.

TEMA 2 – Material complementario

19

Seguridad en Aplicaciones en Línea

OWASP. (2005). Una Guía para Construir Aplicaciones y Servicios Web Seguros. (pp. 146

a

154

y

171

a

184).

Recuperado

el

25

de

abril

de

2013

de:

https://www.owasp.org/images/b/b2/OWASP_Development_Guide_2.0.1_Spanish.p df Swanson, M., Bowen, P., Wohl Phillips, A., Gallup, D., y Lynes, D. Contingency Planning Guide for Federal Information Systems (pp. 5 a 10). NIST. Recuperado el 25 de abril de 2013 de: http://csrc.nist.gov/publications/nistpubs/800-34-rev1/sp80034-rev1_errata-Nov11-2010.pdf Tracy, M., Jansen, W., Scarfone, K., y Winograd, T. (2007). Guidelines on Securing Public Web Servers. (pp. 5-1 a 5-9, 7-1 a 7-2, 9-1 a 9-5, 9-5 a 9-9 y 9-14). NIST. Recuperado el 25 de abril de 2013 de: http://csrc.nist.gov/publications/nistpubs/80044-ver2/SP800-44v2.pdf WASC. (2010). The WASC Threat Classification v2.0. Recuperado el 25 de abril de 2013 de: http://projects.webappsec.org/w/page/13246978/Threat%20Classification

Bibliografía complementaria Cannings, R., Dwivedi, H., & Lackey, Z. (2008). Hacking exposed web applications. Web 2.0. Mcgraw Hill. OWASP. OWASP top ten proyect. Recuperado el 25 de abril de 2013 de: https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project Ristic, I. (2012). Modsecurity. Feisty Duck. Recuperado el 25 de abril de 2013 de: https://www.feistyduck.com/books/modsecurity-handbook/modsecurity-handbookgetting-started-may-2012.pdf Scambray, J., Liu, V., & Sima, C. (2010). Hacking Exposed Web Applications 3. McGraw-Hill/Osborne. Veracode. State of Software Security Report. Volume 4. Recuperado el 25 de abril de 2013 de: http://www.veracode.com/reports/index.html

TEMA 2 – Material complementario

20

Seguridad en Aplicaciones en Línea

Actividades Trabajo: Test de penetración a la aplicación BADSTORE utilizando un Scanner de vulnerabilidades de aplicaciones web Pautas de elaboración Descarga: ORACLE virtualbox desde https://www.virtualbox.org/ e instala ZAP desde: https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project Descarga la máquina virtual con la aplicación BADSTORE, desde: https://www.dropbox.com/sh/7ewzuosszqslkok/AADL6CSiXkoFPWdmfnwjHDLYa ?dl=0 Importa el servicio virtualizado badstore.ova desde ORACLE virtualbox. En configuración - almacenamiento, asocia la imagen BadStore-212.iso en el controlador IDE (cdrom) y configura la máquina virtual para que arranque primero desde el cdrom. Crear una red virtualbox HOST ONLY – virtualbox- file- preferencias- red- redes solo anfitrión- añadir una red- habilitar DCHP y configurar de la siguiente forma:

Configura el adaptador der red solo-anfitrión con las siguientes direcciones:

TEMA 2 – Actividades

21

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

Importa el servicio virtualizado badstore.ova desde ORACLE virtualbox. En configuración - almacenamiento, asocia la imagen BadStore-212.iso en el controlador IDE (cdrom) y configura la máquina virtual para que arranque primero desde el cdrom. Arranca la máquina virtual y ejecuta ifconfig para comprobar la dirección IP asociada al dispositivo eth0. Realiza el test de penetración de la aplicación BADSTORE con el Scanner de vulnerabilidades ZAP atacando a la dirección asociada al dispositivo eth0 obtenida en el paso anterior cambiando dir_ip por la dirección: ej.: http://dir_ip/cgibin/badstore.cgi Audita manualmente al menos tres vulnerabilidades para comprobar la veracidad de las alertas por parte de ZAP. Debes confeccionar una memoria explicando el proceso y los resultados obtenidos adjuntando el informe de la herramienta ZAP. Extensión máxima: 15 páginas (Georgia 11 e interlineado 1,5).

TEMA 2 – Actividades

22

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

Trabajo: Instalación y pruebas del firewall de aplicaciones web open source: MODSECURITY Modsecurity es un WAF instalable embebido en HOST o como reverse proxy:

Figura 5. Modesecurity as reverse proxy http://adolfomaltez.wordpress.com/2011/05/29/apachereverse-proxy-modsecurity/

ModSecurity puede instalarse de forma embebida protegiendo un único servidor Apache o como proxy inverso protegiendo varios servidores web. La instalación de ModSecurity es la misma para estos dos tipos de despliegue, únicamente variará la configuración de Apache que en el caso de querer proteger varios servidores se deberá instalar en una máquina dedicada el servidor. Apache con el módulo ModSecurity, configurando el servidor Apache para que actúe como proxy inverso. ModSecurity realiza un filtrado de los datos de entrada y salida al servidor web bloqueando todo el tráfico que considere malicioso según unas reglas definidas. Cada una de las peticiones realizadas al servidor web son inspeccionadas por ModSecurity para comprobar que no llegue al servidor web ningún contenido no autorizado. En este ejercicio se va a instalar, configurar y probar ModSecurity protegiendo la aplicación web Mutiliidae.

TEMA 2 – Actividades

23

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

1. Instalación del entorno

Descarga e instala Oracle VM VirtualBox desde: http://www.oracle.com/technetwork/es/server-storage/virtualbox/downloads/index.html

Descarga Máquina Virtual lamp que contiene: Linux Ubuntu server + Apache + Mysql + Php (LAMP) y aplicación web php MUTILLIDAE desde: https://drive.google.com/open?id=0Bz7Tp_tMynwpTVJSZWxYS3RXOHc La máquina virtual tiene dos dispositivos de red ya configurados: » Eth0: NAT » Eth1: 192.168.2.3 Configura el adaptador de red virtual de la máquina local anfitriona (adaptador de red ORACLE VM VIRTTUALBOX) con la dirección 192.168.2.4, para tener conectividad con el servidor Ubuntu de la MV. Se recomienda realizar una copia instantánea (snapshot) o clonar la MV lamp a otra que nombraréis fwmodsecurity. De esta última forma se tendrán dos máquinas: una sin modsecurity y otra con modsecurity instalado. Las pruebas se realizarán contra las dos máquinas por separado o en la misma máquina (opción sanpshot) activandodesactivando el firewall modsecurity. Instala el firewall de aplicaciones web modsecurity+modevasive en la MV fwmodsecurity:

TEMA 2 – Actividades

24

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

sudo apt-get update (actualizar repositories de software) sudo

apt-get

install

libapache2-mod-security2

libapache2-modsecurity

libapache2-mod-evasive

Para habilitar las reglas mod_security, copier el fichero de configuración mod_security, editarlo y establecer el parámetro ‘SecRuleEngine’ a On: sudo cp /etc/modsecurity/modsecurity.conf{-recommended,} sudo nano /etc/modsecurity/modsecurity.conf SecRuleEngine On

SecRequestBodyLimit 32768000 SecRequestBodyInMemoryLimit 32768000

SecResponseBodyAccess Off

Las reglas modsecurity están en: /usr/share/modsecurity-crs/base_rules /usr/share/modsecurity-crs/optional_rules /usr/share/modsecurity-crs/experimental_rules

Descargar OWASP modsecurity Core Rule Set: sudo git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git sudo mv /usr/share/modsecurity-crs /usr/share/modsecurity-crs.bak sudo mv owasp-modsecurity-crs /usr/share/modsecurity-crs sudo

mv

/usr/share/modsecurity-crs/modsecurity_crs_10_setup.conf.example

/usr/share/modsecurity-crs/modsecurity_crs_10_setup.conf sudo

ln

-s

/usr/share/modsecurity-crs/base_rules/*.conf

/usr/share/modsecurity-crs/activated_rules/

Comentar líneas (carácter # al comienzo de línea) 20, 27, 29 del fichero modsecurity_crs_35_bad_robots.conf (esto ocurre porque la versión de reglas es posterior a la de modsecurity y este no está preparado para unas pocas acciones, se podría instalar una versión de reglas más antigua o mejor comentar las directivas siguientes. Si en el momento de la instalación de modsecurity, su versión ha

TEMA 2 – Actividades

25

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

cambiado con respecto a esta, es posible que sean otras reglas las que haya que comentar, la información de reglas a comentar aparece en pantalla al reiniciar el servicio apache2): #SecRule

REQUEST_HEADERS:User-Agent

"@pmFromFile

modsecurity_35_scanners.data" \ #SecRule

REQUEST_HEADERS:User-Agent

"@pmFromFile

modsecurity_35_bad_robots.data" \ #SecRule REQUEST_HEADERS:User-Agent “(?i:?:c …

\

Comentar línea: buscar la cadena dentro del fichero: “modsecurity_40_generic_attacks.conf” y comentar esa línea: sudo nano /usr/share/modsecuritycrs/activated_rules/modsecurity_crs_40_generic_attacks.conf #SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|REQUEST_C OOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "@pmFromFile modsecurity_40_generic_attacks.data" \

Comentar línea: buscar la cadena dentro del fichero: “modsecurity_50_outbound.conf” y comentar esa línea:

sudo nano /usr/share/modsecuritycrs/activated_rules/modsecurity_crs_50_outbound.conf #SecRule RESPONSE_BODY "!@pmFromFile modsecurity_50_outbound.data" \

Editar /etc/apache2/mods-enabled/security2.conf: sudo nano /etc/apache2/mods-enabled/security2.conf

Añadir al final de security2.conf:

IncludeOptional /etc/modsecurity/*.conf IncludeOptional "/usr/share/modsecurity-crs/*.conf" IncludeOptional "/usr/share/modsecurity-crs/activated_rules/*.conf"

TEMA 2 – Actividades

26

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

Configurar módulo mod_evasive: Sudo nano /etc/apache2/mod-enabled/mod-evasive.conf

DOSHashTableSize 3097 DOSPageCount

10

DOSSiteCount

30

DOSPageInterval 1 DOSSiteInterval

3

DOSBlockingPeriod DOSLogDir

3600

/var/log/apache2/mod_evasive.log

Crear fichero de log para mod_evasive: touch /var/log/apache2/mod_evasive.log sudo chown www-data:www-data /var/log/apache2/mod_evasive.log

Cargar módulos en Apache: sudo a2enmod headers sudo a2enmod evasive sudo a2enmod security2

Reinicio de Apache2 web server: sudo service apache2 restart

Comprobar si están actives: sudo apachectl -M | grep security2 security2_module (shared) sudo apachectl -M | grep evasive evasive20_module (shared)

TEMA 2 – Actividades

27

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

Instalar las herramientas HOIC, LOIC en la máquina anfitriona para realizar ataques de denegación de servicio distribuidos DDOS contra la aplicación web MUTILLIDAE situada en la MV:

HOIC: http://sourceforge.net/projects/highorbitioncannon/?source=typ_redirect LOIC: http://sourceforge.net/projects/loic/ PD: los antivirus dan alerta cuando se descargan, no pasa nada, se obvia la alerta. Más información sobre ataques y herramientas DDOS en:

Ataques DDOS:

http://resources.infosecinstitute.com/dangerous-ddos-distributed-denial-of-serviceon-the-rise/

Herramientas DDOS:

http://resources.infosecinstitute.com/dos-attacks-free-dos-attaking-tools 2. Pruebas de funcionamiento de modsecurity: Con el objetivo de comparar los efectos conseguidos mediante ataques a la aplicación mutillidae, hay que llevar a cabo las siguientes pruebas en cada una de las dos máquinas por separado (lamp, fwmodsecurity). Debido a que tienen la misma dirección IP, hay que realizar las pruebas con una sola máquina virtual arrancada. Se arranca una máquina, se pasan todas las pruebas, se monitorizan y se recogen resultados; y, posteriormente, se realiza la misma operación con la otra máquina. También se puede utilizar solo la máquina fwmodsecurity habilitando y deshabilitando el firewall mediante el parámetro SecRuleEngine On/Off en /etc/modsecurity/modsecurity.conf Comprobar: » Accede al servidor Apache desde el navegador de la máquina local mediante la dirección IP de la máquina Ubuntu server donde está instalado el servidor Apache. Si está correctamente instalado MODSECURITY prohibirá el acceso, ya que existe una regla que impide acceder mediante dirección IP. Solo se permite por defecto acceso mediante nombres de dominio con DNS configurado. Para permitir el acceso mediante dirección IP el alumno deberá deshabilitar la regla que impide tal acceso y comprobar posteriormente que ya se permite acceder mediante dirección IP.

TEMA 2 – Actividades

28

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

» Después

de

deshabilitar

la

regla

anterior, mediante

http://192.168.2.3/../../../etc/passwd

comprobar la

el

acceso

herramienta

a

ncat

(https://nmap.org/ncat/, o también disponible en Kali linux) para evitar que el navegador pueda suprimir los caracteres../. Se debería prohibir el acceso. Localizar el mensaje de LOG donde se especifica la regla que impide el acceso y mostrarlo en la memoria. Ataques » Explota al menos 5 vulnerabilidades OWASP 2013-2010-2007 manualmente o con ayuda de una herramienta como ZAP o similar (DAST): SQLI, XSS, OPEN REDIRECT, LFI… » Mediante las herramientas HOIC y LOIC realiza ataques de denegación de servicio distribuidos DDOS desde la máquina anfitriona a la aplicación mutillidae instalada en las máquinas virtuales. Para realizar los ataques de DDOS y que tengan éxito, es conveniente dirigirlos a aquellas partes de la aplicación que sean más vulnerables a ataques DDOS por consumir más recursos al ser requeridas por el usuario. Por ello, se debe investigar un poco la aplicación para configurar las URLs más vulnerables y dirigir los ataques hacia ellas. Además, hay que estudiar como parametrizar los ataques con cada herramienta. Mediante distintos métodos como aplicados en todas las capas de la aplicación: » Comando TOP de Linux. » Log de la aplicación de mutillidae:  http://192.168.2.3/mutillidae/index.php?page=show-log.php » Log de S.O. Linux  /var/log/… » Log de apache/modsecurity/modevasive  /var/log/apache2… » Phpmyadmin: http://192.168.2.3/mutillidae/phpmyadmin/  mysql estado actual. » Aplicación wireshark instalada en la máquina anfitrión para grabar estadísticas de tráfico

durante

los

ataques.

Para

uso

de

wireshark

consultar:



https://www.incibe.es/CERT/guias_estudios/guias/guia_wireshark » …

TEMA 2 – Actividades

29

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

Entregable Se debe confeccionar una memoria explicando lo realizado, resaltando el análisis comparativo de los ataques realizados contra cada una de las máquinas. Se referenciarán pantallas, logs, capturas, etc. que irán en un anexo al final. Por tanto, se debe aportar en un anexo aparte copias de pantallas con resultado de comandos, logs, capturas de wireshark, navegador, herramientas DDOS, etc. que demuestren la realización correcta del ejercicio. Extensión máxima: (sin contar anexos) 15 páginas (fuente Georgia 11 e interlineado 1,5). Debe contener: índice, apartados con contenido principal, conclusiones y referencias. Entrega un fichero en formato Zip o Rar, con la memoria + anexo.

TEMA 2 – Actividades

30

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

Test 1. ¿Cuáles son los principios de seguridad en los que debe basarse toda política de seguridad? A. Profundidad en la defensa, mínimos privilegios, diversidad de la defensa, gestión centralizada, sofisticación, identificación de puntos débiles, cierre completo de accesos ante incidentes. B. Profundidad en la defensa, mínimos privilegios, diversidad de la defensa, gestión delegada en niveles, simplicidad, identificación de puntos débiles, cierre completo de accesos ante incidentes. C. Profundidad en la defensa, mínimos privilegios, diversidad de la defensa, gestión centralizada, simplicidad, identificación de puntos débiles, cierre completo de accesos ante incidentes. D. A y B son correctas. 2. ¿Qué tipo vulnerabilidad contiene el siguiente fragmento de código?

A. PATH TRAVERSAL. B. SQLI. C. XSS. D. HTTP RESPONSE SPPLITING.

TEMA 2 – Test

31

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

3. ¿Qué tipo vulnerabilidad contiene el siguiente fragmento de código?

HOLA! Hi

Bienvenido al sistema …

A. PATH TRAVERSAL. B. SQLI. C. XSS. D. HTTP RESPONSE SPPLITING. 4. Señala las afirmaciones correctas en cuanto a herramientas de análisis de la seguridad SAST. A. Las herramientas SAST no cubren todo en código de la aplicación. B. Las herramientas SAST tienen falsos negativos y falsos positivos. C. Las herramientas SAST pueden analizar tanto código fuente y también las hay disponibles para código ejecutable. D. Todas las anteriores son falsas. 5. Señala la afirmación falsa. A. Las herramientas DAST encuentran menos vulnerabilidades que las de tipo SAST. B. Las herramientas de tipo DAST no pueden encontrar ciertos tipos de vulnerabilidades ya que realizan un análisis sintáctico de la aplicación. C. El análisis DAST solo puede testear las partes de la aplicación accesibles externamente. D. Todas las anteriores son falsas.

TEMA 2 – Test

32

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

6. Señala la afirmación falsa. A. Las herramientas de análisis de tipo RAST no suelen tener falsos positivos. B. Las herramientas RAST se pueden utilizar como firewalls de aplicaciones web de tipo software. C. Las herramientas de tipo RAST normalmente no tienen impacto en el rendimiento. D. Las herramientas RAST pueden detectar únicamente, bloquear o sanear la petición. 7. Señala la afirmación falsa. A. Los métodos de autenticación más seguros son aquellos basados en: hardware tokens, one-time passwords, biometric authentication, and SSL/TLS client certificates B. Los métodos de autenticación basados en passwords y digest son débiles. C. AES 256 es menos seguro que T-DES. D. SSL-TLS posibilita autenticación de servidor y de cliente. 8. HTTP y procedencia de las peticiones, señala la afirmación falsa: A. Una aplicación web que usa cookies de sesión debe tomar precauciones especiales para asegurar que un atacante no pueda engañar a usuarios enviando falsas peticiones. B. Las aplicaciones que pasan el identificador de sesión en la URL y no un cookie, no tienen este problema. C. Todas las demás son falsas. D. Para las aplicaciones que usan cookies de sesión, el formulario debe incluir alguna información para que formulario de back-end pueda validar la procedencia de la petición.

TEMA 2 – Test

33

© Universidad Internacional de La Rioja (UNIR)

Seguridad en Aplicaciones en Línea

9. La validación de entradas y salidas de la aplicación es un requisito. Señala las afirmaciones correctas: A. Los datos enviados por medio del URL, lo cual se desaconseja enérgicamente, pueden ser codificados y descodificados. Esto reduce la posibilidad de ataques del tipo «cross-site-scripting». B. Es más aconsejable utilizar técnicas de validación de whitelisting (buenos conocidos) que de blacklisting (malos conocidos). C. El solo rechazo de los actuales «malos conocidos» es suficiente si la entrada es una cadena de caracteres. D. Siempre que codifique para una tecnología en particular, se debería determinar qué caracteres son «especiales» y prevenir que aparezcan en las entradas de datos o tratarlos adecuadamente. 10. Respecto a las variantes de instalación de los firewalls de aplicaciones web, señala las afirmaciones correctas: A. La configuración en modo proxy inverso es la menos deseable. B. Se debe proporcionar redundancia en la configuración con DOS WAF. C. Pueden efectuar validaciones de tipo whitelist, blacklist o una combinación de ambos tipos. D. Blacklist, consiste en mantener una base de datos de firmas de ataques mientras que whitelist consiste en tener un modelo de tráfico aceptado entre la aplicación y el cliente.

TEMA 2 – Test

34

© Universidad Internacional de La Rioja (UNIR)