Poganja
Featured

Razlaga ranljivosti »Coldcard«: Kdo je izgubil bitcoine in kdo je ogrožen

Napadalec je 30. julija izkoristil šibke semenske ključe, ki so jih ustvarile nekatere strojne denarnice Coldcard, in s stotine naslovov ukradel bitcoine v vrednosti približno deset milijonov.

DELI
Razlaga ranljivosti »Coldcard«: Kdo je izgubil bitcoine in kdo je ogrožen

Ključne ugotovitve

  • Kraja, povezana s Coldcardom, so 30. julija izpraznila bitcoine iz več sto denarnic.
  • Po navedbah podjetja Coinkite so imela semena Mk3 približno 40 bitov entropije namesto 128.
  • Uporabniki Coldcard morajo namestiti popravljeno programsko opremo in ustvariti nova semena, preden prenesejo sredstva.

Po podrobni analizi podjetja Galaxy Research se je glavna kraja odvijala v tesno usklajenem izbruhu, ki je trajal približno 25 minut, medtem ko je širša analiza kasneje povezala približno 1.196 naslovov in kar 1.083 bitcoinov v vrednosti skoraj 70 milijonov dolarjev z aktivnostjo, ki je trajala približno 41 minut. Končne številke se lahko spremenijo, saj preiskovalci še naprej sledijo transakcijam na javni verigi blokov bitcoina.

Pet let stara varnostna luknja prizadela bitcoin denarnice po vsem svetu

Prizadete denarnice so v glavnem pripadale dolgoročnim imetnikom, ki so svoje obnovitvene ključe ustvarili z napravami Coldcard, na katerih je tekla ranljiva programska oprema, izdana od marca 2021 naprej. Coldcard je strojna denarnica z zračno izolacijo, ki jo proizvaja kanadski proizvajalec Coinkite in je zasnovana tako, da ključe za bitcoine (BTC) ohranja ločene od naprav, povezanih z internetom.

Mnoge od izpraznjenih naslovov so bile več let neaktivne. Napadalec je deloval hitro, plačal višje fiksne transakcijske provizije in ni pustil nobenih izhodnih zneskov, kar pomeni, da je bil vsak naslov popolnoma izpraznjen. Ta vzorec kaže na avtomatizirano operacijo z uporabo vnaprej pripravljenega seznama zasebnih ključev, namesto da bi stranke samostojno premikale svoja sredstva.

Kraja ni bila posledica phishinga, zlonamerne programske opreme na uporabnikovem računalniku, fizične kraje naprave ali običajnega oddaljenega vdora. Namesto tega je napaka v vgrajeni programski opremi oslabila naključnost, ki se je uporabljala pri ustvarjanju semenskih ključev denarnic na nekaterih napravah Coldcard. Ti semenski ključi so izgledali normalno, vendar so izhajali iz precej manjšega obsega možnih kombinacij, kot je bilo obljubljeno uporabnikom.

Generator naključnih številk podjetja Coldcard je tiho odpovedal

Semenski niz denarnice Bitcoin je skrivnost, ki se običajno prikaže kot 12 ali 24 besed, iz katerih denarnica ustvari svoje naslove in zasebne ključe. Pravilno ustvarjen 12-besedni semenski niz vsebuje 128 bitov entropije, tehnične mere, ki opisuje ogromno število možnih kombinacij, zaradi česar je uganjanje semenskega niza dejansko nemogoče.

Naprave Coldcard naj bi to naključnost pridobivale iz strojne naprave za generiranje naključnih številk znotraj mikrokontrolerja naprave. Ta komponenta črpa iz fizičnega električnega šuma, ki ga zunanji opazovalec ne bi smel biti sposoben napovedati.

Vendar je Coinkite med migracijo programske knjižnice leta 2021 razkril, da sta se dve funkciji za generiranje naključnih števil z ujemajočimi vmesniki zamenjali. Ena je dostopala do pravega strojne generatorja naprave. Druga pa je bila šibka programska rešitev, namenjena ploščam brez ustrezne strojne opreme.

Nastavitev konfiguracije je onemogočila privzeto strojno pot MicroPythona, ker je podjetje Coinkite zagotovilo lasten strojni ovitek. Programska oprema je preverila le, ali ta nastavitev obstaja, ne pa tudi, ali je omogočena. Ker je bila nastavitev prisotna, vendar ji je bila dodeljena vrednost nič, se je sestavljanje uspešno zaključilo, medtem ko se je ustvarjanje izhodiščnih vrednosti neopazno preusmerilo na šibkejši programski generator.

Tovarniški podatki in časovni intervali so nadomestili pravo naključnost

Ta nadomestna rešitev se je močno opirala na predvidljive informacije o napravi, vključno z identifikatorjem čipa, podobnim serijski številki, in vrednostmi notranje ure, povezanimi s časom zagona. Napadalec, ki bi lahko omejil te vnosne podatke, bi se soočil z veliko manjšim obsegom iskanja kot 128-bitni razpon, ki se pričakuje od varno generiranega semena.

