07 agosto 2010

Cheat Sheets de prevención y protección


El proyecto OWASP no sólo se dedica a sacar una guía de pruebas, tiene a su vez multitud de proyectos diferentes, tanto de desarrollo, con herramientas, plugins, librerias...como de documentación en otros ámbitos (siempre relacionados como no, con la seguridad en aplicaciones web), buenas prácticas, informes, y un larguísimo etc.


Uno de los apartados o categorías que parecen pasar desapercibidas en este proyecto, pero que deberían tenerse muy en cuenta si se es desarrollador, auditor, etc, son las Cheat Sheets, tanto de prevención como de protección, creadas y mantenidas por la comunidad OWASP.

Aunque algunas de ellas todavía sean borradores o primeras versiones, contamos con 6 "chuletas" muy completas y que nos pueden ayudar a la hora de asegurar nuestras aplicaciones web para tener todos y cada uno de los frentes controlados a la perfección.
  • Cheat Sheet de Autenticación - En esta hoja veremos reflejadas tanto las buenas prácticas para un proceso de autenticación como gestión de sesiones. Puntos como la implementación de un adecuado mecanismo de recuperación de contraseña, mensajes de error provocados por una autenticación fallida ("si me dices que X usuario no puede registrarse porque ya existe en base de datos...hmm..."), cifrado de las comunicaciones...
  • Cheat Sheet para prevención de ataques CSRF - El famoso Cross-Site Request Forgery, que últimamente tanto se usa, pero que suele llevar a equívocos sobre su concepto y relación con los Cross-Site Scriptings (XSS). En esta hoja además se enumeran aquellas medidas que realmente no consiguen prevenir los CSRF.
  • Cheat Sheet sobre almacenamiento criptográfico - Hay que tener cuidado con los datos que almacenamos, tanto por la confidencialidad como por la integridad de la información sensible que maneje nuestra aplicación. Se proponen una serie de reglas a tener en cuenta a la hora de implantar una solución de tratamiento de la información. Es un buen resumen, aunque se recomienda en primer lugar también la Guía de Criptografía también dentro del proyecto OWASP.
  • Cheat Sheet para prevención de inyecciones SQL - Poco hace falta comentar sobre esta técnica, el juego que da y los resultados que nos puede regalar. No hay que quedarse únicamente con la recomendación de validar todos los valores de entrada que proporcionen los usuarios, hay otras medidas que se recomienda encarecidamente llevar a cabo, como es el uso de procedimientos almacenados y peticiones SQL previamente parametrizadas.
  • Cheat Sheet de protección de la capa de transporte - Este documento está bastante ligado también al de almacenamiento criptográfico. Las reglas que se nos proponen están enfocadas a las comunicaciones de nuestra aplicación web, que partes deben asegurarse y cómo, seguridad en los certificados del servidor, etc. Punto muy importante, cuando todavía a día de hoy seguimos encontrando formularios de login, registro y demás que siguen siendo válidos si los utilizamos mediante HTTP.
  • Cheat Sheet para prevención de Cross-Site Scripting - Que decir del Cross-Site Scripting, una vulnerabilidad en muchas ocasiones infravalorada, pero con un poco de astucia puede hasta hacerte salir en los periódicos. En esta ocasión, a diferencia de las inyecciones SQL, aquí lo más importante es validar correctamente los parámetros. Documento que si acompañamos de la famosa cheat sheet de RSnake, podremos estar mucho más tranquilos.
Uniendo estas chuletas a las propias de SecurityByDefault y las que os ponemos en bandeja, yo creo que es hora de empezar a empapelar alguna que otra pared.

ACTUALIZACIÓN: Añadida la cheat sheet de XSS, ¡gracias a vierito5 por el aviso!

3 comments :

vierito5 dijo...

Tendría que haber un carnet para desarrolladores web que incluyera un tattoo con estas URLs en las partes íntimas.

vierito5 dijo...

Falta esta creo! XSS
http://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet

José A. Guasch dijo...

@vierito5 gracias por el aviso! que despiste....