La dificultad de parchear las vulnerabilidades de deserialización

Publicado el 11 de septiembre de 2017
por Pieter De Cremer
ESTUDIO DE CASO

La dificultad de parchear las vulnerabilidades de deserialización

Publicado el 11 de septiembre de 2017
por Pieter De Cremer
Ver recurso
Ver recurso

La semana pasada, se informó de que una posible causa detrás de la violación de datos de Equifax era una vulnerabilidad en el plugin REST de Apache Struts. La versión más antigua del plugin es vulnerable a ataques de Ejecución Remota de Código cuando se utiliza con el manejador XStream para manejar cargas útiles XML. La causa es la deserialización de datos no confiables, que es un tipo de vulnerabilidad bien conocido. La vulnerabilidad, reconocida oficialmente como CVE-2017-9805, fue parcheada por Apache el 5 de septiembre en la versión 2.5.13 de Struts. Entonces se anunció y se documentó claramente en la documentación de Apache Struts.

La simple actualización a la versión más reciente de Struts puede proteger la aplicación de este ataque, así que ¿por qué las empresas no se actualizan inmediatamente? El problema con las vulnerabilidades de deserialización es que las rutinas que están siendo explotadas son a menudo aquellas en las que se basa el código de la aplicación. En este caso, aplicar el nuevo parche de Struts podría tener algunos efectos secundarios, como menciona la documentación sobre la vulnerabilidad: "Es posible que algunas acciones REST dejen de funcionar debido a las restricciones aplicadas por defecto a las clases disponibles". Es muy probable que asegurarse de que la aplicación siga funcionando en las nuevas versiones de Struts lleve algún tiempo.

Los hackers, sin embargo, no necesitan tanto tiempo para empezar a abusar de las vulnerabilidades publicadas, y ya podemos ver algunos exploits publicados. Un módulo de Metasploit fue añadido el 8 de septiembre, es decir, tres días después de que Apache parchease la vulnerabilidad. Está claro que posponer el parche no es una buena idea.

La solución es aplicar una solución sugerida por Apache, que podría hacerse en un plazo más corto. Una herramienta de seguridad con directrices de codificación configurables para hacer cumplir esta solución o incluso aplicarla automáticamente aceleraría enormemente este proceso.

¿Quiere saber más sobre cómo identificar y asegurar el código que contiene la deserialización de datos no fiables? Visite el portal Secure Code Warrior para obtener una explicación clara y un reto de formación.

La vulnerabilidad está relacionada con la forma en que Struts analiza ese tipo de datos y los convierte en información que puede ser interpretada por el lenguaje de programación Java. Cuando la vulnerabilidad se explota con éxito, se puede ocultar código malicioso dentro de esos datos y ejecutarlo cuando Struts intenta convertirlos.

https://qz.com/1073221/the-hackers-who-broke-into-equifax-exploited-a-nine-year-old-security-flaw/

Ver recurso
Ver recurso

Autor

Pieter De Cremer

¿Quieres más?

Sumérjase en nuestras últimas ideas sobre codificación segura en el blog.

Nuestra amplia biblioteca de recursos tiene como objetivo potenciar el enfoque humano de la mejora de la codificación segura.

Ver blog
¿Quieres más?

Obtenga las últimas investigaciones sobre la seguridad impulsada por los desarrolladores

Nuestra amplia biblioteca de recursos está repleta de recursos útiles, desde libros blancos hasta seminarios web, que le ayudarán a iniciarse en la codificación segura orientada a los desarrolladores. Explórela ahora.

Centro de recursos

La dificultad de parchear las vulnerabilidades de deserialización

Publicado el 11 de septiembre de 2017
Por Pieter De Cremer

La semana pasada, se informó de que una posible causa detrás de la violación de datos de Equifax era una vulnerabilidad en el plugin REST de Apache Struts. La versión más antigua del plugin es vulnerable a ataques de Ejecución Remota de Código cuando se utiliza con el manejador XStream para manejar cargas útiles XML. La causa es la deserialización de datos no confiables, que es un tipo de vulnerabilidad bien conocido. La vulnerabilidad, reconocida oficialmente como CVE-2017-9805, fue parcheada por Apache el 5 de septiembre en la versión 2.5.13 de Struts. Entonces se anunció y se documentó claramente en la documentación de Apache Struts.

La simple actualización a la versión más reciente de Struts puede proteger la aplicación de este ataque, así que ¿por qué las empresas no se actualizan inmediatamente? El problema con las vulnerabilidades de deserialización es que las rutinas que están siendo explotadas son a menudo aquellas en las que se basa el código de la aplicación. En este caso, aplicar el nuevo parche de Struts podría tener algunos efectos secundarios, como menciona la documentación sobre la vulnerabilidad: "Es posible que algunas acciones REST dejen de funcionar debido a las restricciones aplicadas por defecto a las clases disponibles". Es muy probable que asegurarse de que la aplicación siga funcionando en las nuevas versiones de Struts lleve algún tiempo.

Los hackers, sin embargo, no necesitan tanto tiempo para empezar a abusar de las vulnerabilidades publicadas, y ya podemos ver algunos exploits publicados. Un módulo de Metasploit fue añadido el 8 de septiembre, es decir, tres días después de que Apache parchease la vulnerabilidad. Está claro que posponer el parche no es una buena idea.

La solución es aplicar una solución sugerida por Apache, que podría hacerse en un plazo más corto. Una herramienta de seguridad con directrices de codificación configurables para hacer cumplir esta solución o incluso aplicarla automáticamente aceleraría enormemente este proceso.

¿Quiere saber más sobre cómo identificar y asegurar el código que contiene la deserialización de datos no fiables? Visite el portal Secure Code Warrior para obtener una explicación clara y un reto de formación.

La vulnerabilidad está relacionada con la forma en que Struts analiza ese tipo de datos y los convierte en información que puede ser interpretada por el lenguaje de programación Java. Cuando la vulnerabilidad se explota con éxito, se puede ocultar código malicioso dentro de esos datos y ejecutarlo cuando Struts intenta convertirlos.

https://qz.com/1073221/the-hackers-who-broke-into-equifax-exploited-a-nine-year-old-security-flaw/

Nos gustaría contar con su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Para enviar el formulario, habilite las cookies "Analytics". Siéntase libre de desactivarlas de nuevo una vez que haya terminado.