Poháňa
Featured

Vysvetlenie zraniteľnosti Coldcard: Kto prišiel o bitcoiny a kto je ohrozený

Útočník 30. júla zneužil slabé seed kódy vygenerované niektorými hardvérovými peňaženkami Coldcard, aby ukradol bitcoiny v hodnote približne desiatok miliónov zo stoviek adries.

NAPÍSAL
ZDIEĽAŤ
Vysvetlenie zraniteľnosti Coldcard: Kto prišiel o bitcoiny a kto je ohrozený

Kľúčové body

  • Krádeže spojené s Coldcardom 30. júla vyprázdnili bitcoiny zo stoviek peňaženiek.
  • Podľa spoločnosti Coinkite mali seed kódy Mk3 entropiu približne 40 bitov namiesto 128.
  • Používatelia Coldcardu musia pred presunom prostriedkov nainštalovať opravený firmware a vytvoriť nové seed kódy.

Podľa podrobnej analýzy spoločnosti Galaxy Research sa hlavná krádež odohrala v rámci tesne koordinovanej série transakcií trvajúcej približne 25 minút, zatiaľ čo širšia analýza neskôr spojila približne 1 196 adries a až 1 083 bitcoinov v hodnote takmer 70 miliónov dolárov s aktivitou trvajúcou približne 41 minút. Konečné čísla sa môžu zmeniť, keďže vyšetrovatelia pokračujú vo vysledovaní transakcií na verejnom blockchainu bitcoinu.

Päťročná chyba zasiahla bitcoinové peňaženky po celom svete

Postihnuté peňaženky patrili prevažne dlhodobým držiteľom, ktorí si vygenerovali svoje obnovovacie kľúče pomocou zariadení Coldcard so zraniteľným firmvérom vydaným od marca 2021. Coldcard je hardvérová peňaženka s izoláciou od internetu (air-gapped) od kanadského výrobcu Coinkite, navrhnutá tak, aby kľúče od bitcoinov (BTC) boli izolované od zariadení pripojených k internetu.

Mnohé z vyprázdnených adries zostávali roky neaktívne. Útočník konal rýchlo, zaplatil zvýšené pevné transakčné poplatky a nezanechal žiadne výstupy s drobnými, čo znamená, že každá adresa bola úplne vyprázdnená. Tento vzor naznačoval automatizovanú operáciu s využitím vopred pripraveného zoznamu súkromných kľúčov, a nie samostatné presuny prostriedkov zo strany zákazníkov.

Krádež nebola spôsobená phishingom, škodlivým softvérom v počítači používateľa, fyzickou krádežou zariadenia ani bežným vzdialeným narušením bezpečnosti. Namiesto toho chyba firmvéru oslabila náhodnosť používanú pri vytváraní seedov peňaženiek niektorými zariadeniami Coldcard. Tieto seedy vyzerali normálne, ale pochádzali z oveľa menšieho rozsahu možných kombinácií, než bolo používateľom sľúbené.

Generátor náhodných čísel spoločnosti Coldcard ticho zlyhal

Semená bitcoinovej peňaženky sú tajné, zvyčajne sa zobrazujú ako 12 alebo 24 slov, z ktorých peňaženka generuje svoje adresy a súkromné kľúče. Správne vygenerované 12-slovné semeno obsahuje 128 bitov entropie, čo je technická veličina opisujúca obrovský počet možných kombinácií, vďaka čomu je uhádnutie semena prakticky nemožné.

Zariadenia Coldcard mali túto náhodnosť získavať z hardvérového generátora náhodných čísel umiestneného v mikrokontroléri zariadenia. Táto súčiastka čerpá z fyzického elektrického šumu, ktorý by vonkajší pozorovateľ nemal byť schopný predvídať.

Počas migrácie softvérových knižníc v roku 2021 však spoločnosť Coinkite zistila, že došlo k zámene dvoch funkcií generovania náhodných čísel s identickými rozhraniami. Jedna z nich pristupovala k správnemu hardvérovému generátoru zariadenia. Druhá bola slabou softvérovou náhradou určenou pre dosky bez vhodného hardvéru.

Konfiguračné nastavenie deaktivovalo predvolenú hardvérovú cestu MicroPythonu, pretože spoločnosť Coinkite poskytla vlastný hardvérový wrapper. Softvér skontroloval len to, či toto nastavenie existuje, nie to, či je aktivované. Keďže nastavenie existovalo, ale malo priradenú hodnotu nula, kompilácia prebehla úspešne, zatiaľ čo generovanie počiatočnej hodnoty sa bez upozornenia presunulo na slabší softvérový generátor.

Továrenské údaje a časovanie nahradili skutočnú náhodnosť

Toto náhradné riešenie sa vo veľkej miere spoliehalo na predvídateľné informácie o zariadení, vrátane identifikátora čipu podobného sériovému číslu a hodnôt interných hodín spojených s časovaním spustenia. Útočník, ktorý by dokázal zúžiť tieto vstupy, by čelil oveľa menšiemu rozsahu vyhľadávania než 128-bitovému rozsahu očakávanému pri bezpečne vygenerovanom počiatočnom čísle.