Coinkite je po trenutnih predpostavkah ocenil, da je dejanski prostor iskanja za ranljiva semena modela Mk3 približno 40 bitov. To je še vedno veliko število možnosti, vendar jih je mogoče preiskati s specializirano računalniško opremo, še posebej če lahko napadalec primerja možna semena z naslovi bitcoinov, vidnimi v verigi blokov.

Screenshot of the Coldcard Mk3 model.
Posnetek modela Coldcard Mk3.

Novejši modeli Coldcard, vključno z Mk4, Q in Mk5, so dodali nekaj naključnosti iz varnostnega elementa. Vendar je le omejen del te naključnosti dosegel prizadet generator, kar je pustilo ocenjenih 72 bitov efektivne entropije na semnih vrednostih, ustvarjenih pred namestitvijo popravljene programske opreme. To je bilo močnejše od poteka pri modelu Mk3, a še vedno pod predvidenim 128-bitnim standardom.

Razlika je podobna zamenjavi resnično naključne kombinacije ključavnice s tisto, ki je izpeljana iz serijske številke ključavnice in časa, ko je bila prvič vklopljena. Rezultatna kombinacija morda izgleda naključna, vendar jo lahko nekdo, ki pozna formulo in lahko oceni izhodiščne podatke, ponovi. Mnogi uporabniki prehajajo ne le z naprav Mk3, temveč tudi z naprav Mk4, Q in Mk5.

Coinkite uporabnikom svetuje, naj ustvarijo povsem nove semenske ključe

Coinkite je objavil varnostna obvestila in popravil firmware, potem ko se je zavedel aktivne grožnje. Podjetje je povedalo, da morajo uporabniki, ki so ustvarili semena na prizadetem firmwareu, ustvariti popolnoma novo seme z uporabo popravljene različice in prenesti svoje bitcoine na naslove, ki jih nadzira to seme.

Sama namestitev posodobitve ni dovolj. Semenski ključ, ustvarjen v okviru pomanjkljivega sistema, ostane trajno ranljiv, saj posodobitev programske opreme ne more dodati naključnosti besedam, ki že obstajajo.

Coinkite je uporabnikom svetoval, naj posodobijo svojo napravo, ustvarijo novo seme, preverijo varnostno kopijo in prstni odtis denarnice, potrdijo naslov prejemnika, pošljejo majhno testno transakcijo in nato prenesejo preostalo stanje. Uporabniki naj staro varnostno kopijo hranijo, dokler ni prenos potrjen, vendar naj starega semena ne obravnavajo več kot varnega.

Podjetje je opredelilo popravljene različice, vključno z Mk3 različico 4.2.0 ali novejšo, Mk4 in Mk5 različico 5.6.0 ali novejšo ter Q različico 1.5.0Q ali novejšo, skupaj z ustreznimi različicami Edge. Izdelki Tapsigner, Opendime in Satscard uporabljajo drugačno kodo in po poročanju niso bili prizadeti.

Dodatna varnost je zaščitila nekatere lastnike kartic Coldcard

Uporabniki, ki so pri ustvarjanju semena dodali dovolj neodvisnih metov kocke, so bili v veliki meri zaščiteni, saj je njihova lastna naključnost prevladala nad napako v programski opremi. Coinkite je navedel, da je vsaj 50 zasebnih metov poštene kocke zagotovilo ustrezno zaščito pred to težavo, čeprav lahko dodatni meti zagotovijo širši varnostni razpon.

Močna gesla po standardu BIP-39 ustvarijo tudi ločeno denarnico, ki je ni mogoče rekonstruirati zgolj iz besed semena. Denarnice z več podpisov, ki za prenos bitcoinov zahtevajo ključe z več naprav ali lokacij, so bile v veliki meri ali v celoti zaščitene, kadar je ranljivo seme Coldcard predstavljalo le en del postopka podpisovanja.

Vendar so bili ti varnostni ukrepi neobvezni. Zdi se, da je veliko žrtev upoštevalo standardna varnostna priporočila, ki so bila takrat na voljo: kupite ugledno strojno denarnico, ustvarite seme brez povezave z internetom, zaščitite varnostno kopijo in ga nikoli ne vnesite v napravo, povezano z internetom.

Coinkite prevzame odgovornost, medtem ko se razprava usmerja na umetno inteligenco

Izvršni direktor podjetja Coinkite Rodolfo Novak, splošno znan kot NVK, se je 31. julija javno opravičil in dejal, da podjetje prevzema polno odgovornost za napako v vgrajeni programski opremi. »Žal mi je in sem popolnoma uničen. Naša ekipa je ob včerajšnjih novicah globoko prizadeta,« je zapisal Novak. Priznal je, da popravek (hotfix) zavaruje novo ustvarjene semenske ključe, vendar ne more popraviti tistih, ki so bili ustvarjeni z ranljivo programsko opremo.

