La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

OWASP TOP 10 Los diez riesgos más importantes en aplicaciones web

Presentaciones similares


Presentación del tema: "OWASP TOP 10 Los diez riesgos más importantes en aplicaciones web"— Transcripción de la presentación:

1 OWASP TOP 10 Los diez riesgos más importantes en aplicaciones web
Luis Martínez Bacha Softtek AppSec Program Manager Hacker Ético Certificado, SCJP Héctor J. Espinoza Auditor de Seguridad en Aplicaciones - Softtek Hacker Ético Certificado

2 OWASP Top 10 (Edición 2010) http://www.owasp.org/index.php/Top_10
The red ones are the new ones.

3 "SELECT * FROM accounts WHERE acct=‘’ OR 1=1--’"
A1 – Inyección (SQL) Account: SKU: Account: SKU: "SELECT * FROM accounts WHERE acct=‘’ OR 1=1--’" Account Summary Acct: Acct: Acct: Acct: Respuesta HTTP  Tabla BD  Pedido HTTP  Consulta SQL Capa de Aplicación Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions Databases Legacy Systems Web Services Directories Human Resrcs Billing APPLICATION ATTACK Custom Code 1. Aplicación presenta un formulario Web al atacante 2. Atacante envía un ataque en los datos del formulario App Server 3. Aplicación dirige el ataque a la base de datos en una consulta SQL Web Server Hardened OS 4. Base de datos ejecuta el ataque y envía los resultados cifrados nuevamente a la aplicación Capa de Red Firewall Firewall 5. Aplicación descifra los datos normalmente y envía los resultados al atacante

4 Debilidad en Seguridad
A1 - Inyección Las inyecciones (como de SQL, OS y LDAP) ocurren cuando datos no confiables son enviados a un interprete como parte de un comando o consulta. Los datos hostiles del atacante pueden engañar al interprete al ejecutar comandos no previstos u obteniendo datos no autorizados. Agentes Atacantes Vectores de Ataque Debilidad en Seguridad Impacto Técnico Impacto de Negocio _______ Explotable FACIL Prevalencia COMUN Detectable PROMEDIO Impacto SEVERO _______ Considere cualquier persona que pueda mandar datos no confiables al sistema, incluyendo usuarios externos, usuarios internos y administradores. El atacante simplemente envía un ataque basado en texto que explota la sintaxis del interprete objetivo. Casi cualquier origen de datos puede ser un vector de inyección, incluyendo orígenes internos. Los errores de inyección ocurren cuando una aplicación envía datos no confiables a un interprete. Las inyecciones son muy comunes, particularmente en código heredado, casi siempre encontrado en consultas SQL, LDAP, XPATH y comandos OS, argumentos de programa, etc. Los errores de inyección son fáciles de descubrir cuando se examina código, pero es más difícil durante pruebas sobre la instancia. Los escáner y fuzzers pueden ayudar a los atacantes a encontrarlos. Las inyecciones pueden resultar en pérdida de datos, falta de contabilidad o denegación de acceso. Las inyecciones algunas veces pueden ocasionar que el servidor sea tomado por atacante por completo. Considere el valor de negocio de los datos afectados y la plataforma sobre la que esta el interprete. Todos los datos podrían ser robados, modificados o borrados. ¿Tu reputación se podría ver afectada? The red ones are the new ones.

5 A2 – Scripting de Sitios Cruzados
1 Atacante establece una trampa – actualizar perfil Aplicación con vulnerabilidad XSS Reflejado Atacante ingresa un script malicioso en una pagina Web que almacena los datos en el servidor Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions 2 Victima visualiza la pagina – accede al perfil Script se ejecuta en el navegador de la victima 3 Script silenciosamente envía la sesión de la victima al atacante 5

6 A2 – Scripting de Sitios Cruzados
Los errores XSS ocurren siempre que una aplicación toma datos no confiables y los envía al navegador sin una validación y escape apropiado. XSS permite a los atacantes a ejecutar scripts en el navegador de la victima donde pueden adueñarse de sesiones de usuario, modificar sitios Web o redireccionar al usuario a sitios maliciosos. Agentes Atacantes Vectores de Ataque Debilidad en Seguridad Impacto Técnico Impacto de Negocio _______ Explotable PROMEDIO Prevalencia MUY ESPARCIDO Detectable FÁCIL Impacto MODERADO _______ Considere cualquier persona que pueda mandar datos no confiables al sistema, incluyendo usuarios externos, usuarios internos y administradores. El atacante envía ataques de scripts basados en texto que explotan al interprete en el navegador. Casi cualquier origen de datos puede ser un vector de ataque, incluyendo orígenes internos como datos desde la BD. XSS es el error de seguridad en aplicaciones Web mas común. Los errores de XSS ocurren cuando la aplicación incluye datos proporcionados por el usuario en una pagina enviada al navegador sin la validación y escape apropiado. Hay tres tipos conocidos de XSS: 1) Almacenado 2) Reflejado 3) Basado en DOM La detección de la mayoría de los errores de XSS es fácil ya con pruebas en la instancia de la aplicación o con análisis de código. Los atacantes puede ejecutar scripts en un navegador de la victima para robar sesiones, modificar sitios Web, insertar contenido hostil, incrustar malware a través del navegador del usuario, etc. Considere el valor de negocio del sistema afectado y todos los datos que este procesa. También considere el impacto de negocio al ser expuesto a la vulnerabilidad. The red ones are the new ones.

7 A3 – Pérdida de Autenticación y Gestión de Sesiones
1 Usuario envía credenciales Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions Sitio utiliza reescritura de URLs (ej., escribe sesión en URL) 2 3 Usuario hace clic en un link hacia en un foro 4 5 El Atacante utiliza la JSESSIONID y toma posesión de la cuenta del usuario El Atacante verifica encabezados de referencia en los logs de y encuentra la JSESSIONID del usuario 7

8 A3 – Pérdida de Autenticación y Gestión de Sesiones
Las funciones de la aplicación relacionadas a la autenticación y el manejo de sesión no siempre son implementadas correctamente, permitiendo a los atacantes a recuperar contraseñas, llaves, identificadores de sesión o explotar otros errores de implementación para adquirir la identidad de otros usuarios. Agentes Atacantes Vectores de Ataque Debilidad en Seguridad Impacto Técnico Impacto de Negocio _______ Explotable PROMEDIO Prevalencia COMÚN Detectable PROMEDIO Impacto SEVERO _______ Considere a atacantes externos anónimos, así como usuarios con sus propias cuentas quienes traten de robar cuentas de otros. También considere usuarios internos esperando por tomar acción. El atacante usa pistas o fallas en la autenticación o en las funciones de gestión de las sesiones (por ejemplo, cuentas expuestas, contraseñas, identificadores de sesión) para personificar otros usuarios. Los desarrolladores frecuentemente construyen esquemas de autenticación y gestión de sesiones personalizadas, pero construirlas correctamente es difícil. Como un resultado, esos esquemas personalizados frecuentemente tienen errores en áreas como el cierre de sesión, la gestión de contraseñas, temporizador de sesión, funciones de recordatorio de usuario, pregunta secreta, actualización de cuenta, etc. El encontrar esos errores puede ser difícil algunas veces ya que cada implementación es única. Dichos errores pueden permitir ataques a una o incluso todas las cuentas. Una vez que el ataque a sido exitoso, el atacante puede hacer cualquier cosa que la victima podría hacer. Las cuentas privilegiadas son las que siempre están en la mira. Considere el valor de negocio de los datos afectados o las funciones de la aplicación. También considere el impacto de negocio de al ser expuesto públicamente a este esta vulnerabilidad. The red ones are the new ones.

