Fondi OpenSSF (Open Source Security Foundation), i krijuar nga organizata Linux Foundation dhe i orientuar drejt përmirësimit të sigurisë së softuerit të hapur, prezantoi projektin e hapur Package Analysis, që zhvillon një sistem analize për praninë e kodit të dëmshëm në pacakete. Kodi i projektit është shkruajtur në gjuhën Go dhe shpërndahet nën licencën Apache 2.0. Skanime paraprake të repozitoreve NPM dhe PyPI me anë të mjetit të propozuar mundësuan identifikimin e më shumë se 200 paketave të dëmshme që ishin më parë të padukshme.
Pjesa kryesore e paketave problematike manipulojnë me prekjen e emrave me varësitë e brendshme të projekteve (sulmi i konfuzionit të varësive) ose përdorin metoda të tipkëvsotimit (caktimi i emrave që ngjasojnë me emrat e bibliotekave popullore), si dhe ekzekutojnë skripte gjatë instalimit që lidhen me hoste të jashtëm. Sipas zhvilluesve të Package Analysis, shumica e paketave problematike të identifikuara shumë gjasa janë krijuar nga hulumtuesit e sigurisë që marrin pjesë në programet e shpërblimeve për identifikimin e dobësive (bug bounties), pasi të dhënat e dërguara kufizohen në emrin e përdoruesit dhe sistemit, dhe veprimet ekzekutohen qartë, pa përpjekje për të fshehur sjelljen e tyre.
Paketat me aktivitet të dëmshëm përfshijnë:
- Paketa PyPI discordcmd, e cila regjistron dërgimin e kërkesave të pazakonta në raw.githubusercontent.com, Discord API dhe ipinfo.io. Paketa e përmendur shkarkonte kodin e backdoor nga GitHub dhe e instalonte atë në katalogun e klientit Windows të Discord, pas së cilës fillonte procesin e kërkimit të tokeneve të Discord në sistemin e skedarëve dhe i dërgonte ato në një server të jashtëm Discord, të kontrolluar nga sulmuesit.
- Paketa NPM colorsss, e cila gjithashtu përpiqej të dërgonte në jashtë server tokens nga llogaria në Discord.
- Paketa NPM @roku-web-core/ajax â gjatĂ« instalimit dĂ«rgonte tĂ« dhĂ«na mbi sistemin dhe aktivizonte njĂ« pĂ«rpunues (reverse shell), qĂ« priste lidhje tĂ« jashtme dhe ekzekutonte urdhra.
- Paketa PyPI secrevthree â aktivizonte reverse shell kur importonte njĂ« modull tĂ« caktuar.
- Paketa NPM random-vouchercode-generator â pas importimit tĂ« bibliotekĂ«s dĂ«rgonte njĂ« kĂ«rkesĂ« nĂ« njĂ« server tĂ« jashtĂ«m, i cili kthente njĂ« urdhĂ«r dhe kohĂ«n kur duhej tĂ« ekzekutohej.
Analiza e Paketave përqendrohet në analizën e kodit të paketave për të instaluar lidhje rrjeti, akses të skedarëve dhe ekzekutim komandash. Shtesë, monitorohet ndryshimi i gjendjes së paketave për të përcaktuar shtimin e injeksioneve të dëmshme në një nga lëshimet e një softueri origjinalisht tëpadëmshëm. Për të monitoruar shfaqjen e paketave të reja në depo dhe për të bërë ndryshime në paketat e vendosura më parë përdoret mjeti Package Feeds, i cili unifikon punën me depo të NPM, PyPI, Go, RubyGems, Packagist, NuGet dhe Crate.
Analiza e Paketave përfshin tri komponente themelore, të cilat mund të përdoren si së bashku, ashtu edhe në veçanti:
- Planifikuesi i ekzekutimit të punëve të analizës së paketave, i bazuar në të dhënat nga Package Feeds.
- Analizuesi, i cili kontrollon paketën dhe vlerëson sjelljen e saj duke përdorur metoda të analizës statike dhe ndjekjes dinamike. Kontrolli zhvillohet në një ambient të izoluar.
- Ngarkuesi, i cili vendos rezultatet e kontrollit në një depo BigQuery.
Burimi: opennet.ru
