La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Top 5 OWASP + WAF 66.69 Criptografía y Seguridad Informática 1er. Cuatrimestre 2011.

Presentaciones similares


Presentación del tema: "Top 5 OWASP + WAF 66.69 Criptografía y Seguridad Informática 1er. Cuatrimestre 2011."— Transcripción de la presentación:

1 Top 5 OWASP + WAF Criptografía y Seguridad Informática 1er. Cuatrimestre 2011

2 OWASP Organización focalizada en mejorar la seguridad de las aplicaciones de software. Consenso general sobre cuáles son las vulnerabilidades más críticas de las aplicaciones web. Incluye una lista de las diez vulnerabilidades más críticas.

3 OWASP Top Ten (2010 Edition)

4 Mutillidae Herramienta didáctica para ilustrar el Top 10 Hecha en PHP/MySQL Simple de explotar Fácil de restaurar Incluye tips de ayuda para explotar y entender las distintas vulnerabilidades

5 A1 - SQL Injection

6 SQL Injection Se inserta o "inyecta" código SQL invasor dentro del código SQL programado, a fin de alterar el funcionamiento normal del programa y lograr así que se ejecute la porción de código "invasor" en la base de datos. Ocurre cuando… Reciben strings y los interpretan como comandos SQL, OS Shell, LDAP, XPath, Hibernate, etc… Intérpretes… Muchas aplicaciones continúan siendo vulnerables A pesar que es muy simple de evitar SQL injection sigue siendo muy común Usualmente severo. La base de datos puede ser leída por completo, o modificada. Impacto típico

7 SQL Injection Firewall Hardened OS Web Server App Server Firewall Databases Legacy Systems Web Services Directories Human Resrcs Billing Custom Code APPLICATION ATTACK Network Layer Application Layer Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions HTTP request SQL query DB Table HTTP response "SELECT * FROM accounts WHERE acct= OR 1=1-- " 1. La aplicación muestra un formulario 2. El atacante ingresa una consulta SQL maliciosa en algún campo del formulario 3. La aplicación reenvía dicha consulta al motor de base de datos Account Summary Acct: Acct: Acct: Acct: El motor de la BD ejecuta la consulta con código malicioso y envía los resultados a la aplicación 5. La aplicación muestra los resultados al usuario Account: SKU: Account: SKU:

8 Demo

9 Métodos de Prevención Escapar las variables antes de ser enviadas al intérprete Parametrizar las sentencias sql Realizar una white list de validación para los datos ingresados por el usuario Acotar los privilegios de la base de datos para reducir el impacto

10 A2 – Cross-Site Scripting (XSS)

11 XSS Una aplicación toma datos ingresados por el usuario y los envía al navegador sin previo encoding ni validación. Permite ejecutar scripts en el navegador de la víctima permitiendo el robo de cookies de sesión, ejecución de virus, etc. Ocurre cuando… Guardados en la base de datos Reflejados desde los inputs de la aplicación (form field, hidden field, URL, etc.) Envíados directamente embebiendo código javascript Tipos de ataques Robo de cookies de sesión, robo de datos sensibles, sobreescritura de páginas web, Phishing Crítico: Instalación de un proxy XSS el cual permite al atacante observar el comportamiento de un usuario en un sitio vulnerable y forzarlo a ingresar a otros sitios. Impacto típico

12 XSS Aplicación vulnerable a XSS (guardado) 2 El atacante prepara la trampa – Mi Perfil El atacante ingresa un script malicioso dentro de una página web que almacena los datos en el servidor La víctima ingresa al perfil del atacante - Mi Perfil El script envía (silenciosamente) la cookie de sesión de la víctima al atacante El script corre en el browser de la víctima con acceso completo al DOM y a las cookies Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions 1 3

13 Demo

14 Métodos de Prevención No mostrar directamente los datos ingresados por el usuario Encode a la salida de los datos ingresados por el usuario Frameworks: filtrado y validación automática Enterprise Security API Creado por OWASP Provee un conjunto de interfases para encode y validación de datos Disponible en varios lenguajes. AntySamy API para sanitizar HTML Creado por OWASP Modelo de protección white list Fácil de usar Toma un html/css crudo y lo retorna seguro

15 A3 – Broken Authentication and Session Management