9 A4 – Referencia Directa Insegura a Objetos
Atacante identifica su numero de cuenta 6065 ?acct=6065 Lo modifica a un numero parecido ?acct=6066 Atacante visualiza los datos de la cuenta de la victima https://www.onlinebank.com/user?acct=6065 9

10 A4 – Referencia Directa Insegura a Objetos
Una referencia directa a objeto ocurre cuando un desarrollador expone una referencia a una implementación de un objeto interno, como pueden ser un archivo o una llave de base de datos. Sin un chequeo de control de acceso u otra protección, los atacantes pueden manipular esas referencias para acceder a datos no autorizados. Agentes Atacantes Vectores de Ataque Debilidad en Seguridad Impacto Técnico Impacto de Negocio _______ Explotable FÁCIL Prevalencia COMÚN Detectable FÁCIL Impacto MODERADO _______ Considere los tipos de usuarios de su sistema. Existe algún usuario con solo accesos parciales a ciertos tipos de datos del sistema. El atacante, quienes un usuario autorizado del sistema, simplemente cambia el valor de un parámetro que directamente relaciona el objeto del sistema con otro objeto al que el usuario no esta autorizado. Las aplicaciones frecuentemente usan el nombre actual o llave de un objeto durante la generación de las paginas Web. Las aplicaciones no siempre verifican si el usuario esta autorizado a ver el objeto en cuestión. Esto resulta en un error de referencia directa insegura a objetos. Los auditores pueden fácilmente manipular los valores de los parámetros para detectar dichos errores y el análisis de código rápidamente muestra si la autorización esta propiamente verificada. Dichos errores pueden comprometer todos los datos que pueden ser referenciados por el parámetro. A menos que el espacio de nombres sea escaso, es fácil para un atacante el acceder a todas los datos disponibles. Considere el valor de negocio de los datos expuestos. También considere el impacto de negocio de al ser expuesto públicamente a este esta vulnerabilidad. The red ones are the new ones.

11 A5 – Falsificación de Petición de Sitios Cruzados
Atacante establece una trampa en algún sitio Web en la Internet (o simplemente a través de un correo electrónico) 1 Aplicación con vulnerabilidad CSRF Tag oculto <img> contiene ataque contra sitio vulnerable Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions Mientras que la victima se encuentra conectada al sitio vulnerable, visualiza el sitio del atacante 2 3 Sitio vulnerable recibe un pedido legitimo de la victima y ejecuta la acción solicitada <img> tag es cargado por el navegador – envía un pedido GET (utilizando las credenciales) a un sitio vulnerable 11

12 A5 – Falsificación de Petición de Sitios Cruzados (CSRF)
Un ataque de CSRF fuerza a un navegador de un usuario con sesión activa a mandar una petición HTTP falsa, incluyendo la cookie de la sesión de la victima y cualquier otra información incluida en la autenticación, hacia la aplicación Web vulnerable. Esto permite al atacante a forzar al navegador de la victima a generar peticiones que la aplicación vulnerable piense que son legítimos. Agentes Atacantes Vectores de Ataque Debilidad en Seguridad Impacto Técnico Impacto de Negocio _______ Explotable PROMEDIO Prevalencia ESPARCIDO Detectable FÁCIL Impacto MODERADO _______ Considere a cualquier persona que pueda engañar a sus usuarios al enviar una petición a tu sitio Web. Cualquier sitio Web u otro tipo de alimentación en HTML que tus usuarios acceden pueden hacer esto. El atacante crea peticiones HTTP falsas y engaña a la victima al enviarlas a través de etiquetas de imagen, XSS u otras numerosas técnicas. Si el usuario es autenticado, el ataque será exitoso. CSRF toma ventaja de las aplicaciones Web que permiten a los atacantes a predecir todos los detalles de una acción particular. Ya que los navegadores envían automáticamente credenciales como la cookie de sesión, los atacantes pueden crear paginas Web maliciosas donde puedan generar peticiones falsas que no son distinguibles de las legítimas. La detección de los errores de CSRF es fácil por pruebas de penetración o análisis de código. Los atacantes pueden ocasionar que las victimas cambien cualquier dato que en teoría seria valido o realizar cualquier función que la victima estaría autorizada a usar. Considere el valor de negocio de los datos afectados o de las funciones de la aplicación. Imagina el no estar seguro si los usuarios intentaron tomar esas acciones. Considere el impacto a tu reputación. The red ones are the new ones.

