Deserialización insegura – OWASP Top 8

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 y 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.

Es importante entender que la explotación de este tipo de vulnerabilidad puede traer grandes consecuencias para los servidores y es importante identificar a la brevedad posible cuales son estos servidores afectados en su empresa. Los CVE mostrados son solo algunos relacionados a este tipo de vulnerabilidad, pero no son los únicos.

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 pivoteo, es posible acceder a la red interna e inyectar una puerta trasera no detectable para obtener acceso indiscriminado a los recursos de la empresa.

¿Cómo puede ayudarme Seguridad-Ofensiva a mantener mi sitio web corporativo seguro?

Seguridad-Ofensiva pondrá a prueba sus sitios web corporativos y sus bases de datos. Utilizamos escáneres avanzados, pruebas de penetración manual y diferentes técnicas y procedimientos que pueden incluir rastreo, forzamiento bruto, revisión de código y permisos de carpeta. Hacemos todo esto en coordinación con su personal interno encargado de sus sistemas de información. Estos procedimientos son necesarios para averiguar si las posibles vulnerabilidades son falsos positivos o vulnerabilidades reales. Si son vulnerabilidades reales, le proporcionaremos métodos efectivos para parchar, actualizar o eliminar la vulnerabilidad de acuerdo con la situación para mantener su entorno seguro.

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://owasp.org/www-project-top-ten/OWASP_Top_Ten_2017/Top_10-2017_A8-Insecure_Deserialization.html

https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html

https://cwe.mitre.org/data/definitions/502.html

http://frohoff.github.io/appseccali-marshalling-pickles/

Otras vulnerabilidades pertenecientes a OWASP

Uso de componentes con vulnerabilidades conocidas: https://seguridad-ofensiva.com/blog/owasp-top-10/uso-de-componentes-con-vulnerabilidades-conocidas-owasp-top-9/

Registro y monitoreo insuficiente: https://seguridad-ofensiva.com/blog/owasp-top-10/registro-y-monitoreo-insuficiente-owasp-top-10/

Control de acceso vulnerable: https://seguridad-ofensiva.com/blog/owasp-top-10/control-de-acceso-vulnerable-owasp-top-5/

Entidades externas XML vulnerables: https://seguridad-ofensiva.com/blog/owasp-top-10/entidades-externas-xml-vulnerables-owasp-top-4/

Exposición de datos confidenciales: https://seguridad-ofensiva.com/blog/owasp-top-10/exposicion-de-datos-confidenciales-owasp-top-3/

Ataques en sistemas de autenticación: https://seguridad-ofensiva.com/blog/owasp-top-10/ataques-en-los-sistemas-de-autenticacion/

Ataques por Inyección SQL: https://seguridad-ofensiva.com/blog/owasp-top-10/ataques-por-inyeccion-sql/

Seguridad no configurada: https://seguridad-ofensiva.com/blog/owasp-top-10/seguridad-no-configurada-owasp-top-6/

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *