Útoky na dodávateľský reťazec softvéru v roku 2025 - škodlivé balíky - škodlivé balíky python - škodlivé balíky npm

Bližší pohľad na útoky na dodávateľský reťazec softvéru v roku 2025: Porovnanie kampaní PyPI a npm

Spoločnosť Xygeni nedávno zaznamenala znepokojujúci vzorec v oblasti útokov na dodávateľský reťazec softvéru v roku 2025., ktorý sa objavuje v dvoch populárnych správcoch balíkov: PyPI a NPMV rámci nášho prebiehajúceho úsilia o spravodajské informácie o hrozbách,Včasné varovanie pred škodlivým softvérom (MEW) od spoločnosti Xygeni Nástroj identifikoval odlišný, ale metodologicky podobný prípad škodlivého balíka, ktorý bol predtým nahraný do iného registra. Tento prípad poukazuje na to, ako sa aktéri útokov vyvíjajú a opätovne používajú techniky útokov naprieč ekosystémami, najmä prostredníctvom škodlivé balíky Pythonu a škodlivé balíky npm, čo zvyšuje riziko infiltrácie škodlivých balíkov do dodávateľských reťazcov s otvoreným zdrojovým kódom.

Xygeniho MEW: Hľadanie podobností

Nástroj MEW od spoločnosti Xygeni je vytvorený na detekciu a označovanie škodlivých balíkov, najmä tých, ktoré sú spojené s útokmi na dodávateľský reťazec softvéru v roku 2025, hneď ako sú zverejnené v registroch open-source. Funguje tak, že analyzuje nové balíky a hľadá podozrivé správanie.

V tomto prípade identifikoval dvoch škodlivé balíky Pythonu (graphalgo na PyPI) a škodlivé balíky npm (express-cookie-parser na npm).

Škodlivé balíky Pythonu a npm v útokoch na dodávateľský reťazec softvéru (2025)

Pozrime sa na spoločné charakteristiky, ktoré spustili naše upozornenia:

preklepy

Obaja sa snažili napodobniť existujúce populárne balíčky.

  • grafalgo (PyPI): "Balík v jazyku Python na vytváranie a manipuláciu s grafmi a sieťami.„Nahral používateľ s menom „larrytech“ 13. júna 2025 sa tento balík prezentoval ako alternatíva PyPi k pôvodnému neškodnému projektu graphalgo, ktorý bol neskôr premenovaný na graphdict.
  • expresný analyzátor súborov cookie (npm)Tento balík napodobňoval známy balík cookie-parser, dokonca ho zrkadlovo kopíroval. Súbor README.md. Takéto vydávanie sa za inú osobu je klasickou taktikou na zneužitie existujúcej dôvery.

Zahmlievanie ako prvá obranná línia

Oba balíky zamaskovali svoj škodlivý kód v pôvodných súboroch. grafalgo, zakódovaný kód sa našiel vo vnútri /utils/load_libraries.py. V prípade expresný analyzátor súborov cookie, cookie-loader.min.js obsahoval zahalené užitočné zaťaženie.

Táto počiatočná vrstva obfuskácie sa zvyčajne používa na sťaženie bežnej kontroly a statickej analýzy. Obfuskácia bola pomerne jednoduchá: opakovaná kompresia ZLib plus kódovanie Base64. Tento typ obfuskácie jasne naznačuje, že softvér sa snaží skryť svoje správanie. Spolu s ďalšími dôkazmi to umožnilo spoločnosti Xygeni MEW klasifikovať balíky ako potenciálny malvér. Počas fázy potvrdzovania naši recenzenti okamžite pripravili deobfuskačný skript, ktorý odhalil zjavne škodlivú fázu dropperu.

Viacstupňové doručenie užitočného zaťaženia a spoločný východiskový bod

Oba balíky fungovali ako počiatočné „kvapkadlá,“ čím sa pripravila pôda pre skutočné užitočné zaťaženie. Zdieľali spoločný externý „semienkoURL adresa súboru:
https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example

Tento identický externý seed súbor je silným indikátorom zdieľaného aktéra hrozby. Je zaujímavé, že obsah tohto seed súboru sa javí ako jednoduché premenné prostredia (napr. JWT_SECRET, PORT), čo môže viesť k zavádzajúcej kontrole jeho skutočnej funkcie.

Dynamické rozlíšenie C2 s DGA

Sofistikovaná taktika pozorovaná v týchto škodlivých balíkoch spočíva v použití algoritmu generovania domén (DGA) na dynamické rozpoznávanie servera Command and Control (C2). Táto technika, ktorá sa v roku 2025 často vyskytovala pri pokročilých útokoch na dodávateľský reťazec softvéru, sa spolieha na hash SHA256 odvodený z obsahu seed súboru v kombinácii s ďalšími pevne zakódovanými hodnotami. Týmto spôsobom sa infraštruktúra C2 často mení, čo značne znižuje účinnosť tradičného zaraďovania na čiernu listinu. V tomto prípade variant npm použil pevnú hodnotu 496AAC7E ako súčasť logiky DGA.

Vytvorenie vytrvalosti