13 A6 – Configuración Defectuosa de Seguridad
Database Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions Custom Code App Configuration Development Framework App Server The red ones are the new ones. QA Servers Web Server Hardened OS Atacante Interno Test Servers Source Control

14 A6 – Configuración Defectuosa de Seguridad
Tener buena seguridad requiere tener una configuración de seguridad definida e implementada para la aplicación, marcos de trabajo, servidor de aplicación, servidor web, servidor de base de datos, y la plataforma. Todas estas configuraciones deben ser definidas, implementadas, y mantenidas ya que muchas no se envían con seguridad por defecto. Esto incluye mantener todo el software al día, incluyendo las librerías de código que utiliza la aplicación. Agentes Atacantes Vectores de Ataque Debilidad en Seguridad Impacto Técnico Impacto de Negocio _______ Explotable FÁCIL Prevalencia COMÚN Detectable FÁCIL Impacto MODERADO _______ Considere atacantes anónimos externos así como usuarios con sus cuentas propias que pueden tratar de comprometer el sistema. También considere “insiders” que quieran ocultar sus acciones. El atacante accede a las cuentas por defecto, páginas no utilizadas, defectos sin parchar, archivos y directorios sin parchar, etc. para obtener acceso no autorizado al sistema u obtener conocimiento del mismo. La Configuración Defectuosa de Seguridad puede ocurrir a cualquier nivel de una pila de aplicaciones, incluyendo la plataforma, servidor web, servidor de aplicaciones, marcos de trabajo y código personalizado. Los desarrolladores y administradores de red necesitan trabajar juntos para asegurar que toda la pila esta configurada apropiadamente. Los escáneres automáticos son útiles para la detección de parches faltantes, errores de configuración, el uso de cuentas por defecto, servicios innecesarios, etc. Estos defectos suelen dar a los atacantes acceso no autorizado a algunos datos o alguna funcionalidad del sistema. Ocasionalmente, estos defectos resultan en un ataque que compromete completamente al sistema. El sistema podría estar completamente comprometido sin que usted lo sepa. Toda su información podría ser robada o modificada lentamente con el tiempo. Los costos de recuperación podrían ser costosos. The red ones are the new ones.

15 A7 – Almacenamiento Criptográfico Inseguro
Victima ingresa su tarjeta de crédito en un formulario web 1 Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions Log files 4 Atacante interno obtiene 4 millones de tarjetas de crédito 2 El gestionador de errores almacena los datos de la TC porque el gateway no se encuentra disponible The red ones are the new ones. 3 Logs son accesibles a todos los miembros de IT por motivos administrativos