Spoločnosť Coinkite odhadla efektívny priestor vyhľadávania pre zraniteľné počiatočné hodnoty Mk3 na približne 40 bitov pri súčasných predpokladoch. Stále ide o veľký počet možností, ale je možné ich prehľadať pomocou špecializovaného výpočtového vybavenia, najmä ak útočník môže porovnávať kandidátske počiatočné hodnoty s bitcoinovými adresami viditeľnými v blockchainu.

Screenshot of the Coldcard Mk3 model.
Snímka modelu Coldcard Mk3.

Neskoršie modely Coldcard, vrátane Mk4, Q a Mk5, pridali určitú mieru náhodnosti prostredníctvom bezpečnostného prvku. Do postihnutého generátora sa však dostala len obmedzená časť, čo zanechalo odhadom 72 bitov efektívnej entropie na seedoch vytvorených pred inštaláciou opraveného firmvéru. To bolo silnejšie ako v prípade modelu Mk3, ale stále pod zamýšľaným 128-bitovým štandardom.

Tento rozdiel je podobný nahradeniu skutočne náhodnej kombinácie zámku kombináciou odvodenou zo sériového čísla zámku a času, kedy bol zámok prvýkrát zapnutý. Výsledná kombinácia môže vyzerať náhodne, ale niekto, kto pozná vzorec a vie odhadnúť počiatočné informácie, ju dokáže reprodukovať. Mnohí používatelia prechádzajú nielen zo zariadení Mk3, ale aj z Mk4, Q a Mk5.

Spoločnosť Coinkite odporúča používateľom vytvoriť úplne nové seedové frázy

Spoločnosť Coinkite vydala bezpečnostné upozornenia a opravila firmvér po tom, čo sa dozvedela o aktívnej hrozbe. Spoločnosť uviedla, že používatelia, ktorí si vygenerovali seed na postihnutom firmvéri, by si mali vytvoriť úplne nový seed pomocou opravenej verzie a previesť svoje bitcoiny na adresy kontrolované týmto seedom.

Samotná inštalácia aktualizácie nestačí. Seed vytvorený v rámci chybného systému zostáva natrvalo zraniteľný, pretože aktualizácia firmvéru nemôže pridať náhodnosť k slovám, ktoré už existujú.

Spoločnosť Coinkite odporúča používateľom aktualizovať svoje zariadenie, vytvoriť nový seed, overiť zálohu a odtlačok peňaženky, potvrdiť prijímaciu adresu, odoslať malú testovaciu transakciu a až potom presunúť zostávajúci zostatok. Používatelia by si mali ponechať starú zálohu, kým nebude prevod potvrdený, nemali by však starý seed naďalej považovať za bezpečný.

Spoločnosť identifikovala opravené verzie, vrátane Mk3 verzie 4.2.0 alebo novšej, Mk4 a Mk5 verzie 5.6.0 alebo novšej a Q verzie 1.5.0Q alebo novšej, spolu s príslušnými verziami Edge. Produkty Tapsigner, Opendime a Satscard používajú odlišný kód a podľa správ neboli ovplyvnené.

Dodatočné bezpečnostné opatrenia chránili niektorých vlastníkov Coldcard

Používatelia, ktorí pri generovaní seedu pridali dostatočný počet nezávislých hodov kockou, boli podstatne chránení, pretože ich vlastná náhodnosť prevážila nad chybným softvérovým vstupom. Spoločnosť Coinkite uviedla, že aspoň 50 súkromných hodov spravodlivou kockou poskytlo dostatočnú ochranu pred týmto problémom, hoci ďalšie hody môžu poskytnúť väčšiu bezpečnostnú rezervu.

Silná heslová fráza podľa BIP-39 tiež vytvára samostatnú peňaženku, ktorú nie je možné rekonštruovať len na základe slov seed. Peňaženky s viacnásobným podpisom, ktoré vyžadujú kľúče z viacerých zariadení alebo lokalít predtým, ako je možné presunúť bitcoiny, boli do veľkej miery alebo úplne chránené, ak zraniteľný seed z Coldcard predstavoval len jednu časť schémy podpisovania.

Tieto bezpečnostné opatrenia boli však voliteľné. Zdá sa, že mnohé obete postupovali podľa štandardných bezpečnostných odporúčaní dostupných v tom čase: kúpiť renomovanú hardvérovú peňaženku, vygenerovať seed offline, chrániť zálohu a nikdy ju nezadávať do zariadenia pripojeného k internetu.

Spoločnosť Coinkite priznala vinu, zatiaľ čo sa debata presúva na umelú inteligenciu

Generálny riaditeľ spoločnosti Coinkite Rodolfo Novak, všeobecne známy ako NVK, sa 31. júla verejne ospravedlnil a uviedol, že spoločnosť prijíma plnú zodpovednosť za zlyhanie firmvéru. „Je mi to ľúto a som zdrvený. Náš tím je v dôsledku včerajších správ zúfalý,“ napísal Novak. Uznal, že opravný balík zabezpečuje novo vytvorené seed kódy, nedokáže však opraviť seed kódy vygenerované v rámci zraniteľného softvéru.

