La importante guía MITRE ha compartido la lista de las 25 principales debilidades de software más comunes y peligrosas de este año detrás de más de 31.000 vulnerabilidades reveladas entre junio de 2023 y junio de 2024.
Las debilidades del software se refieren a fallas, errores, vulnerabilidades y errores que se encuentran en el código, la arquitectura, la implementación o el diseño del software.
Los atacantes pueden explotarlos para vulnerar los sistemas donde se ejecuta el software susceptible a explotaciones, lo que les permite obtener control sobre los dispositivos afectados y acceder a datos confidenciales o desencadenar ataques de denegación de servicio.
«A menudo fáciles de encontrar y explotar, pueden conducir a vulnerabilidades explotables que permiten a los adversarios hacerse cargo por completo de un sistema, robar datos o evitar que las aplicaciones funcionen», mencionó MITRE en su informe.
«Descubrir las causas fundamentales de estas vulnerabilidades sirve como una guía poderosa para las inversiones, políticas y prácticas para evitar que estas vulnerabilidades ocurran en primer lugar, beneficiando tanto a la industria como a las partes interesadas del gobierno», agregaron.
Para crear la clasificación de este año, MITRE anotó cada vulnerabilidad en función de su gravedad y frecuencia después de analizar 31.770 registros CVE en busca de vulnerabilidades que «se beneficiarían del análisis de reasignación» e informaron a lo largo de 2023 y 2024, con un enfoque en las fallas de seguridad agregadas a CISA.
«Esta lista anual identifica las vulnerabilidades de software más críticas que los adversarios explotan con frecuencia para comprometer sistemas, robar datos confidenciales o interrumpir servicios esenciales», dijo CISA en su propio comunicado en conjunto con MITRE.
«Se recomienda encarecidamente a las organizaciones que revisen esta lista y la utilicen para informar sus estrategias de seguridad de software. Priorizar estas debilidades en los procesos de desarrollo y adquisición ayuda a prevenir vulnerabilidades en el núcleo del ciclo de vida del software», concluyó la agencia.
La lista es encabeza por el Cross-site Scripting, que sube un puesto con respecto al año anterior. Esta falla de seguridad ocurre cuando el producto no neutraliza, o lo hace incorrectamente, la entrada controlable por el usuario antes de colocarla en la salida que se utiliza como página web que se sirve a otros usuarios.
Una vez que se inyecta el script malicioso, el atacante puede realizar una variedad de actividades maliciosas. El atacante podría transferir información privada, como cookies que pueden incluir información de sesión, de la máquina de la víctima al atacante.
Es decir, que permite a un atacante inyectar código malicioso (usualmente JavaScript) en una aplicación web, que luego se ejecuta en el navegador de los usuarios que visitan la página afectada. Este ataque puede ser usado para robar información, suplantar identidades, redirigir a sitios maliciosos, o manipular el contenido de la página.
En muchos casos, el ataque se puede lanzar sin que la víctima lo sepa. Incluso con usuarios cuidadosos, los atacantes utilizan con frecuencia una variedad de métodos para codificar la parte maliciosa del ataque, como la codificación URL o Unicode, por lo que la solicitud parece menos sospechosa.
En segundo lugar tenemos el Out-of-bound Write. Esta vulnerabilidad indica que un producto escribe datos más allá del final, o antes del comienzo, del búfer previsto.
A pesar de su similitud con la vulnerabilidad de desbordamiento de búfer, no son exactamente lo mismo. Ya que el primero puede ocurrir en cualquier contexto donde haya manejo incorrecto de índices o punteros, incluso en arrays. Por otro lado, el desbordamiento de búfer está asociado a operaciones con cadenas de texto, entradas del usuario o buffers mal gestionados, siendo un caso específico que ocurre dentro de un búfer y no particularmente en arreglos.
El Top 3 lo cierra la inyección SQL, que ocurre en las bases de datos que utilizan este lenguaje y sucede cuando un atacante inserta código SQL malicioso en un campo de entrada o consulta de base de datos, explotando una mala validación de entradas por parte del sistema. Este ataque puede permitir al atacante manipular la base de datos, obteniendo acceso no autorizado, modificando datos o incluso eliminándolos.
La forma más reiterada para repeler este ataque es sanitizar las entradas como si fueran cadenas de texto. De este modo, las entradas SQL quedarán inválidas, o incluso limitando los caracteres permitidos en los campos de entradas.
También se pueden implementar herramientas de detección de intrusiones (IDS).
El listado completo y su respectivo cambio de posición tomando en cuenta el análisis del pasado año:
- Cross-site Scripting (+1)
- Out-of-bound Write (-1)
- Inyección SQL (0)
- Cross-Site Request Forgery (CSRF) (+5)
- Path Traversal (+3)
- Out-of-bounds Read (+1)
- OS Command Injection (-2)
- Use After Free (-4)
- Missing Authorization (+2)
- Unrestricted Upload of File with Dangerous Type (0)
- Inyección de código (+12)
- Validación de un input inapropiado (-6)
- Inyección de comandos (+3)
- Autenticación inapropiada (-1)
- Manejo de privilegios inapropiado (+7)
- Deserialization of Untrusted Data (-1)
- Exposición de información sensible a un autor no autorizado (+13)
- Autorización incorrecta (+6)
- Server-Side Request Forgery (SSRF) (0)
- Operaciones inapropiadas en el búfer de la memoria (-3)
- NULL Pointer Dereference (-9)
- Uso de credenciales hardcodeadas (-4)
- Integer Overflow o Wraparound (-9)
- Consumo de recursos sin control (+13)
- Falta de autenticación por una función crítica (-5)
CISA también publica regularmente alertas de «Secure by Design» que destacan la prevalencia de vulnerabilidades ampliamente conocidas y documentadas que aún no se han eliminado del software a pesar de las mitigaciones disponibles y efectivas.
«En 2023, la mayoría de las vulnerabilidades explotadas con mayor frecuencia se explotaron inicialmente como un día cero, lo que representa un aumento con respecto a 2022, cuando menos de la mitad de las vulnerabilidades explotadas más importantes se explotaron como un día cero», advirtieron.
Esta lista puede ser utilizadas tanto para personas que desempeñan el perfil de pentesting y hacking ético como así aquellos programadores interesados en que sus proyectos cuenten con la seguridad necesaria ante potenciales ataques que vulneren fallos de seguridad.
De esta manera, un desarrollador puede detectar que vulnerabilidades son las más populares para así plantear medidas de seguridad al respecto.