martes, 21 de noviembre de 2017

OWASP publica la edición 2017 de su Top-10 Web Application Security Risks

Cuatro años después de la última edición, la revisión del ranking OWASP que clasifica los riesgos a los que se enfrentan las aplicaciones se actualiza, incluyendo problemas derivados en las últimas tendencias en arquitecturas web.




El "Open Web Application Security Project" (OWASP) tiene como objetivo ofrecer una metodología, de libre acceso y utilización, que pueda ser utilizada como material de referencia por parte de los arquitectos de software, desarrolladores, fabricantes y profesionales de la seguridad involucrados en el diseño, desarrollo, despliegue y verificación de la seguridad de las aplicaciones y servicios web.

Entre los diversos proyectos orientados a este fin se encuentra el OWASP Top 10. Se trata de un documento orientado a la concienciación que establece un ranking de los mayores riesgos de seguridad a los que hacen frente las aplicaciones web. Esta clasificación nace del consenso de múltiples expertos en seguridad en aplicaciones web, y es actualizada cada 3 o 4 años desde 2003.

Como documento orientado a la concienciación, el objetivo principal del Top 10 es educar a los desarrolladores, diseñadores, arquitectos, gerentes, y organizaciones; sobre las consecuencias de las vulnerabilidades de seguridad más importantes en aplicaciones web. Provee técnicas básicas sobre cómo protegerse en estas áreas de alto riesgo y también provee orientación sobre los pasos a seguir.

Las novedades introducidas en esta edición en cuanto a la elaboración del listado son el peso que han tenido los comentarios de la comunidad, a partir de los cuales se han incluido dos de las entradas, y la gran cantidad de información recogida a través de las decenas de profesionales y empresas colaboradoras, que obtuvieron datos de más de 100.000 aplicaciones web y APIs.

Cambios en la clasificación entre la edición 2013 y 2017. Tomado de OWASP.

La larga sombra de los microservicios

Desde la publicación del anterior Top 10, allá por noviembre de 2013, el paisaje de Internet ha cambiado bastante. Por un lado la proliferación de las arquitecturas basadas en  microservicios ha aumentado la superficie de exposición y permite que código antiguo esté expuesto a Internet, cuando anteriormente se situaba detrás de una gran aplicación monolítica. Asimismo, las llamadas entre las APIs que exponen los microservicios también introducen la necesidad de autenticación entre los mismos. 

A esto se une la hegemonía de JavaScript como el lenguaje de la web: por supuesto en el lado del cliente a través de los diversos frameworks disponibles, como Angular o React, pero también en la parte del servidor, donde poco a poco Node.js va reclamando un lugar propio.

Por tanto no es de extrañar que algunas de las nuevas entradas estén bastante relacionadas con este nuevo escenario. Por ejemplo, la entrada "A4 - Entidades Externas XML", que afecta a sistemas que utilizan SOAP para comunicarse, o "A8 - Deserialización insegura", que podría permitir en última instancia la ejecución remota de código y que puede encontrarse en servicios web, brokers de mensajería y autenticación en APIs. Por otro lado, y también elegido con el respaldo de la comunidad, se han introducido en el puesto 10 riesgos derivados del "registro y motorización insuficiente", no como vulnerabilidad, si no como causa principal de una respuesta deficiente a incidentes de seguridad .

El cambio de entorno también ha provocado algunas salidas del ranking. El puesto 10 de 2013, "Redirecciones no válidas" ha desaparecido del ranking (ocupa ahora el puesto 25) al aparecer sólo en el 1% de los datos analizados. Por otro lado, las vulnerabilidades de tipo Cross Site Request Forgery, el puesto 8 en 2013, ahora solo se da en menos del 5% de las aplicaciones web estudiadas, principalmente debido a que los frameworks actuales incluyen protección contra CSRF de serie.

Pero hay cosas que nunca cambian

Por ejemplo, los puestos más altos del ranking. Perenne desde 2010, permanece en el primer puesto la inyección de código: SQL, NoSQL, sistema operativo, y en general cualquier entrada que permita llegar comandos maliciosos directamente al interprete. 

Igualmente, desde 2010 tenemos en segunda posición "Autenticación defectuosa", categoría que engloba los riesgos relacionados con ataques de fuerza bruta, credenciales por defecto, gestión defectuosa de las sesiones y otros muchos problemas de alto riesgo relacionados con la autenticación ante las aplicaciones.

También siguen siendo relevantes el Cross Site Scripting (aunque su presencia decrece y baja al puesto 7) y la exposición de datos sensibles, donde ocurre al contrario: Desde el sexto puesto sube al tercero.

Top 10 2017 con datos de vectores de ataque, debilidad e impacto. Tomado de OWASP.
El Top 10 de OWASP es desde hace años el estándar de facto para el desarrollo seguro de aplicaciones, y es de revisión obligada cuando se realizan auditorías de seguridad. Por ello, el documento publicado no solo ofrece el listado, sino además una completa guía de detección y actuación sobre los riesgos identificados y pasos a seguir para desarrolladores, analistas de seguridad y organizaciones.



Francisco López

Más información:

OWASP Top 10 - 2017:
https://www.owasp.org/images/0/0a/OWASP_Top_10_2017_GM_%28en%29.pdf