Introducción al OWASP Top 10 - Los diez riesgos mas importantes en aplicaciones web
- Es un documento EDUCATIVO.
- Es GRATUITO.
- DESCRIBE los riesgos más críticos en aplicaciones Web
Para cada riesgo, aporta:
- Descripción del mismo
- Escenario de ejemplo de un ataque
- Pautas para verificar si nuestra aplicación es vulnerable
- Recomendaciones para prevenir dicho riesgo
6. Metodología de Catalogación de Riesgo OWASP 1.66 calificación de riesgo ponderado Ejemplo de Inyección 1 2 3 Agente de Amenaza Vector de Ataque Prevalencia de Debilidad Detectabilidad de Debilidad Impacto Tecnico Impacto al Negocio ? Facil Amplia Facil Severo ? Mediano Comun Mediano Moderado Dificil Poco Comun Dificil Menor 1 2 2 1 1.66 * 1
7. OWASP Top Ten ( Edición 2010) http://www.owasp.org/index.php/Top_10
9. Inyección SQL – Demostración Firewall Hardened OS Web Server App Server Firewall Databases Legacy Systems Web Services Directories Human Resrcs Billing Custom Code APPLICATION ATTACK Capa de Red Capa de Aplicación Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions 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-4334 Acct:4128-7574-3921-0192 Acct:5424-9383-2039-4029 Acct: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:
12. XSS - Demostración Aplicación con vulnerabilidad XSS Reflejado 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 pagina – 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 Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions
13.
14.
15. A3 – Perdida de Autenticación y Gestión de Sesiones
16. Perdida de Autenticación - Demostración 1 Usuario envia credenciales 2 Sitio utiliza reescritura de URLs (ej., escribe sesion en URL) 3 Usuario hace clic en un link 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 Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions
22. CSRF - Demostración 3 2 Atacante establece una trampa en algún sitio web en la Internet (o simplemente a través de un correo electrónico) 1 Mientras que la victima se encuentra conectada al sitio vulnerable, visualiza el sitio del atacante Sitio vulnerable recibe un pedido legitimo de la victima y ejecuta la acción solicitada <img> tag es cargado por el navegador – envia un pedido GET (utlizando las credenciales) a un sitio vulnerable Tag oculto <img> contiene ataque contra sitio vulnerable Aplicación con vulnerabilidad CSRF Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions
26. Configuración Defectuosa de Seguridad - Demostración Hardened OS Web Server App Server Framework App Configuration Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions Test Servers QA Servers Source Control Development Database Atacante Interno
29. Almacenamiento Criptográfico Inseguro - Demostración 1 Victima ingresa su tarjeta de credito en un formulario web 2 El gestionador de errores almacena los datos de la TC porque el gateway no se encuentra disponible 4 Atacante interno obtiene 4 millones de tarjetas de credito Log files 3 Logs son accesibles a todos los miembros de IT por motivos administrativos Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions
35. Protección Insuficiente en la Capa de Transporte - Demostración Custom Code Empleados Socios de Negocios Victima Externa Backend Systems Attacante Externo 1 Atacante Externo obtiene credenciales y datos de la red 2 Atacante Interno obtiene credenciales y datos de la red interna Atacante Interno
38. Redirecciones No Validadas - Demostración 3 2 Atacante envia un ataque a la victima a traves de correo 1 Aplicación redirecciona a la victima hacia el sitio del atacante Request sent to vulnerable site, including attacker’s destination site as parameter. Redirect sends victim to attacker site 4 S i tio maligno instala malware en la victima Victima hace clic en el enlace con parametros invalidados Evil Site http://www.agenciatributaria.es/taxrefund/claim.jsp?year=2010& … &dest= www.sitiomaligno.com Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions
The attacker can send data in any encoding. And the interpreters downstream from your application may decide to handle any encoding. Canonicalize Input could be in any character set Double-encoding Multiple encoding schemes Double-encoding with multiple encoding schemes Validation Simple to configure for positive rules Impossible to do perfectly, since you need special characters GetSafeValue Rich content – strip out bad stuff and continue Difficult – need to fully parse HTML Canonicalize and Validate from database Watch out mass SQL injection? EncodeForHTML Not perfect since browsers allow encoded characters to execute (particularly in attributes) SetCharacterSet Browser will try to guess the encoding
Then you can present your developers with a clean intuitive interface to all the security controls they need to build a secure application. That’s what ESAPI is all about. Simplifying Application Security