OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a...

30
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org / OWASP Top 10 2013 Los diez riesgos más importantes en aplicaciones web Felipe Zipitría OWASP/ GSI- Facultad de Ingeniería [email protected]

Transcript of OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a...

Page 1: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

Copyright © The OWASP FoundationPermission is granted to copy, distribute and/or modify this documentunder the terms of the OWASP License.

The OWASP Foundationhttp://www.owasp.org/

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

Felipe Zipitría

OWASP/GSI- Facultad de Ingenierí[email protected]

Page 2: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Introducción al Top 10

Es un documento EDUCATIVO. Es GRATUITO. DESCRIBE los riesgos más

críticos en aplicaciones Web- Descripción del mismo - Escenario de ejemplo de un ataque - Pautas para verificar si nuestra aplicación es vulnerable - Recomendaciones para prevenir dicho riesgo

Page 3: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

¿De dónde obtiene la información?

8 conjuntos de datos de 7 firmas que se especializan en seguridad de aplicaciones.

Los datos se extienden a más de 500,000 vulnerabilidades a lo largo de cientos de organizaciones y miles de aplicaciones.

Los puntos del Top 10 se seleccionan y priorizan de acuerdo a que tanto predominio tienen, en combinación con estimaciones del consenso de su explotabilidad, detectabilidad, e impacto estimado.

Page 4: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Top Ten OWASP

IndustriaOWASP

Si, claro, Ustedes!

Page 5: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Usabilidad

Concientizar

Herramientas

Auditar

Un acercamiento por fases a la Seguridad de Aplicaciones

Page 6: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Metodología para catalogar el Riesgo

Agente de Amenaza

Vector de Ataque

Predominio de Debilidad

Detectabilidad de Debilidad

Impacto TécnicoImpacto al

Negocio

?Facil Amplia Facil Severo

?Mediano Comun Mediano Moderado

Dificil Poco Comun Dificil Menor

1 2 2 1

1.66 * 11.66 calificación de riesgo ponderado

Ejemplo de A1 Inyección

123

Debilidad

Ataque

Agentes de Amenaza

Impacto Debilidad

Ataque

Vectoresde Ataque

Debilidadesde Seguridad

ImpactosTécnico

Impactosal Negocio

Ataque

Impacto

Impacto

Recurso

Recurso

Recurso

Debilidad

Control

Control

ControlDebilidad

Controlesde Seguridad

Page 7: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

A6 Exponer datos sensibles 2010-A7Almacenamiento criptográfico inseguro y 2010-A9 Protección insuficiente en capa de transporte se fusionaron

A7 Falla de control de acceso renombrada/ampliada de 2010-A8 Falla de restricción de acceso a URL

¿Que ha cambiado en esta versión?

Riesgos agregados y eliminados

Page 8: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Comparación del Top 10 2013 con 2010OWASP 2010 OWASP 2013

A1 Inyección = A1 Inyección

A2 Secuencia de comandos en sitios cruzados (XSS) ↑ A2 Pérdida de autenticación y gestión de sesiones (era 2010-A3)

A3 Pérdida de autenticación y gestión de sesiones ↓ A3 Secuencia de comandos en sitios cruzados (XSS)

A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos

A5 Falsificación de pedido en sitios cruzados (CSRF) ↑ A5 Defectuosa Configuración de seguridad

A6 – Defectuosa Configuración de seguridad A6 Exponer datos sensibles (2010-A7 Almacenamiento criptográfico inseguro y 2010-A9 Protección insuficiente en capa de transporte se fusionaron para formar 2013-A6)

A7 Almacenamiento criptográfico inseguro A7 Ausencia de control de acceso a Funciones (renombrada/ampliada de 2010-A8 Falla de restricción de acceso a URL)

A8 Falla de restricción de acceso a URL ↓ A8 Falsificación de pedido en sitios cruzados (CSRF)

A9 Protección insuficiente en la capa de red A9 Uso de componentes con vulnerabilidades conocidas (nuevo pero era parte de 2010-A6 – Configuración defectuosa de seguridad)