16 A7 – Almacenamiento Criptográfico Inseguro
Muchas aplicaciones web no protegen adecuadamente los datos sensibles, tales como tarjetas de crédito, números de seguro social, y credenciales de autenticación, con la codificación o hashing adecuada. Los atacantes pueden robar o modificar dichos datos débilmente protegidos para llevar a cabo robo de identidad, fraudes de tarjetas de crédito u otros delitos. Agentes Atacantes Vectores de Ataque Debilidad en Seguridad Impacto Técnico Impacto de Negocio _______ Explotable FÁCIL Prevalencia COMÚN Detectable DIFÍCIL Impacto SEVERO _______ Considere usuarios de su sistema. ¿Les gustaría tener acceso a datos protegidos a los que no están autorizados? ¿Qué pasa con los administradores internos? Los atacantes normalmente no pueden romper el cifrado. Rompen algo más, como encontrar las llaves, obtener copias de los datos en texto claro, o acceden datos a través de canales que automáticamente los descifran. La falla más común en esta área es simplemente no cifrar los datos que merecen ser cifrados. Cuando el cifrado es empleado, la generación y almacenamiento inseguro de llaves, no rotar las llaves, y el uso de algoritmos débiles es común. El uso de hashes débiles o sin “sal” para proteger contraseñas es también común. Atacantes externos tienen dificultades para detectar estos errores debido al acceso limitado. Deben explotar algo más primero para obtener el acceso necesario. El fracaso frecuentemente compromete todos los datos que debieron haber sido cifrados. Generalmente esta información incluye datos sensibles como registros de salud, credenciales, datos personales, tarjetas de crédito, etc. Considere el valor de negocio de la información perdida y el impacto a su reputación. ¿Cuál es su responsabilidad legal si esta información es expuesta? También considere el daño a su reputación. The red ones are the new ones.

17 A8 – Falla de Restricción de Acceso a URL
Atacante identifica que la URL indica su perfil /user/getAccounts La modifica apuntando a otra carpeta (perfil) /admin/getAccounts, o /manager/getAccounts Atacante visualiza otras cuentas The red ones are the new ones.

18 A8 – Falla de Restricción de Acceso a URL
Muchas aplicaciones web comprueban derechos de acceso a la URL antes de emitir enlaces y botones protegidos. Sin embargo, las aplicaciones necesitan llevar a cabo comprobaciones de control de acceso similares cada vez que estas páginas son accedidas, o un atacante será capaz de forjar las URLs para acceder estas páginas ocultas de todos modos Agentes Atacantes Vectores de Ataque Debilidad en Seguridad Impacto Técnico Impacto de Negocio _______ Explotable FÁCIL Prevalencia POCO COMÚN Detectable PROMEDIO Impacto MODERADO _______ Cualquier persona con acceso a la red puede enviar una petición a su aplicación. ¿Podrían usuarios anónimos acceder a una página privada o usuarios regulares a páginas privilegiadas? El atacante, que es un usuario autorizado del sistema, simplemente cambia la URL a la de una página privilegiada. ¿Se concede acceso? Usuarios anónimos pueden acceder a páginas privadas que no están protegidas. Las aplicaciones no siempre están protegiendo las solicitudes de páginas. Algunas veces, la protección de URL es manejada a través de la configuración, y el sistema está mal configurado. Algunas veces, los desarrolladores deben incluir comprobaciones de código adecuadas, y lo olvidan. Detectar dichos defectos es fácil. La parte más difícil es identificar que páginas (URLs) existen para atacar. Estos defectos puede permitir que algunas o incluso todas las cuentas sean atacadas. Una vez que se tiene éxito, el atacante puede hacer cualquier cosa que la víctima puede hacer. Cuentas privilegiadas son normalmente el objetivo. Considere el valor de negocio de las funciones expuestas y la información que procesan. También considere el impacto en su reputación si la vulnerabilidad se hace pública. The red ones are the new ones.

19 A9 – Protección insuficiente en la Capa de Transporte
Socios de Negocios Victima Externa Custom Code Backend Systems Empleados 2 1 The red ones are the new ones. Atacante Externo obtiene credenciales y datos de la red Atacante Interno obtiene credenciales y datos de la red interna Atacarte Externo Atacante Interno

