A8-2017. DESERIALIZACIÓN INSEGURA
La deserialización insegura está reconocido como la 8ª vulnerabilidad Web más importante según OWASP. Aquí aprenderemos qué es, como funciona y como explotarlo.
Última actualización
La deserialización insegura está reconocido como la 8ª vulnerabilidad Web más importante según OWASP. Aquí aprenderemos qué es, como funciona y como explotarlo.
Última actualización
Este artículo está copiado de Seguridad Ofensiva, en su artículo: OWASP Top 8 – Deserialización insegura.
Deserialización insegura se clasifica como la vulnerabilidad número ocho en la lista de OWASP-Top 10. La deserialización insegura es una vulnerabilidad que ocurre cuando los datos no confiables se usan para abusar de la lógica de una aplicación, infligir un ataque de denegación de servicio (DoS) o incluso ejecutar código arbitrario.
Para entender esta vulnerabilidad, es necesario entender el proceso de serialización. La serialización es el proceso de traducir estructuras de datos o estados de objetos a un formato que puede almacenarse y reconstruirse con posterioridad. La deserialización, por otro lado, es lo opuesto a la serialización, es decir, transformar los datos serializados provenientes de un archivo, secuencia o socket de red en un objeto. Es en este ultimo proceso donde reside la vulnerabilidad.
La mayoría de los lenguajes de programación ofrecen la posibilidad de personalizar los procesos de deserialización. Desafortunadamente, con frecuencia es posible que un atacante abuse de estas características de deserialización cuando la aplicación deserializa datos no confiables que controla el atacante. Los ataques de deserialización inseguros permiten que un atacante realice:
ataques de denegación de servicio (DoS)
omisiones de autenticación
Ataques de ejecución remota de código.
El “Instituto Nacional de Estándares y Tecnología” perteneciente al Departamento de Comercio de Los Estados Unidos incluye en su base de datos varias vulnerabilidades y exposiciones comunes relacionadas a deserialización insegura, algunas de estas son:
CVE-2017-9805 – Deserialización insegura que afecta al complemento REST en Apache Struts 2.1.1 en versiones 2.3.x antes de 2.3.34 y 2.5.x antes de 2.5.13. Esta vulnerabilidad usa un XStreamHandler con una instancia de XStream para la deserialización sin ningún tipo de filtrado, lo que puede conducir a la EJECUCIÓN REMOTA DE COMANDOS.
CVE-2018-1851 – Deserialización insegura que afecta el servicio de cola de impresión en Microsoft Windows XP SP2 y SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2, R2 y R2 SP1, y Windows 7 Gold y SP1 permitiendo a los atacantes remotos la EJECUCIÓN REMOTA DE COMANDOS.
CVE-2018-6496 – Deserialización insegura que genera la FALSIFICACIÓN REMOTA DE SOLICITUDES ENTRE SITIOS afectando a los buscadores de los servidores UCMBD versiones 4.10, 4.11, 4.12, 4.13, 4.14, 4.15, y 4.15.1.
CVE-2018-6497 – Deserialización insegura que afecta a servidores UCMBD versión DDM Content Pack V 10.20, 10.21, 10.22, 10.22 CUP7, 10.30, 10.31, 10.32, 10.33, 10.33 CUP2, 11.0 y servidores CMS versión 2018.05. – EJECUCIÓN REMOTA DE COMANDOS.
CVE-2018-7489 – Deserialización insegura que afecta el complemento FasterXML jackson-databind antes de la versión 2.7.9.3, 2.8.x, antes de la versión 2.8.11.1 y 2.9.x y antes de la versión 2.9.5 – EJECUCIÓN REMOTA DE COMANDOS.
Nos gustaría ejemplificar el proceso de ataque que las entidades maliciosas ocupan en el proceso de explotación. Claro está que si una deserialización insegura se presenta en algún servidor expuesto al Internet será fácilmente explotable desde cualquier computador que tenga una dirección IP publica permitiendo un acceso directo al servidor afectado. Veamos…
El atacante, en su proceso de enumeración, pudiese identificar el servidor vulnerable:
Buffer Overflow es un tipo de deserialización insegura. La confirmación de la vulnerabilidad se confirma usando un escáner especifico:
Confirmando la vulnerabilidad, el proceso de explotación es bastante simple. Hay diferentes procesos de explotación públicos, automáticos y manuales para acceder al servidor en forma remota. Veamos…
Como Prueba de Concepto ejecutamos el comando “ifconfig” para obtener la dirección IP del servidor vulnerable. Desde aquí, utilizando técnicas de pivoting, es posible acceder a la red interna e inyectar una puerta trasera no detectable para obtener acceso indiscriminado a los recursos de la empresa.
Solución y prevención
https://seguridad-ofensiva.com/evaluaciones-de-vulnerabilidades
https://seguridad-ofensiva.com/pruebas-de-penetracion-externas
https://seguridad-ofensiva.com/pruebas-de-penetracion-en-sitios-web
Recursos adicionales con relación a este tipo de ataque:
https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html