Leveranskedjeattacker: skadliga paket och komprometterade plånboksbibliotek
En leveranskedjeattack mot krypto gömmer skadlig kod i programvara du litar på. Lär dig hur komprometterade paket och plånboksbibliotek fungerar och hur du skyddar dig.
En leveranskedjeattack mot krypto innebär att brottslingar komprometterar programvara som plånböcker, appar eller webbplatser är beroende av, till exempel ett paket med öppen källkod, ett webbläsartillägg eller en uppdateringsserver, så att skadlig kod når användarna via en betrodd kanal. Koden byter vanligtvis ut mottagaradresser, injicerar en wallet drainer på en webbplats eller stjäl återställningsfraser, och offren gör ofta inget fel förutom att använda en produkt de redan litar på.
Dessa attacker berör alla inom krypto, inte bara utvecklare. Moderna plånböcker och decentraliserade appar byggs av hundratals tredjepartskomponenter, och en enda komprometterad komponent kan påverka många produkter samtidigt. Den här guiden förklarar hur attackerna fungerar, vad du ska hålla utkik efter och hur du minskar din exponering som användare eller utvecklare.
Så fungerar en leveranskedjeattack
En kryptoapps ”leveranskedja” är allt som ingår i den: kodbibliotek, byggverktyg, hostingleverantörer, nätverk för innehållsleverans (CDN) och uppdateringsservrar. En attack följer vanligtvis dessa steg:
- 1Skaffa åtkomst. Angriparen nätfiskar en underhållare av ett populärt bibliotek, köper ett övergivet paket, gissar ett svagt lösenord eller utnyttjar en byggserver.
- 2Lägg in skadlig kod. Angriparen publicerar en ny version med dold kod, ofta obfuskerad och utformad för att aktiveras bara under vissa förhållanden, till exempel när en kryptoplånbok finns.
- 3Sprid via uppdateringar. Appar som automatiskt hämtar den senaste versionen av biblioteket får med den skadliga koden i nästa bygge eller, för webbplatser, så fort skriptet laddas.
- 4Stjäl. Koden kan byta ut adresser som kopierats till urklipp, visa en falsk transaktionsförfrågan, be om en återställningsfras eller injicera en drainer i en decentraliserad apps frontend.
- 5Göm spåren. Angripare tar ofta bort koden snabbt efter användning, vilket försvårar utredningen.
Det finns dokumenterade verkliga incidenter enligt detta mönster. År 2018 lades ett skadligt beroende till i ett populärt JavaScript-paket, utformat för att stjäla från användare av en specifik bitcoin-plånboksapp. I december 2023 fick en komprometterad version av Ledgers Connect Kit-bibliotek under en kort tid flera decentraliserade appar att visa en wallet drainer för sina användare. Båda fallen visar att den svaga punkten var den delade koden, inte användarna. För en fördjupning, se Risker med vanity-adresser och förväxlingsbara adresser.
Vanliga ingångar
| Ingång | Hur den missbrukas | Vem som drabbas |
|---|---|---|
| Paket med öppen källkod (npm, PyPI och liknande) | En skadlig version publiceras eller ett paket med förväxlingsbart namn laddas upp | Appar och utvecklare som använder paketet |
| Frontend-skript som laddas från tredje part | Skriptet ändras för att injicera en drainer | Varje besökare på webbplatsen |
| Webbläsartillägg | Tillägget säljs eller kapas och uppdateras sedan med skadlig kod | Användare som har tillägget installerat |
| Appuppdateringar | Uppdateringsservern eller signeringsnycklarna komprometteras | Användare som installerar uppdateringen |
| Utvecklarverktyg och paket som föreslås av AI | Falska paketnamn som ser trovärdiga ut | Utvecklare som installerar utan att kontrollera |
Typosquatting, att ladda upp ett paket med ett namn som ligger mycket nära ett populärt pakets, är särskilt vanligt. En utvecklare som skriver fel paketnamn kan installera skadlig kod utan att märka det.
Ett hypotetiskt exempel
Detta är ett illustrativt, sammansatt exempel, inte ett verkligt fall. Tänk dig en liten decentraliserad börs som laddar ett populärt bibliotek för plånboksanslutning från ett offentligt paketregister. En morgon blir bibliotekets underhållare nätfiskad och angriparen publicerar en ny version. Börsens webbplats laddar automatiskt den senaste versionen.
Under några timmar ser varje användare som ansluter en plånbok något som liknar en vanlig swap-förfrågan. I själva verket är det en begäran om att godkänna deras tokens till angriparens kontrakt. Användare som noggrant läser plånbokens godkännandeskärm upptäcker ett okänt kontrakt och avbryter. Användare som klickar sig vidare förlorar sina tokens. Börsens team upptäcker problemet när användare rapporterar förluster och publicerar en varning, men då har koden redan tagits bort.
Varningssignaler för användare
- En välbekant app ber plötsligt om en återställningsfras eller ett steg för ”plånboksvalidering” som den aldrig bett om tidigare.
- En rutinåtgärd ger en ovanlig förfrågan i plånboken, till exempel ett obegränsat godkännande eller en signatur för ett okänt kontrakt.
- Adressen som visas på din hårdvaruplånboks skärm stämmer inte med den du avsåg.
- Ett webbläsartillägg uppdateras och begär nya behörigheter, särskilt att läsa och ändra data på alla webbplatser.
- Ett projekt eller säkerhetsforskare publicerar brådskande varningar om att inte använda en webbplats eller app.
Många av dessa överlappar med urklippsskadeprogram och falska plånboksappar, som använder liknande tekniker. Se även: Falska webbläsaruppdateringar och captcha-skadeprogram som riktar sig mot kryptoanvändare.
Så skyddar du dig
Som användare
- 1Använd en hårdvaruplånbok och läs adressen, beloppet och kontraktet på dess skärm innan du bekräftar.
- 2Håll nere antalet tillägg. Ta bort de du inte använder och var försiktig när ett tillägg byter ägare eller ber om nya behörigheter.
- 3Separera dina pengar. Förvara långsiktiga innehav i en plånbok som sällan ansluts till webbplatser och använd en annan plånbok för vardaglig DeFi.
- 4Pausa efter säkerhetsvarningar. Undvik att använda en app tills den bekräftar att problemet är åtgärdat.
- 5Återkalla onödiga godkännanden med jämna mellanrum.
Som utvecklare eller projekt
- Lås versioner av beroenden och använd låsfiler; granska ändringar innan du uppgraderar.
- Kontrollera paketnamn noggrant och föredra väl underhållna bibliotek.
- Kräv flerfaktorsautentisering för konton i paketregister och på kodhostingtjänster.
- Använd signerade versioner och, där det är möjligt, reproducerbara byggen så att användare kan verifiera binärfiler.
- Använd en content security policy och subresource integrity för skript från tredje part.
Vad du ska göra om du drabbats
- 1Sluta använda den drabbade appen eller tillägget och koppla bort alla plånböcker.
- 2Gå igenom din transaktionshistorik efter godkännanden eller överföringar under den drabbade perioden.
- 3Återkalla misstänkta godkännanden och flytta återstående tillgångar till en ny plånbok med en ny återställningsfras om din återställningsfras kan ha exponerats.
- 4Samla in transaktions-hashar och adresser och rapportera sedan händelsen via projektets officiella kanaler och vårt formulär för bedrägerirapporter.
Följ hela checklistan i vad du ska göra direkt om din plånbok har komprometterats.
Slutsats
Leveranskedjeattacker gör betrodd programvara till en leveranskanal för stölder, så du kan inte bara förlita dig på att undvika misstänkta länkar. Se hårdvaruplånbokens skärm och plånbokens förfrågningar som den sista kontrollen, håll ditt programvaruavtryck litet och reagera snabbt på officiella säkerhetsvarningar. Utvecklare bär det största ansvaret: lås, granska och signera allt ni levererar.
Vanliga frågor
Vad är en leveranskedjeattack inom krypto?
Det är en attack där brottslingar komprometterar en programvara som andra produkter är beroende av, till exempel ett kodbibliotek, ett webbläsartillägg eller en appuppdatering, i stället för att angripa användarna direkt. När den betrodda programvaran uppdateras når den skadliga koden varje app och användare som förlitar sig på den, ofta för att stjäla krypto eller byta ut adresser.
Kan en leveranskedjeattack påverka en hårdvaruplånbok?
Skärmen på en hårdvaruplånbok är utformad för att skydda dig även om din dator eller en webbplats är komprometterad, eftersom du bekräftar den verkliga adressen och beloppet på enheten. Attacker kan ändå lura dig att godkänna en skadlig transaktion om du inte läser skärmen, så kontrollera alltid uppgifterna på själva enheten.
Hur vet jag om en webbplats jag använt drabbades?
Oftast får du veta det genom det drabbade projektets officiella meddelanden eller från säkerhetsforskare. Om ett projekt du använt rapporterar ett komprometterat bibliotek eller frontend, kontrollera om du signerade något under den drabbade perioden, återkalla godkännanden och flytta pengarna till en ny plånbok vid behov.
Är plånböcker med öppen källkod skyddade mot leveranskedjeattacker?
Öppen källkod hjälper eftersom fler kan granska koden, men det gör inte programvaran immun. Skadlig kod kan komma in via beroenden, komprometterade konton hos underhållare eller byggsystem. Reproducerbara byggen, signerade versioner och noggrann hantering av beroenden minskar risken.
