Recursos para formación en desarrollo web seguro

Probablemente muchos de vosotros habréis caído en la cuenta de la falta completa de información referente a la seguridad en desarrollo web que se suele impartir en universidades, o específicamente, en cursos o másteres de desarrollo. De toda la gente a la que he preguntado, a nadie le han enseñado técnicas de desarrollo seguro en su formación universitaria. Sólo una persona, que acabó recientemente la carrera, me comentó que había una asignatura referente a seguridad, muy en general, y era de libre elección. Y no sólo en la formación. En cualquier libro técnico sobre introducción al desarrollo web, tampoco hacen mucha mención a la necesidad de filtrar parámetros de entrada, o cifrar las comunicaciones de un formulario de login.

¿Y por qué menciono yo esto? ¿Por qué es tan importante que un desarrollador tenga conocimientos de desarrollo seguro? Porque ahorra tiempo y dinero. Se estima que el coste en euros de solucionar una vulnerabilidad detectada en producción es 15 veces más que si se hubiera arreglado en la fase de desarrollo. Muchos sabréis de primera mano lo tedioso que es subir una nueva versión a producción: pruebas en pre, ventana de mantenimiento para detener la aplicación, litros de café y plegarias para que nada explote.

Mi idea al escribir este post es recopilar lo esencial de lo esencial, como base para aprender en qué momentos es necesario tomar ciertas medidas de seguridad. Por suerte, todo lo que he considerado de imprescindible lectura está disponible libremente en la web de OWASP. Por supuesto, hay muchísimo más, aunque me he centrado en comentar los proyectos de OWASP por ser recursos desarrollados por la comunidad.

El primero de todos, la guía de desarrollo seguro de OWASP. Este documento explica las vulnerabilidades web más comunes y su forma de evitarla. Actualmente la versión publicada es del año 2005, aunque la información sigue siendo hoy día perfectamente válida. La mayoría de ejemplos están descritos en Java. Además de los temas conocidos como validación de datos de entrada, gestión de sesiones, mecanismos de autenticación o autorización, toca temas como webservices, phising, o buenas prácticas en el manejo de errores. Es un recurso que todo desarrollador web debería conocer, y tener a mano para consultar, para que al menos, aunque no recuerde cómo implementar de forma segura cierta funcionalidad, si que al menos sepa que lo que está programando implica una posible vulnerabilidad y que es necesario desarrollarlo con cuidado.

Otra lectura muy recomendable es la guía de revisión de código. Aplicable tanto para el personal dedicado a la fase de test de un proyecto, como a los pentesters que realizan test de intrusión de caja blanca, con acceso al código fuente. Se definen una serie de controles y muestra en qué hay que fijarse para detectar una posible vulnerabilidad. Enseña tanto errores comunes como buenas prácticas.

Por último, Application Security Verification Standard (ASVS) son una serie de controles, que a modo de CheckList, puede sernos muy útil usarlo en la fase de testing. Está categorizado por el tipo de vulnerabilidades a revisar y además catalogados en tres niveles, dependiendo del nivel de exigencia a cumplir. Actualmente la versión 2.0 está en fase de borrador con muchas mejoras, como la simplificación de niveles y nuevas categorías, como desarrollo para aplicaciones móviles. Un recurso muy valioso tanto para el desarrollador como para el jefe del proyecto.

Y por supuesto, no me puedo dejar como fuente de información este blog ;) Sobre todo muy interesantes los post de nuestros compañeros David, Guillermo, y Nedim.

Comments

  1. Totalmente de acuerdo con el artículo. El tema de costes que comentas es realmente escandaloso y un motivo para tomar en serio estas recomendaciones. Sorprende ver que aún no se le conceda la importancia que merece a nivel educativo.

    Gracias por los enlaces, la guía también está en español y es de agradecer :)

Trackbacks

  1. […] Probablemente muchos de vosotros habréis caído en la cuenta de la falta completa de información referente a la seguridad en desarrollo web que se suele impartir en universidades, o específicamente,…  […]