Fondacion OpenSSF (Open Source Security Foundation), e krijuar nga organizata Linux Foundation dhe e drejtuar nga përmirësimi i sigurisë së softuerit të hapur, ka paraqitur projektin e hapur Package Analysis, i cili zhvillon një sistem analize për praninë e kodit të dëmshëm në pacaket. Kodi i projektit është shkruar në gjuhën Go dhe shpërndahet nën licencën Apache 2.0. Skandimi paraprak i repozitoreve NPM dhe PyPI duke përdorur mjete të propozuara ka zbuluar më shumë se 200 paketa të dëmshme që nuk ishin vënë re më parë.
Shumica e problemeve të zbuluara me paketat manipulon kryqëzimin e emrave me varësitë e brendshme, jo-publike të projekteve (sulmi i konfuzionit të varësive) ose përdorin metoda të quajtura typesquatting (emra që duken si emrat e bibliotekave popullore), si dhe aktivizojnë skriptet gjatë procesit të instalimit që komunikojnë me hoste të jashtëm. Sipas zhvilluesve të Package Analysis, shumica e paketimeve problematike të zbuluara më së shumti janë krijuar nga hulumtuesit e sigurisë, të cilët marrin pjesë në programet e shpërblimeve për zbulimin e dobësive (bug bounties), pasi të dhënat e dërguara janë të kufizuara në emrin e përdoruesit dhe sistemit, dhe veprimet kryhen në mënyrë të qartë, pa përpjekje për të fshehur sjelljen e tyre.
Nga paketat me aktivitet të dëmshëm janë evidentuar:
- Paketa PyPI discordcmd, e cila ka regjistruar dërgimin e kërkesave të pazakonta në raw.githubusercontent.com, Discord API dhe ipinfo.io. Kjo paketë ngarkonte kodin e backdoor nga GitHub dhe e instalonte atë në dosjen e klientit Windows të Discord, duke aktivizuar më pas një proces për të kërkuar tokenet e Discord në sistemin e files dhe dërguar ato në një server të jashtëm të Discord, që kontrollohej nga sulmuesit.
- Paketa NPM colorsss, e cila po ashtu përpiqej të dërgonte në një të jashtëm server tokenet nga llogaria në Discord.
- NPM-paketa @roku-web-core/ajax - gjatë instalimit, dërgonte të dhëna mbi sistemin dhe aktivizonte një përpunues (reverse shell), që merrte lidhje nga jashtë dhe ekzekutonte komanda.
- PyPI-paketa secrevthree - aktivizonte reverse shell kur importohej një modul i caktuar.
- NPM-paketa random-vouchercode-generator - pas importimit të bibliotekës, dërgonte një kërkesë në një server të jashtëm, i cili kthente një komandë dhe kohën kur duhej ekzekutuar.
Puna e Package Analysis përfshin analizimin e kodit në paketat për vendosjen e lidhjeve rrjetërore, qasjen në skedarë dhe kryerjen e komandave. Për më tepër, monitorohet ndryshimi i gjendjes së paketave për të përcaktuar shtimin e insertimeve të dëmshme në një nga lëshimet e fillimisht softuerëve të padëmshëm. Për monitorimin e shfaqjes së paketave të reja në repozitore dhe për të bërë ndryshime në paketat që janë vendosur më parë, përdoret një mjet i quajtur Package Feeds, i cili unifikon punën me repozitorët NPM, PyPI, Go, RubyGems, Packagist, NuGet dhe Crate.
Package Analysis përfshin tre komponente themelore, të cilat mund të përdoren si në lidhje, ashtu edhe veçmas:
- Planifikuesi i ekzekutimit të punëve për analizimin e paketave në bazë të të dhënave nga Package Feeds.
- Analizatori, i cili kontrollon paketat dhe vlerëson sjelljen e tyre duke përdorur metoda të analizës statike dhe ndjekjes dinamike. Kontrolli kryhet në një mjedis të izoluar.
- Ngarkuesi, që vendos rezultatet e kontrollit në depozitat BigQuery.
Burimi: opennet.ru
