Los ataques de incrustación de código, el infame rey de las vulnerabilidades, han perdido el primer lugar debido al control de acceso disfuncional como lo peor de lo peor, y los desarrolladores deben darse cuenta de esto.
En este mundo cada vez más caótico, siempre ha habido varias constantes en las que la gente puede confiar: el sol saldrá por la mañana y se volverá a poner por la noche, Mario siempre será más frío que Sonic the Hedgehog y los ataques de inyección de código siempre funcionarán. primero en la lista de Open Web Application Security Project (OWASP) con las diez vulnerabilidades más comunes y peligrosas que los atacantes explotan activamente.
Mañana sale el sol y Mario todavía tiene una «superación» en Sonic, pero los ataques de inyección de código se eliminaron de la infame lista OWASP, restaurada en 2021. Una de las formas más antiguas de ataques, las vulnerabilidades de inserción de código han existido durante casi como siempre que las redes informáticas. La vulnerabilidad generalizada es responsable de una amplia gama de ataques, que incluyen todo, desde las inyecciones de SQL tradicionales hasta las vulnerabilidades lanzadas contra las bibliotecas de navegación de gráficos de objetos. Incluso implica ataques directos a servidores que utilizan técnicas de incrustación de SO. La versatilidad de las vulnerabilidades de inserción de código para los atacantes, sin mencionar la cantidad de sitios que podrían verse potencialmente comprometidos, ha mantenido la inserción de código a la vanguardia durante muchos años.
Pero el rey de la inserción de código cayó. Larga vida al rey.
¿Significa esto que finalmente hemos resuelto el problema de la vulnerabilidad de inyección? Ninguna posibilidad. No cayó muy lejos de su posición como enemigo de seguridad número uno, solo alcanzó el tercer lugar en la lista OWASP. Sería un error subestimar el riesgo continuo de los ataques de inserción de código, pero el hecho de que otras categorías de vulnerabilidad hayan podido superarlo es significativo porque muestra cuán extendido está el nuevo OWASP y por qué los desarrolladores deben prestar atención para mantener avanzando.
Sin embargo, quizás lo más interesante es que OWASP Top 10 2021 refleja una revisión importante, presentando categorías completamente nuevas: diseño no seguro, fallas de integridad de datos y software, y un registro basado en los resultados de la encuesta comunitaria: falsificación de solicitudes del lado del servidor. Estos apuntan a un enfoque creciente en las vulnerabilidades arquitectónicas y los errores superficiales superpuestos para el punto de referencia de seguridad del software.
El control de acceso roto se lleva la corona (y revela tendencia)
El control de acceso dañado se ha disparado desde el quinto lugar en la lista de OWASP de los diez más vulnerables al actual número uno. Al igual que con la inserción de código y elementos nuevos, como el diseño inseguro, la vulnerabilidad de un acceso corrupto involucra una amplia gama de errores de codificación, lo que contribuye a su dudosa popularidad porque juntos permiten daños en múltiples colas. Esta categoría incluye todos los casos en los que se pueden violar las políticas de control de acceso para que los usuarios puedan actuar fuera de los permisos previstos.
Algunos ejemplos de control de acceso roto que OWASP pone en primer lugar en la familia de vulnerabilidades incluyen aquellos que permiten a los atacantes modificar una URL, el estado de una aplicación interna o parte de una página HTML. También pueden permitir que los usuarios cambien su clave de acceso principal para que la aplicación, el sitio o la API crean que son otra persona, como un administrador con mayores privilegios. Incluso incluye vulnerabilidades en las que los atacantes no tienen restricciones para modificar metadatos, lo que les permite cambiar cosas como tokens web JSON, cookies o tokens de control de acceso.
Una vez que se explota este grupo de vulnerabilidades, los atacantes pueden usarlo para eludir los permisos en archivos u objetos, permitirles robar datos o incluso realizar funciones destructivas a nivel de administrador, como eliminar bases de datos. Como resultado, el control de acceso no funcional es críticamente peligroso y, además, se está volviendo más común.
Es bastante convincente, pero no sorprendente, que las vulnerabilidades de autenticación y control de acceso se estén convirtiendo en el terreno más fértil para que los atacantes exploten. El último Informe de investigaciones de violación de datos de Verizon revela que los problemas de control de acceso prevalecen en casi todas las industrias, especialmente en TI y atención médica, y un increíble 85 % de todas las interrupciones involucran al elemento humano. El «elemento humano» ahora incluye incidentes como ataques de phishing, que no son un problema técnico, pero el 3% de las violaciones involucraron vulnerabilidades explotables y, según se informa, el informe fue principalmente vulnerabilidades más antiguas y causadas por errores humanos, como una configuración de seguridad incorrecta.
Si bien estas vulnerabilidades de seguridad deterioradas, como XSS y la inyección de SQL, aún socavan a los desarrolladores, cada vez es más claro que el diseño de seguridad básico está fallando y dando paso a vulnerabilidades arquitectónicas que pueden ser muy beneficiosas para los actores de amenazas, especialmente si desaparecen después de la reparación. se publica una falla de seguridad en una versión específica de la aplicación.
El problema es que pocos ingenieros se someten a capacitación y desarrollo de habilidades que vayan más allá de lo básico, y cada vez menos tienen sus conocimientos y aplicaciones prácticas realmente más allá de los errores localizados a nivel de código que los desarrolladores suelen informar en primer lugar.
Prevención de errores que los robots raramente encuentran
La familia recientemente agrupada de vulnerabilidades de control de acceso no funcionales es bastante diversa. Puede encontrar algunos ejemplos específicos de controles de acceso rotos y formas de detenerlos en nuestro blog y canal de YouTube. O mejor aún, pruébalo por ti mismo.
Sin embargo, creo que es importante celebrar este nuevo OWASP Top 10; de hecho, es más diverso e incluye una gama más amplia de vectores de ataque, que incluyen aquellos que no son necesariamente capturados por los escáneres. Por cada vulnerabilidad a nivel de código encontrada, las fallas arquitectónicas más complejas pasarán desapercibidas para la mayoría de las tecnologías de seguridad, sin importar cuántos escudos automáticos y armas haya en el arsenal. Aunque la mayor parte del OWASP Top 10 todavía se compila en base a datos escaneados, las nuevas entradas, entre otras cosas, sobre fallas en la integridad de los datos y el diseño inseguro muestran que los horizontes de capacitación para los desarrolladores deben expandirse rápidamente para lograr lo que los robots no pueden.
En pocas palabras, los escáneres de seguridad no son buenos modeladores de amenazas, pero un equipo de desarrolladores experimentados puede ayudar enormemente al equipo de AppSec al aumentar su coeficiente intelectual de seguridad de acuerdo con las mejores prácticas y las necesidades comerciales. Esto debe tenerse en cuenta en un buen programa de seguridad, sabiendo que si bien OWASP Top 10 es una base excelente, el entorno de amenazas es tan rápido (sin mencionar los requisitos de los objetivos de desarrollo internos) que debe haber un plan. ir más profundo y más específicamente a medida que los desarrolladores de seguridad mejoran sus habilidades. De lo contrario, inevitablemente se desperdiciarán oportunidades para la remediación oportuna y se obstaculizará un enfoque holístico exitoso para la seguridad cibernética preventiva dirigida por humanos.
Sobre el autor: Matias Madou es cofundador y CTO de Secure Code Warrior. Tiene más de diez años de experiencia práctica en seguridad de software, tiene un Ph.D. en Ingeniería Informática de la Universidad de Gante.