Bol zverejnený analyzátor, ktorý identifikoval 200 škodlivých balíkov v NPM a PyPI

OpenSSF (Open Source Security Foundation), vytvorená Linux Foundation a zameraná na zlepšenie bezpečnosti open source softvéru, predstavila otvorený projekt Package Analysis, ktorý vyvíja systém na analýzu prítomnosti škodlivého kódu v balíkoch. Kód projektu je napísaný v Go a distribuovaný pod licenciou Apache 2.0. Predbežná kontrola úložísk NPM a PyPI pomocou navrhovaných nástrojov nám umožnila identifikovať viac ako 200 predtým nezistených škodlivých balíkov.

Väčšina identifikovaných problematických balíkov manipuluje priesečníky mien s vnútornými neverejnými závislosťami projektov (dependency confusion attack) alebo používa metódy typosquatting (priraďovanie názvov podobných názvom populárnych knižníc) a tiež volá skripty, ktoré pristupujú k externým hostiteľom počas proces inštalácie. Podľa vývojárov Package Analysis bola väčšina identifikovaných problematických balíčkov s najväčšou pravdepodobnosťou vytvorená bezpečnostnými výskumníkmi zúčastňujúcimi sa na programoch bug bounty, pretože odosielané údaje sú obmedzené na meno používateľa a systému a akcie sa vykonávajú explicitne bez pokusov o skryť svoje správanie.

Balíky so škodlivou aktivitou zahŕňajú:

  • PyPI balíček discordcmd, ktorý zaznamenáva odosielanie atypických požiadaviek na raw.githubusercontent.com, Discord API a ipinfo.io. Zadaný balík stiahol kód backdoor z GitHubu a nainštaloval ho do adresára klienta Discord Windows, po čom spustil proces vyhľadávania tokenov Discord v súborovom systéme a ich odoslania na externý server Discord kontrolovaný útočníkmi.
  • Balík coloursss NPM sa tiež pokúsil odoslať tokeny z účtu Discord na externý server.
  • NPM balíček @roku-web-core/ajax - počas procesu inštalácie odoslal údaje o systéme a spustil handler (reverzný shell), ktorý akceptoval externé pripojenia a spúšťal príkazy.
  • PyPI package secrevthree – spustil reverzný shell pri importe konkrétneho modulu.
  • NPM balík random-vouchercode-generator - po importe knižnice odoslal požiadavku na externý server, ktorý vrátil príkaz a čas, kedy má byť spustený.

Práca analýzy balíkov spočíva v analýze balíkov kódu v zdrojovom kóde na vytváranie sieťových pripojení, prístup k súborom a spúšťanie príkazov. Okrem toho sa monitorujú zmeny v stave balíkov, aby sa určilo pridanie škodlivých vložiek do jedného z vydaní pôvodne neškodného softvéru. Na sledovanie vzhľadu nových balíčkov v repozitároch a vykonanie zmien v už odoslaných balíčkoch slúži sada nástrojov Package Feeds, ktorá zjednocuje prácu s repozitármi NPM, PyPI, Go, RubyGems, Packagist, NuGet a Crate.

Analýza balíkov obsahuje tri základné komponenty, ktoré možno použiť v spojení aj samostatne:

  • Plánovač na spustenie práce analýzy balíkov na základe údajov z informačných kanálov balíkov.
  • Analyzátor, ktorý priamo skúma balík a vyhodnocuje jeho správanie pomocou techník statickej analýzy a dynamického sledovania. Test sa vykonáva v izolovanom prostredí.
  • Načítač, ktorý umiestni výsledky testov do úložiska BigQuery.

Zdroj: opennet.ru

Pridať komentár