A10 Redirecciones y destinos no validados = A10 Redirecciones y destinos no validados

Page 9: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Inyección significa

Los intérpretes...

Impacto típico

• Toman los datos, y los interpretan como comandos válidos• SQL, OS Shell, LDAP, Xpath, Hibernate, etc.

• Incluir comandos mal intencionados en los datos de una aplicación los cuales son enviados a un intérprete

A1 – Inyección

• Por lo general es grave. Todos los datos de una base pueden ser leídos o modificados

• También puede comprometerse el sistema operativo base, cuentas de usuario, o esquemas de base de datos

Page 10: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Ejemplos prácticos ¿Que querrá decir?

Page 11: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Sigue ahi..

2004: A6 2007: A2 2010: A1 2013: A1!

Page 12: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Inyección SQL – Demostración

Fire

wal

l

Hardened OS

Web Server

App ServerFi

rew

all

Dat

abas

es

Leg

acy

Syst

ems

Web

Ser

vice

s

Dir

ecto

ries

Hum

an R

esrc

s

Bill

ing

Custom Code

APPLICATIONATTACK

Cap

a de

Red

Cap

a de

Apl

icac

ión

Acc

ount

s

Fina

nce

Adm

inis

trat

ion

Tra

nsac

tions

Com

mun

icat

ion

Kno

wle

dge

Mgm

t

E-C

omm

erce

Bus

. Fun

ctio

ns

Pedido HTTP �

Consulta SQL

�Tabla BD ⛁

Respuesta

HTTP ⛁

"SELECT * FROM accounts WHERE acct=‘’ OR 1=1--’"

1. Aplicación presenta un formulario web al atacante

2. Atacante envía un ataque en los datos del formulario

3. Aplicación dirige el ataque a la base de datos en una consulta SQL

Account Summary

Acct:5424-6066-2134-4334Acct:4128-7574-3921-0192Acct:5424-9383-2039-4029Acct:4128-0004-1234-0293

4. Base de datos ejecuta el ataque y envía los resultados cifrados nuevamente a la aplicación

5. Aplicación descifra los datos normalmente y envía los resultados al atacante

Account:

SKU:

Account:

SKU:

Page 13: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

A1 – Como evitar Fallas de Inyección

Recomendaciones Evitar el intérprete completamente Utilizar una interfaz que soporte variables parametrizadas

(Ej., declaraciones preparadas, o procedimientos almacenados), Las variables parametrizadas permiten al intérprete distinguir

entre código y datos Decodificar y convertir todas las entradas del usuario a su

forma mas simple antes de enviarlas al interprete Siempre efectuar una validación ‘positiva’ de todas las

entradas realizadas por el usuario Seguir el principio de mínimo privilegio en las conexiones

con bases de datos para reducir el impacto de una falla

Referencias Para mayor información:

http://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet

Page 14: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

HTTP es un protocolo sin estado

Falla en la gestión de sesiones

Cuidar la puertas laterales

A2 - Pérdida de Autenticación y Gestión de Sesiones

• Significa que las credenciales tienen que viajar en cada pedido HTTP

• SESSIONID es utilizado para mantener la sesión• Cualquier factor que comprometa dicho atributo, para el atacante es lo

similar a poseer el usuario y la clave

• Cambio/recordar contraseña, pregunta secreta, etc.

Impacto típico

• Cuentas de usuario comprometidas o sesiones robadas

Page 15: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Perdida de Autenticación - Demostración

Custom Code

Acc

ount

s

Fin

ance

Adm

inis

trat

ion

Tra

nsac

tion

s

Com

mu

nica

tion

Kno

wle

dge

Mgm

t

E-C

omm

erce

Bu

s. F

unct

ions

1 Usuario envía credenciales

2Sitio utiliza reescritura de URLs

(ej., escribe sesión en URL)

3 Usuario hace clic en un enlace hacia http://www.hacker.com en un foro

www.boi.com?JSESSIONID=9FA1DB9EA...

4

Hacker verifica encabezados de referencia en los logs de www.hacker.com

y encuentra la JSESSIONID del usuario

