domingo, octubre 14, 2007

El Top Ten

Acabo de leerme el documento de OWASP en el que se publican las diez vulnerabilidades más explotadas y peligrosas en aplicaciones Web hoy en día. Dicha lista está encabezada por el XSS (Cross-Site Scripting) sorprendentemente. También es destacable ver como CSRF (Cross-Site Request Forgery) se situa en el quinto lugar. Sigue llamando poderosamente la atención como SQL Injection sigue siento tan peligroso y tan activo a día de hoy.

La lista completa es la siguiente:

1.- Cross Site Scripting (XSS): Persistentes, No-persistentes.
2.- Injection Flaws: Especialmente SQL Injection.
3.- Malicious File Execution: Ataques RFI
4.- Insecure Direct Object Reference. Manipulación de rutas a objetos. Cucharones y demases.
5.- Cross Site Request Forgery (CSRF): Forzado de acciones de usuario.
6.- Information Leakage and Improper Error Handling. Mala gestión de mensajes de error.
7.- Broken Authentication and Session Management: Robo de identidades. Hijackings, etc...
8.- Insecure Cryptographic Storage: Almacenamiento inseguro.
9.- Insecure Communications
10.- Failure to Restrict URL Access: URLS mal ocultadas. Spidering, bruteforce, etc...


Han emitido un documento PDF de 35 paginitas muy chulo en el que explican cada uno de los ataques, su impacto y como mitigarlo. Además, dan urls para profundizar el acceso.

THE TEN MOST CRITICAL WEB APPLICATION SECURITY VULNERABILITIES

Tras leerlo hay dos cosas que creo que deberían estar y no están, que le vamos a hacer:

1.- Mención de los ataques a ciegas: En todo el documento no se hace ninguna referencia a la posibilidad de que los ataques sean realizados a ciegas. No es absolutamente necesario pues si no hay vulnerabilidad en el código no hay forma de explotarlos ni de forma visible ni a ciegas, pero creo que se debería haber citado las explotaciones "Blind" SQL Injection y "Blind" XPath Injection, documentadas hace ya bastaten tiempo.

2.- LDAP Injection. Las referencias que se hace sobre LDAP Injection son someras y se linka un documento cuya única injección mostrada consiste en poner un *. Dicho documento referencia al documento de Sacha Faust, cuyas inyecciones propuestas no funcionan igual en OpenLDAP ni en ADAM con lo cual queda bastante "escueto". Lógicamente tampoco se habla de Blind LDAP Injection.

Por lo demás, lectura recomendada para tener en cuenta si vas a realizar una aplicación Web.

Saludos malignos!

4 comentarios:

romansoft dijo...

Buenas,

¿Estabas repasando el .ppt de mi charla o es casualidad? Yo tenía pensado hablar más sobre esto pero con el tiempo que finalmente tuve fue imposible...

En el apartado de metodología se explica por qué se han puesto o quitado ciertas cosas. El CSRF no entraría en los 10 primeros ni de lejos si se atiende a vulnerabilidades más comunes (MITRE), lo han metido un poco de forma subjetiva (también es verdad que es más un tipo de ataque que una vulnerabilidad en sí por lo que es más difícil que se publiquen PoC utilizándolo).

Los "Blind" no son vulnerabilidades, son técnicas "avanzadas" para explotar las distintas vulnerabilidades de inyección. Yo no las pondría tampoco. Realmente una inyección también podría verse como una técnica para explotar una vulnerabilidad de "entrada de usuario incorrectamente filtrada o limpiada" pero claro, entonces el top-ten sería más bien un top-one :-)

Del LDAP sólo hay referencias, ¿no? (vamos, que no habla ni del "*", o si? Yo no llegué a leer el artículo entero, solo lo miré por encima).

Saludos,
-Roman

Maligno dijo...

Hola Roman,

lo miré haciendo los deberes, pq estoy preparando un artículo, (a ver si tienes tiempo y preparamos alguno). Aquí ando, currando de domingo...

Sí, he leido la metodología, pero no dejan de ser cuirosos los resultados. Lo de CSRF tiene su importancia pensando que Google fue POC y hasta hace no demasiado era vulenrable:

Google Fixes Gmail Cross-site Request Forgery Vulnerability

Lo de los atques Blind, es cierto, por eso he puesto en el post que son una forma de explotación, pero una referencia al menos en todo el documento hubiera sido un detalle. ¿Será deformación mia?

No hablan ni del asterisco, pero sí linkan a un doc que habla SOLO del * (nada de booleanización) y luego linka a Sacha.

Saludos!

Trancek dijo...

Aqui hay unas bonitas tablas para consultar de los años 2001-2006

http://cwe.mitre.org/documents/vuln-trends/index.html

Lo del CSRF se ve que poco a poco va cogiendo fuerza y se esta haciendo mas comun encontrar informacion sobre el pero esta muy lejos en cuanto a errores muy comunes como el XSS, inyecciones e inclusion de archivos.

Lo que me hubiera gustado ver tambien es que hicieran otra tabla incluyendo todo, como los buffer overflow que los han quitado o metodos inseguros en activex que permitan la ejecucion de codigo por ejemplo ya que son muy peligrosos tambien y son mas comunes.

Y respecto a lo del LDAP no lei el documento que viene de referencia en este .pdf pero si es asi como dices..sera porque ahora lo que interesa es saber el como y no el porque, y la gente con saber como entrar a un servidor facilmente le da igual saber porque puede que porque no, sino vease los casos de RFI que son los que menos se necesita saber y de los mas peligrosos muchas veces por la mala configuracion del php, y cuando la gente ve que no pueden hacer lo que quieren y no saben porque les falla se suelen buscar otro, lo se porque me preguntan y porque yo cuando me meti en este mundillo empece asi...ejeje que triste :P

bastian dijo...

Gran documento, sí señor. Tiene algo que echaba en falta en alguno de tus artículos técnicos( y que ya te comenté alguna vez), que es la forma de hacer frente a las vulnerabilidades.

A ver si saco tiempo para mirarlo a fondo...

Entradas populares