Kweade pakketten 5

Anatomy fan kweade pakketten: Wat binne de trends?

Yn 'e foarige ôflevering, Iepen boarne kweade pakketten: It probleem, wy hawwe besprutsen wêrom't de bedrigingsakteurs sa wiene entûsjast oer it publisearjen fan nije kweade komponinten of it ynjeksjearjen fan malware yn 'e lêste ferzjes fan besteande komponinten: De iepen boarne-ynfrastruktuer lit elkenien oeral in tydlik akkount oanmeitsje yn in komponintregister (lykas NPM, PyPI, Docker Hub of Visual Studio Marketplace) of in gearwurkjend ûntwikkelingsplatfoarm (lykas GitHub). Gjin kosten, en in protte kânsen om it oerstallige fertrouwen te benutten dat softwareteams tradisjoneel hawwe yn komponinten fan tredden. 

De asymmetrie tusken hoe maklik it is foar oanfallers om malware te fersprieden mei de ynfrastruktuer dy't beskikber is foar iepen boarne, en hoe dreech it is foar organisaasjes dy't software ûntwikkelje (elkenien?) om te foarkommen dat se besmet reitsje mei malware (en om malware te leverjen yn 'e software dy't se foar oaren ferspriede), late ta it hast berikte kwart miljoen oan kweade pakketten ferline jier. 

Dit is in probleem fan sa'n grutte omfang dat gjin inkele organisaasje it oplosse kin, en de mienskip is dwaande mei it opnij ynrjochtsjen fan it iepen boarneproses oangeande fertrouwen, feilich-by-standert en feilich-by-ûntwerp-prinsipes, en de libbensduur fan komponinten. Wy sille yn 'e folgjende ôflevering nei sokke ideeën sjen. Beskermje tsjin kweade pakketten fan iepen boarne: Wat wurket (net).

Tink derom dat wy it hawwe oer softwarekomponinten dy't meastentiids oerienkomme mei software pakketten: werbrûkbere komponinten ynpakt sadat se as in ôfhinklikens yn in softwaremanifest ferwiisd wurde kinne, en ynstalleare mei in pakketbehearder of bou-ark. Tink derom dat dizze saak útwreide wurde kin om iepenbiere kontenerôfbyldings (brûkt troch kontener-runtimes en orkestraasjeplatfoarms lykas Kubernetes), en útwreidings foar software-ark (foar bouwen, automatisearring en ynset). 

Hjir analysearje wy hoe't dit oanfalstaktyk basearre op kweade komponinten wurket, neffens foarbylden út it ferline en wat wy sjoen hawwe yn ús platfoarm foar Malware Early Warning (MEW). Wy sille kweade komponinten yn ferskate diminsjes ûntlede: 

(1) de keazen manier foar distribúsje (register brûkt, yn in nije of besteande komponint, en de technyk brûkt foar it ynfektearjen fan de publisearre komponintferzje), (2) hoe't de malware aktivearre of triggerd wurdt, (3) it kweade gedrach, d.w.s. hokker skealike aksjes wurde waarnommen en wat de motivaasje fan 'e oanfaller is, (4) hokker techniken gewoan binne foar fertsjustering, ferbergjen om ûnopmurken te bliuwen, laterale beweging, kommunikaasje mei kommando- en kontrôlehosts (C2) ensfh.; en (5) de techniken foar it krijen fan genôch populariteit en fertrouwen, sadat de slachtoffers úteinlik de komponint ynstallearje.

It keazen distribúsjemeganisme

Wy observearje in "eftergrûn lûd"fan ûnferfine kweade pakketten dy't typosquatting brûke om ûnfoarsichtige ûntwikkelders te phishen mei in typfout yn 'e pakketnamme foar har ôfhinklikens. In protte populêre pakketten krije in spervaazje fan pakketten mei deselde namme mei typflaters, mei de ferwachting dat se guon ûnfoarsichtige ûntwikkelders sille phishen. 

Se brûke in efemere akkount, publisearje in groep typosquat-pakketten, meitsje in oare oan, en publisearje in oare groep ... Mei wat automatisearring en ynventiviteit kinne se wat ferfining krije, mar typysk binne se frij triviaal. Wy neame se yntern "anchovies”. It stellen fan ynloggegevens is it wichtichste doel, mar sa no en dan fine wy ​​spyware dy't boarnekoade of gefoelige gegevens lykas persoanlik identifisearbere ynformaasje (PII), klamboerdfêstlizzen en oare twifels stjit.