Obaja útočníci sa snažili vybudovať si trvalú prítomnosť v postihnutých systémoch. Ich stratégia zahŕňala odstránenie súboru, startup.py (pre PyPi) alebo startup.js (pre npm) do bežných adresárov používateľských údajov prehliadača Google Chrome v rôznych operačných systémoch (Windows, Linux, macOS).

Čistenie po vykonaní

Aby sa minimalizovali stopy, oba škodlivé skripty vykonali operácie čistenia. To zahŕňalo odstránenie ich pôvodných súborov dropper (load_libraries.py, cookie-loader.min.js) a úpravou legitímnych súborov balíkov (__init__.py, index.js) na odstránenie odkazov na teraz odstránené komponenty.

Indikátory kompromitácie v škodlivých balíkoch Pythonu a npm

  • Balík PyPIgraphalgo (publikované larrytech, 13. júna 2025)
  • Balík npmexpress-cookie-parser (konkrétne verzia 1.4.12)
  • Prístup k zdieľanej URL adrese Seed

https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example

  • Trvalé názvy súborov: startup.py (Python) startup.js (JavaScript)
  • Bežné trvalé cesty (závislé od operačného systému)V rámci adresárov s údajmi používateľov prehliadača Google Chrome (napr. AppData\Local\Google\Chrome\UserData\Scripts\ vo Windowse, ~/.config/google-chrome/Scripts/ v Linuxe atď.).

Ako sa brániť proti škodlivým balíkom pri útokoch na dodávateľský reťazec softvéru v roku 2025

Odporúčaný prístup pre vývojárov

Tento incident slúži ako cenná prípadová štúdia v meniacom sa prostredí hrozieb útokov na dodávateľský reťazec softvéru v roku 2025. Zdôrazňuje, ako sa škodlivé balíky Pythonu a škodlivé balíky npm môžu dostať do dôveryhodných ekosystémov a často sa vyhýbať odhaleniu, až kým nie je neskoro. Preto sú včasná detekcia, inteligentné nástroje a proaktívna hygiena systému teraz nevyhnutnou súčasťou každého bezpečného pracovného postupu DevOps. Vývojárom sa odporúča zvážiť nasledujúce:

Preskúmanie závislosti

Ak vaše projekty zahŕňali grafalgo or expresný analyzátor súborov cookie, bolo by rozumné pokračovať v ich odstraňovaní.

  • Pre PyPI: pip uninstall graphalgo
  • Pre npm: npm uninstall express-cookie-parser

Hygiena systému

Zvážte vykonanie komplexnej kontroly systému. Odporúča sa tiež manuálne skontrolovať bežné cesty k adresárom s údajmi používateľov prehliadača Chrome, či neobsahujú neočakávané startup.py or startup.js súbory.

Proaktívne bezpečnostné opatrenia

  • Posúdenie nových závislostíZaveďte postup na dôkladné vyhodnotenie nových balíkov pred integráciou, so zameraním na tie od neznámych vydavateľov.
  • Integrujte bezpečnostné nástrojeNástroje ako MEW od spoločnosti Xygeni spolu s ďalšími nástrojmi na analýzu zloženia softvéru (SCA) riešenia môžu poskytnúť kritickú vrstvu obrany identifikáciou podozrivého správania a zraniteľností.
  • Najmenej privilégiumPrevádzkovanie vývojových prostredí s princípom najmenších privilégií môže pomôcť obmedziť potenciálny dopad kompromitácie.
  • Povedomie o sietiMonitorovanie odchádzajúcej sieťovej prevádzky a vyhľadávanie nezvyčajných pripojení môže niekedy odhaliť komunikáciu C2 generovanú DGA.

Kľúčové komponenty load_libraries.py (z grafalga)

  • download_remote_content(): Spracováva načítanie súborov zo zadaných URL adries.
  • run_process()Spúšťa externé Python skripty oddelene, pričom potlačuje výstup, aby zostal diskrétny.
  • get_output_file_path()Určuje ideálne umiestnenie v systéme pre trvalý súbor startup.py.
  • remove_self()Riadi čistenie pôvodných škodlivých súborov a úprav balíkov po ich spustení.
  • simple_shift_encrypt() / simple_shift_decrypt()Vlastné kryptografické funkcie na zakrytie komunikačných kanálov, kľúčové pre implementáciu DGA.
  • load_libraries()Centrálna funkcia, ktorá koordinuje celý viacstupňový proces, od počiatočného sťahovania až po finálne vykonanie a vyčistenie užitočného zaťaženia.

Následky

Rovnako ako v prípade iných potenciálne škodlivých balíkov identifikovaných systémom MEW, aj firewall závislostí okamžite chránil používateľov, ktorí by tieto škodlivé balíky zahrnuli do svojich závislostí. Po potvrdení sme postupovali podľa postupov oznamovania pre oba registre, ktoré po kontrole odstránili oba balíky.

nástroje na analýzu zloženia softvéru SCA
Stanovte si priority, odstraňujte a zabezpečte svoje softvérové ​​riziká
Získajte svoj bezplatný účet.
Nie je potrebná kreditná karta.

Zabezpečte si vývoj a dodávku softvéru

s produktovým balíkom Xygeni