Se detecta una puerta trasera de ejecución de código en la biblioteca rest-client de Ruby
Hayley Denbraver
21 de agosto de 2019
0 minutos de lecturaEl 19 de agosto de 2019, [rest-client](https://snyk.io/vuln/rubygems:rest-client), un cliente HTTP y REST sencillo para Ruby, reportó una nueva amenaza de seguridad. La cuenta RubyGem de un responsable de mantenimiento fue vulnerada y un tercero malicioso instaló una puerta trasera de ejecución de código. El exploit afecta las versiones posteriores a la 1.6.10 y anteriores a la 1.7.0.rc1.
¿Qué sucedió?
El usuario de GitHub [juskoljo](https://github.com/juskoljo) reportó un problema en el repositorio de rest-client el 19 de agosto. El usuario revisó las diferencias entre las versiones del paquete y descubrió que las versiones entre la 1.6.10 y la 1.7.0.rc1 ejecutan código remoto alojado en pastebin.com y envían información a un sitio malicioso. Mediante este exploit, el atacante pudo obtener la URL de los equipos infectados, las variables de entorno y otra información confidencial.
Vale la pena leer el hilo del problema en GitHub. Es una oportunidad para ver cómo se abordó un problema de seguridad en código abierto. El primer comentario menciona que se solicitó un CVE y el segundo, que se había eliminado la versión alterada y bloqueado la cuenta vulnerada del responsable de mantenimiento. Más adelante, el hilo incluye una conversación sobre las ventajas de la autenticación de dos factores en las cuentas de RubyGem.
Es importante tener en cuenta que la versión vulnerada es bastante antigua. rest-client actualmente está en la serie 2.x.x, por lo que las versiones explotadas tienen una actualización principal de retraso. Sin embargo, dadas las realidades del mantenimiento de código, sin duda hay muchos proyectos vulnerables a este exploit.
¿Qué debo hacer ahora?
Quienes usen las versiones infectadas deben actualizar lo antes posible. La versión 1.7.0.rc1 incluye una corrección. Puedes usar Snyk para determinar si estás usando las versiones vulnerables.
Si usas nuestra CLI, solo ejecuta $ snyk test en el directorio de tu proyecto. Obtendrás una lista de todas las vulnerabilidades en tus dependencias, incluidas las de rest-client.
También puedes probar tu proyecto desde nuestra sencilla interfaz de usuario. Pruébala hoy.
También te recomiendo que aprendas de este exploit y habilites la autenticación de dos factores en todas las cuentas que lo permitan.
¿Qué podemos aprender?
Esta vulnerabilidad demuestra lo conveniente que es habilitar la autenticación de dos factores en la cuenta del administrador de paquetes. De hecho, quienes mantienen paquetes y se preocupan por la seguridad deberían considerar exigirla a quienes tengan acceso de escritura.
Además, esta vulnerabilidad demuestra por qué es buena idea mantener las dependencias relativamente actualizadas. Las actualizaciones automáticas también pueden ser problemáticas, pero está claro que el atacante quería «pasar desapercibido», por así decirlo, al apuntar a una versión antigua.
Una última lección de este evento es la importancia de actuar rápido para corregir este tipo de problemas. Es posible que el problema no afecte a una gran cantidad de usuarios, pero el impacto para quienes sí afecta puede ser enorme. Es importante difundir la información para que puedan abordar el problema lo antes posible.
Esperamos que esta publicación ayude a difundir la información. Si te preocupa estar usando una versión infectada de rest-client, prueba Snyk hoy mismo. Al ejecutar una prueba de Snyk, puedes averiguar si tu proyecto incluye versiones infectadas de rest-client y conocer otras vulnerabilidades conocidas en tus dependencias.
Los paquetes maliciosos en repositorios populares de código abierto son cada vez más comunes. Si crees que encontraste un posible paquete malicioso, puedes reportarlo a Snyk mediante nuestra política de divulgación de paquetes de código abierto: https://snyk.io/vulnerability-disclosure/
Comienza con Capture the Flag
Aprende a resolver desafíos de Capture the Flag con nuestro taller virtual 101 a pedido.



