{"id":29090,"date":"2026-04-05T08:56:40","date_gmt":"2026-04-05T14:56:40","guid":{"rendered":"https:\/\/latam.kaspersky.com\/blog\/?p=29090"},"modified":"2026-04-04T08:58:53","modified_gmt":"2026-04-04T14:58:53","slug":"indonesianfoods-npm-spam-campaign","status":"publish","type":"post","link":"https:\/\/latam.kaspersky.com\/blog\/indonesianfoods-npm-spam-campaign\/29090\/","title":{"rendered":"Paquetes de spam en npm: \u00bfqu\u00e9 son y por qu\u00e9 son peligrosos?"},"content":{"rendered":"<p>\u00bfQu\u00e9 te sugieren las palabras bakso, sate y rendang? Para muchos, la respuesta es \u201cnada\u201d. Los amantes de la comida las reconocer\u00e1n como productos b\u00e1sicos de Indonesia; mientras que aquellos que siguen las noticias de ciberseguridad recordar\u00e1n un ataque al ecosistema de Node Package Manager (npm), la herramienta que permite a los desarrolladores usar bibliotecas predefinidas en lugar de escribir cada l\u00ednea de c\u00f3digo desde cero.<\/p>\n<p>A mediados de noviembre, <a href=\"https:\/\/sourcecodered.com\/indonesianfoods-npm-worm\/\" target=\"_blank\" rel=\"noopener nofollow\">el investigador de seguridad Paul McCarty inform\u00f3 del descubrimiento de una campa\u00f1a de spam<\/a> destinada a saturar el registro de npm. Por supuesto, los paquetes sin sentido han aparecido antes en el registro, pero en este caso, se encontraron decenas de miles de m\u00f3dulos sin funci\u00f3n \u00fatil. Su \u00fanica finalidad era inyectar dependencias completamente innecesarias en los proyectos.<\/p>\n<p>Los nombres de los paquetes mostraban nombres de platos indonesios insertados aleatoriamente y t\u00e9rminos culinarios como bakso, sate y rendang, que es como la campa\u00f1a se gan\u00f3 el sobrenombre de \u201cIndonesianFoods\u201d. La escala fue impresionante: en el momento del descubrimiento, se hab\u00edan identificado aproximadamente 86\u00a0000 paquetes.<\/p>\n<p>A continuaci\u00f3n, analizamos con m\u00e1s detalles c\u00f3mo sucedi\u00f3 esto y lo que realmente buscaban los atacantes.<\/p>\n<h2>Dentro de IndonesianFoods<\/h2>\n<p>A primera vista, los paquetes de IndonesianFoods no parec\u00edan basura obvia. Presentaban estructuras est\u00e1ndar, archivos de configuraci\u00f3n v\u00e1lidos e incluso documentaci\u00f3n bien formateada. Seg\u00fan los <a href=\"https:\/\/www.endorlabs.com\/learn\/the-great-indonesian-tea-theft-analyzing-a-npm-spam-campaign\" target=\"_blank\" rel=\"noopener nofollow\">investigadores de Endor Labs<\/a>, este camuflaje permiti\u00f3 que los paquetes persistieran en el registro de npm durante casi dos a\u00f1os.<\/p>\n<p>No es que los atacantes intentaran de forma agresiva introducir sus creaciones en proyectos externos. M\u00e1s bien, se limitaron a inundar el ecosistema con c\u00f3digo que parec\u00eda leg\u00edtimo, a la espera de que alguien cometiera un error de escritura o seleccionara accidentalmente su biblioteca entre los resultados de b\u00fasqueda. No est\u00e1 claro exactamente qu\u00e9 tendr\u00edas que estar buscando para confundir el nombre de un paquete con un plato de Indonesia, pero la investigaci\u00f3n original <a href=\"https:\/\/sourcecodered.com\/indonesianfoods-npm-worm\/\" target=\"_blank\" rel=\"noopener nofollow\">se\u00f1ala<\/a> que al menos 11\u00a0proyectos de alguna manera lograron incluir estos paquetes en sus compilaciones.<\/p>\n<p>Una peque\u00f1a parte de estos paquetes basura ten\u00eda un mecanismo de autorreplicaci\u00f3n integrado: una vez instalados, crear\u00edan y publicar\u00edan nuevos paquetes en el registro de npm cada siete\u00a0segundos. Estos nuevos m\u00f3dulos presentaban nombres aleatorios (tambi\u00e9n relacionados con la cocina indonesia) y n\u00fameros de versi\u00f3n, todos publicados, como era de esperar, utilizando las credenciales de la v\u00edctima.<\/p>\n<p>Otros paquetes maliciosos se integraban con la plataforma de cadena de bloques (blockchain) de TEA. El <a href=\"https:\/\/tea.xyz\/\" target=\"_blank\" rel=\"noopener nofollow\">proyecto TEA<\/a> fue dise\u00f1ado para recompensar a los creadores de c\u00f3digo abierto con tokens en proporci\u00f3n a la popularidad y al uso de su c\u00f3digo; en teor\u00eda, funciona con un modelo de \u201cPrueba de contribuci\u00f3n\u201d.<\/p>\n<p>Una parte significativa de estos paquetes no conten\u00eda ninguna funcionalidad real, sin embargo, a menudo llevaban una docena de dependencias, lo que, como puedes suponer, apuntaba a otros proyectos de spam dentro de la misma campa\u00f1a. Por lo tanto, si una v\u00edctima incluye por error uno de estos paquetes maliciosos, introduce varios otros, algunos de los cuales tienen sus propias dependencias. El resultado es un proyecto final abarrotado de una cantidad masiva de c\u00f3digo redundante.<\/p>\n<h2>\u00bfEn qu\u00e9 se benefician los atacantes?<\/h2>\n<p>Hay dos teor\u00edas principales. La m\u00e1s obvia es que toda esta campa\u00f1a de spam elaborada se ha dise\u00f1ado para aprovechar el protocolo TEA antes mencionado. Esencialmente, sin hacer ninguna contribuci\u00f3n \u00fatil a la comunidad de c\u00f3digo abierto, los atacantes obtienen tokens de TEA, que son activos digitales est\u00e1ndar que se pueden intercambiar por otras criptomonedas en plataformas de intercambio. Al utilizar una red de dependencias y mecanismos de autorreplicaci\u00f3n, los atacantes se hacen pasar por desarrolladores leg\u00edtimos de c\u00f3digo abierto para inflar artificialmente la importancia y las m\u00e9tricas de uso de sus paquetes. En los archivos README de ciertos paquetes, los atacantes incluso se jactan de sus ganancias.<\/p>\n<p>Sin embargo, hay una teor\u00eda m\u00e1s escalofriante. Por ejemplo, <a href=\"https:\/\/www.bleepingcomputer.com\/news\/security\/new-indonesianfoods-spammer-floods-npm-with-150-000-packages\/\" target=\"_blank\" rel=\"noopener nofollow\">el investigador Garrett Calpouzos sugiere<\/a> que lo que estamos viendo es simplemente una prueba de concepto. La campa\u00f1a IndonesianFoods podr\u00eda estar probando un nuevo m\u00e9todo de entrega de malware destinado a venderse m\u00e1s adelante a otros actores de amenazas.<\/p>\n<h2>Por qu\u00e9 no quieres basura en tus proyectos<\/h2>\n<p>A primera vista, el peligro para las organizaciones de desarrollo de software puede no ser obvio: claro, IndonesianFoods satura el ecosistema, pero no parece conllevar una amenaza inmediata como el ransomware o las filtraciones de datos.\u00a0 Sin embargo, las dependencias redundantes inflan el c\u00f3digo y desperdician los recursos del sistema de los desarrolladores. Adem\u00e1s, los paquetes basura publicados bajo el nombre de tu organizaci\u00f3n pueden afectar seriamente a tu reputaci\u00f3n dentro de la comunidad de desarrolladores.<\/p>\n<p>Tampoco podemos descartar la teor\u00eda de Calpouzos. Si esos paquetes de spam introducidos en tu software reciben una actualizaci\u00f3n que incorpora una funcionalidad verdaderamente maliciosa, podr\u00edan convertirse en una amenaza no solo para tu organizaci\u00f3n, sino tambi\u00e9n para tus usuarios, lo que se transformar\u00eda en un ataque completo a la cadena de suministro.<\/p>\n<h2>C\u00f3mo proteger tu organizaci\u00f3n<\/h2>\n<p>Los paquetes de spam no se limitan a entrar en un proyecto por s\u00ed solos; instalarlos requiere un error de juicio por parte de un desarrollador. Por lo tanto, recomendamos concienciar regularmente a los empleados, incluso a los expertos en tecnolog\u00eda, sobre las ciberamenazas modernas. Nuestra plataforma de formaci\u00f3n interactiva, <a href=\"https:\/\/k-asap.com\/es\/?icid=es-LA_kdailyplacehold_acq_ona_smm__onl_b2b_kasperskydaily_wpplaceholder____kasap___\" target=\"_blank\" rel=\"noopener\">KASAP (Kaspersky Automated Security Awareness Platform)<\/a>, puede ayudarte.<\/p>\n<p>Adem\u00e1s, puedes prevenir la infecci\u00f3n usando <a href=\"https:\/\/latam.kaspersky.com\/enterprise-security\/container-security?icid=es-LA_kdailyplacehold_acq_ona_smm__onl_b2b_kasperskydaily_wpplaceholder_______\" target=\"_blank\" rel=\"noopener\">una soluci\u00f3n especializada para proteger entornos en contenedores<\/a>. Analiza im\u00e1genes y dependencias de terceros, se integra en el proceso de compilaci\u00f3n y supervisa los contenedores durante el tiempo de ejecuci\u00f3n.<\/p>\n<p>Si deseas obtener m\u00e1s informaci\u00f3n sobre los ataques a la cadena de suministro, te invitamos a consultar nuestro informe anal\u00edtico <a href=\"https:\/\/lp.kaspersky.com\/global\/report-supply-chain-reaction\/\" target=\"_blank\" rel=\"noopener nofollow\">Reacci\u00f3n en cadena: c\u00f3mo proteger el ecosistema digital global en una era de interdependencia<\/a>. Este informe se basa en los conocimientos de expertos t\u00e9cnicos y revela la frecuencia con la que las organizaciones se enfrentan a los riesgos de la cadena de suministro y las relaciones de confianza, y c\u00f3mo los perciben.<\/p>\n<input type=\"hidden\" class=\"category_for_banner\" value=\"mdr\"><input type=\"hidden\" class=\"placeholder_for_banner\" data-cat_id=\"mdr\" value=\"26740\">\n","protected":false},"excerpt":{"rendered":"<p>En noviembre de 2025, el ecosistema de npm se vio afectado por una avalancha de paquetes basura que formaban parte de la campa\u00f1a maliciosa de IndonesianFoods. Estamos analizando las lecciones aprendidas de este incidente.<\/p>\n","protected":false},"author":2509,"featured_media":29091,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2795,3539,3540],"tags":[638,5967,3377,2216,5805],"class_list":{"0":"post-29090","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-business","8":"category-enterprise","9":"category-smb","10":"tag-amenazas","11":"tag-ataques-a-la-cadena-de-suministro","12":"tag-cadena-de-suministro","13":"tag-desarrollo","14":"tag-npm"},"hreflang":[{"hreflang":"es-mx","url":"https:\/\/latam.kaspersky.com\/blog\/indonesianfoods-npm-spam-campaign\/29090\/"},{"hreflang":"en-in","url":"https:\/\/www.kaspersky.co.in\/blog\/indonesianfoods-npm-spam-campaign\/30300\/"},{"hreflang":"en-ae","url":"https:\/\/me-en.kaspersky.com\/blog\/indonesianfoods-npm-spam-campaign\/25355\/"},{"hreflang":"ar","url":"https:\/\/me.kaspersky.com\/blog\/indonesianfoods-npm-spam-campaign\/13298\/"},{"hreflang":"en-gb","url":"https:\/\/www.kaspersky.co.uk\/blog\/indonesianfoods-npm-spam-campaign\/30150\/"},{"hreflang":"ru","url":"https:\/\/www.kaspersky.ru\/blog\/indonesianfoods-npm-spam-campaign\/41535\/"},{"hreflang":"tr","url":"https:\/\/www.kaspersky.com.tr\/blog\/indonesianfoods-npm-spam-campaign\/14428\/"},{"hreflang":"x-default","url":"https:\/\/www.kaspersky.com\/blog\/indonesianfoods-npm-spam-campaign\/55453\/"},{"hreflang":"fr","url":"https:\/\/www.kaspersky.fr\/blog\/indonesianfoods-npm-spam-campaign\/23774\/"},{"hreflang":"de","url":"https:\/\/www.kaspersky.de\/blog\/indonesianfoods-npm-spam-campaign\/33343\/"},{"hreflang":"ru-kz","url":"https:\/\/blog.kaspersky.kz\/indonesianfoods-npm-spam-campaign\/30415\/"},{"hreflang":"en-au","url":"https:\/\/www.kaspersky.com.au\/blog\/indonesianfoods-npm-spam-campaign\/36034\/"},{"hreflang":"en-za","url":"https:\/\/www.kaspersky.co.za\/blog\/indonesianfoods-npm-spam-campaign\/35693\/"}],"acf":[],"banners":"","maintag":{"url":"https:\/\/latam.kaspersky.com\/blog\/tag\/cadena-de-suministro\/","name":"cadena de suministro"},"_links":{"self":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/29090","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/users\/2509"}],"replies":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/comments?post=29090"}],"version-history":[{"count":3,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/29090\/revisions"}],"predecessor-version":[{"id":29094,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/29090\/revisions\/29094"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/media\/29091"}],"wp:attachment":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/media?parent=29090"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/categories?post=29090"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/tags?post=29090"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}