5 Hacker utiliza la JSESSIONID y toma posesión de la cuenta del usuario

Page 16: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

A2 – Como evitar la Perdida de Autenticación y Gestión de Sesiones Verificar la

arquitectura Autenticación debería

ser simple, centralizada y estandarizada

Utilizar el gestor de sesiones estándar provisto por el servidor de aplicaciones – no inventar uno propio!

Estar seguro que SSL protege tanto las credenciales como las sesiones de usuario todo el tiempo

Verificar la implementación No utilizar solamente

análisis automático Verificar el certificado SSL Examinar todas las

funciones relacionadas a autenticación

Verificar que “cierre de sesión” efectivamente destruya la sesión

Utilizar OWASP’s WebScarab para testear la implementación

+ info http://www.owasp.org/index.php/Authentication_Cheat_Sheet

Page 17: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Ocurre cada vez que

Los datos no validados pueden

Impacto típico

• Encontrarse almacenados en una BD (persistente)• Ser reflejados desde una entrada Web (formulario, campo oculto, URL,

etc.)

• Datos no validados son enviados al navegador de una víctima

A3 – Secuencia de Comandos en Sitios Cruzados (XSS)

• Robar los datos de sesión de un usuario• Más grave: instalar un proxy XSS para controlar el navegador del usuario

Page 18: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

XSS - Demostración

Aplicación con vulnerabilidad XSS almacenado

3

2

Atacante establece una trampa – actualizar perfil

Atacante ingresa un script malicioso en una pagina web que almacena los datos en el servidor

1

Victima visualiza la página – accede al perfil

Script silenciosamente envía la sesión de la victima al atacante

Script se ejecuta en el navegador de la victima

Custom Code

Acc

ount

s

Fina

nce

Adm

inis

trat

ion

Tra

nsac

tion

s

Com

mun

icat

ion

Kno

wle

dge

Mgm

t

E-C

omm

erce

Bus

. Fun

ctio

ns

Page 19: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

A3 – Como evitar Fallas de XSS

Recomendaciones Eliminar la Falla

No incluir entradas suministradas por el usuario en la página de salida

Defenderse de la Falla Recomendación Principal: Codificar todos los datos de entrada

en la página de salida (Utilizar OWASP’s ESAPI para dicha tarea): http://www.owasp.org/index.php/ESAPI

Siempre efectuar una validación ‘positiva’ de todas las entradas realizadas por el usuario

Definir políticas de Content Security Policy (W3C) (HTML5)

Referencias http://www.owasp.org/index.php/XSS_(Cross Site Scripting) Prevention Cheat Shee

t

Page 20: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

¿Cómo sucede?

Los atacantes abusan de esto porque...

Impacto típico

• Para referencias directas a recursos protegidos, la aplicación que no protege el acceso

• Si la referencia es indirecta, no se protege el mapeo para el usuario actual y por ello accede al recurso mapeado

• ¡Puede ser tan simple como modificar un parámetro!

• un desarrollador expone una referencia a un objeto de implementación interno, tal como un archivo, directorio, o base de datos

A4 – Referencia Directa insegura a objetos

• Acceso a recursos que no autorizados

Page 21: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Referencia Directa Insegura a Objetos - Ejemplo

Atacante identifica su número de cuenta 6065

?acct=6065

Lo modifica a un número parecido

?acct=6066

Atacante visualiza los datos de la cuenta de la víctima

https://www.onlinebank.com/user?acct=6065

Page 22: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

A4 – Como evitar Referencias Directas Inseguras a Objetos

Eliminar la referencia directa a objetos Reemplazarla con un valor temporal de mapeo (ej. 1, 2, 3) ESAPI proporciona soporte para mapeos numéricos y aleatorios

IntegerAccessReferenceMap & RandomAccessReferenceMap

Validar la referencia directa al objeto Verificar que el valor del parámetro se encuentra

adecuadamente formateado Verificar que el usuario se encuentra autorizado a acceder

el objeto determinado Restricciones en los parámetros funcionan muy bien!

Verificar que el modo de acceso al objeto solicitado se encuentra autorizado (ej., lectura, escritura, modificación)

http://app?file=1Report123.xls

http://app?id=7d3J93Acct:9182374http://app?id=9182374

http://app?file=Report123.xls

Page 23: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

A5 – Configuración Defectuosa de Seguridad

Page 24: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Las aplicaciones Web dependen de bases sólidas

Características innecesarias

Gestión de errores

A5 – Defectuosa Configuración de Seguridad

Esto incluye el SO, Servidor Web/Aplicación, SGBD, aplicaciones, y todas las librerías de código (ver nuevo A9)

¿Están habilitadas o instaladas algunas características innecesarias (p. ej. puertos, servicios, páginas, cuentas, privilegios)?

¿Su manejo de errores revela rastros de las capas de aplicación u otros mensajes de error demasiado informativos?

Framework de desarrollo

¿Están las configuraciones de seguridad en su framework de desarrollo (p. ej. Struts, Spring, ASP.NET) y librerías sin configurar a valores seguros?

Page 25: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Hardened OS

Web Server

App Server

Framework

Configuración Defectuosa de Seguridad - Ejemplo

App Configuration

Custom Code

Acc

ount

s

Fina

nce

Adm

inis

trat

ion

Tra

nsac

tions

Com

mun

icat

ion

Kno

wle

dge

Mgm

t

E-C

omm

erce

Bus

. Fun

ctio

ns

Test Servers

QA Servers

Source Control

Development

Database

Atacante

Page 26: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

A5 – Como evitar una Defectuosa Configuración de Seguridad

Verificar la gestión de configuración de sus sistemas Uso de guías de para asegurar instalaciones base

Automatizar tareas es MUY UTIL aquí

Mantener actualizadas todas las plataformas Aplicar parches en todos los componentes

Esto incluye librerías de software, no solo SO y servidor de aplicaciones

Los entornos de Desarrollo, QA y Producción deben ser configurados idénticamente (con diferentes contraseñas usadas en cada entorno).

Puede “volcar” la configuración de la aplicación? Desarrolle reportes en sus procesos La regla es simple: Si no se puede verificar, no es seguro

Verificar la implementación Un simple escaneo puede encontrar problemas de

configuración genéricos y parches faltantes

Page 27: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Rotos

Ignorados

Faltantes

Algoritmo de cifrado débilValidación de entrada solo del lado del cliente

CifradoControl de Acceso

Encriptación mal implementadaNo utilizar codificación en la salida

El problema de las vulnerabilidades

Cada vulnerabilidad surge de...

Page 28: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Resumen: ¿Cómo resuelvo los problemas de seguridad en mis aplicaciones?

Desarrollar código seguro Seguir las mejores prácticas en la Guía de OWASP: “Como

construir aplicaciones web seguras” http://www.owasp.org/index.php/Guide

Utilizar el Estándar OWASP de Verificación de Seguridad en Aplicaciones (ASVS) como una guía para determinar los requerimientos para que una aplicación sea segura

http://www.owasp.org/index.php/ASVS Utilizar componentes estándares de seguridad que se adapten

a la organización o entorno (OWASP’s ESAPI)

Revisar las aplicaciones Formar un equipo de expertos para revisar las aplicaciones Revisar las aplicaciones siguiendo las guias OWASP

Guia de Revisión de Código OWASP: http://www.owasp.org/index.php/Code_Review_Guide

Guia de Testeos OWASP: http://www.owasp.org/index.php/Testing_Guide

Page 29: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Resumen

Documentación de OWASP

OWASP Top 10 2013¿Y ahora quién podrá

(defenderme)?Ustedes!

Page 30: OWASP Top 10 2013 · A4 Referencia directa insegura a objetos = A4 Referencia directa insegura a objetos A5 Falsificación de pedido en sitios cruzados (CSRF) ... Ejemplos prácticos

OWASP SFD - 2014

Referencias

OWASP Top 10 2013 OWASP Uruguay OpenClipart Mantralooks (OWASP

Mantra)

Concientizar

Herramientas

Auditar

Usabilidad