Coinkite CEO Rodolfo Novak's article screenshot.
Článok s ospravedlnením generálneho riaditeľa spoločnosti Coinkite Rodolfa Novaka. Zdroj obrázku: X.

Novak vysvetlil, že spoločnosť Coinkite zverejní úplnú technickú správu po overení podrobností a bude pomáhať postihnutým používateľom pri podávaní policajných oznámení, poistných nárokov alebo pri nezávislých vyšetrovaniach. Zároveň varoval vývojárov, že nástroje umelej inteligencie (AI) dokážu teraz skenovať starý verejne dostupný kód a vyhľadávať skryté slabiny rýchlejšie, než ich dokážu odhaliť tradičné procesy kontroly.

Spoločnosť Coinkite zdôraznila, že musí predpokladať, že útočník použil AI na preskúmanie jej open-source firmvéru, hoci neexistujú žiadne dôkazy o tom, ako bola táto chyba objavená. Spoločnosť tiež pripustila, že nedávna kontrola vykonaná pomocou popredného modelu umelej inteligencie tento problém nezistila. Niekoľko konkurenčných výrobcov hardvérových peňaženiek sa na sociálnych médiách vyjadrilo, že ich produkty nie sú postihnuté.

„Spoločnosť Ledger nie je ovplyvnená nedávno zverejneným upozornením týkajúcim sa Coldcard Mk3,“ uviedla spoločnosť používateľom X po incidente s Coldcard. „Zariadenia Ledger používajú certifikovaný generátor skutočne náhodných čísel (TRNG) zabudovaný priamo do nášho čipu Secure Element, ktorý generuje plných 256 bitov entropie pre každú 24-slovnú tajnú obnovovaciu frázu.“

„Používatelia Trezoru: vaše prostriedky sú v bezpečí,“ vysvetlil v piatok výrobca hardvérových peňaženiek Trezor. „Nedávny problém s Coldcardom sa obmedzuje na ich vlastný firmvér a spôsob, akým niektoré z ich zariadení generovali náhodnosť. Trezor tento kód nepoužíva.“

Účet Trezor X dodal:

„Vždy sme kombinovali viacero nezávislých zdrojov náhodnosti (hardvér zariadenia + hostiteľ + bezpečnostné prvky v novších modeloch). Úprimne sa ospravedlňujeme všetkým, ktorí prišli o bitcoiny.“

Na čo by si mali používatelia Coldcardu dávať pozor ďalej

Totožnosť útočníka zostáva neznáma a ukradnuté bitcoiny sa môžu kedykoľvek presunúť zo svojich konsolidačných adries. Vyšetrovatelia stále pracujú na zistení, koľko zraniteľných seedov bolo skutočne vygenerovaných, koľko bitcoinov zostáva ohrozených a či útočník už identifikoval ďalšie peňaženky s vysokou hodnotou. Spoločnosť Coinkite však nemusí mať veľa informácií o majiteľoch z dávnej minulosti.

„Zábavný dvojsečný meč: Spoločnosť Coinkite po 120 dňoch vymaže všetky záznamy o svojich zákazníkoch, aby sa chránila pred únikmi údajov,“ uviedol na X spoluzakladateľ spoločnosti Casa, Jameson Lopp. „To znamená, že nemôžu kontaktovať zákazníkov, ktorí si v priebehu posledných 5 rokov kúpili zraniteľné coldcards, aby ich varovali pred touto zraniteľnosťou.“

X screenshot of the pseudonymous open-source bitcoin developer calle.
Pseudonymný open-source vývojár bitcoinu s prezývkou calle sa podelil o svoje názory na túto záležitosť. „Je mi naozaj ľúto všetkých postihnutých, najmä tých, ktorí možno práve prišli o svoje celoživotné úspory. Najhoršie na tom je, že urobili všetko správne,“ uviedol calle na X.

Tento incident zároveň otestuje, či spoločnosť Coinkite dokáže obnoviť dôveru v Coldcard a či výrobcovia hardvérových peňaženiek zavedú prísnejšie nezávislé kontroly generovania seedov. Pre používateľov je bezprostredná priorita jednoduchšia: Každý, kto vytvoril seed na postihnutom firmvéri bez silnej nezávislej entropie kocky, hesla alebo ochrany viacnásobným podpisom, by ho mal považovať za kompromitovaný a opatrne presunúť prostriedky do novo vygenerovanej peňaženky.

Okrem tejto ničivej krádeže bitcoinisti v celej komunite bijú na poplach a nabádajú ostatných, aby šírili túto správu, kým nebudú vyprázdnené ďalšie zraniteľné peňaženky.

Tento článok bol preložený z angličtiny pomocou umelej inteligencie. Pôvodná anglická verzia je autoritatívnym zdrojom; automatické preklady môžu obsahovať nepresnosti, najmä v právnej a regulačnej terminológii.