Coinkite CEO Rodolfo Novak's article screenshot.
Članek z opravičilom izvršnega direktorja podjetja Coinkite, Rodolfa Novaka. Vir slike: X.

Novak je pojasnil, da bo podjetje Coinkite po preverjanju podrobnosti objavilo celotno tehnično poročilo ter pomagalo prizadetim uporabnikom pri pripravi policijskih poročil, zavarovalnih zahtevkov ali neodvisnih preiskav. Razvijalce je tudi opozoril, da orodja umetne inteligence (AI) zdaj lahko pregledujejo staro javno kodo za skrite šibkosti hitreje, kot jih lahko odkrijejo tradicionalni postopki pregledovanja.

Coinkite je poudaril, da mora domnevati, da je napadalec uporabil AI za pregled njihove odprtokodne programske opreme, čeprav ni dokazov, ki bi potrdili, kako je bila pomanjkljivost odkrita. Podjetje je tudi priznalo, da nedavni pregled, izveden z vodilnim modelom AI, ni uspel identificirati problema. Več konkurenčnih proizvajalcev strojne denarnice je na družbenih omrežjih poudarilo, da njihovi izdelki niso prizadeti.

»Ledger ni prizadet zaradi nedavno objavljenega obvestila o Coldcard Mk3,« je podjetje po incidentu s Coldcardom sporočilo uporabnikom X. »Naprave Ledger uporabljajo certificiran generator resnično naključnih številk (TRNG), ki je vgrajen neposredno v naš čip Secure Element in ustvarja polno 256-bitno entropijo za vsako 24-besedno skrivno frazo za obnovo.«

»Uporabniki Trezorja: vaša sredstva so varna,« je v petek pojasnil proizvajalec strojne denarnice Trezor. »Nedavna težava s Coldcardom je omejena na njihovo lastno prilagojeno programsko opremo in način, kako so nekatere njihove naprave ustvarjale naključnost. Trezor te kode ne uporablja.«

Račun Trezor X je dodal:

»Vedno smo združevali več neodvisnih virov naključnosti (strojna oprema naprave + gostitelj + varnostni elementi na novejših modelih). Iskreno se opravičujemo vsem, ki so izgubili bitcoine.«

Na kaj naj bodo uporabniki Coldcarda pozorni v prihodnje

Identiteta napadalca ostaja neznana, ukradeni bitcoini pa se lahko kadarkoli prenesejo s konsolidacijskih naslovov. Preiskovalci še vedno poskušajo ugotoviti, koliko ranljivih semenskih ključev je bilo dejansko ustvarjenih, koliko bitcoinov ostaja izpostavljenih in ali je napadalec že identificiral dodatne denarnice z visoko vrednostjo. Vendar pa Coinkite morda nima veliko podatkov o lastnikih iz davne preteklosti.

»Zanimiv dvorezni meč: Coinkite po 120 dneh izbriše vse zapise o strankah, da se zaščiti pred kršitvami varnosti podatkov,« je na X poročal soustanovitelj podjetja Casa, Jameson Lopp. »To pomeni, da ne morejo stopiti v stik s strankami, ki so v zadnjih 5 letih kupile ranljive coldcard kartice, da bi jih opozorili na to ranljivost.«

X screenshot of the pseudonymous open-source bitcoin developer calle.
Razvijalec odprtokodnega bitcoina pod psevdonimom calle je delil svoje misli o tej zadevi. »Resnično mi je žal za vse prizadete, še posebej za tiste, ki so morda pravkar izgubili svoje življenjske prihranke. Najhujše je, da so storili vse pravilno,« je calle zapisal na X.

Incident bo tudi preizkusil, ali lahko Coinkite ponovno vzpostavi zaupanje v Coldcard in ali bodo proizvajalci strojnih denarnic uvedli strožje neodvisne preglede ustvarjanja semenskih fraz. Za uporabnike je takojšnja prednostna naloga preprostejša: vsak, ki je ustvaril semensko frazo na prizadeti programski opremi brez močne neodvisne entropije kock, gesla ali zaščite z več podpisov, naj jo obravnava kot ogroženo in sredstva previdno prenese v novo ustvarjeno denarnico.

Poleg te uničujoče kraje bitcoiners po vsej skupnosti bijejo na alarm in pozivajo druge, naj širijo to novico, preden bodo izpraznjene še bolj ranljive denarnice.

Ta članek je bil iz angleščine preveden z umetno inteligenco. Izvirna angleška različica je verodostojni vir; samodejni prevodi lahko vsebujejo netočnosti, zlasti pri pravni in regulativni terminologiji.