Ut it neat wei sjogge wy mear ferfine kweade komponinten, de "haaien". In minderheid is rjochte op spesifike groepen of organisaasjes, typysk mei krypto-drainer of webskimmers dy't betingstlik aktivearre wurde, miskien neffens de oanpak dy't sjoen wurdt yn 'e evenemint-stream ynsidint fan it ûntsiferjen fan 'e oanfalslading allinich as it pakket ferwiisd wurdt fanút in doelpakket. 

It distribúsjemeganisme waard analysearre yn it poerbêste en no klassike artikel, "Backstabber's Knife Collection: In resinsje fan oanfallen op iepen boarne software yn 'e supply chain”, dat is in must-read. Jo hawwe dizze moaie grafyk wis al earder sjoen: 

kweade pakketten

Alle wegen waarden ûndersocht, ynklusyf nije en besteande pakketten; ynfloed hawwe op 'e boarnekoade, it bousysteem, of de ynpakte komponint sels; it brûken fan stellen ynloggegevens of sosjale technyk; it kapen fan ferlitten akkounts en repositories of it fergiftigjen fan ûnderhâlden akkounts. Guon oanfallen krigen nammen (typosquatting, Ofhinklikensferwarring, Manifeste betizing, Repo-jacking. ensfh.) en waarden al earne oars besprutsen. 

Hoe sit it mei de keazen registers?

NPM bliuwt liedend yn it totale oantal kweade pakketten, mar wy seagen in pyk begjinnend dit jier op PyPI. Python is in populêr ekosysteem foar datawittenskip en masinelearen. Eins is de malwaretichtens no heger yn PyPI as yn NPM. 

Hoe't de malware aktivearre wurdt

Kweade pakketten wurde mar yn 4 fan de 10 gefallen aktivearre tidens ynstallaasje (yn 'e lêste jierren wie it hast 6 fan de 10). De rest fiert kwea-aardich gedrach út tidens runtime, mei 1 fan de 100 aktivearre by it útfieren fan tests. De tsjinstanners lykje te witten dat ûnkontrolearre útfiering fan ynstallaasjeskripts op in protte plakken útskeakele wie.

Wat krije de minne jonges?

Wy sille de kategoryen fan kwea-aardich gedrach listje, mei de populêrste earst. Tink derom dat de ynfloed frij oars kin wêze: a wiskje is koppich destruktyf, mar it komt net faak foar en waard mar yn in pear gefallen sjoen, yn ferbân mei rjochte cyberoarlochkampanjes of brute hacktivisme. De folgjende kategoryen binne frij gewoan:

  • InfoStealer / Credentials DrainerFierwei it meast foarkommende, mear as 90% fan 'e ûnferfine oanfallen binne ienfâldige stellerijen dy't benammen sykje nei ynloggegevens lykas wachtwurden, tagongstokens, API-kaaien en priveekaaien (foar SSH en soksoarte). It is wierskynlik it ienfâldichst om te skriuwen (tegearre mei wiskers?). Se listje bekende bestannen/mappen en oare boarnen op (bygelyks registerkaaien), pakke de ynhâld yn en stjoere dy gegevens nei in C2-tsjinner. It idee is ienfâldich: "Ik publisearje in stellerij foar phishing-ynloggegevens, sadat ik letter de ynloggegevens brûke kin foar it útfieren fan in rjochte oanfal". 

It waarnommen C2-netwurk is typysk goedkeap en smoarch, lykas Telegram-kanalen of ngrok-achtige tunneling-ark (faak yn 'e foarm fan reverse proxy's dy't bleatsteld wurde fia VPN-útgongs-IP's). D'r binne hûnderten (!) mooglikheden, mei in protte GitHub-projekten ûnder de ûnderwerp oer wachtwurdstellerSpesjalisaasjes lykas keyloggers binne seldsum foar kweade pakketten en kontenerôfbyldings, mar faker yn arkútwreidings, wêr't brûkersynteraksje ferwachte wurdt.

  • Dropper / Downloader. De twadde yn populariteit, typysk earst yn mearfase-oanfallen. Mear as ien op de trije fan 'e kweade komponinten hat droppers (as de kweade lading yn it pakket opnommen is) of downloaders (de lading wurdt downloade fan in einpunt ûnder kontrôle fan 'e oanfaller). De lading is faak in bekende binêre malware-fariant, en it wurdt útfierd en soms persistint, foar it ynstallearjen fan efterdoarren, spyware, krypto-drainers en oare gebrûksgefallen. De downloade of ynset lading begjint in twadde-faze oanfal mei alle krêft levere troch besteande malware-binêre bestannen. De binêre bestannen kinne binnen it pakket ferspraat wurde, faak ferklaaid as ôfbyldings of nei alle gedachten ûnskuldige bestânstypen, om deteksje te foarkommen by it ferbinen mei ûnferwachte siden. 
  • Krypto-faluta-dieven / minersFinansjeel motivearre tsjinstanners binne ree om jo cloud-aktiva te brûken foar it útfieren fan kryptominers (se detektearje sels as se yn in cloud VM rinne). Se jouwe neat om de lege winstferhâlding fan $1 foar elke $53 dy't it slachtoffer yn rekken brocht wurdt foar de stellen wolkynfrastruktuer. Slachtoffers binne har hjir miskien net fan bewust oant se in ûnferwachte rekken krije. Gelokkich komt dit en giet. Cryptojacking kampanjes yn kweade pakketten ferskine sa no en dan en ferdwine dan, phishing foar walletbrûkers of úteinlik rjochte op 'e walletprovider, lykas yn 'e Ledger-oanfal.   

