Päť rokov stará chyba v softvéri Coldcard mohla útočníkovi umožniť rekonštruovať súkromné kľúče a odcudziť viac ako 1 100 bitcoinov, čo viedlo výrobcu peňaženky k tomu, že za tento objav čiastočne viní umelú inteligenciu (AI).
Bola umelá inteligencia zodpovedná za odhalenie bezpečnostnej chyby v Coldcard?

Kľúčové body
- Semená spojené s Coldcardom odhalili 1 128,4717 BTC v hodnote približne 71,1 milióna dolárov.
- Spoločnosť Coinkite tvrdí, že túto päťročnú chybu mohla odhaliť umelá inteligencia, avšak jej podiel na tom zostáva nepotvrdený.
- Používatelia Coldcard s postihnutými seedmi musia vytvoriť nové peňaženky na opravenom firmvéri.
Koordinovaná krádež vyprázdnila stovky peňaženiek
Incident sa stal verejným po tom, čo sa 30. júla presunulo približne 594 BTC, ktorých hodnota v tom čase dosahovala takmer 38 miliónov dolárov, z približne 500 bitcoinových adries s jedným podpisom. Keď sa táto správa prvýkrát objavila, portál Bitcoin.com News poznamenal, že prevody prebehli v priebehu približne 25 minút a zdalo sa, že boli zamerané na peňaženky so spoločnou technickou slabosťou.
Neskoršie analýzy blockchainu rozšírili možný rozsah krádeže. Výskumníci odhadli, že počas približne 41 minút mohlo byť postihnutých medzi 1 082 a 1 196 adries. Špeciálny kontrolný panel s názvom Coldcard Sweep Watch následne stanovil celkovú sumu na 1 128,4717 BTC, čo pri kurze bitcoinu okolo 63 044 USD predstavovalo hodnotu približne 71,1 milióna USD.

Väčšina prostriedkov bola konsolidovaná na adresu, na ktorej sa nachádzali stovky bitcoinov, pričom veľká časť z nich zostala v podstate nehybná. Postihnuté adresy spájal jeden dôležitý detail: ich obnovovacie kľúče boli vytvorené na hardvérových peňaženkách Coldcard, ktoré vyrába kanadská spoločnosť Coinkite.
Obnovovacie kľúče sú zoznam slov, ktoré riadia prístup k peňaženke s kryptomenou. Ktokoľvek, kto dokáže tieto kľúče rekonštruovať alebo získať, môže zvyčajne presúvať prostriedky z peňaženky bez toho, aby vlastnil fyzické zariadenie.
Coldcard zistil chybu v systéme generovania náhodných čísel
Spoločnosť Coinkite vydala naliehavé upozornenie, že niektoré kľúče vygenerované na zariadeniach Coldcard môžu byť slabé. Medzi zariadenia s najvyšším rizikom patrili zariadenia Mk3 s verziou firmvéru 4.0.1, vydanou približne v marci 2021, a novšie verzie.
Ďalšia analýza rozšírila obavy aj na kľúče vytvorené na niektorých zariadeniach Mk4, Mk5 a Q ešte predtým, ako spoločnosť Coinkite vydala núdzové opravy firmvéru. Produkty Tapsigner, Opendime a Satscard údajne neboli ovplyvnené, pretože používajú iný softvér.
Chyba sa týkala procesu používaného na generovanie náhodných údajov. Bezpečné peňaženky závisia od vysokej kvality náhodnosti, aby nebolo možné uhádnuť ich obnovovacie seed. V prípade najviac postihnutých zariadení Mk3 výskumníci odhadli, že seed mohol obsahovať len približne 40 bitov efektívnej náhodnosti namiesto zamýšľaných 128 bitov.
Tento rozdiel je kritický. Správne vygenerované 128-bitové kľúčové semeno sa považuje za prakticky nemožné uhádnuť metódou hrubou silou. 40-bitové kľúčové semeno ponúka dramaticky menej možností, čo umožňuje útočníkovi s dostatočným výpočtovým výkonom testovať potenciálne kľúčové semená offline a porovnávať výsledné adresy s verejným blockchainom bitcoinu.
Niektoré novšie zariadenia mohli poskytovať približne 72 bitov efektívnej náhodnosti, pretože bezpečný hardvér pridal ďalšiu vrstvu nepredvídateľných údajov. Vďaka tomu by bolo rekonštruovanie počiatočných hodnôt ťažšie, hoci by boli stále oveľa slabšie, než bolo zamýšľané.
Jedna konfiguračná chyba pretrvávala 5 rokov
Problém začal konfiguračnou chybou pri kompilácii, ktorá sa týkala dvoch softvérových funkcií vykonávajúcich podobné úlohy. Jedna funkcia využívala hardvérový generátor skutočných náhodných čísel zariadenia, zatiaľ čo druhá sa spoliehala na slabší softvérový proces zdedený z MicroPythonu.
Spoločnosť Coinkite mala v úmysle deaktivovať možnosť MicroPython. Softvérová kontrola však overovala len to, či bol definovaný konfiguračný štítok, a nie to, či bola jeho hodnota nastavená na nulu. V dôsledku toho mohol hotový firmvér bez upozornenia vybrať slabšiu funkciu.
Keďže obe funkcie mali zhodné formáty, softvér pokračoval v kompilácii a behu bez toho, aby vygeneroval zjavnú chybu. Chyba sa dostala do kódu v súvislosti s migráciou softvéru v roku 2021 a zostala vo verejne dostupnom firmvéri viac ako päť rokov.
Aktualizácia zariadenia teraz nezabezpečí posilnenie seedu, ktorý bol vygenerovaný pod chybným softvérom. Postihnutí používatelia musia vytvoriť úplne nový seed pomocou opraveného firmvéru alebo iného bezpečného zariadenia a následne presunúť svoje prostriedky na adresy kontrolované týmto novým seedom.

