{"id":25123,"date":"2022-08-10T14:35:27","date_gmt":"2022-08-10T20:35:27","guid":{"rendered":"https:\/\/latam.kaspersky.com\/blog\/?p=25123"},"modified":"2022-08-10T14:35:27","modified_gmt":"2022-08-10T20:35:27","slug":"lofylife-malicious-packages-in-npm-repository","status":"publish","type":"post","link":"https:\/\/latam.kaspersky.com\/blog\/lofylife-malicious-packages-in-npm-repository\/25123\/","title":{"rendered":"Cuatro paquetes maliciosos en el repositorio npm"},"content":{"rendered":"<p>El c\u00f3digo abierto es una bendici\u00f3n para la industria de TI: ayuda a que los programadores ahorren tiempo y puedan crear productos m\u00e1s r\u00e1pida y eficientemente al no tener que escribir c\u00f3digo com\u00fan repetitivo. Para hacer m\u00e1s sencillo este intercambio de conocimientos, existen repositorios, plataformas abiertas donde cualquier desarrollador puede publicar sus paquetes con c\u00f3digo propio para acelerar el proceso de desarrollo de otras personas.<\/p>\n<p>Estos repositorios satisfacen much\u00edsimas necesidades en la comunidad de TI y se utilizan bastante en el desarrollo de casi cualquier <em>software<\/em> moderno: aplicaciones web, aplicaciones m\u00f3viles, dispositivos inteligentes, robots, etc. Los paquetes m\u00e1s populares tienen millones de descargas semanales y dan base a muchas aplicaciones, desde proyectos especiales hasta famosas <em>startups<\/em> tecnol\u00f3gicas.<\/p>\n<p><a href=\"https:\/\/medium.com\/npm-inc\/this-year-in-javascript-2018-in-review-and-npms-predictions-for-2019-3a3d7e5298ef\" target=\"_blank\" rel=\"noopener nofollow\">De acuerdo con algunas estimaciones<\/a>, el 97 % del c\u00f3digo de las aplicaciones web modernas proviene de un m\u00f3dulo npm. No obstante, esta popularidad, as\u00ed como la libertad y facilidad de cargar cualquier paquete tambi\u00e9n atrae, inevitablemente, a los ciberdelincuentes. Por ejemplo, en 2021, atacantes desconocidos <a href=\"https:\/\/latam.kaspersky.com\/blog\/uaparser-js-infected-versions\/23186\/\" target=\"_blank\" rel=\"noopener\">comprometieron<\/a> varias versiones de UAParser.js, una popular biblioteca de JavaScript, al insertar c\u00f3digo malicioso. Esta biblioteca era descargada de 6 a 8 millones de veces a la semana. Al infectarla, los ciberdelincuentes pudieron extraer criptomonedas y robar informaci\u00f3n confidencial, como las <em>cookies<\/em> del navegador, las contrase\u00f1as y datos importantes de los sistemas operativos de los dispositivos infectados.<\/p>\n<p>Ahora un ejemplo m\u00e1s reciente: el 26 de julio de 2022, nuestros investigadores <a href=\"https:\/\/securelist.com\/lofylife-malicious-npm-packages\/107014\/\" target=\"_blank\" rel=\"noopener\">descubrieron una amenaza nueva <\/a>\u00a0que apareci\u00f3 en el repositorio npm de c\u00f3digo abierto, a la cual bautizaron LofyLife.<\/p>\n<h2>Bueno, \u00bfy qu\u00e9 es LofyLife?<\/h2>\n<p>Nuestros investigadores identificaron la campa\u00f1a maliciosa LofyLife mediante un sistema automatizado interno para monitorizar repositorios de c\u00f3digo abierto. La campa\u00f1a us\u00f3 cuatro paquetes maliciosos que difundieron el <em>malware<\/em> Volt Stealer y Lofy Stealer en el repositorio npm para recopilar informaci\u00f3n diversa de las v\u00edctimas (tokens de Discord y datos de tarjetas de cr\u00e9dito vinculadas incluidos) y espiarlas m\u00e1s tarde.<\/p>\n<p>Los paquetes maliciosos identificados parec\u00edan usarse para tareas cotidianas, como formatos de titulares o determinadas funciones en algunos juegos. Las descripciones de dichos paquetes estaban incompletas y, por lo general, parece que los atacantes no emplearon demasiado esfuerzo en ellas. No obstante, el paquete de \u201cformato de titulares\u201d estaba en portugu\u00e9s brasile\u00f1o con el <em>hashtag<\/em> #brazil, lo cual sugiere que el objetivo de los atacantes es atacar a los usuarios ubicados en Brasil. Se encontraron otros paquetes en ingl\u00e9s, por lo que tambi\u00e9n podr\u00edan estar detr\u00e1s de usuarios de otros pa\u00edses.<\/p>\n<div id=\"attachment_25125\" style=\"width: 1110px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" aria-describedby=\"caption-attachment-25125\" class=\"wp-image-25125 size-full\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/87\/2022\/08\/10135811\/lofylife-malicious-packages-in-npm-repository-proc-title.jpg\" width=\"1100\" height=\"440\"><p id=\"caption-attachment-25125\" class=\"wp-caption-text\">Descripci\u00f3n de uno de los paquetes infectados llamado \u201cproc-title\u201d (Traducci\u00f3n del portugu\u00e9s: Este paquete escribe correctamente en may\u00fasculas tus t\u00edtulos siguiendo el manual de estilo de Chicago)<\/p><\/div>\n<p>Sin embargo, estos paquetes, conten\u00edan un confuso c\u00f3digo malicioso en JavaScript y Python. Esto hizo que al ser subidos al repositorio fueran m\u00e1s dif\u00edciles de analizar. El cargamento malicioso se conformaba por un <em>malware <\/em>escrito en Python denominado Volt Stealer, un <em>script <\/em>malicioso de c\u00f3digo abierto, y un<em> malware<\/em> de JavaScript denominado Lofy Stealer, cuyas caracter\u00edsticas son numerosas.<\/p>\n<p>Se utiliz\u00f3 Volt Stealer para robar tokens de Discord de los dispositivos infectados junto con las direcciones IP de las v\u00edctimas y cargarlos mediante HTTP. Lofy Stealer, la m\u00e1s reciente creaci\u00f3n de los atacantes, puede infectar archivos del cliente de Discord y monitorizar las acciones de las v\u00edctimas, detectando cu\u00e1ndo el usuario inicia sesi\u00f3n, cambia de correo electr\u00f3nico registrado o de contrase\u00f1a, habilita o deshabilita la autenticaci\u00f3n multifactor y cu\u00e1ndo introduce un m\u00e9todo de pago nuevo (en cuyo caso roba los datos completos de la tarjeta de cr\u00e9dito). Y finalmente carga la informaci\u00f3n recopilada en el <em>endpoint <\/em>remoto.<\/p>\n<h2>C\u00f3mo protegerse de los paquetes maliciosos<\/h2>\n<p>Los repositorios de c\u00f3digo abierto permiten que cualquier persona publique sus propios paquetes, pero no necesariamente son del todo seguros. Por ejemplo, los atacantes pueden imitar los paquetes npm m\u00e1s populares al cambiar una o dos letras del nombre para enga\u00f1ar a los usuarios y hacerles creer que est\u00e1n descargando el paquete original. Por tanto, la recomendaci\u00f3n es estar alerta y no dar por hecho que los paquetes son confiables.<\/p>\n<p>Por lo general, los entornos de desarrollo o construcci\u00f3n son objetivos ideales para que los atacantes intenten organizar ataques a la cadena de suministro. Esto quiere decir que dichos entornos deben contar con una fuerte protecci\u00f3n <em>antimalware <\/em>como <a href=\"https:\/\/latam.kaspersky.com\/enterprise-security\/devops-security?icid=es-LA_kdailyplacehold_acq_ona_smm__onl_b2b_kasperskydaily_wpplaceholder_______\" target=\"_blank\" rel=\"noopener\">Kaspersky Hybrid Cloud Security<\/a>. Nuestros productos detectan exitosamente el ataque LofyLife con los fallos HEUR:Trojan.Script.Lofy.gen y Trojan.Python.Lofy.a.<\/p>\n<p>Si quieres ser de los primeros en enterarte de las campa\u00f1as maliciosas m\u00e1s recientes que se propagan mediante c\u00f3digo abierto, suscr\u00edbete a las fuentes de informaci\u00f3n y los informes de inteligencia de amenazas, como los proporcionados a trav\u00e9s de la plataforma <a href=\"https:\/\/opentip.kaspersky.com\/?icid=es-LA_kdailyplacehold_acq_ona_smm__onl_b2b_kasperskydaily_wpplaceholder_______&amp;utm_source=kdaily&amp;utm_medium=blog&amp;utm_campaign=la_wpplaceholder_nv0092&amp;utm_content=link&amp;utm_term=la_kdaily_organic_undefined\" target=\"_blank\" rel=\"noopener nofollow\">Threat Intelligence Portal<\/a>.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-18416\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/87\/2020\/04\/15080644\/human-factor-weakest-link-desktop-latam.png\" alt=\"Aumenta la conciencia en seguridad en tu compa\u00f1\u00eda\" width=\"1340\" height=\"400\"><\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nueva campa\u00f1a maliciosa va tras tokens de Discord y datos de tarjetas de cr\u00e9dito mediante paquetes npm infectados.<\/p>\n","protected":false},"author":2632,"featured_media":25124,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3145],"tags":[3377,4728,4207,5805,2076],"class_list":{"0":"post-25123","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-threats","8":"tag-cadena-de-suministro","9":"tag-discord","10":"tag-ladron-de-contrasenas","11":"tag-npm","12":"tag-tarjetas-bancarias"},"hreflang":[{"hreflang":"es-mx","url":"https:\/\/latam.kaspersky.com\/blog\/lofylife-malicious-packages-in-npm-repository\/25123\/"},{"hreflang":"en-in","url":"https:\/\/www.kaspersky.co.in\/blog\/lofylife-malicious-packages-in-npm-repository\/24418\/"},{"hreflang":"en-ae","url":"https:\/\/me-en.kaspersky.com\/blog\/lofylife-malicious-packages-in-npm-repository\/19884\/"},{"hreflang":"en-us","url":"https:\/\/usa.kaspersky.com\/blog\/lofylife-malicious-packages-in-npm-repository\/26814\/"},{"hreflang":"en-gb","url":"https:\/\/www.kaspersky.co.uk\/blog\/lofylife-malicious-packages-in-npm-repository\/24719\/"},{"hreflang":"es","url":"https:\/\/www.kaspersky.es\/blog\/lofylife-malicious-packages-in-npm-repository\/27466\/"},{"hreflang":"ru","url":"https:\/\/www.kaspersky.ru\/blog\/lofylife-malicious-packages-in-npm-repository\/33783\/"},{"hreflang":"tr","url":"https:\/\/www.kaspersky.com.tr\/blog\/lofylife-malicious-packages-in-npm-repository\/10901\/"},{"hreflang":"x-default","url":"https:\/\/www.kaspersky.com\/blog\/lofylife-malicious-packages-in-npm-repository\/45042\/"},{"hreflang":"fr","url":"https:\/\/www.kaspersky.fr\/blog\/lofylife-malicious-packages-in-npm-repository\/19244\/"},{"hreflang":"pt-br","url":"https:\/\/www.kaspersky.com.br\/blog\/lofylife-malicious-packages-in-npm-repository\/19802\/"},{"hreflang":"de","url":"https:\/\/www.kaspersky.de\/blog\/lofylife-malicious-packages-in-npm-repository\/29092\/"},{"hreflang":"ru-kz","url":"https:\/\/blog.kaspersky.kz\/lofylife-malicious-packages-in-npm-repository\/25316\/"},{"hreflang":"en-au","url":"https:\/\/www.kaspersky.com.au\/blog\/lofylife-malicious-packages-in-npm-repository\/30784\/"},{"hreflang":"en-za","url":"https:\/\/www.kaspersky.co.za\/blog\/lofylife-malicious-packages-in-npm-repository\/30530\/"}],"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\/25123","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\/2632"}],"replies":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/comments?post=25123"}],"version-history":[{"count":3,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/25123\/revisions"}],"predecessor-version":[{"id":25128,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/25123\/revisions\/25128"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/media\/25124"}],"wp:attachment":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/media?parent=25123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/categories?post=25123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/tags?post=25123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}