En nuestra nota anterior, del 16 de agosto, hablamos de algunos errores en las bibliotecas de Java, lo que enfatiza la necesidad de aprender a programar en Java de forma correcta. También es importante hacerlo a conciencia, sabiendo que los programas seguramente serán víctimas de ataques cibernéticos y que los programadores deben hacer lo necesario para evitarlos.
Sirva de muestra lo ocurrido hace un par de años. En este caso, el punto de entrada para el pirateo de Equifax de 2017 que resultó en el robo de datos personales de 147,7 millones de estadounidenses provino de una falla de deserialización de Java en Apache Struts. Y en julio pasado, hubo una vulnerabilidad de Atlassian Jira en la que un atacante capaz de conectarse a un servicio de red Ehcache RMI podría ejecutar código arbitrario de su elección en Jira a través de la deserialización debido a una vulnerabilidad de autenticación faltante.
En un artículo titulado "An In-depth Study of Java Deserialization Remote-Code Execution Exploits and Vulnerabilities", los científicos informáticos Imen Sayar (Universidad de Toulouse), Alexandre Bartel (Universidad de Umeå), Eric Bodden (Universidad de Paderborn) e Yves Le Traon (Universidad de Luxemburgo) describe cómo examinaron las bibliotecas de software objetivo de 19 exploits RCE de deserialización de Java conocidos públicamente para comprender cómo los gadgets (construcciones de código explotables) se introducen en las bibliotecas de Java y cómo a veces fallan los intentos de deshacerse de estos gadgets.
Si bien la serialización y la deserialización son útiles, los autores observan que este proceso presenta riesgos si los datos deserializados provienen de una fuente no confiable. De hecho, un atacante podría crear un flujo de bytes que, cuando se deserializa en el host remoto, podría controlar el flujo de ejecución del código Java encadenando secuencias de código llamadas gadgets. Por lo tanto, es necesario revisar cualquier problema que pudiera existir en las bibliotecas. En la siguiente nota ampliaremos la información al respecto.