Las novedades del ranking OWASP 2021
OWASP es la fundación centrada en la seguridad de las aplicaciones web, recientemente ha actualizado el ranking de los riesgos más destacados. Vamos a ver la nueva reorganización del top, comentando brevemente qué aspectos de la seguridad toca cada uno de ellos.
¿Qué es el TOP 10 de OWASP?
El top 10 de OWASP es un ranking bastante popular en el mundo de la seguridad web y auditoria, aun con sus matices y no falto de alguna polémica en el pasado. Esta lista se comenzó a confeccionar en el 2003 y durante todo este tiempo se han ido publicando actualizaciones de forma más o menos regular cada tres años.
Por supuesto, la lista no es representativa de todos los riesgos existentes en las aplicaciones web. De hecho es probable que algunos de los puntos presentes no apliquen a cierto tipo de aplicaciones, mientras que otros riesgos que no están en la lista podrían afectar de forma crítica.
Hay que tomarlo como un “por donde se están moviendo las fronteras del mapa de riesgo en global”, más que un plano detallado y particular de en qué debemos poner el énfasis respecto de la seguridad.
Las posiciones del ranking son otorgadas en base a un estudio realizado sobre un número significativo de aplicaciones web y una encuesta realizada a la industria, donde los profesionales indican cuáles son sus mayores preocupaciones respecto de los diferentes riesgos que pueden sufrir sus aplicaciones.
- En el primer puesto, tenemos un ascenso notable desde el quinto: A01:2021-Broken Access Control. En esta categoría entran todos los riesgos que permitan a un atacante evadir un control impuesto para poder acceder a un recurso. Este tipo de vulnerabilidades pueden emanar desde el propio desarrollo a errores en la configuración durante el despliegue. Un ejemplo sencillo sería el poder acceder a una API privilegiada porque esta no examina correctamente los permisos de acceso del origen de la solicitud.
- El segundo puesto (escalando desde el tercero) se lo queda A02:2021-Cryptographic Failures. La criptografía es difícil, si ya es compleja de entender, mucho más lo es de aplicar sus conceptos de forma práctica y sin errores. A esto, sumemos el hecho de que los fallos en las librerías criptográficas suelen son transversales. Es decir, un fallo afecta a una miríada de librerías y programas que dependen de aquellas. Los problemas en el capítulo criptográfico llenan (inundan más bien) los informes de auditorías: uso de una función hash obsoleta, cifrado insuficiente, modo de cifrado por bloques inseguro…y por supuesto: ausencia de cualquier tipo de cifrado…
- El tercer puesto es una sorpresa, pues tras años de reinado en el primer puesto, las vulnerabilidades de inyección caen varios peldaños. A03:2021-Injection agrupa todas aquellas vulnerabilidades en las que el vector es la entrada de código externo y es ejecutado tanto en el cliente (navegador) como en el servidor. Es decir, tanto un Cross-site scripting como una inyección SQL. Sin duda, algo tiene que ver la progresión, respecto a la seguridad, tanto de lenguajes de programación como librerías y técnicas de programación segura. No es como para bajar la guardia, pero puede ser una buena noticia.
- El cuarto puesto se lo lleva una nueva categoría, inédita en el ranking: A04:2021-Insecure Design. No obstante, es una amalgama de defectos posibles en el diseño e implementación de los controles lógicos que deberían asegurar el correcto funcionamiento de la aplicación. Por ejemplo, permitir productos en el carro de la compra con un número negativo de artículos, almacenar las credenciales en texto claro, etc. Como vemos, es un cajón de sastre para todo tipo de errores que pongan en riesgo la seguridad de la aplicación.
- A05:2021-Security Misconfiguration asciende un puesto, del sexto al quinto. Aunque esta categoría podría confundirse con la anterior, es fácil ver que se refiere a aspectos de la seguridad que han de ser revisados en el contexto de la configuración más que del diseño e implementación seguros. El ejemplo más claro, sería el de permitir que un servidor web liste directorios completos o que las trazas de errores en la ejecución de peticiones sean publicadas como respuesta a una petición. Habitualmente, los productos de terceros proveen una configuración por defecto abierta para crear los mínimos conflictos posibles. Adaptar la configuración de forma segura debe formar parte del ciclo natural de desarrollo y despliegue.
- El sexto puesto pertenece a A06:2021-Vulnerable and Outdated Components, que asciende desde el noveno. Se explica prácticamente solo: que la aplicación posea componentes vulnerables u obsoletos y el ejemplo más directo sería un plugin de WordPress desactualizado y vulnerable o abandonado por los desarrolladores. Es obvio que un sistema no se crea y despliega y a continuación nos olvidamos de él. El software ha de cuidarse como un jardín o los bichos terminarán comiéndose los frutos de aquel.
- A07:2021-Identification and Authentication Failures era anteriormente denominado Broken Authentication. Además, protagoniza otra de las caídas importantes: del segundo al séptimo puesto. Fácil de confundir con los controles de acceso, la identificación y autenticación es el paso previo para obtener los permisos y privilegios en el ámbito de la aplicación. Esta categoría no solo identifica riesgos en el momento de la autenticación, sino que también estamos acaparando aquí el ciclo de vida de la sesión del usuario. Es decir, aspectos tales como la robustez del token de autenticación, la exposición de este y su validez en tiempo.
- El octavo puesto se lo lleva una nueva categoría que acoge ciertos riesgos que han estado presente en muchos titulares: A08:2021-Software and Data Integrity Failures. Este apartado cuida todo lo relacionado con la integridad y verificación de fuentes cuando instalamos, actualizamos o poseemos infraestructura de apoyo (integración continua, …) ¿Recordáis los ataques de «supply chain»? Pues esta nueva categoría es el resultado de reconocer este tipo de ataques como una amenaza crítica e importante que no podemos pasar por alto. No solo debemos poner un ojo en nuestros dominios sino en aquello que sentamos en nuestra mesa.
- A09:2021-Security Logging and Monitoring Failures asciende un puesto y actualiza su denominación. De Insufficient Logging & Monitoring al actual, no es para menos. Una aplicación genera un número de eventos que puede llegar a cifras astronómicas. ¿Cuántos de estos eventos son alertas de seguridad? Y mejor, ¿Cuáles de estos son alertas reales y críticas? Este capítulo cubre desde las ausencias de registro de eventos a su almacenamiento correcto y gestión adecuada de estos. De nada sirve haber hecho los deberes en el resto de los aspectos y no saber que está ocurriendo ni poder actuar a tiempo.
- El ranking lo cierra A10:2021-Server-Side Request Forgery como la primera preocupación de la industria (emana de la encuesta a la industria que organizó OWASP). Prácticamente, es la única categoría que posee un tipo concreto de vulnerabilidad. No es para menos, la vulnerabilidad puede poner un riesgo altísimo en un abanico de repercusiones que van desde el descubrimiento de servicios expuestos en la red interna, acceso a recursos que no son públicos (archivos, bases de datos, …) e incluso, ejecución de código arbitrario.
Un nuevo escenario para la ciberseguridad
Este es el nuevo escenario que pinta OWASP. Los cambios son patentes y aunque se nos muestra en una lista ordenada, no podemos ponderar el riesgo respecto a su posición en dicha lista. De hecho, solo hay que repasar la guía de tests de seguridad para ver hasta dónde llegan los riesgos.
El top es una cata de qué es lo más candente o los puntos más importantes, pero no debemos de perder de vista el resto. Hacerlo, nos puede poner en una posición incómoda si dejamos de darle importancia a capítulos que no entren en las diez categorías señaladas.
Adaptado de: Las novedades del ranking OWASP 2021 - Think Big Empresas (blogthinkbig.com)