Oare gedragingen, lykas it ynsetten fan in Backdoor foar it útfieren fan koade op ôfstân troch it iepenjen fan in reverse shell is no minder faak as yn it ferline. Bygelyks, de 123rf_bydrager_web pakket (no fuorthelle út it register) iepenet sûnder fertsjustering in reverse shell kopiearre en plakt fan 'e Reverse Shell Cheat Sheet:

kweade pakketten 2
Kweade pakkettypen waarden waarnommen yn 'e wike fan 24-30 juny 2024.

Neist legitime en kweade komponinten hawwe wy ferskate misbrûk waarnommen, ynklusyf:

Spampakketten

Der binne tûzenen lytse pakketten, meast yn NPM, sûnder malware, mar mei belofte fan maklike fertsjinsten, slange-oalje, keppelings nei Viagra-oanbiedingen, en al dat soarte dingen. In pear brûkers publisearje sokke spam en nimme in soad bânbreedte út it register. In oare akteur(s), mooglik út Yndoneezje, besocht der foardiel fan te heljen troch misbrûk meitsje fan 'e teeRank bedoeld foar it kompensearjen fan iepen-boarne ûntwikkelders, troch it meitsjen fan tsientûzenen ûnderling relatearre NPM-pakketten mei relatearre GitHub-dummy-repositories. Dit is in dúdlike oertreding fan 'e gebrûksbetingsten.

Bug bounty en hoaxes foar feiligensûndersyk

 As in pakket himsels beskriuwt as it eksfiltrearjen fan gegevens foar goede doelen, lykas it opspoaren fan feiligensfouten foar bug bounty-programma's of it ûndersykjen fan bepaalde aspekten fan it ekosysteem. Wy hawwe tûzenen pakketten yn dizze kategory sjoen, dy't identifikaasjegegevens, mar net te gefoelige gegevens, ophelje nei in Burp Collaborator-adres fan PortSwigger (bygelyks host yn it domein oastify.com). Wy hawwe faak kopykaten fan 'e ... waarnommen. Ofhinklikensferwarring bewiis fan konsept troch Alex Birsan, lykas de aurora-webmail-pro pakket (fuortsmiten út it register), dy't gewoan dizze nare koade útfiere yn it foarôf ynstallearjende skript:

En ek in "Dit is in ienfâldige oanfal op ôfhinklikensbetizing, bewiis fan konsept"disclaimer beskriuwing yn 'e pakket.jsonDit is in dúdlike oertreding fan 'e tsjinstbetingsten, sels sûnder kweade bedoelingen. 

Goed nijs? Wy hawwe (noch) gjin ransomware-oanfallen sjoen dy't fia kweade komponinten útfierd binne. Om ûnbekende redenen lykje cyberkriminelen mear tradisjonele e-postphishing, RDP-basearre en drive-by download-leveringsmeganismen te foarkommen. 

Oanfoljende techniken waarnommen 

kweade pakketten 3

In protte techniken waarden brûkt foar oanhâldendheid, ferdigeningsûntwyking, ynformaasjeferzameling, kommunikaasje mei kommando- en kontrôlehosts, en eksfiltraasje. 

Persistence yn kweade komponinten wurdt krigen mei de persistinsjefunksjes yn in twadde-faze binêre malware, mar soms leit it gedrach yn 'e pakketkoade, mei plande taken en feroarings yn it Windows-register as it meast foarkommend. 

Obfuscation is gewoan, mar ûnferfine. De measte typosquatting-pakketten (tink oan de "anchovies"?) brûke hielendal gjin obfuskaasje; in protte brûke triviale (base64/hex-kodearring of ferfangingssifers lykas rot13) of brûke beskikbere koade-obfuskators en minifikaasje, dy't maklik omkeard wurde kin mei de juste ark. Allinnich de "haaien" dogge echte, hurde, obfuskaasje, dy't dreech te reverse-engineeren is.

Fertsjustering kin de oanfal ferbergje, mar wêrom soe koade yn in iepen boarne-komponint fertsjustere wurde moatte? Is der bewiis dat der wat ferburgen wurde moat foar it sicht? Wy hawwe in protte foarbylden fûn fan net-kwaadaardige pakketten dy't fertsjustering brûke om yntellektueel eigendom te beskermjen, wat yn striid is mei "iepen boarne". Fertsjustering kin brûkt wurde as bewiis fan malware, mar it is net beslissend. It is ek lestich om te de-fertsjusteringen. 

evasion fan ferdigeningskontrôles brûkt ienfâldige techniken. Kweade koade wurdt faak beskerme yn besykje … fange blokken dy't útsûnderingen negearje, sadat abnormale aktiviteit net werjûn wurdt yn 'e logs. Ferifikaasje fan 'e omjouwing (rinnend yn in VM of kontener) is seldsum, útsein as it giet om malware dy't rjochte is op in bepaalde organisaasje of omjouwing.

It maskeren fan binêre bestannen yn ôfbyldings en PDF-bestannen (soarte fan steganografy) wie in oare technyk dy't sjoen waard om deteksje te ûntkommen.

Omdat de meast foarkommende kweade komponinten ynfo-dielers binne, data kolleksje is essensjeel. Geheimen (wachtwurden, tagongstokens, API-kaaien, kryptografyske kaaien) wurde routinematich scanne yn logbestannen, omjouwingsfariabelen en sels it klamboerd (sjoen by banktrojanen en krypto-dieven). Boarnekoade-eksfiltraasje komt ek faak foar, om't de ynstallaasje fan pakketten faak dien wurdt yn in ûntwikkelingsknooppunt wêr't ynterne git-repositories kloond wurde kinne. Wy hawwe pakketten sjoen dy't mappen opsomje op syk nei git-repositories. It sykjen nei lokaasjes lykas .env, private.pem, settings.py, app.js of application.properties is frij gewoan.

Eksfiltraasje is in oare breed brûkte aksje. Mar in minderheid fan kweade pakketten besiket sels de bestimming fan 'e ekstrahearre gegevens te ferbergjen. Telegram-kanalen en ngrok-achtige tunnels wurde faak brûkt. En d'r binne in protte typysk witelist domeinen brûkt foar eksfiltraasje

Oare techniken, lykas privileezje-eskalaasje of laterale beweging, wiene minder gewoan. 

Populariteit en fertrouwen winne

Stel jo in tech-skurk foar mei in klearmakke deadlik kwea-aardich ding dat him ôffreget: "Hoe meitsje ik dit stik s#$! betrouber foar dy ûnfermoedende idioaten?". 

Dat oerset yn hoe't jo de yngong foar de kwea-aardige komponint meitsje kinne om in protte stjerren / foarken (foar populariteit) te sjen litten, plus ferzjes / problemen en pull requests (foar aktiviteit). It idee is om fiktive populariteit (stjerren) en ôfhinkliken te krijen, en in oertsjûgjende útsjoch oangeande relevânsje en ûnderhâld. 

It register kontrolearret net oft de ynhâld yn in GitHub-projekt en de ynhâld fan it pakket oerienkommeDit is in bekend probleem yn 'e software-leveringsketen. De iepenbiere registers binne gigantyske sinkgaten dy't alles opslokje wat der nei harren smiten wurdt. Jo kinne elke repository keppele. 

kweade pakketten 4
Bewiisferdieling yn potinsjele malware yn 'e wike fan 24-30 juny 2024.

As it kweade pakket in populêr pakket typfout makket, is dat maklik: ferwize gewoan nei de besteande GitHub-repository yn it ôfhinklikheidsmanifest dat brûkt wurdt foar it meitsjen fan it pakket en it publisearjen yn it register. Foar nije pakketten op in falske GitHub-repository kinne jo mear ynventiviteit nedich hawwe, miskien it meitsjen fan falske pakketten. stjerreskôgje/foarke GitHub-akkounts fia skripting.

En as de ynhâld fan jo pakket ridlik fergelykber is mei de repository, meitsje dan hjir en dêr in pear goed ûntworpen feroarings... Jo kinne jo malware ynjeksje yn in nij pakket dat liket op in populêr pakket dat ferwiist nei de repository fan 'e besteande, en wachtsje op de typflaters. As immen it weaget om de ynhâld fan 'e tarball fan it pakket te fergelykjen mei de ynhâld fan 'e GitHub-repository, kinne de ferskillen op 'e malware-ynjeksjepunten maklik mist wurde. Wy hawwe dizze oanpak al in protte kearen earder sjoen. 

In meganisme foar in komponint om in manipulaasjebestindige ferklearring te meitsjen oer komôf, hoe't it pakket boud is, út hokker boarnen, en troch wa, soe wolkom wêze. Mar dat is in oar ferhaal. 

Is komponint X malware?

Is der in (wiidweidige) database fan kweade pakketten? Nee. Iepen boarne-kwetsberens hawwe in CVE ID tawiisd, mar mar in pear kweade pakketten (benammen dejingen dy't de krantekoppen helje) krije ien. De CWE foar kweade pakketten is CWE-506 (ynbêde kweade koade). 

De gewoane malware-ark (VirusTotal, MalwareBazaar, SOREL-20M…) meitsje gjin spesifike foarsjennings foar kweade komponinten. Dat soe wolkom wêze!

Der binne ûndersyksdatabases en datasets foar analyze (wy brûke in pear dêrfan), mar yngongen wurde allinich bywurke as it kwea-aardige pakket bekend is, wat faak te let is. As jo ​​ynteressearre binne, de OpenSSF Kweade pakketten is in moai begjin.

Yn 'e folgjende post sille wy beprate hoe't wy witte kinne oft in bepaald pakket kwea-aardich is. Spoiler: ja, d'r binne manieren om te kontrolearjen op kwea-aardich komponinten betiid tidens it bleatstellingsfinster, foardat it register in bekende kwea-aardich komponint ferwideret.

fierder lêze

Yn de folgjende ôflevering "Beskermje tsjin kweade pakketten fan iepen boarne: Wat wurket (net)" wy sille de do's en don'ts foar iepen boarne feiligens beprate. De measte feiligensbewuste professionals hawwe yntuysje oer hoe't se mei dizze bedriging omgean moatte, mar der binne misfettingen yn oerfloed. 

Wy sille besjen wêrom't dizze ideeën ferkeard binne, en hoe't sokke misfettingen bydrage oan 'e populariteit fan dit oanfalsmeganisme, en oan it oerweldigjende risiko dat organisaasjes ûnderfine. Wy sille dan fierder gean mei wat wurket, en wat de ynspanning en middels binne dy't nedich binne. 

Wy sille ek poste oer de evolúsje fan kweade pakketten yn termen fan har bedoeling, ynjeksjemeganisme en oanfalstechniken.

Bliuw op 'e hichte!

Referinsjes

Iepen boarne kweade pakketten: It probleem

Beskermje tsjin OSS-kwaadwillige pakketten: Wat wurket (net)

sca-tools-software-komposysje-analyse-ark
Prioritearje, ferhelpe en befeiligje jo softwarerisiko's
Krij jo fergese akkount.
Gjin kredytkaart nedich.

Befeiligje jo softwareûntwikkeling en levering

mei Xygeni Produkt Suite