20 A9 – Protección Insuficiente en la Capa de Transporte
Las aplicaciones frecuentemente fallan en autenticar, cifrar y proteger la confidencialidad e integridad del tráfico de red sensible. Cuando lo hacen, en ocasiones utilizan algoritmos débiles, usan certificados expirados o inválidos, o no lo usan correctamente. Agentes Atacantes Vectores de Ataque Debilidad en Seguridad Impacto Técnico Impacto de Negocio _______ Explotable DIFÍCIL Prevalencia COMÚN Detectable FÁCIL Impacto MODERADO _______ Considere cualquier persona que pueda monitorear el tráfico de red de sus usuarios. Si la aplicación está en Internet, nadie sabe como sus usuarios la accederán. No olvide las conexiones en el back-end. Monitorear el tráfico de red de los usuarios puede ser difícil, pero en ocasiones es fácil. La dificultad principal radica en el monitoreo apropiado de tráfico de red mientras los usuarios están accediendo al sitio vulnerable. Las aplicaciones frecuentemente no protegen el tráfico de red. Tal vez usen SSL/TLS durante la autenticación, pero no en otra parte, exponiendo los datos y los identificadores de sesión a que sean interceptados. Certificados expirados o mal configurados también pueden ser utilizados. Detectar las fallas básicas es fácil. Sólo hay que observar el tráfico de red del sitio. Defectos más sutiles requieren inspeccionar el diseño de la aplicación y la configuración del servidor. Tales defectos exponen la información de usuarios individuales y puede conducir al robo de cuenta. Si una cuenta de administrador es comprometida, el sitio completo podría ser comprometido. Considere el valor de negocio de la información expuesta en el canal de comunicación en cuanto a las necesidades confidencialidad e integridad, y la necesidad de autenticar a los dos participantes. The red ones are the new ones.

21 A10 – Redirecciones y Destinos No Validados
Atacante envía un ataque a la pagina web vulnerable El pedido es enviado a una pagina web que el atacante tiene acceso. public void sensitiveMethod( HttpServletRequest request, HttpServletResponse response) { try { // Do sensitive stuff here. ... } catch ( ... 2 La aplicación autoriza el pedido y lo procesa Filtro 3 La pagina destino falla al validar el parámetro, enviando al atacante directamente hacia una pagina no autorizada, salteando los controles de acceso. The red ones are the new ones. public void doPost( HttpServletRequest request, HttpServletResponse response) { try { String target = request.getParameter( "dest" ) ); ... request.getRequestDispatcher( target ).forward(request, response); } catch ( ...

22 A10 – Redirecciones y Destinos No Validados
Las aplicaciones web frecuentemente redireccionan y envían a los usuarios a otras páginas y sitios web, y usan datos no confiables para determinar las páginas de destino. Sin una validación adecuada, los atacantes pueden redirigir a las víctimas a sitios de phishing o malware, o usar reenvíos para acceder páginas no autorizadas Agentes Atacantes Vectores de Ataque Debilidad en Seguridad Impacto Técnico Impacto de Negocio _______ Explotable FÁCIL Prevalencia POCO COMÚN Detectable FÁCIL Impacto MODERADO _______ Considere cualquier persona que puede engañar a los usuarios para que envíen una petición a su sitio web. Cualquier sitio web o cualquier otro tipo de alimentación en HTML que sus usuarios utilicen podría hacer esto. El atacante envía enlaces hacía redireccionamientos no validos y engaña a la victima para que haga clic sobre dicho enlace. Las víctimas son más propensas a hacer clic en él, ya que el enlace es a un sitio válido. El objetivo del atacante es utilizar reenvíos inseguros para eludir controles de seguridad. Las aplicaciones frecuentemente redirigen a los usuarios a otras páginas, o utilizan reenvíos internos de similar manera. Algunas veces la página de destino se especifica en un parámetro no validado, permitiendo al atacante elegir la página de destino. Tales redireccionamientos pueden intentar instalar malware o engañar alas victimas para que revelen contraseñas u otra información sensible. Reenvíos inseguros pueden permitir que se eluda el control de acceso Considere el valor de negocio de conservar la confianza de sus usuarios. ¿Qué si son poseídos por malware? ¿Qué si los atacantes pueden acceder funciones que son internas únicamente? The red ones are the new ones.

23 Gracias por tu tiempo Puedes contactarnos:


Descargar ppt "OWASP TOP 10 Los diez riesgos más importantes en aplicaciones web"

Presentaciones similares


Anuncios Google