Dette innlegget analyserer angrepet på Ledger som et eksempel på hvordan spear phising førte til et angrep på programvareforsyningskjeden (SSC) på programvareverktøyet connect-kit som selskapets maskinvarelommebøker brukte, noe som gjorde det mulig for aktøren å tappe penger verdt minst 600 000 dollar.
Dette angrepet kom mot slutten av et år preget av hendelser i forsyningskjeden. I dette innlegget analyserer vi angrepet, dets innvirkning, hvordan det ble håndtert og hvilke lærdommer som kunne trekkes ut.
Ledger og brukerne av maskinvarelommebøkene hans er åpenbare mål for nettkriminelle. Lommeboktjuvere angrep Ledger-brukere via phishing-forsøk på kryptoappenes frontend, og de kriminelle må vite brukerkoordinatene for å drive phishing-kampanjene. Ledger hadde en datainnbrudd innen juli 2023 samt å være en del av Datatyveri i september 2020 på nettbutikken deres Shopify, en hendelse med stor innvirkning. Innlegget «Oppdatering: Arbeid for å beskytte dataene dine og straffeforfølge spammere«viser hvor dypt disse innbruddene gikk.»
Ledger må ta sikkerhet på alvor (det er en sentral del av virksomheten deres), med et internt forskningslaboratorium (Don Jon) håndtering sertifisering av enhetssikkerheten bug bounty program, sikkerhetsbulletinerog trusselmodelleringSå langt så bra …
Hvordan angrepet ble utført
Ledger oppdaget en utnyttelse ved hjelp av Ledgers DApp Connect-sett torsdag 14. desember 2023. Denne utnyttelsen injiserte skadelig kode i Ethereum-baserte desentraliserte applikasjoner (DApps) som brukte Ledger Connect Kit, og lurte brukere til å signere transaksjoner som tapper lommebøkene deres.
Utnyttelsen ble raskt oppdaget, og en løsning ble implementert kort tid etter. I mellomtiden falt et lite antall brukere i angrepet og signerte transaksjoner som tappet lommeboken deres.
Angrepet startet da en tidligere Ledger-ansatt ble offer for et phishing-angrep som fikk tilgang til hans/hennes NPM-konto via sesjonstokenet. Angriperne publiserte ondsinnede versjoner av @ledgerhq/connect-kit (1.1.5, 1.1.6 og 1.1.7, nå pensjonert). Angriperne kan kjøre vilkårlig kode med samme tillatelsesnivå som lommebokappen: angripere kan umiddelbart tømme brukernes penger uten interaksjon, distribuere en rekke phishing-lenker for å lure brukere, eller utnytte brukernes panikk ved å overbevise dem om å overføre eiendeler til en ny adresse, noe som resulterer i tap av eiendeler på grunn av nedlasting av en falsk lommebok.
Lommebokgrensesnitt (dApps) brukte vanligvis connect-kit-loader pakke fra Ledger for å laste inn Connect Kit under kjøring fra et JavaScript CDN (jsDelivr). Dessverre er URL-en https://cdn.jsdelivr.net/npm/@ledgerhq/connect-kit@1 festet ikke den nøyaktige versjonen (1.1.4 på den tiden), så da de skadelige versjonene ble lastet opp, ble de servert (og mellomlagret) av CDN-et. Og ingen sjekksum ble brukt for å sikre at den nedlastede ressursen fra CDN-et faktisk var den forventede (som burde brukes når man distribuerer kode fra et CDN). Dette sjekksumbaserte opplegget heter Subressursintegritet (SRI).
Den injiserte koden manipulerte sannsynligvis transaksjonsdata og lurte brukere til å bekrefte manipulerte betalinger. For eksempel kan en bruker som godkjenner en tokenbetaling for å aktivere en apps funksjonalitet i stedet ha sett en godkjenning for en betaling til hackerens adresse. Uansett hvor sikker maskinvarelommeboken er, ble pengene tappet for penger.
Oppdagelse og etterforskning
Ulike brukere begynte å legge ut meldinger i X (også kjent som Twitter) om at Zapper-grensesnittet «ble kapret». Æren går til Mathew Lilley, teknisk direktør i kryptotraderen Sushi, som først advarte i en Twitter post at en «vanlig brukt web3-kobling» har blitt kompromittert. Senere pekte han på LedgerHQ/tilkoblingssett som det kompromitterte biblioteket, og ga en første vurdering, litt brutalt:
Hva har skjedd?
— Jeg er programvare 🦇🔊 (@MatthewLilley) Desember 14, 2023
Kort oppsummert, @Rekontro gjorde en rekke forferdelige tabber.
1. De laster inn JS fra et CDN.
2. De er ikke versjonslåsende lastet JS.
3. De fikk CDN-en sin kompromittert.
Jeg ville unngått å bruke NOEN dApp-er inntil teamene deres bekrefter at de har dempet angrepet. https://t.co/a3brXNQSx9
Bruker 0xViva åpnet en sak i GitHub-prosjektdepotet: [HASTER] Dette arkivet bruker en skadelig versjon av npm-pakken @ledgerhq/connect-kit, 1.1.7.
15. desember 2023 publiserte blokkjedesikkerhetsskjemaet SlowMost en analyseinnlegg gir fullstendige detaljer om de skadelige versjonene.
Ledger-maskinvarelommeboken ble ikke kompromittert, bare Ledger Connect Kit. Men siden mange applikasjoner bruker dette biblioteket, som SushiSwap, Zapper, MetalSwap, Harvest Finance, Revoke.cash osv., var omfanget av påvirkningen betydelig. I følge bittrace.io, noen ofre prøvde, i panikk, å overføre eiendeler til en ny adresse, men lastet ned en falsk lommebok-app!
Samme dag, Jameson Lopp nøyaktig twitret om feilene som gjorde at angrepet kunne lykkes:
Det høres ut som dagens sikkerhetshendelse var kulminasjonen av tre separate feil hos Ledger:
- Jameson Lopp (@lopp) Desember 14, 2023
1. Blind lasting av kode uten å feste en spesifikk versjon og sjekksum.
2. Manglende håndheving av «tomannsregler» rundt kodegjennomgang og distribusjon.
3. Ikke tilbakekalle tidligere ansattes tilgang.
Hvordan hendelsen ble håndtert
Ledger-sjefen Pascal Gauthier publiserte samme dag som angrepet skjedde en avsløringsbrev gir ytterligere detaljer om hendelsen, noe som definitivt er bra: Å stikke hodet i sanden som en struts er den verste måten å håndtere enhver cybersikkerhetshendelse på.
Brevets struktur er interessant: Det gjenkjente raskt eksistensen av ondsinnede versjoner av biblioteket som tapper penger, noe som er bra (å benekte virkeligheten er tull):
«I dag opplevde vi et angrep på Ledger Connect Kit, et Javascript-bibliotek som implementerer en knapp som lar brukere koble Ledger-enheten sin til tredjeparts DApps (lommeboktilkoblede nettsteder).»
Denne utnyttelsen var et resultat av at en tidligere ansatt ble offer for et phishing-angrep, som tillot en ondsinnet aktør å laste opp en ondsinnet fil til Ledgers NPMJS (en pakkebehandler for Javascript-kode som deles mellom apper).
Vi jobbet raskt, sammen med vår partner WalletConnect, for å håndtere angrepet, og oppdaterte NPMJS for å fjerne og deaktivere den skadelige koden innen 40 minutter etter oppdagelsen. Dette er et godt eksempel på at bransjen jobber raskt sammen for å håndtere sikkerhetsutfordringer.»
Hva? En tidligere ansatt med publiseringsrettigheter har ikke fått sine legitimasjoner på NPM inndratt?
Administrerende direktør oppregnet deretter sikkerhetskontrollene som var på plass, men antydet at noe var svakt med NPM-tilgangen:
«Nå vil jeg gjerne ta opp hvorfor dette skjedde, hvordan vi skal forbedre sikkerhetspraksisen vår for å redusere denne spesifikke risikoen i fremtiden, og dele anbefalingen vår med bransjen, slik at vi kan bli sterkere sammen.»
Ocuco standard Praksisen hos Ledger er at ingen enkeltperson kan distribuere kode uten gjennomgang av flere parter. Vi har sterke tilgangskontroller, interne gjennomganger og multisignaturer av kode når det gjelder de fleste deler av utviklingen vår. Dette er tilfelle i 99 % av våre interne systemer. Enhver ansatt som forlater selskapet, får tilgangen sin tilbakekalt fra alle Ledger-systemer.
Dette var en uheldig isolert hendelse. Det er en påminnelse om at sikkerhet ikke er statisk, og Ledger må kontinuerlig forbedre sikkerhetssystemene og -prosessene våre. På dette området vil Ledger implementere sterkere sikkerhetskontroller, som kobler sammen byggevaren vår. pipeline som implementerer strenge software supply chain security til NPMs distribusjonskanal."
Vel, det virket som om NPM-kontoen med tillatelser til å publisere nye versjoner av biblioteket hadde mindre strenge sikkerhetskontroller enn andre deler av programvareinfrastrukturen deres. Isolert hendelse på grunn av uflaks?
Slutten på brevet er mer standard del av engasjement med myndighetene, «under kontroll-erklæring» og unnskyldninger:
«Ledger har samarbeidet med myndighetene og gjør alt vi kan for å hjelpe etter hvert som denne etterforskningen utfolder seg. Ledger vil støtte berørte brukere i å finne denne ondsinnede aktøren, stille dem for retten, spore midlene og samarbeide med politiet for å bidra til å gjenopprette stjålne eiendeler fra hackeren. Vi beklager dypt hendelsene som utspilte seg i dag for de berørte personene.»
Situasjonen er nå under kontroll, og trusselen er over. Vi forstår panikken dette forårsaket for samfunnet og det bredere økosystemet.
Brevet har en tidslinje som et vedlegg, noe som er veldig bra for brukerne å forstå hvordan hendelsen ble oppdaget, hvilke spesifikke tiltak som ble iverksatt for å begrense og utbedre hendelsen, og hvordan skaden på berørte brukere vil bli gjenopprettet/kompensert. Dette er den mest myntspesifikke delen:
«I morges, CET, ble en tidligere Ledger-ansatt offer for et phishing-angrep som fikk tilgang til NPMJS-kontoen deres. Angriperen publiserte en ondsinnet versjon av Ledger Connect Kit (som påvirker versjon 1.1.5, 1.1.6 og 1.1.7). Den ondsinnede koden brukte et falskt WalletConnect-prosjekt for å omdirigere midler til en hackerlommebok.» Ledgers teknologi- og sikkerhetsteam ble varslet, og en løsning ble implementert innen 40 minutter etter at Ledger ble oppmerksom på problemet. Den skadelige filen var aktiv i rundt 5 timer, men vi tror at vinduet der midlene ble tappet var begrenset til en periode på mindre enn to timer.Ledger koordinerte med WalletConnect, som raskt deaktiverte det uærlige prosjektet. Den ekte og verifiserte Ledger Connect Kit versjon 1.1.8 spres nå og er trygg å bruke.
For utviklere som utvikler og samhandler med Ledger Connect Kit-koden: connect-kit-utviklingsteamet på NPM-prosjektet er nå skrivebeskyttet og kan ikke pushe NPM-pakken direkte av sikkerhetsmessige årsaker. Vi har internt rotert hemmelighetene for publisering på Ledgers GitHub. Utviklere, vennligst sjekk igjen at dere bruker den nyeste versjonen, 1.1.8.
Ledger, sammen med Wallet Connect og våre partnere har rapportert den skadelige aktørens lommebokadresse. Adressen er nå synlig på Chainalysis. Tether har frosset den onde aktørens USDT.»
I følge dette gikk innkapslingen raskt, ettersom det uønskede WalletConnect-prosjektet for omdirigering av midler ble deaktivert umiddelbart. Men selv med dette ble noen lommebøker tømt.
Etterspill: Hvordan bransjen reagerte
Noen brukere uttrykte sinne mot Ledger for ikke å ha forhindret kompromisset, mens andre advarte mot farene ved å stole på tredjepartsbiblioteker.
Nettsikkerhetsbransjen har en nisje innen cybercoins. Lommeboktømmingskampanjer er velkjente, og de bruker hovedsakelig phishing-nettsteder for å lure sluttbrukere. Den vanlige SaaS-virksomheten (Scam-as-a-Service) har spesialiserte aktører for lommeboktømming, som svindelleverandører. Inferno Drainer hvilken annonsert driftsstans i november 2023. Dette ser ut til å være et falskt flagg uansett, ifølge nylig aktivitet sett i Dunes @scamsnifferOrdningen de følger ble forklart i dette Group-IB-innlegget:
Noen analytikere ga hint om hva som ikke gjorde angrepet mulig. kommentar av bruker brianddk i billetten på prosjektets repository gir oss innsikt i rotårsaken:

A kommentar fra en annen bruker, HenryQW, pekte på den andre tingen som gjorde at de skadelige versjonene kunne spres via CDN:

Det er for tidlig å se langsiktige initiativer for å gjøre kryptolommebøker mer robuste mot phishing-angrep. Det ser ut til at det kreves overholdelse av en standard lik det som PA-DSS gjør for programvareleverandører av betalingsapplikasjoner kan være velkommen i kryptoindustrien.
Og nå, lærdommer!
Det er utrolig hvordan en maskinvarelommebok, selve symbolet på kryptosikkerhet, ble brutt ganske enkelt ved å stramme inn tilgang til NPM-legitimasjon av en «tidligere ansatt» i Ledger (sannsynligvis brukernavn/passord uten 2FA-beskyttelse eller tilgangstoken). Denne hendelsen tjener som en slående påminnelse om at når du er under press, må programvareinfrastrukturen din beskyttes med samme forsiktighet som programvare- eller maskinvareproduktene dine.
De fleste angrep på programvareforsyningskjeden starter med å kompromittere en intern konto (ofte for en utvikler eller devops-ingeniør). Angriperne beveger seg deretter enten sidelengs for å bryte seg inn i interne systemer i programvareinfrastrukturen, som CI/CD systemet eller distribusjonsverktøyene, eller klarer å legge til ondsinnet logikk i kildekodelagre, noe som kan oppdages hvis riktig håndtering av endringer med grenbeskyttelse og kodegjennomganger er på plass. Men angripere trenger ikke å gå så dypt når målet er et populært bibliotek publisert i et offentlig register, spesielt hvis de kan få tilgang til publiserings- (skrive-) legitimasjon. Og det var dette som skjedde i dette angrepet.
2FA-autentisering, spesielt bruk av robuste elementer som sikkerhetsnøkler, begrenser risikoen med interaktive operasjoner. CI/CD pipelines, tilgangstokener med begrenset tilgang lagret som en CI/CD hemmelig er den vanlige måten å gå frem på (og tilgangstokenet skal ikke lekkes). Dessverre ser det ut til at den ansatte ikke hadde et robust 2FA-sett. NPM tillater organisasjoner for å håndheve 2FA (men dette er valgfritt, ikke standard), som sannsynligvis er det Ledger burde ha. Og ikke glem å legge til passende tilbakekalling av legitimasjon prosedyrer for tidligere ansatte, spesielt med tilgang til ressurser som er så kritiske som NPM-omfanget som eies av organisasjonen.
Versjonslåsing for avhengigheter med gjennomgåtte versjonsbumps er en praksis som reduserer spredningen av ondsinnede avhengigheter. I sammenheng med Ledger-hendelsen, versjonene av biblioteket som connect-kit-loader tok fra CDN burde ha blitt låst, og «ikke stol på hva CDN enn kaster». Å ha en sjekksumverifisering f.eks. via SRI (eller til og med et digitalt signaturskjema som også autentiserer kilden) bør brukes når man henter fra et CDN for dynamisk kodeinnlasting.
Resten er en historie.
For de mer konvensjonelle phishing-kampanjene rettet mot lommebokbrukere, er spørsmålet: Hva får brukere til å falle i feller satt av kriminelle og til å bekrefte transaksjoner de aldri hadde til hensikt å utføre? Phishing-nettstedene i dette domenet er godt utformet og overbevisende, og imiterer populære kryptomerker; og de tilbyr også gratis tokens, preging av NFT-er og andre belønninger. Å unngå at brukere faller i slike feller er et problem som søker en løsning.
Og å ikke glemme det relaterte kryptohacking angrep, en mer generell trussel, der motstanderne tar over skyinfrastrukturer for å drive minere for kryptovaluta, ofte for personvernmynter som Monero XMR og Zcash, med skjult transaksjonshistorikk. Kryptokapring er relevant fordi det kan påvirke ENHVER organisasjon, og selv om profitten for angriperen kan være lav, kan kostnadene for offeret være store (Sysdig nevnt i denne rapporten at det koster offerorganisasjonen 53 dollar for hver dollar som utvinnes for angriperen).
Referanser
- Billett[HASTER] Dette arkivet bruker en skadelig versjon av npm-pakken @ledgerhq/connect-kit, 1.1.7" i Github-depotet.
- Brev fra Ledger-sjefen om hendelsen, 14. des. 2023.
- Rapport om sikkerhetshendelser, av Ledger, 20. des. 2023.
- Ledger-utnyttelse truer DeFi; Sushi sier «Ikke samhandle med NOEN dApps», innlegg i CoinDesk av Oliver Knight, 14 Dec 2023.
- Angrep på Ledger Connect-settet i forsyningskjeden: Analyse av virkningen og forebyggende tiltakInnlegg av SlowMist om angrepet, desember 2023.
- Web3-sikkerhetskonsepter: Lommeboktømming, av Jammel Weaver, i Rektify AI, juli 2023.
Se vår videodemo







