miércoles, 6 de abril de 2022

Cambios en OWASP Top 10 2021

OWASP publicó el pasado 24 de septiembre de 2021 un nuevo listado de vulnerabilidades para el Top 10 de aplicaciones web. En él ha introducido varios cambios a la hora de clasificar los principales riesgos y en qué orden van en la lista, con el objetivo de que las vulnerabilidades que llevan 3 ediciones del top 10 en la misma posición, se clasifiquen de otra manera.

¿Qué es la OWASP Top 10?

Para quien no esté familiarizado, la OWASP (Open Web Application Security Project) es un proyecto de código abierto dedicado a mejorar la seguridad de aplicaciones web. La Fundación OWASP es un organismo internacional sin ánimo de lucro que gestiona dicho proyecto.

Entre los diferentes proyectos de OWASP, uno de los más destacados es el OWASP Top 10, que es un documento que muestra las 10 vulnerabilidades más importantes para toda aplicación web. Los criterios para clasificar las vulnerabilidades pueden variar según el año de publicación, pero principalmente se centra en las vulnerabilidades más frecuentes en diferentes aplicaciones web y las que más riesgo conllevan. Dicho documento se actualiza cada 3-4 años, siendo el anterior en 2017.

Cambios en la metodología

Este año se han implementado nuevos criterios para clasificar la top 10. Para empezar, 8 de las 10 categorías se han basado en estadísticas de unas 500.000 aplicaciones web de diferentes organizaciones que donaron sus datos al proyecto OWASP. Las otras 2, se han basado en una encuesta de Top 10 realizada a investigadores, desarrolladores y expertos en seguridad ya que son quienes tienen un punto de vista más cercano a los problemas que hay actualmente o incluso las vulnerabilidades que los datos no pueden mostrar.

Otro de los puntos importantes respecto a anteriores Top 10, es que la frecuencia de una vulnerabilidad en una misma aplicación ya no influye, haciendo que una aplicación que posea 4 o 4000 veces una misma vulnerabilidad ya no forma parte del cálculo para el Top 10.

OWASP Top 10 funciona clasificando diferentes CWE (Common Wakness Enumerations) a sus categorías, y este año ha habido algunos cambios en el mapeado de las CWE de cada categoría provocando que se generen de nuevas o incluso se combinen 2 categorías respecto al anterior top 10. Este proceso es la parte que más tiempo lleva a la Fundación OWASP y nunca hay un acuerdo absoluto entre los expertos lo que hace que algunos años haya mayores cambios como este 2021 que se ha basado más en estadísticas.

Nuevo OWASP Top 10 2021

Comparativa de la OWASP top 10 2017 y 2021

Como se puede observar en la tabla proporcionada por OWASP, ninguna de las categorías ha permanecido íntegramente igual respecto a la edición anterior. Uno de los principales cambios es que algunas categorías se han combinado o se han integrado.

Comentaremos cada categoría según los cambios que se aprecian con respecto al año anterior. Por ejemplo, categorías que se mantienen igual pero en diferente puesto, categorías que se amplían o combinan y categorías nuevas.

Categorías con diferente posición

  • A01:2021-Broken Access Control o pérdida de control de acceso en español ha pasado de la 3ª posición a la primera debido a que es de las categorías que más índice ha tenido con las aplicaciones testeadas de un 3,81% y más impacto puede provocar.

    Esta categoría se centra en la política que un usuario no puede realizar acciones fuera de las funciones planeadas para dicho usuario. Entre los CWE a destacar está la CWE200 exposición de información sensible a actores no autorizados.

  • A02:2021-Cryptographic Failures antes conocida como exposición de datos sensibles. OWASP ha decidido cambiar el nombre para destacar la raíz de la causa (Cryptographic Failures) más que un síntoma que puede causar (anteriormente conocida como Sensitive Data Exposure). Con un índice de 4,49% también es una de las categorías con más índice de aparición. También se debe evaluar que tipos de datos necesitan que tipos de medidas ya que una contraseña, tarjetas de crédito o información personal requiere de más protección que otros datos.

    Todas las vulnerabilidades respecto a que algunos datos no van por canales o protocolos suficientemente seguros se incluirán en esta categoría. Entre los CWE a destacar está el CWE-327 pérdida o algoritmo de cifrado vulnerable.

  • A06:2021-Vulnerable and Outdated Components o componentes vulnerables ganó el puesto 2 en la encuesta de expertos, pero estaba presente en suficientes en los datos de aplicaciones web como para considerarlo poner por encima de las categorías propuestas por la comunidad. Con un índice de 8,77% es la categoría con más aplicaciones web afectadas. Muchas veces esta vulnerabilidad es debido a que no se actualizan las diferentes librerías usadas tanto en el backend como en el frontend ya que algunas de ellas requieren de modificaciones en tu web para su buen funcionamiento y escalar dichas modificaciones y testeos para cada componente de terceros usado.

    Esta categoría solo dispone de 3 CWEs, 2 de ellos haciendo referencia a anteriores OWASP Top 10 CWE-937 y 1035 uso de componentes con vulnerabilidades conocidas y CWE-1104 uso de componentes de terceros sin mantener.

  • A07:2021-Identification and Authentication Failures o fallos de identificación y autenticación baja de la segunda a la séptima posición por su bajo índice de 2,55%. Se le han añadido algunos CWE relacionados con fallos a la hora de identificar los usuarios. Un fallo puede ser el permitir ataques automáticos como fuerza bruta o credenciales por defecto. Algunos CWE a destacar serían el CWE-384 fijación de sesión o CWE-287 autenticación incorrecta.

  • A09:2021-Security Logging and Monitoring Failures o registro de seguridad y fallos de monitoreo logró la posición número 3 en la encuesta de la comunidad y es una de las 2 categorías que han pasado al Top 10. Se centra en la falta de monitorización o de registros para detectar ataques. Esta categoría es difícil de auditar ya que por lo general implica a alguien que pueda ver los logs para ver si se ha podido monitorizar los movimientos de un auditor.

    Ejemplos serían filtraciones de datos que se hacen públicos sin saber que han sido afectados por un ataque de un cibercriminal. Puede llegar a tener un gran impacto debido a que aumenta enormemente el tiempo de reacción ante incidentes. Solo dispone de 4 CWE, pero a destacar se encontrarían el CWE-778 insuficientes registros y CWE-223 omisión de información relevante para la seguridad.

Categorías ampliadas o combinadas

  • A03:2021-Injection o inyecciones en español ha bajado de la primera posición que mantenía des del OWASP Top 10 del 2010 a la 3ª con un índice de 3,37%. Uno de sus cambios más significativos es que por primera vez incluyen los XSS (Cross-Site Scripting).

    Anteriormente los XSS poseían su propia categoría ocupando el puesto número 7 en el top 10 y las inyecciones las formaban principalmente las SQL, NoSQL, comandos OS, LDAP y Object Relational Mapping (ORM). Las CWE más destacadas son la CWE-89 inyección SQL y la CWE-79 Cross-Site Scripting.

  • A05:2021-Security Misconfiguration o mala configuración de seguridad ha subido una posición respecto al 2017. Esto es debido en parte al mayor uso de software altamente configurable. A su vez se ha incluido A04:2017 (XXE) a esta categoría ya que con un índice de 4,51% es suficientemente alto para merecer esta posición.

    En ocasiones de descubren estas vulnerabilidades porque al montar el entorno se sigue una guía que no tiene en cuenta la seguridad y se dejan permisos o configuraciones por defecto y poco seguros.

    Entre otros CWE se encuentran CWE-611 Improper Restriction of XML External Entity Reference (del A04:2017), CWE-16 Configuration y vulnerabilidades comunes como CWE-1004 Sensitive Cookie Without "HttpOnly" flag.

  • A08:2021-Software and Data Integrity Failures o fallas de integridad de software y datos podría considerarse una nueva categoría, no obstante, se refiere a la anterior categoría A07:2017 deserialización insegura. Aunque no sea una categoría con un índice de aparición alto, es una de las categorías con más impacto.


Forma parte las vulnerabilidades relacionadas con la integridad de los datos y código. Un ejemplo sería un software que permite la implementación de plugins de terceros sin verificar su código. Otro ejemplo más común en los softwares actuales es la actualización automática sin verificar suficientemente la integridad de la nueva actualización. Los CWE a destacar son CWE-502 deserialización de datos no confiables y CWE-494 descarga de código sin comprobación de integridad.

Categorías nuevas

  • A04:2021-Insecure Designe o diseño inseguro es una de las nuevas categorías centrada en vulnerabilidades causadas por un mal diseño de la aplicación. Se debe diferenciar esta vulnerabilidad con el resto, ya que puede existir un buen diseño con una implementación deficiente que provoque otras vulnerabilidades.

    Un ejemplo sería las preguntas de seguridad (en qué ciudad naciste, nombre de tu primera mascota, etc) para recuperar una contraseña, ya que dichas preguntas no aseguran suficientemente la identidad de la persona que las responden. En cambio, si existe una vulnerabilidad que te permite cambiar un correo de recuperación de contraseña de un usuario, no es el diseño inseguro, sino la implementación. Las CWE a destacar serían la CWE-522 credenciales insuficientemente protegidas y CWE-266 incorrecta asignación de permisos.

  • A10:2021-Server Side Request Forgery (SSRF) o falsificación de solicitud del lado del servidor fue la categoría en primera posición de la encuesta a la comunidad. Como el XSS tuvo en su momento su propia posición, ahora se ha dedicado al SSRF su propia categoría. Esta vulnerabilidad consiste en provocar que el servidor realice una petición HTTP hacia un dominio/ip elegido.

    Esto puede permitir realizar peticiones a servicios internos, robo de datos sensibles o escalar privilegios y ejecutar código de forma remota. Esta categoría solo está referida en el CWE-918 Server-SIde Request Forgery (SSRF)

Conclusiones

La Fundación OWASP ha querido centrar el Top 10 a los datos de las aplicaciones web que disponían para realizar un Top 10 más acorde a las estadísticas sin dejar de lado la opinión de la comunidad, dando 2 de los 10 puestos a la encuesta realizada. Este cambio puede beneficiar en gran medida para ver realmente qué vulnerabilidades son más comunes en diferentes aplicaciones.

Puede que en futuras versiones del Top 10 se modifique parcialmente esta fórmula, pero centrándose en las estadísticas y aplicar más tiempo humano a categorizar los CWE que son más comunes.

Como resultado tenemos un OWASP Top 10 con muchos cambios que evolucionará juntamente con los resultados reales presentados.


** En nuestro canal de youtube podéis encontrar el video del webinar en el que nuestro compañero Héctor Berrocal habla de estos cambios con ejemplos
https://www.youtube.com/watch?v=zZ3Iuc9QhSQ


Referencias

https://www.owasptopten.org/
https://owasp.org/Top10/
https://es.wikipedia.org/wiki/Open_Web_Application_Security_Project
https://es.wikipedia.org/wiki/OWASP_Top_10


Autor: Guim Auró
Dpto. Auditoría