Ha salido a la luz que tanto Java como Python (este último a través de la biblioteca urllib2 en Python 2 y urllib biblioteca en Python 3) por su manera de manejar los enlaces de FTP, permiten insertar caracteres de nueva línea (CRLF) dentro de la URL, por lo que podemos introducir comandos a través de la URL. Esto nos lleva a un fallo que los investigadores de seguridad llaman “inyección de paquetes”.
El investigador de seguridad Alexander Klink detalla en su blog cómo a través del protocolo FTP hace uso de esta inyección de paquetes para enviar mensajes de correo electrónico utilizando las librerías de Java. Por otra parte Timothy Morgan de Blindspot Security se adelantó y presentó un escenario en el que utilizando las librerías de Java y de Python, se demostraba como se podrían evadir los firewalls haciendo uso de esta vulnerabilidad.
Morgan ha comentado que su empresa ha informado tanto al equipo de Python (en enero de 2016) como al equipo de Oracle (en noviembre de 2016) sobre este fallo que permite la inyección de paquetes en el protocolo FTP, pero no se ha presentado ninguna actualización de software que corrija este fallo.
Esta vulnerabilidad en parte es debida al modo activo del FTP, esto es así porque este modo de operación obliga a que la máquina siempre tiene que estar dispuesta a aceptar cualquier conexión por un puerto superior al 1024. El FTP modo activo ha sido reemplazado por un método más seguro, el método de las interacciones cliente-servidor FTP conocidos como FTP en modo pasivo. Sin embargo, la mayoría de los productos de firewall admiten conexiones FTP en modo activo.
El problema con esta inyección de paquetes en el protocolo FTP con Java y Python es que se puede aprovechar para iniciar una conexión a través del modo activo del FTP, y ser utilizado de forma malintencionada. Morgan ha dicho que va a liberar el código de prueba que realizó para descubrir este fallo, con lo cual, los administradores de sistemas podrán probar la seguridad en los servidores una vez que Oracle y Python hayan solucionado los problemas reportados.
Cómo mitigar este fallo de seguridad hasta que solucionen el problema
Morgan ha publicado una serie de recomendaciones sobre cómo manejar este problema hasta que Oracle y el equipo de Python solucionen el problema:
- Considerar la posibilidad de desinstalar Java del sistema. Si esto no fuera posible ya que hay aplicaciones que lo necesitan, deshabilitar el plugin de Java de todos los navegadores y desasociar la extensión del archivo .jnlp del binario de Java Web Start.
- Considerar la posibilidad de solicitar una actualización para corregir estos problemas de Oracle y la Python Software Foundation. Asegurarse de aplicar las actualizaciones de seguridad para todas las versiones de Java y Python, incluidos los que se ejecutan en los servidores de aplicaciones.
- Los administradores de red deben desactivar el FTP modo activo en todos los servidores, permitiendo sólo el modo pasivo, por seguridad.
- Los proveedores de firewall deben desactivar el modo activo de FTP por defecto, para que los productos no se envíen con esta opción activada de forma predeterminada.
De momento únicamente podemos seguir los consejos que nos ha proporcionado Morgan hasta que la gente de Oracle y Python solucionen el problema. Os recomendamos visitar nuestra sección de seguridad informática donde tenéis una gran cantidad de manuales de configuración.
Entusiasta de la seguridad cibernética. Especialista en seguridad de la información, actualmente trabajando como especialista en infraestructura de riesgos e investigador.
Experiencia en procesos de riesgo y control, soporte de auditoría de seguridad, diseño y soporte de COB (continuidad del negocio), gestión de grupos de trabajo y estándares de seguridad de la información.
Envía tips de noticias a info@noticiasseguridad.com o www.instagram.com/iicsorg/.
También puedes encontrarnos en Telegram www.t.me/noticiasciberseguridad