Bitcoin-plånbokserverns säkerhetsproblem
En illvillig Bitcoin-plånbokserver kunde tyst byta ut en legitim betalning mot en tjuvs transaktion, för att sedan vänta på att ägaren skulle godkänna stölden. Electrum har nyligen släppt en säkerhetsuppdatering som stänger denna lucka efter att angripare utnyttjat felet och stulit medel.
Uppdatering och sårbarhet
Den nya versionen, 4.8.3, släpptes på lördagen, och utvecklarna varnade användare att uppgradera omedelbart efter att de upptäckte att illvilliga servrar utnyttjade en sårbarhet av hög svårighetsgrad som påverkade alla tidigare versioner. Felet, dokumenterat i GitHub-rådgivningen GHSA-6jp4-8v48-cc5v, utnyttjade hur den lätta Bitcoin-plånboken hanterar obekräftade transaktioner.
Hur attacken genomfördes
Electrum förlitar sig på externa servrar för transaktionshistorik, avgiftsuppskattningar och sändning av betalningar. Medan den oberoende kontrollerar bekräftade transaktioner, accepterade äldre versioner vissa obekräftade transaktioner utan att verifiera deras signaturer. Angripare utnyttjade denna distinktion för att skapa en fälla.
En komprometterad server kunde avlyssna en legitim betalning, förhindra dess sändning och ersätta den med en bedräglig transaktion som dirigerade medel till en angriparkontrollerad Bitcoin-adress.
Den ersatta transaktionen bar ogiltiga signaturer, men Electrum visade den som en vanlig väntande betalning. Tricket blev särskilt farligt när användare försökte öka transaktionsavgifterna genom Replace-By-Fee (RBF). Istället för att öka avgiften på sin ursprungliga betalning, kunde offren oavsiktligt signera den ersatta transaktionen, vilket auktoriserade överföringen av deras egen Bitcoin till angriparen.
Bedrägeriets utformning
Bedrägeriet gick längre. Angripare genererade mottagaradresser vars sista fyra tecken matchade den avsedda destinationen, vilket gjorde en snabb adressjämförelse mindre sannolik att avslöja bytet. En bedräglig transaktion bar till och med en avgift på noll, vilket uppenbarligen uppmuntrade sitt offer att initiera just den avgiftsjustering som behövdes för att slutföra stölden.
Rapporter och åtgärder
Utvecklarna fick två privata rapporter. Den 11 oktober rapporterade användaren dannydeezy om transaktionssubstitution, även om avgiftsökningens mekanism inte helt förståddes. Den 18 oktober rapporterade Raju-K12 att han förlorat medel efter att ha godkänt en avgiftsökning. Den andra rapporten bekräftade att attacken inte bara var teoretisk.
Lappen, som introducerades genom commit 90fe308, kräver att Electrum verifierar signaturer för obekräftade transaktioner som spenderar mynt som tillhör plånboken. Bedrägliga transaktioner med ogiltiga signaturer avvisas innan de går in i plånbokens lokala historia.
Rekommendationer för användare
Användare som kör versioner tidigare än 4.8.3 bör ladda ner uppdateringen exklusivt från electrum.org och verifiera dess kryptografiska signaturer. Tills de uppgraderar bör användare noggrant inspektera varje destinationsadress och betalningsbelopp innan de signerar, inklusive under avgiftsjusteringar.
De som ansluter sig uteslutande till betrodda, självhostade Electrum-servrar är inte utsatta för denna specifika serverbaserade attack.
Slutord
Incidenten avslöjar en intressant motsägelse: En plånbok som är utformad för att skydda privata nycklar kan fortfarande manipuleras till att begära en helt giltig signatur för en betalning som dess ägare aldrig avsåg att göra. Tillverkaren av hårdvaruplånböcker, Keystone, avslöjade en dataintrång hos kunder på lördagen, efter obehörig åtkomst till sin webbplats som exponerade namn, fraktinformation och andra känsliga uppgifter.