{"id":265,"date":"2026-03-16T21:10:02","date_gmt":"2026-03-16T21:10:02","guid":{"rendered":"https:\/\/cybercolombia.co\/index.php\/2026\/03\/16\/el-ataque-glassworm-utiliza-tokens-de-github-robados-para-forzar-el-envio-de-malware-a-repositorios-de-python-cyberdefensa-mx\/"},"modified":"2026-03-16T21:10:02","modified_gmt":"2026-03-16T21:10:02","slug":"el-ataque-glassworm-utiliza-tokens-de-github-robados-para-forzar-el-envio-de-malware-a-repositorios-de-python-cyberdefensa-mx","status":"publish","type":"post","link":"https:\/\/cybercolombia.co\/index.php\/2026\/03\/16\/el-ataque-glassworm-utiliza-tokens-de-github-robados-para-forzar-el-envio-de-malware-a-repositorios-de-python-cyberdefensa-mx\/","title":{"rendered":"El ataque GlassWorm utiliza tokens de GitHub robados para forzar el env\u00edo de malware a repositorios de Python \u2013 CYBERDEFENSA.MX"},"content":{"rendered":"<div id=\"articlebody\">\n<p>La campa\u00f1a de malware GlassWorm se est\u00e1 utilizando para impulsar un ataque continuo que aprovecha los tokens de GitHub robados para inyectar malware en cientos de repositorios de Python.<\/p>\n<p>\u00abEl ataque se dirige a proyectos Python, incluidas aplicaciones Django, c\u00f3digo de investigaci\u00f3n de aprendizaje autom\u00e1tico, paneles Streamlit y paquetes PyPI, agregando c\u00f3digo ofuscado a archivos como setup.py, main.py y app.py\u00bb, StepSecurity <a href=\"https:\/\/www.stepsecurity.io\/blog\/forcememo-hundreds-of-github-python-repos-compromised-via-account-takeover-and-force-push\" rel=\"noopener\" target=\"_blank\">dicho<\/a>. \u00abCualquiera que ejecute pip install desde un repositorio comprometido o clone y ejecute el c\u00f3digo activar\u00e1 el malware\u00bb.<\/p>\n<p>Seg\u00fan la empresa de seguridad de la cadena de suministro de software, las primeras inyecciones se remontan al 8 de marzo de 2026. Los atacantes, al obtener acceso a las cuentas de los desarrolladores, <a href=\"https:\/\/www.atlassian.com\/git\/tutorials\/merging-vs-rebasing\" rel=\"noopener\" target=\"_blank\">rebase<\/a> las \u00faltimas confirmaciones leg\u00edtimas en la rama predeterminada de los repositorios de destino con c\u00f3digo malicioso y luego forzar los cambios, manteniendo intactos el mensaje, el autor y la fecha del autor de la confirmaci\u00f3n original.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/not-fast-enough-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Ciberseguridad\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhlXM830ruQd2xT6M7JNeNRjaFa1onD12WjSCHihTFMTzbyfT9h-irPmXy_h3E1HGSs6sdv7FTmnyNVTM5kmSb7BuUtZe8gKoTQt99P1sSzRcqqXpOJP6eoAOhR3DGb6qHx9kOZ_HBZUMmVnsnd0DM7QfUp81bgzTvvgLww6oqB-EhnDfWXH5pWCYhAsyLs\/s728-e100\/tl-d.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>Esta nueva rama de la campa\u00f1a GlassWorm ha recibido el nombre en c\u00f3digo ForceMemo. El ataque se desarrolla a trav\u00e9s de los siguientes cuatro pasos:<\/p>\n<ul>\n<li>Comprometer los sistemas de los desarrolladores con el malware GlassWorm a trav\u00e9s de extensiones maliciosas de VS Code y Cursor. El malware contiene un componente dedicado a robar secretos, como tokens de GitHub.<\/li>\n<li>Utilice las credenciales robadas para forzar la implementaci\u00f3n de cambios maliciosos en cada repositorio administrado por la cuenta de GitHub violada al cambiar la base del malware ofuscado a archivos Python llamados \u00absetup.py\u00bb, \u00abmain.py\u00bb o \u00abapp.py\u00bb.<\/li>\n<li>La carga \u00fatil codificada en Base64, adjunta al final del archivo Python, presenta comprobaciones similares a GlassWorm para determinar si el sistema tiene su configuraci\u00f3n regional configurada en ruso. Si es as\u00ed, omite la ejecuci\u00f3n. En todos los dem\u00e1s casos, el malware consulta el <a href=\"https:\/\/thehackernews.com\/2025\/10\/self-spreading-glassworm-infects-vs.html\" rel=\"noopener\" target=\"_blank\">Campo de nota de transacci\u00f3n asociado con una billetera Solana (\u00abBjVeAjPrSKFiingBn4vZvghsGj9KCE8AJVtbc9S8o8SC\u00bb) <\/a><a href=\"https:\/\/socket.dev\/blog\/open-vsx-transitive-glassworm-campaign\" rel=\"noopener\" target=\"_blank\">previamente vinculado<\/a> a GlassWorm para extraer la URL de carga \u00fatil.<\/li>\n<li>Descargue cargas \u00fatiles adicionales del servidor, incluido JavaScript cifrado dise\u00f1ado para robar criptomonedas y datos.<\/li>\n<\/ul>\n<div class=\"separator\" style=\"clear: both;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjkkFm9QFu3TfelC0b9acV0WTQWHr8LsXfhdW40pGGtPNKHTq9uBJkc9dljyb4TR0I9QgQ9_jFaskCxnZ3ylgoDwlTKRQQAgO_lUUay1-DTgUWer3syvLIDC79y83eZby3W7NH5rWUOAkMvprhOrH5GlZSdg4pysgAvjYX2q00_6u2hmbeO_Emdon64t-0n\/s1700-e365\/attack.png\" style=\"display: block;  text-align: center; clear: left; float: left;\"><img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjkkFm9QFu3TfelC0b9acV0WTQWHr8LsXfhdW40pGGtPNKHTq9uBJkc9dljyb4TR0I9QgQ9_jFaskCxnZ3ylgoDwlTKRQQAgO_lUUay1-DTgUWer3syvLIDC79y83eZby3W7NH5rWUOAkMvprhOrH5GlZSdg4pysgAvjYX2q00_6u2hmbeO_Emdon64t-0n\/s1700-e365\/attack.png\" alt=\"\" border=\"0\" data-original-height=\"1130\" data-original-width=\"2286\"\/><\/a><\/div>\n<p>\u00abLa primera transacci\u00f3n en la direcci\u00f3n C2 data del 27 de noviembre de 2025, m\u00e1s de tres meses antes de las primeras inyecciones de repositorio de GitHub el 8 de marzo de 2026\u00bb, dijo StepSecurity. \u00abLa direcci\u00f3n tiene 50 transacciones en total, y el atacante actualiza peri\u00f3dicamente la URL de la carga \u00fatil, a veces varias veces al d\u00eda\u00bb.<\/p>\n<p>La divulgaci\u00f3n se produce cuando Socket marc\u00f3 una nueva iteraci\u00f3n de GlassWorm que t\u00e9cnicamente conserva el mismo oficio principal al tiempo que mejora la capacidad de supervivencia y la evasi\u00f3n al aprovechar extensionPack y extensionDependencies para entregar la carga \u00fatil maliciosa mediante un modelo de distribuci\u00f3n transitiva.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/cyber-comm-guide-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Ciberseguridad\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEigDbfWwE4P_DsjfBRxgecgosqTRr8-2j328LrzdUBWrWmWeDUTI7OhXc-zXveYOjBc7GStGz5WnpXsJGaLCuoryIXbL7NxRyaWzIJGO1TBpd48NkYzNqTMj9zWMzgfvqh20RxsdMll45TFiMzXja0pAd7roFjMnzsRYBGHOWSLnyKN-oMKyCLoYcjmb5hm\/s728-e100\/ciso-d.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>Adem\u00e1s, Aikido Security tambi\u00e9n atribuy\u00f3 al autor de GlassWorm una campa\u00f1a masiva que comprometi\u00f3 m\u00e1s de 151 repositorios de GitHub con c\u00f3digo malicioso oculto mediante caracteres Unicode invisibles. Curiosamente, la carga \u00fatil decodificada est\u00e1 configurada para recuperar las instrucciones C2 de la misma billetera Solana, lo que indica que el actor de la amenaza ha estado apuntando a los repositorios de GitHub en m\u00faltiples oleadas.<\/p>\n<p>El uso de diferentes m\u00e9todos de entrega y m\u00e9todos de ofuscaci\u00f3n de c\u00f3digo, pero la misma infraestructura de Solana, sugiere que ForceMemo es un nuevo vector de entrega mantenido y operado por el actor de amenazas GlassWorm, que ahora ha pasado de comprometer las extensiones de VS Code a una adquisici\u00f3n m\u00e1s amplia de cuentas de GitHub.<\/p>\n<p>\u00abEl atacante inyecta malware forzando la rama predeterminada de los repositorios comprometidos\u00bb, se\u00f1al\u00f3 StepSecurity. \u00abEsta t\u00e9cnica reescribe el historial de git, conserva el mensaje de confirmaci\u00f3n y el autor originales, y no deja ninguna solicitud de extracci\u00f3n ni rastro de confirmaci\u00f3n en la interfaz de usuario de GitHub. Ninguna otra campa\u00f1a documentada de la cadena de suministro utiliza este m\u00e9todo de inyecci\u00f3n\u00bb.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>La campa\u00f1a de malware GlassWorm se est\u00e1 utilizando para impulsar un ataque continuo que aprovecha los tokens de GitHub robados para inyectar malware en cientos de repositorios de Python. \u00abEl ataque se dirige a proyectos Python, incluidas aplicaciones Django, c\u00f3digo de investigaci\u00f3n de aprendizaje autom\u00e1tico, paneles Streamlit y paquetes PyPI, agregando c\u00f3digo ofuscado a archivos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":108,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,5],"tags":[181,24,934,933,931,882,60,36,935,55,932,48,216],"class_list":["post-265","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-noticias","category-trending","tag-ataque","tag-cyberdefensa-mx","tag-envio","tag-forzar","tag-github","tag-glassworm","tag-malware","tag-para","tag-python","tag-repositorios","tag-robados","tag-tokens","tag-utiliza"],"_links":{"self":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/posts\/265","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=265"}],"version-history":[{"count":0,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/posts\/265\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/media\/108"}],"wp:attachment":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/media?parent=265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/categories?post=265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/tags?post=265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}