Dit is de earste ôflevering yn in searje artikels oer de meast foarkommende soarte oanfallen op software-oanbiederketens: dyjingen dy't in iepenbier register fan softwarekomponinten (mis)brûke, bedoeld foar iepen boarne projekten om artefakten te uploaden dy't mei oare brûkers dield wurde kinne. As de minne jonges dêr kweade software publisearje, en it register brûke as in middel foar malware-fersprieding, hawwe wy in oanfal yn 'e supply chain as de slachtofferorganisaasjes de ynfekteare softwarekomponint ynstallearje of útfiere.
Om de diskusje te ferienfâldigjen sille wy prate oer software pakketten:, komponinten yn in ferpakte foarm produsearre troch tredden. Dit omfettet net allinich komponinten dy't brûkt wurde troch pakketbehearders lykas NPM of Poetry, mar ek ûnderdielen fan it bestjoeringssysteem ynklusyf bibleteken en útfierbere binêre bestannen, kontenerôfbyldings, en firtuele masines, of arkútwreidings foar ûntwikkelings-, bou- en ymplemintaasje-ark. Wy hawwe oeral kweade pakketten sjoen. Cyberkriminelen fine it net slim: se binne bliid mei de alternativen dy't moderne software-ynfrastruktueren biede en brûke it register en de ark dy't it bêste by har bedoeling passe. Dus tink derom dat softwarepakketten in ôfkoarting binne foar kontenerôfbyldings, binêre pakketten, iepen boarne-repositories en útwreidings of plugins fan alle soarten (IDE's, CI/CD systemen, bou-ark). Alle wurde routinematich oanfallen.
De searje sil 5 ôfleverings hawwe:
- Wat is it probleem mei iepen boarnepakketten? Dit is it tema fan dizze post. Wêrom publisearje kriminelen fan alle soarten kweade pakketten? Wêrom soe ik my soargen meitsje moatte?
- Anatomy fan kweade pakketten: Wat binne de trends? Yn dizze ôflevering rjochtsje wy ús op 'e bedriging dy't wy dei nei dei kontrolearje mei ús MEW-systeem. Mei in grutte eftergrûnrûzje fanwegen in grut oantal kweade pakketten dy't typosquatting of ôfhinklikheidsbetizing brûke, is in lytser persintaazje oanfallen folle mear ferrifeljend en foarmje in grutter risiko. Hoe is it gedrach fan 'e minne akteurs oangeande OS yn it resinte ferline feroare? Wat binne de sifers? Wat binne de taktiken, techniken en prosedueres dy't brûkt wurde, en de skealike aksjes dy't sjoen binne?
- Beskermje tsjin kweade pakketten fan iepen boarne: Wat wurket (net)De measte feiligensbewuste professionals hawwe ideeën oer hoe't se mei dizze bedriging omgean kinne. Wy hawwe feiligensmanagers sûnder wifkjen heard sizzen dat SCA ark fertelle jo al wannear't in pakketferzje malware is. Of dat se ôfhinklik binne fan bekende, heech beoardiele softwarekomponinten, wêrby't alle malware direkt ûntdutsen en fuorthelle wurde soe. Se dat se iepen lytse/patchferzjes brûke foar it automatysk krijen fan kwetsberensreparaasjes, en dat dat de juste, oanrikkemandearre manier is om it risiko op iepen boarne-ôfhinklikheden te ferminderjen, neffens it prinsipe "patch betiid, patch faak". Yn dizze ôflevering sille wy besjen wêrom't dizze ideeën ferkeard binne, en hoe't sokke misfettingen bydrage oan 'e populariteit fan dit oanfalsmeganisme, en oan in oerweldigjend risiko dat organisaasjes ûnderfine. Wy sille einigje mei wat wurket, en wat de ynspanning en middels binne dy't belutsen binne.
- Iepen boarne kweade pakketten: De Xygeni-oanpakYn dizze ôflevering presintearje wy hokker strategy wy by Xygeni folgje foar ús Malware Early Warning (MEW) systeem. Hoe wurket dit mearfase systeem yn realtime as in nije pakketferzje publisearre wurdt, hoe't bewiis út ferskate boarnen sammele wurdt, hoe't triage dien wurdt, hokker klassifikaasjekritearia folgje wy, en wêrom't noch wat hânmjittige analyze nedich is om de aard fan in kwea-aardige pakketkandidaat te befêstigjen? Hoe't de feedback fan ús ynterne en registerteams it systeem helpt om te learen fan earder sammele bewiis om falske positiven ta in minimum te ferminderjen. En wy sille útlizze hoe't wy NPM, GitHub, PyPI en oare wichtige ynfrastruktueren yn 'e iepen boarne iepen boarne ekosystemen helpe om de ferbliuwstiid te ferminderjen..
- Iepen boarne eksploitearje: wat te ferwachtsjen fan 'e minne jongesDe searje einiget mei in fokus op 'e nijste aksjes dy't de tsjinstanners nimme om de oanfallen ûnsichtberder, dreger te detektearjen, mear rjochte tsjin spesifike yndustryen te meitsjen, en mear foardiel te heljen út dizze klasse oanfallen. Sille ransomware-oanfallen mei dit middel útfierd wurde? Hoe brûke de minne jonges AI-ark om mear ferfine kweade pakketten te leverjen? Binne top populêre projekten yn gefaar? Dit is om lêzers in gefoel te jaan oer dizze wapenwedstriid, en wat se kinne ferwachtsje op koarte termyn (twadde helte fan 2024) en middellange termyn (2025). Wy sille leare hoe't oanfallen lykas de resinte... XZ-Utils Efterdoar, of de oanfal op it libjen-fan-it-lân elektronbouwer yn maartmaart 2024 litte sjen dat wy wach moatte bliuwe oer hoe't de tsjinstanners evoluearje.
Litte wy it poadium iepenje mei de earste ôflevering: Wat bart der mei kweade iepen boarne iepen boarne pakketten?
Wat is it probleem mei iepen boarnepakketten?
Yn 'e lêste jierren hawwe misdiedigers fan alle soarten iepen boarne softwareregisters brûkt om kwea-aardich gedrach te leverjen. Dizze aktiviteiten binne sa âld as iepen boarne, mar har frekwinsje is yn 'e lêste trije jier eksplodearre.
It publisearjen fan kweade komponinten yn iepenbiere registers (oanfallen basearre op ôfhinklikens) is asymmetryske guerrilja-oarlochsfiering dy't bedrigingsakteurs brûke om malware te fersprieden, wêrby't se gebrûk meitsje fan it fertrouwen dat organisaasjes sette yn iepen boarne-komponinten dy't komme fan ûnbekende ûntwikkelders (tink oan de ôfhinklikens xkcd stripferhaal?). Omdat jo pakketten fertrouwe en it net slim fine om de ynhâld fan it pakket en har ôfhinklikheden manuell te kontrolearjen, binne dizze oanfallen bûtengewoan effektyf. En de asymmetrie komt om't se foar in grut part automatisearre wurde kinne en de minne jonges net direkt mei it slachtoffer hoege te ynteraksje. Se uploade it pakket gewoan nei it iepenbiere register en litte it gean.
Kweade pakketten mei in 6x faktor omheech gien yn 2022, en bleau groeien mei in 2.5x faktor yn 2023. Ferline jier waarden in flinke 245,000 kweade pakketten sjoen, in sifer dat mear as ferdûbelet it totale oantal fan foargeande jierren byinoar. Dit is eksponentiële groei! Fan pakketferwideringen oant befêstige malware yn 'e hûnderten yn 2021 en yn 'e tûzenen yn 2022 seagen wy folle mear eftergrûn "lûd" yn 2023, mei in ferlykber tempo foar dit jier. En ferburgen yn dy eftergrûn feroarsake troch ûnferstannige cyberkriminelen dy't it "paad fan 'e minste wjerstân" folgen, berikte in minderheid fan 'e promininte oanfallen de krantekoppen, sels yn 'e algemiene media.
Wêrom is dit in probleem fan sa'n grutte omfang? Der is in oermaat oan fertrouwen oer de hiele keten. Iepen boarne software wurdt ferspraat mei syn boarnekoade, en útbrocht ûnder in bepaalde lisinsje. Ja, elkenien kin de boarnekoade ynspektearje; mar wa docht dat yn 't algemien? Wa, nei't er ynspektearre hat dat de software gjin malware befettet, bout de software fan 'e boarnekoades? Wa, foardat er de ynpakte komponint (ek wol bekend as in ...) trochjout pakket) downstream nei de pakketbehearder of de bou-ark, soarget derfoar dat it pakket net fol sit mei malware en oerienkomt mei de ferûnderstelde boarnekoade wêrfan it komme moat?
Wêrom lit de ynfrastruktuer sokke maklike oanfallen ta?
Pakketregisters binne iepen, wêrby't faak minimale ferifikaasje fan 'e identiteit fan' e útjouwer fereaske is. "Elkenien is wolkom om hjir syn software te publisearjen!" De lat foar oanfallers is leech lein: se brûke wegwerp-e-mailadressen en wegwerp-GitHubgithub-akkounts om hûnderten kweade pakketten te meitsjen yn koarte, phishing-achtige kampanjes. Allinnich foar rjochte pakketten is in hegere ferfining nedich: Wy seagen sels it meitsjen fan in betroubere GitHub-boarnebewarplak mei in protte stjerren en commits fan meardere falske bydragejouwers en oare metriken fan populariteit en ûnderhâld. Getting stjerrekijkers en reputaasje fan falske bydragen is net dreech te automatisearjen. Wy seagen misbrûk op iepen software-ynfrastruktueren fan alle soarten, net allinich malware, lykas de teeprotokol ynsidint.
Pakketbehearders binne ûntworpen foar gebrûksgemak en net foar feiligensSe kinne pre- en post-ynstallaasje skripts útfiere (soms is it kompilearjen fan native koade foar in bibleteek needsaaklik). Ek, Pakketbehearders pakketten ynstallearje fan meardere boarnen, en soms is de standert it brûken fan iepenbiere registers. Se hawwe net kontrolearre op in oerienkomst tusken de metadata yn it publisearringsfersyk en de metadata yn it pakket sels.
Ofhinklikheden binne nestele en foarmje in grafyk. Yn bepaalde ekosystemen lykas Node (JavaScript) sammelje lytskorrelige ôfhinklikheden har op yn 'e hûnderten of tûzenen. Ien ding is om strange kontrôle te hawwen oer direkte ôfhinklikheden dy't troch myn softwareprojekten ferklearre binne, mar transitive ôfhinklikheden binne dreger te kontrolearjen. Iepen boarne folge "de freonen fan myn freonen binne myn freonen". Bruorskip is de noarm yn it wylde Fiere Easten! Bedrigingsakteurs witte dit en ferbergje it kwea-aardige gedrach djip yn obskure ôfhinklikheden dy't faak ûnbekend binne. Dit wie it gefal mei de evenemintstream ynsidint rjochte op de Copay-portefeuille.
Sa hat iepen boarne software wurke sûnt it begjin. It sil net folle feroarje. Guon pakketregisters freegje op syn bêst twa-faktor autentikaasje, en faak allinich foar de populêrste pakketten. Guon registers leverje scopes, in nammeromte dy't eigendom is fan in kontrolearre organisaasje, mar tragysk oaren stypje it net (PyPI) of meitsje it opsjoneel (NPM). It is nijsgjirrich om te notearjen dat sels in ienfâldige screeningskema (basearre op kontrôle fan 'e DNS- of GitHub-repository/organisaasje dy't oerienkomt mei de groep-ID) en it meitsjen PGP-hântekeningen ferplicht foar alle artefakten útsein kontrôlesommen ferwideret it measte fan 'e "lûd", typosquatting-achtige kweade pakketten, en beheint in protte fan ôfhinklikensferwarring. Ferfine oanfallen binne mooglik mar folle dreger, mei mar in pear lykas de com.github.codingandcoding:maven-compiler-plugin bekend om Maven Central. En net alle maven-registers folgje deselde praktiken!
Feiligenskontrôles op pakketbehearders kinne lêst hawwe, mar hinderje se net. It probleem mei multifaktor-autentikaasje is dat foar automatisearring ôflaatte ynloggegevens lykas tagongstokens of APIapi-kaaien generearre wurde foar akkounts dy't brûkt wurde kinne yn APIapi-opropen dy't makke wurde fanút automatisearringsskripts, sûnder dat in ynteraktive brûker in twadde faktor leveret. MFA is goed foar it beskermjen fan brûkersakkounts tsjin wachtwurdlekken, mar de generearre tagongstokens of APIapi-kaaien moatte beskerme wurde wylst se aktyf binne, oars sil har eigener imitearre wurde troch de tsjinstanners. In grut part fan pakket-basearre supply chain-kampanjes begjint mei in lekte kaai/token. Tink gewoan oan ynsidinten lykas Ledger, 3CX, en folle mear, dêr't net-ynteraktive ynloggegevens earst stellen waarden yn in foarriedige ynbraak foar it lansearjen fan 'e oanfal op 'e supply chain.
De reaksje op dizze bedriging wie net robúst genôch. Yn 'e tredde ôflevering sille wy ús rjochtsje op wat wurke hat en wat jammerdearlik mislearre is. De sektor moat kollektyf gearwurkje oan 'e standards, prosessen, oplieding en ark om risiko's foar wrâldwide leveringsketens te ferminderjen. Dit is gjin probleem dat in inkele organisaasje allinich oplosse kin.
Om dit diel ôf te sluten, it krúsjale misferstân: wy prate oer ferkeard pakketten, net kwetsber Kwetsberens komme fan ûntwerp- of kodearflaters, dy't per ongelok yntrodusearre binne, sûnder minne bedoelingen. De kwetsberens kinne eksploitearre wurde, mar in protte net. Kweade pakketten binne altyd mei opsetsin, en d'r is 100% eksploitaasjemooglikheden as se útfierd wurde. Gjin fergelykber risiko! Dêrom it is paradoksaal om te sjen hoefolle ynspanningen der dien wurde om kwetsberheden te detektearjen en te ferminderjen, en it ûntbrekken fan lykweardige maatregels foar kweade komponinten.
"Wy nimme feiligens serieus"
Lit ús ús de gewoante foarstelle It bedriuw Acme CorporationAcme, in wichtige leveransier foar WileCoyote.com, hat it measte fan syn software fan tredden, mei mear as 80% út iepen-boarne projekten. Se produsearje software foar yntern gebrûk, mar se leverje ek software foar har partners, leveransiers en klanten/einbrûkers. Acme hat software skreaun yn Go, JavaScript, Java, C# en Python, en rint it measte fan syn software yn 'e wolk, ûnder Kuberneteskubernetes-klusters. Acme bout syn oanpaste ôfbyldings fan basisôfbyldings dy't nommen binne fan Docker Hub en oare registers. En se diele ek in pear bibleteken, pakketten en kontenerôfbyldings yn iepenbiere registers.
Acme nimt feiligens serieus. Se binne har frij bewust fan it probleem fan open source security, en it risiko dat it mei him bringt. Alle ûntwikkelders, systeembehearders en DevOpsdevops-yngenieurs brûke dy leuke lytse kryptokaaien as twadde-faktor-autentikaasje. Alle commits nei koade-repos binne ûndertekene, tûkebeskerming is ynskeakele mei ferplichte koadebeoardielingen, CI/CD opsluten, geheimen opslein yn in geheime kluis, en mei in yntern register dat foar in part eksterne registers spegelet wêr't allinich de tastiene, wite-list komponinten opslein binne. It is fereaske dat software boud troch Acme ôfhinklikheden fan tredden út dit register moat nimme.
Wierskynlik passe de measte organisaasjes yn dit profyl. Beste lêzer, dy fan jo past der wis by as jo hjir al binne, net?
Doe, op in ûngelokkige dei, in wichtige frontend-ûntwikkelder by Acme rûn npm ynstallearje acme-cute-lib, ferjittend dat @acme/cute-lib de juste scoped-ôfhinklikens wie. De krekte flater is net wichtich, in protte dingen kinne misgean, sels as men perfekte kontrôle oer de softwarelibbensyklus oannimt. Us ûntwikkelder wist net dat in APT-groep Acme op it each hie en publisearre in kwea-aardige komponint ûnder dy namme, op in slûchslimme manier, sadat it kwea-aardige gedrach allinich aktivearre wurdt as de software op Acme-kompjûters ynstalleare is. It pakket waard wiken nei de publikaasje net ûntdutsen.
In ynstallaasjeskript wurdt útfierd dat siket nei ynloggegevens (der wiene in protte sappige tagongstokens yn 'e laptop fan ús ûntwikkelder), wêrtroch tagong ta ynterne softwarerepositories en de neamde ynterne repository, dy't fansels allinich tagonklik is fia VPN, mooglik is. De kweade koade slagge deryn om de besteande VPN-ferbining te brûken en in kweade komponint fan 'e twadde faze te publisearjen yn it ynterne register, wêrtroch't in mienskiplike utils-bibleteek beynfloede waard dy't dield wurdt troch de measte software levere troch Acme.
Wiken letter begûnen oare organisaasjes dy't de publisearre ark fan Acme brûkten, frjemd ferkear te sjen op har netwurken, mei ferkear dat it protokol fan Acme brûkte, mar trochferwiisde nei hosts dy't liken op it Acme-domein. It ferkear wie fersifere, mar systeemmonitoring-ark fûnen tagong ta ûnferwachte bestannen en de útfiering fan prosessen dy't lykje op systeemkommando's, mar dy't úteinlik downloade útfierbere bestannen útfiere.
De rest is skiednis: Acme ûntkende earst dat sok gedrach oan harren taskreaun wurde koe en dat alle feiligensmaatregels fan krêft wiene. Pas nei't de cybersec-media begûnen te freegjen wêrom't de boarne fan it ûntdutsen gedrach ôfkomstich wie fan 'e komponinten fan Acme, en feiligensanalyses oanjûn hoe fol dy komponinten wiene mei ferburgen malware, moast Acme it ynsidint werkenne en in ynsidintreaksjebedriuw ynskeakelje. In negative marketingkampanje dy't it hurd fertsjinne fertrouwen yn in sekonde ûndermyne.Acme wie ien npm-ynstallaasje fuort fan disaster” wie in gewoane kop. Dêrnei folgen rjochtsaken en annulearre kontrakten.
Sjochst oerienkomsten mei bekende ynsidinten út it ferline? Acme rekke yn twa fazen belutsen by in ynsidint yn 'e supply chain, mei in miks fan ôfhinklikheidsferwarring/typosquatting oanfallen dy't in ûntwikkelderswurkstasjon brûkten as in middel om komponinten te ynfektearjen dy't úteinlik yn software telâne kamen dy't brûkt waard troch tredden. Hoe koe dit foarkommen of beheind wurde?
Wêrom fergiftige pakketten sa populêr binne
Dit hypotetyske ynsidint lit sjen dat sels mei in ridlike oanpak fan iepen boarne feiligens, organisaasjes spesifike maatregels nedich hawwe om te foarkommen dat se slachtoffer wurde fan malware yn iepen boarne komponinten. Skematysk kin de bedrigingsakteur:
- Meitsje in nij pakket (nei de bekende typosquatting- of ôfhinklikheidsbetizingswegen, dit is it paad dat de minne jonges yn folume it meast befarre);
- Besykje in besteande te ynfektearjen, troch it yn boarnekoade te ynjeksjearjen, of troch it te ferklaaien as in bydragejouwer fia pull request, of sosjale technyk brûke om in ûnderhâlder te wurden (lykas "Jao Tan" die yn 'e XZ Backdoor of rjochts9ctrl GitHub-brûker die yn 'e evenemintstream ynsidint yn 'e hjerst fan 2018), of troch it krijen fan ynloggegevens foar iepen boarne-repositories en it imitearjen fan 'e ûnderhâlder;
- Malware ynjeksje tidens it bouwen fan it pakket, troch in kwea-aardich buildskript út te fieren, of it bemuoien mei pakketdownloads mei man-in-the-middle-ynterceptjes (gelokkich is TLS no altyd fereaske yn 'e measte registers).
- Ynjeksjearje de ynpakte komponint direkt yn it register, typysk troch it fêstlizzen fan de registergegevens (it foarkommende alternatyf foar in protte ferfine oanfallen lykas dy fan Acme, wêrby't it kompromittearre wurkstasjon yn 'e earste faze it ynterne registertagongstoken hie, bygelyks yn 'e gewoane .en V or ~/.m2/ynstellings.xml: minne akteurs witte wol wêr't se nei geheimen sykje moatte). Kwetsberens yn 'e registers waarden ek eksploitearre.
It fergiftigjen fan registers mei malware is de basis foar ôfhinklikheidsoanfallen. Neat nijs ûnder de sinne: de prevalinsje dêrfan eksplodearre, mar deselde techniken wurkje no as fiif jier lyn.
Boarne: Kolleksje fan Backstabber's Knife.
It kweade pakket kin operearje by ynstallaasje, tidens softwarebou, of tidens runtime. En it gedrach farieart fan ynformaasje-eksfiltraasje, bygelyks it ekstrahearjen fan geheimen foar in twadde-faze poging, oant it ekstrahearjen fan boarnekoade, it pleatsen fan ekstra malware. Yn 'e folgjende ôflevering sille wy de kweade pakketten ûntlede en hoe't se publisearre wurde.
fierder lêze
De folgjende ôflevering Anatomy fan kweade pakketten: Wat binne de trends? sil ús rjochtsje op echte gefallen dy't wy dei nei dei kontrolearje mei ús Malware Early Warning-systeem. Wy sille besjen hokker soarten malware sjoen binne, en hokker taktiken, techniken en prosedueres de favoriten binne. Wy sille obfuskaasje ûndersykje en hoe't se besykje te ferbergjen foar potinsjele resinsinten, de ûntwykingstechniken om deteksje te foarkommen, en hoe't se evoluearje mei telemetrie en laterale beweging. Bliuw op 'e hichte!
Referinsjes
- Backstabber's Knife Collection: In resinsje fan oanfallen op iepen boarne software yn 'e supply chainM. Ohm et al., maaie 2020.
- Iepen boarne malwarebeskermingWytboek fan Xygeni.
- Software Supply Chain Security Weromsjoch: In feiliger 2024 foarmjaanRapport fan Xygeni.





