Novinky

Útok na dodavatelský řetězec: napadeno NPM i přes 400 balíčků v Arch Linuxu

Novinky Date: Zobrazení: 6

Útok na dodavatelský řetězec: napadeno NPM i přes 400 balíčků v Arch Linuxu

Bezpečnostní výzkumníci zaznamenali v polovině června sérii koordinovaných útoků na ekosystémy NPM a AUR, jejichž cílem bylo infikovat vývojářská prostředí pomocí infostealerů a rootkitů.

Skupina označovaná jako TeamPCP využívá sofistikovaný, cyklicky se opakující model útoku: napadne vybraný software, prostřednictvím nástroje Mini Shai-hulud (pojmenovaného po písečném červu z knihy Duna) odcizí přihlašovací údaje a ty pak použije k průniku do dalších repozitářů. Navazující framework Miasma tento přístup rozvíjí ještě dál – místo vlastní infrastruktury command-and-control serverů využívá přímo GitHub. Útočníkům stačí mít dostatek Personal Access Tokens, které jim infostealery spolehlivě dodávají.

Konkrétní příklady jsou alarmující. Do balíčků v registru NPM byly vloženy škodlivé skripty, které se automaticky spustí při příkazu npm install – tedy před instalací balíčku, během ní i po ní. Tyto skripty následně exfiltrují přihlašovací údaje z počítače vývojáře na server útočníka. Protože běžná aplikace závisí na desítkách knihoven a dalších desítkách tranzitivně, útočníkovi stačí napadnout jedinou z nich. V ohrožení nejsou jen vývojářské stanice, ale rovněž systémy CI/CD pro automatické sestavení a nasazení, kde se klíče a tokeny běžně ukládají jako proměnné prostředí.

Sofistikovaný útok postihl i repozitář uživatelských balíčků pro Arch Linux AUR. Útočník tam převzal vlastnictví stovek neudržovaných balíčků a do jejich definičních souborů PKGBUILD přidal závislost na balíčku npm a spouštěcí skript instalující škodlivý software. V některých případech přitom vystupoval pod jménem důvěryhodných správců balíčků. Balíček atomic-lockfile, který se v napadených souborech opakovaně objevoval, obsahoval binární ELF soubor plnící funkci infostealeru pro Linux: krade SSH klíče, přihlašovací údaje pro Docker a NPM, historii shellu, profily webových prohlížečů, přístup k MS Teams a dalším systémům. Pokud má škodlivý kód přístup ke kořenovým oprávněním, nainstaluje navíc eBPF rootkit, který jeho činnost aktivně skrývá. Správci AUR nakonec identifikovali a zveřejnili seznam 1 936 nakažených balíčků, přičemž tento seznam patrně není vyčerpávající. Balíčky v oficiálních repozitářích Arch Linuxu přitom zasaženy nebyly.

Image

Odborná komunita na útok reagovala rychle. Microsoft vydal Visual Studio Code verze 1.123 se změnou chování automatických aktualizací rozšíření – nová verze rozšíření se nyní nenainstaluje dříve než dvě hodiny po jejím vydání, čímž vzniká okno pro detekci a eliminaci hrozby. GitHub oznámil, že verze npm 12 plánovaná na červenec zásadně změní výchozí chování příkazu npm install: instalační skripty se již nebudou spouštět automaticky a budou muset být explicitně povoleny pro každou závislost zvlášť. Zakázáno bude i stahování vzdálených závislostí z URL a automatické načítání závislostí z Git repozitářů.

I v případě, že tyto změny zavřou nejvíce zneužívané vektory útoku, neodstraní riziko supply-chain útoků jako takové. Bezpečnostní praxe jako skenování závislostí před instalací, pravidelné rotace přístupových klíčů a kontrola PKGBUILD skriptů před sestavením zůstávají naprosto zásadní. Uživatelům Arch Linuxu, kteří 11. června instalovali balíčky z AUR, správci doporučují ověřit systém pomocí dostupných skriptů a v případě kompromitace zrotovat veškeré přihlašovací údaje dostupné na daném zařízení.

Celý incident výmluvně ilustruje, že moderní software development stojí na sdílené infrastruktuře závislostí, která je ze své podstaty náchylná ke zneužití. Čím větší a komplexnější je ekosystém, tím atraktivnějším cílem se stává pro útočníky ochotné investovat do systematického, automatizovaného napadání dodavatelského řetězce.

Další články