16 Broken Authentication and Session Management El SESSION ID es usado para trackear el estado en HTTP El SESSION ID está expuesto en las redes, navegadores, etc. Métodos no estandarizados de autenticación Ocurre cuando… Las credenciales viajan en cada request Se debe usar SSL cuando se requiera autenticación HTTP es stateless Los cambios de password, recordarme, olvidé mi password, pregunta secreta, logout, , etc… Proteger… Severo: Se comprometen cuentas y sesiones de usuario Impacto típico

17 Broken Authentication Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions 1 El usuario envía credenciales y reserva un viaje en una agencia 2 3 El usuario reenvía el link a sus amigos jsessionid=2P0OC2JDPXM0OQSNDLPSKHCJUN2JV?dest=Hawaii 4 Cuando sus amigos ingresen al link usarán su sesión y su tarjeta de crédito El sitio reescribe la url concatenando el session id

18 Demo

19 Autenticación simple, centralizada y estandarizada SSL para proteger credenciales y session id en todo momento Verificar que el logout destruya la sesión Usuarios y passwords encriptados en la base de datos Configuración adecuada del timeout de sesión Evitar vulnerabilidades XSS Métodos de Prevención

20 A4 – Insecure Direct Object References

21 Insecure Direct Object References Un desarrollador expone referencias a la implentación interna de un archivo, directorio, registro de base de datos, claves, urls, etc. Los atacantes pueden manipular esas referencias y acceder a contenido no autorizado. Ocurre cuando… Accesos a objetos Referencias (deben ser indirectas) Proteger… Severo: Acceso a información no autorizada Impacto típico

22 Insecure Direct Object References El atacante decubre que su número de cuenta es 6065 Lo modfica por otro valor ?account=6066 El atacante logra acceder a otra cuenta https://www.onlinebank.com/user?account=6065

23 Demo

24 Métodos de Prevención Eliminar referencias directas Reemplazarlos por mapeos temporales Interfaz ESAPI para mapero indirecto Validar referencias directas Verificar que el usuario tiene acceso al recurso

25 A5 – Cross Site Request Forgery (CSRF)

26 CSRF EL navegador de la victima logueada envía un request pre- autenticado a una aplicación vulnerable, la cual fuerza al navegador a realizar acciones en beneficio del atacante Ocurre cuando… Idem XSS Proteger Severo: Acceso a información sensible Severo: Cambio de datos de cuenta Impacto típico

27 CSRF 3 2 El atacante prepara una trampa para un sitio web vulnerable 1 El usuario logueado ingresa al sitio del atacante El sitio vulnerable al ver el request legítimo de la víctima, ejecuta la acción. El tag cargado por el browser envía por GET las credenciales al sitio vulnerable Custom Code Accounts Finance Administration Transactions Communication Knowledge Mgmt E-Commerce Bus. Functions Un tag oculto contiene un ataque embebido La aplicación tiene la vulnerabilidad CSRF

28 Demo

29 Métodos de Prevención Agregar un nonce por request (Number used once) a la URL y a todos los formularios Los tokens deben ser criptográficamente fuertes. No utilizar request del tipo GET (URL) para datos o transacciones importantes. Utilizar POST, aunque esto solo no es suficiente. Verificar que el request HTTP provenga del sitio original

30 ESAPI

31 OWASP Top 5 A1. SQL InjectionA2. Cross Site Scripting (XSS)A3. Broken Authentication and SessionsA4. Insecure Direct Object ReferenceA5. Cross Site Request Forgery (CSRF) OWASP ESAPI EncoderValidator, EncoderAuthenticator, User, HTTPUtilsAccessReferenceMap, AccessControllerUser (CSRF Token) Interfaces para Top 5 ESAPI

32 Input Validation

33 Output Validation

34 Esquema de encoding con ESAPI HTML Style Property Values (e.g.,.pdiv a:hover {color: red; text-decoration: underline} ) JavaScript Data (e.g., some javascript ) HTML Attribute Values (e.g., ) HTML Element Content (e.g., some text to display ) URI Attribute Values (e.g.,

35 Demo

36 WAF

37 Filtro que aplica un conjunto de reglas a una comunicación HTTP Controla entradas, salidas y accesos Buena (y única) solución para enlatados Falsos positivos Soporta seguridad con listas negras y listas blancas. Alta performance. Características principales

38 #Preventing Cookie Stealing, CSRF Post and Phishing attack SecRule ARGS

Anuncios Google