Používatelia, ktorí pri vytváraní svojho seedu pridali aspoň 50 nezávislých hodov kockou, mohli poskytnúť dostatočné množstvo náhodnosti na to, aby sa tejto slabine vyhli. Silná heslová fráza podľa BIP-39 mohla tiež sťažiť rekonštrukciu, zatiaľ čo peňaženky vyžadujúce podpisy z viacerých nezávislých zariadení mohli zabrániť tomu, aby jeden kompromitovaný seed sám presunul prostriedky.
Spoločnosť Coinkite poukazuje na umelú inteligenciu, dôkaz však stále chýba
Generálny riaditeľ spoločnosti Coinkite Rodolfo Novak sa verejne ospravedlnil a uviedol, že spoločnosť preberá plnú zodpovednosť za zlyhanie firmvéru. Povedal, že tím pracuje na opravenom softvéri, technických správach a podpore pre postihnutých používateľov.
Spoločnosť Coinkite a Novak tiež predložili zaujímavú teóriu o tom, ako bola chyba objavená. Keďže ich firmvér bol už roky verejne dostupný, spoločnosť uviedla, že sa domnieva, že niekto mohol použiť umelú inteligenciu na preskúmanie starších verzií kódu a lokalizovanie slabého miesta v náhodnosti.
„Všetkým ostatným vývojárom: veríme, že toto je triezva realita nového paradigmy umelej inteligencie. Kontrola kódu s pomocou umelej inteligencie dokáže teraz odhaliť skryté chyby rýchlosťou, ktorá predbieha aj tých najskúsenejších odborníkov v odvetví,“ napísal Novak vo svojom ospravedlňujúcom príspevku uverejnenom na X. „Ak je váš firmvér open-source alebo bol niekedy verejne dostupný, predpokladajte, že ho už čítajú útočníci aj obrancovia.“
Dnešné moderné systémy kódovania s využitím umelej inteligencie dokážu spracovávať rozsiahle softvérové repozitáre a identifikovať podozrivé vzťahy medzi konfiguračnými nastaveniami, funkciami a bezpečnostnými predpokladmi. Útočník by mohol takýto systém požiadať, aby hľadal konkrétne slabé generátory náhodných čísel, záložné funkcie alebo chyby ovplyvňujúce kryptografické kľúče.

Nezávislí výskumníci neskôr uviedli, že po zistení základného problému s náhodnosťou použili modely umelej inteligencie na lokalizáciu alebo vysvetlenie tohto problému. To ukázalo, aká dostupná sa stala analýza kódu s podporou umelej inteligencie, nepreukázalo však, že pôvodný útočník umelú inteligenciu použil.

Spoločnosť Coinkite pripustila, že jej vlastná kontrola s využitím popredného modelu umelej inteligencie nedokázala odhaliť túto chybu pred krádežou. Tento výsledok ukazuje, že systémy umelej inteligencie automaticky neodhalia každú závažnú chybu. Ich výkonnosť môže závisieť od pokynov, ktoré dostanú, od množstva poskytnutého kódu a od toho, či ľudský kontrolór rozumie varovným signálom.
Kritici tvrdia, že najskôr došlo k ľudskému zlyhaniu
Niektorí bezpečnostní špecialisti tvrdia, že prílišné sústredenie sa na umelú inteligenciu (AI) môže odvádzať pozornosť od základného technického zlyhania. Mnohí sa domnievajú, že konfiguračná chyba bola známym typom softvérovej chyby a že ju mohli odhaliť už pred rokmi bežné kontroly kódu, testovacie postupy alebo audity zamerané na generovanie seedov.

Tieto protichodné názory nie sú nutne nezlučiteľné. Ľudská chyba vytvorila zraniteľnosť a umožnila jej pretrvávanie, zatiaľ čo umelá inteligencia mohla znížiť náklady na jej nájdenie, pochopenie alebo zneužitie. Obrancovia musia identifikovať každú nebezpečnú slabinu, zatiaľ čo útočník potrebuje nájsť len jednu.
Tento incident zároveň spochybňuje predpoklady o bezpečnosti open-source softvéru. Verejný kód umožňuje nezávislým odborníkom kontrolovať softvér, ale samotná dostupnosť nezaručuje, že niekto skontroluje správnu časť, rozpozná nenápadnú chybu a nahlási ju skôr, ako útočník začne konať.
Pre používateľov Coldcard je bezprostrednou prioritou zistiť, kedy a ako bol vytvorený ich seed. Každý, kto má postihnutý seed, musí overiť pokyny prostredníctvom oficiálnych kanálov Coinkite, nainštalovať opravený firmware, vytvoriť nový seed a opatrne presúvať prostriedky, pričom si musí dávať pozor na pokusy o phishing a falošné správy od podpory.
Dlhodobejšie otázky sa budú týkať toho, koľko bitcoinov bolo odcudzených, či vyšetrovatelia dokážu identifikovať útočníka a či umelá inteligencia zohrala rozhodujúcu úlohu pri odhalení chyby. Spoločnosti vyrábajúce hardvérové peňaženky budú tiež pod tlakom, aby posilnili testovanie entropie, vykonali audit konfigúrácií zostáv a nepretržite skúmali starý kód pomocou ľudských odborníkov aj nástrojov umelej inteligencie zameraných na odhaľovanie chýb.
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.
















