Products and Services PRODUCTS & SERVICES

Puerta trasera descubierta en la biblioteca de Ruby strong_password

Un desarrollador con buen ojo ha descubierto que se ha introducido recientemente una puerta trasera en una biblioteca (o “gema”) utilizada por las aplicaciones web de Ruby on Rails (RoR) para comprobar la seguridad de la contraseña.

Si bien el lenguaje de scripts de Ruby y el RoR no son tan populares como lo eran antes, todavía están integrados en numerosos entornos de desarrollo empresarial, muchos de los cuales podrían haber usado la biblioteca predeterminada, strong_password, en su versión infectada 0.0.7.

El descubrimiento se produjo después de que el desarrollador de Epion Health, Tute Costa, notara algo inusual al actualizar una familia de bibliotecas utilizadas por el desarrollador de su compañía para corregir errores y vulnerabilidades de seguridad.

Cuando vio la gema strong_password en RubyGems.org, no pudo encontrar un registro de cambios que explique cómo llegó a la versión actualizada de 0.0.6, un evento que ocurrió el 25 de junio de 2019.

La versión anterior de GitHub se había actualizado en octubre de 2018. Al comparar las dos versiones, se dio cuenta de que la versión misteriosa 0.0.7 incluía un enlace de descarga que:

Obtiene y ejecuta el código almacenado en un pastebin.com, solo si se ejecuta en producción, con un manejo de excepciones vacío que ignora cualquier error que pueda generar.

La puerta trasera descargaría el código de la dirección de Pastebin para los sitios de producción, dando a los atacantes el poder de la ejecución remota de código, secuestrando silenciosamente cualquier desafortunado sitio web que hubiera actualizado la gema vulnerable strong_password.

Además de esto, las versiones habían sido publicadas por una cuenta vacía con un nombre diferente (probablemente víctima de un secuestro de la cuenta de Pastebin) del gestor oficial, Brian McManus, quien respondió a un correo electrónico de Costa para decirle:

La gema parece haber salido de mí… Cuando inicio sesión en rubygems.org, parece que ahora no soy el propietario.

Este incidente se identifica como CVE-2019-13354. La biblioteca infectada ahora ha sido eliminada  y reemplazada con 0.0.8.

Parte de un patrón

Esto no ha sido un ataque especulativo, alguien planeó lo que estaba haciendo y se dispuso a insertar la puerta trasera de una manera que no se notara de inmediato.

También se ajusta a un patrón preocupante de la reciente orientación de las bibliotecas Ruby, incluyendo la RCE descubierta dentro de la biblioteca Bootstrap-Sass de Ruby en abril.

Este problema se detectó incluso más rápido que strong_password, pero la gran cantidad de bibliotecas utilizadas por RoR (y otros marcos de desarrollo en la línea de fuego) plantea la cuestión de cuánta supervisión es necesaria cuando aparecen nuevas versiones.

Afortunadamente, en esta ocasión, un desarrollador estaba atento. Cuando se trata de seguridad, a veces alguien que se da cuenta de que algo está mal es todo lo que se interpone entre una gran comunidad de desarrolladores y un desastre.

 

 

Para manteneros al día de las últimas amenazas haceros fans de nuestra página de Facebook o síguenos en Twitter para intercambiar experiencias en torno al mundo de la seguridad. Si deseas recibir nuestro boletín de seguridad en tu correo electrónico, suscríbete en la siguiente aplicación: