Google představil projekt OSS Rebuild pro odhalování skrytých změn v balíčcích

Společnost Google představila projekt OSS Rebuild, který je určen k odhalování skrytých změn v hotových balíčcích zveřejňovaných v repozitářích. Práce OSS Rebuild je založena na konceptu reprodukovatelných sestavení a spočívá v kontrole shody umístěného v repozitáři balíčku s balíčkem získaným na základě znovusestavení z referenčního zdrojového kódu odpovídajícího deklarované verzi balíčku. Kód nástrojů je napsán v jazyce Go a je distribuován pod licencí Apache 2.0.

V současné době OSS Rebuild implementuje podporu pro verifikaci balíčků z repozitářů NPM (JavaScript/TypeScript), PyPI (Python) a Crates.io (Rust). V budoucnu plánují rozšířit počet podporovaných repozitářů. V praxi nástroje umožňují odhalovat varianty útoku třídy „supply chain“, při kterých po kompromitaci účtů správce nebo diverzi uvnitř projektu je v repozitáři publikováno škodlivé aktualizace. Přitom kód v původním repozitáři hlavního projektu zůstává správný, a škodlivé změny jsou prováděny pouze v hotových balíčcích.

Systém podle možnosti automaticky vytváří scénář pro reprodukovatelné sestavení vybraného balíčku, využívá heuristiky a vybírá parametry, které umožňují dosáhnout identity artefaktů dodávaných v balíčku. Pokud se balíček umístěný v repozitáři nepodaří reprodukovat automaticky, je možné ručně přidat specifikaci sestavení. Poté, co se podaří reprodukovat balíček, nástroj OSS Rebuild uchovává popis procesu sestavování pro následnou kontrolu nových verzí balíčku. Dále je publikována informace pro verifikaci s použitím rámce SLSA.

Po prověření konkrétní verze balíčku se vytvářejí certifikační data, která mohou být použita ostatními pro hodnocení již ověřených balíčků. Kontrolu lze provádět prostřednictvím spuštění nástroje příkazového řádku nebo porovnáním hash hodnoty uložené v samostatném cloudovém úložišti. Infrastrukturu pro kontrolu balíčků je možné nasadit na vlastní serveru. Také je možné využít informace o kontrolách prováděných ve společnosti Google pro několik tisíc balíčků.

Jako příklady různých metod útoků, proti kterým by mohl OSS Rebuild chránit, je zmíněno přidání backdooru do XZ, vkládání škodlivého kódu do oficiálního JavaScript klienta pro kryptoměnu Solana a vkládání změn prostřednictvím zpracovatele akcí changed-files:

  • Pokud jde o projekt XZ, kód v repozitáři neobsahoval podezřelé změny, ale komponenty tvořící backdoor byly dodány uvnitř souborů používaných v testovacím balíčku pro ověření správnosti funkce dekompresoru XZ. Backdoor se aktivoval na úrovni systému sestavení a samotný zdrojový kód XZ byl shodný s kódem z repozitáře. Aktivující backdoor m4 makra pro nástroje Automake byly zahrnuty pouze v hotovém archivu s kódem a v repozitáři chyběly. Pro odhalení podobných útoků se v OSS Rebuild používá dynamická analýza dodaných artefaktů, cest vykonávání a podezřelých operací.
  • Vkládání škodlivých změn do knihovny @solana/web3.js došlo v důsledku kompromitace účtu správce, a to pomocí metod sociálního inženýrství a phishingu. V repozitáři NPM byla zveřejněna nová verze, která obsahovala škodlivé změny. V Git repozitáři projektu tato verze vytvořena nebyla a škodlivé změny byly přítomny pouze v výsledném balíčku. Ochrana v tomto případě spočívá v odhalování kódu v balíčku, který chybí v hlavním repozitáři.
  • Kompromitace repozitáře zpracovatele changed-files umožnila provést útok na projekty, které používají changed-files k sledování změn souborů a adresářů v infrastruktuře kontinuální integrace založené na GitHub Actions. Pro ochranu před vkládáním změn po kompromitaci sestavovacího prostředí se v OSS Rebuild používá sledování změn a podezřelé aktivity ve standardizovaných zjednodušených sestavovacích prostředích.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster