{"id":1633,"date":"2026-07-20T07:03:45","date_gmt":"2026-07-20T07:03:45","guid":{"rendered":"https:\/\/cybercolombia.co\/index.php\/2026\/07\/20\/sleepergem-utiliza-tres-paquetes-maliciosos-de-rubygems-para-atacar-las-maquinas-de-los-desarrolladores-cyberdefensa-mx\/"},"modified":"2026-07-20T07:03:45","modified_gmt":"2026-07-20T07:03:45","slug":"sleepergem-utiliza-tres-paquetes-maliciosos-de-rubygems-para-atacar-las-maquinas-de-los-desarrolladores-cyberdefensa-mx","status":"publish","type":"post","link":"https:\/\/cybercolombia.co\/index.php\/2026\/07\/20\/sleepergem-utiliza-tres-paquetes-maliciosos-de-rubygems-para-atacar-las-maquinas-de-los-desarrolladores-cyberdefensa-mx\/","title":{"rendered":"SleeperGem utiliza tres paquetes maliciosos de RubyGems para atacar las m\u00e1quinas de los desarrolladores \u2013 CYBERDEFENSA.MX"},"content":{"rendered":"<div id=\"articlebody\">\n<p>Los investigadores de ciberseguridad han se\u00f1alado un nuevo ataque a la cadena de suministro de software con nombre en c\u00f3digo SleeperGem dirigido al ecosistema Ruby despu\u00e9s de que se publicaran tres gemas maliciosas en RubyGems con el objetivo final de servir cargas \u00fatiles adicionales.<\/p>\n<p>Las gemas rebeldes se enumeran a continuaci\u00f3n:<\/p>\n<p>\u00abCada lanzamiento malicioso es un cargador\u00bb, StepSecurity <a href=\"https:\/\/www.stepsecurity.io\/blog\/sleepergem-compromised-rubygems-drop-persistent-backdoor\" target=\"_blank\">dicho<\/a> en un an\u00e1lisis. \u00abObtiene una segunda etapa de un host Forgejo controlado por un atacante, verifica si se est\u00e1 ejecutando en un sistema de compilaci\u00f3n y lo omite si lo est\u00e1, y en una m\u00e1quina de desarrollo coloca un demonio nativo e instala la persistencia\u00bb.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/ai-vuln-protection-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Ciberseguridad\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjQl2axNwsfhbXOFynrg_uAZsvHi3OvNGSA8KJO-BKR8Xm3x7yjKV3EvfY4v5mwXx6LF0uWFb9h9d9iAV_Pi-YYhqimX9wx4OaLdDJEdR215Xrxq_PAtXkaLfQso4pTSjbj6fvh_ZTliLpzWZSZfcoZgyXtKwhN-SSDDlmbtUqGLshc0KqYQGWYHMN52Sl1\/s728-e100\/zz-d.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>Un aspecto del ataque que se destaca de inmediato es que \u00abgit_credential_manager\u00bb se hace pasar por el administrador oficial de credenciales Git de Microsoft, mientras que los otros dos hab\u00edan estado inactivos durante a\u00f1os antes de recibir las actualizaciones maliciosas. \u00abDendreo\u00bb se actualiz\u00f3 por \u00faltima vez el 24 de octubre de 2020 y \u00abfastlane-plugin-run_tests_firebase_testlab\u00bb permaneci\u00f3 inactivo desde el 9 de marzo de 2019, antes de las nuevas versiones.<\/p>\n<p>Otro rasgo definitorio de la actividad es que los lanzamientos se publicaron directamente en el registro sin ning\u00fan compromiso o etiqueta coincidente en los proyectos fuente.<\/p>\n<div class=\"separator\" style=\"clear: both;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhhaj8eoxZV_tZL3Ot7vqAo5oTmu3E5ujjNCWLlQCtU5-DX2ManqJSbtZHi3YBvJNi9Y7GTFxeq8IiQTK9BsbqOG6IZW_YQzMA4PGQbEoPkmOmJ2EbwzNinTSd3z7KU4uE2h9DB6mdB-IrvmBlGcnB3ZnefkcHvQmvkuYE2aNlxb0i-l2VMLjcuBdbMp5iE\/s1700-e365\/ruby-1.png\" style=\"display: block;  text-align: center; clear: left; float: left;\"><img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhhaj8eoxZV_tZL3Ot7vqAo5oTmu3E5ujjNCWLlQCtU5-DX2ManqJSbtZHi3YBvJNi9Y7GTFxeq8IiQTK9BsbqOG6IZW_YQzMA4PGQbEoPkmOmJ2EbwzNinTSd3z7KU4uE2h9DB6mdB-IrvmBlGcnB3ZnefkcHvQmvkuYE2aNlxb0i-l2VMLjcuBdbMp5iE\/s1700-e365\/ruby-1.png\" alt=\"\" border=\"0\" data-original-height=\"2038\" data-original-width=\"3440\"\/><\/a><\/div>\n<p>Curiosamente, \u00abgit_credential_manager\u00bb ha sido <a href=\"https:\/\/rubygems.org\/gems\/git_credential_manager\/reverse_dependencies\" target=\"_blank\">agregado<\/a> como una dependencia de cinco paquetes, incluidos \u00abDendreo\u00bb y \u00abfastlane-plugin-run_tests_firebase_testlab\u00bb, lo que permite efectivamente que la carga maliciosa se propague a los usuarios existentes de los paquetes.<\/p>\n<ul>\n<li>dendreo<\/li>\n<li>fastlane-plugin-run_tests_firebase_testlab<\/li>\n<li>holguraHtmlToMarkdown<\/li>\n<li>seo_optimizador<\/li>\n<li>m\u00e9todos_r\u00e1pidos_array<\/li>\n<\/ul>\n<p>Todos los paquetes antes mencionados, a excepci\u00f3n de \u00abfastlane-plugin-run_tests_firebase_testlab\u00bb, se mantienen en la misma cuenta (\u00ab<a href=\"https:\/\/rubygems.org\/profiles\/LR-DEV\" target=\"_blank\">LR-DEV<\/a>\u00ab). El hecho de que la gema pertenece a un mantenedor diferente (\u00ab<a href=\"https:\/\/rubygems.org\/profiles\/pinkroom\" target=\"_blank\">habitaci\u00f3n rosa<\/a>\u00ab) indica que es probable que m\u00e1s de una cuenta haya sido comprometida para enviar las versiones no autorizadas a RubyGems.<\/p>\n<p>Una vez instalado, el malware integrado en estos paquetes escanea el sistema infectado en busca de aproximadamente 30 variables de entorno, incluidas las relacionadas con GitHub Actions, GitLab, CircleCI, Travis, Jenkins y Vercel. Si se identifica alguno de ellos, se cierra de inmediato. Se considera que la verificaci\u00f3n es un intento intencional de evitar la ejecuci\u00f3n en corredores de CI ef\u00edmeros y garantizar que se ejecute en una m\u00e1quina de desarrollador.<\/p>\n<p>En el caso de \u00abgit_credential_manager\u00bb, el c\u00f3digo malicioso se activa cuando se requiere la biblioteca, lo que provoca que descargue dos cargas \u00fatiles desde una instancia p\u00fablica de Forgejo (\u00abgit.disroot[.]org\/git-ecosystem\u00bb): un script de shell (\u00abdeploy.sh\u00bb) y un binario nativo que lleva el mismo nombre que la herramienta que disfraza la gema. En Windows, la carga \u00fatil recuperada se ejecuta a trav\u00e9s de PowerShell.<\/p>\n<p>Mientras que la versi\u00f3n 2.8.2 simplemente prepara las cargas \u00fatiles, la versi\u00f3n 2.8.3 de la gema pasa a la siguiente fase del ataque. Esto implica usar el script de instalaci\u00f3n para iniciar el binario como un demonio en segundo plano, despu\u00e9s de lo cual establece la persistencia usando una entrada cron y como un servicio de usuario systemd y consulta los grupos sudo y wheel.<\/p>\n<p>\u00abSi el usuario puede ejecutar sudo sin contrase\u00f1a, el script se vuelve a ejecutar como root, y cuando se ejecuta como root coloca una copia ra\u00edz setuid del shell del sistema en una ruta elegida para imitar una utilidad de red\u00bb, dijo StepSecurity.<\/p>\n<p>Se recomienda a los usuarios que hayan instalado cualquiera de las gemas antes mencionadas que traten las m\u00e1quinas y los secretos asociados como si estuvieran comprometidos. Tambi\u00e9n se recomienda eliminar el demonio eliminado en \u00ab~\/.local\/share\/gcm\/\u00bb, borrar los m\u00e9todos de persistencia, buscar un shell setuid en \u00ab\/usr\/local\/sbin\/ping6\u00bb y rotar todas las credenciales.<\/p>\n<p>\u00abUna cuenta de RubyGems que ha permanecido inactiva durante seis o siete a\u00f1os no parece riesgosa para nadie\u00bb, Charlie Eriksen, investigador de Aikido Security <a href=\"https:\/\/www.aikido.dev\/blog\/sleepergem-rubygems-supply-chain-attack\" target=\"_blank\">dicho<\/a>. \u00abEse es exactamente el perfil que vale la pena tomar. De ah\u00ed proviene el nombre SleeperGem: no es un activo de atacante plantado y de largo plazo, sino una cuenta real y ordinaria que simplemente hab\u00eda quedado inactiva y parec\u00eda lo suficientemente inofensiva como para secuestrarla sin que nadie se diera cuenta\u00bb.<\/p>\n<h3>RubyGems como punto muerto de filtraci\u00f3n de datos<\/h3>\n<p>La divulgaci\u00f3n se produce m\u00e1s de dos meses despu\u00e9s de que RubyGems detuviera brevemente los registros de cuentas despu\u00e9s de que los delincuentes impulsaran docenas de paquetes maliciosos como parte de una campa\u00f1a coordinada de publicaci\u00f3n de spam. Casi al mismo tiempo, los investigadores de Socket se\u00f1alaron una campa\u00f1a paralela que inund\u00f3 el registro con 150 gemas y abus\u00f3 de ellas como canal de filtraci\u00f3n de datos.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/sygnia-cyber-response-d-2\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Ciberseguridad\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjHcvlLVmAqlffm6kG54_0cGVf8WfcgzqT9B0fBSizSSeIjh8tBepXnrf6BMqKiG344WgqNejcRtEFKT1PmOzQNQBhdmu2iz9Po10z0SSDlFuZ37iip2uYibJDoxTEkbUI7Bx8NJM2Io_z_nl5p4YA-ZhqFLfi0GW1axyu-lQx-iytCn9RGSJ2iqCwdyv8m\/s1600\/sy-d-2.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>A principios de este mes, Mend.io revel\u00f3 detalles de un ataque a la cadena de suministro de software no documentado que emple\u00f3 otro conjunto de 14 paquetes RubyGems para almacenar datos de credenciales robadas.<\/p>\n<p>Espec\u00edficamente, se descubri\u00f3 que una extensi\u00f3n de navegador maliciosa recopil\u00f3 credenciales a trav\u00e9s de una API accesible localmente, empaquet\u00f3 la informaci\u00f3n en archivos .gem v\u00e1lidos completamente dentro del navegador usando JavaScript y API web est\u00e1ndar, y carg\u00f3 esos paquetes directamente en RubyGems.org usando una clave API de RubyGems codificada.<\/p>\n<p>\u00abEl bot\u00edn incluy\u00f3 contrase\u00f1as de texto plano, claves privadas SSH, credenciales de AWS, frases iniciales de billeteras criptogr\u00e1ficas, n\u00fameros de Seguro Social, n\u00fameros de tarjetas de cr\u00e9dito y detalles de cuentas bancarias en 63 elementos de la b\u00f3veda\u00bb, Maciej Mensfeld <a href=\"https:\/\/www.mend.io\/blog\/rubygems-supply-chain-attack-dead-drop\/\" target=\"_blank\">dicho<\/a>.<\/p>\n<p>\u00abRubyGems no era el mecanismo de entrega aqu\u00ed. Era el punto muerto: un dominio confiable y de alto tr\u00e1fico donde los datos robados permanec\u00edan hasta que el atacante regresaba a buscarlos, invisible entre las cargas normales de los desarrolladores\u00bb.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Los investigadores de ciberseguridad han se\u00f1alado un nuevo ataque a la cadena de suministro de software con nombre en c\u00f3digo SleeperGem dirigido al ecosistema Ruby despu\u00e9s de que se publicaran tres gemas maliciosas en RubyGems con el objetivo final de servir cargas \u00fatiles adicionales. Las gemas rebeldes se enumeran a continuaci\u00f3n: \u00abCada lanzamiento malicioso es [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1379,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,5],"tags":[3562,24,53,95,52,267,1582,276,36,2457,3891,1389,216],"class_list":["post-1633","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-noticias","category-trending","tag-atacar","tag-cyberdefensa-mx","tag-desarrolladores","tag-las","tag-los","tag-maliciosos","tag-maquinas","tag-paquetes","tag-para","tag-rubygems","tag-sleepergem","tag-tres","tag-utiliza"],"_links":{"self":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/posts\/1633","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/comments?post=1633"}],"version-history":[{"count":0,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/posts\/1633\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/media\/1379"}],"wp:attachment":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/media?parent=1633"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/categories?post=1633"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/tags?post=1633"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}