Pet let stara varnostna luknja v programski opremi Coldcard je morda omogočila napadalcu, da je rekonstruiral zasebne ključe in ukradel več kot 1.100 bitcoinov, zaradi česar je proizvajalec denarnice delno krivdo za to odkritje pripisal umetni inteligenci (AI).
Ali je umetna inteligenca odkrila varnostno luknjo v Coldcardu?

Ključne ugotovitve
- Semena, povezana s Coldcardom, so izpostavila 1.128,4717 BTC v vrednosti približno 71,1 milijona dolarjev.
- Coinkite trdi, da je AI morda odkrila petletno napako, vendar to še ni dokazano.
- Uporabniki Coldcarda z ogroženimi semeni morajo ustvariti nove denarnice na popravljeni firmware.
Usklajena kraja je izpraznila na stotine denarnic
Incident je postal javno znan, potem ko je bilo 30. julija s približno 500 bitcoin naslovov z enim podpisom prenesenih okoli 594 BTC, ki so bili takrat vredni skoraj 38 milijonov dolarjev. Ko se je novica prvič pojavila, je Bitcoin.com News opozoril, da so se prenosi zgodili v približno 25 minutah in da so bili očitno usmerjeni v denarnice z enako tehnično ranljivostjo.
Kasnejše preglede verige blokov so razširile možen obseg tatvine. Raziskovalci so ocenili, da je bilo v obdobju približno 41 minut prizadetih med 1.082 in 1.196 naslovov. Prilagojena nadzorna plošča z imenom Coldcard Sweep Watch je nato skupni znesek ocenila na 1.128,4717 BTC, kar je bilo vredno približno 71,1 milijona dolarjev, ko se je bitcoin trgoval blizu 63.044 dolarjev.

Večina sredstev je bila združena na naslovu, na katerem je bilo shranjenih več sto bitcoinov, kjer je velik del sredstev ostal v glavnem nespremenjen. Prizadete naslove je povezovala ena pomembna podrobnost: njihova obnovitvena semena so bila ustvarjena na strojnih denarnicah Coldcard, ki jih proizvaja kanadsko podjetje Coinkite.
Ključ za obnovo je seznam besed, ki nadzira dostop do denarnice za kriptovalute. Kdor koli lahko ta ključ rekonstruira ali pridobi, lahko običajno prenese sredstva iz denarnice, ne da bi imel fizično napravo.
Coldcard odkrije pomanjkljiv sistem naključnosti
Podjetje Coinkite je izdalo nujno opozorilo, da so nekateri ključi, ustvarjeni na napravah Coldcard, lahko šibki. Največjemu tveganju so bile izpostavljene naprave Mk3 z različico programske opreme 4.0.1, izdano okoli marca 2021, ter novejše različice.
Nadaljnja analiza je razširila zaskrbljenost tudi na semena, ustvarjena na nekaterih napravah Mk4, Mk5 in Q, še preden je Coinkite izdal nujne popravke firmware-a. Izdelki Tapsigner, Opendime in Satscard po poročanju niso bili prizadeti, saj uporabljajo drugačno programsko opremo.
Pomanjkljivost je zadevala postopek, ki se uporablja za generiranje naključnih podatkov. Varne denarnice so odvisne od visokokakovostne naključnosti, da njihovih obnovitvenih ključev ni mogoče uganiti. Pri najbolj prizadetih napravah Mk3 so raziskovalci ocenili, da je ključ morda vseboval le okoli 40 bitov dejanske naključnosti namesto predvidenih 128 bitov.
Ta razlika je ključna. Pravilno generirano 128-bitno seme se šteje za praktično nemogoče uganiti z metodo brute force. 40-bitno seme ponuja bistveno manj možnosti, kar napadalcu z zadostno računalniško močjo omogoča, da potencialna semena preizkuša offline in primerja dobljene naslove z javnim Bitcoinovim blockchainom.
Nekatere novejše naprave so morda zagotavljale približno 72 bitov dejanske naključnosti, saj je varna strojna oprema dodala še en sloj nepredvidljivih podatkov. To bi otežilo rekonstrukcijo izhodiščnih vrednosti, čeprav bi bile te še vedno precej šibkejše od predvidenih.
Ena konfiguracijska napaka je ostala neopažena 5 let
Problem se je začel z napako pri konfiguraciji v fazi izdelave, ki je vključevala dve programski funkciji, ki sta opravljali podobne naloge. Ena funkcija je uporabljala strojni generator resničnih naključnih števil, medtem ko se je druga zanašala na šibkejši programski proces, podedovan iz MicroPythona.
Coinkite je nameraval onemogočiti možnost MicroPython. Vendar pa je programska preveritev preverjala le, ali je bila konfiguracijska oznaka definirana, namesto da bi preverila, ali je bila njena vrednost nastavljena na nič. Posledično je končna vgrajena programska oprema lahko neopazno izbrala šibkejšo funkcijo.
Ker sta imeli obe funkciji enake formate, se je programska oprema še naprej kompilirala in izvajala, ne da bi pri tem povzročila očitno napako. Napaka se je vnesla v kodo okoli leta 2021 ob migraciji programske opreme in je ostala v javno dostopni vgrajeni programski opremi več kot pet let.
Posodobitev naprave zdaj ne okrepi semena, ki je bilo ustvarjeno v okviru napakljive programske opreme. Prizadeti uporabniki morajo ustvariti popolnoma novo seme z uporabo popravljene programske opreme ali druge varne naprave, nato pa svoja sredstva prenesti na naslove, ki jih nadzira to novo seme.

Uporabniki, ki so med ustvarjanjem svojega semena dodali vsaj 50 neodvisnih metov kock, so morda zagotovili dovolj dodatne naključnosti, da so se izognili tej ranljivosti. Močna gesla BIP-39 bi prav tako lahko otežila rekonstrukcijo, medtem ko bi denarnice, ki zahtevajo podpise iz več neodvisnih naprav, morda preprečile, da bi eno ogroženo seme samostojno premestilo sredstva.
Coinkite kaže na umetno inteligenco, a dokazi še vedno manjkajo
Izvršni direktor podjetja Coinkite Rodolfo Novak se je javno opravičil in dejal, da podjetje prevzema polno odgovornost za napako v firmwareu. Dejal je, da ekipa dela na popravljeni programski opremi, tehničnih poročilih in podpori za prizadete uporabnike.
Coinkite in Novak sta prav tako predstavila presenetljivo teorijo o tem, kako je bila napaka odkrita. Ker je bila njihova vgrajena programska oprema že več let javno dostopna, je podjetje izjavilo, da verjame, da je morda nekdo uporabil umetno inteligenco za pregled starejših različic kode in odkril šibko točko v naključnosti.
»Vsem drugim razvijalcem: verjamemo, da je to resna realnost novega paradigme umetne inteligence. Pregled kode z umetno inteligenco lahko zdaj odkrije skrite napake s hitrostjo, ki presega celo najizkušenejše strokovnjake v panogi,“ je Novak zapisal v svojem opravičilu, objavljenem na X. „Če je vaša vgrajena programska oprema odprtokodna ali je bila kdaj javno dostopna, predpostavljajte, da jo že preučujejo tako napadalci kot tudi zagovorniki.“
Sodobni sistemi za programiranje z umetno inteligenco lahko obdelujejo velika skladišča programske opreme in prepoznajo sumljive povezave med nastavitvami konfiguracije, funkcijami in varnostnimi predpostavkami. Napadalec bi lahko tak sistem zaprosil, naj posebej poišče šibke generatorje naključnih števil, rezervne funkcije ali napake, ki vplivajo na kriptografske ključe.

Neodvisni raziskovalci so kasneje poročali, da so po tem, ko je bil znan osnovni problem naključnosti, uporabili modele umetne inteligence za lociranje ali pojasnitev težave. To je pokazalo, kako dostopna je postala analiza kode s pomočjo umetne inteligence, vendar ni dokazalo, da je prvotni napadalec uporabil umetno inteligenco.

Podjetje Coinkite je priznalo, da lastna analiza z uporabo vodilnega modela umetne inteligence ni uspela odkriti pomanjkljivosti pred krajo. Ta rezultat kaže, da sistemi umetne inteligence ne odkrijejo samodejno vsake resne napake. Njihova učinkovitost je lahko odvisna od prejetih navodil, količine predložene kode ter tega, ali človeški pregledovalec razume opozorilne znake.
Kritiki trdijo, da je bila najprej človeška napaka
Nekateri varnostni strokovnjaki trdijo, da preveliko osredotočanje na umetno inteligenco (AI) tvega, da se pozornost odvrne od osnovne inženirske napake. Mnogi menijo, da je bila napaka v konfiguraciji znana vrsta programske napake in da bi jo konvencionalni pregledi kode, testni postopki ali revizije, osredotočene na generiranje semena, lahko odkrili že leta prej.

Nasprotna stališča niso nujno nezdružljiva. Človeška napaka je ustvarila ranljivost in omogočila, da je ostala, medtem ko je AI morda znižala stroške njenega odkrivanja, razumevanja ali izkoriščanja. Branilci morajo odkriti vsako nevarno šibkost, medtem ko mora napadalec najti le eno.
Incident prav tako postavlja pod vprašaj predpostavke o varnosti odprtokodne programske opreme. Javna koda omogoča neodvisnim strokovnjakom pregledovanje programske opreme, vendar sama dostopnost ne zagotavlja, da bo nekdo pregledal pravi del, prepoznal neopazno napako in jo prijavil, preden napadalec ukrepa.
Za uporabnike Coldcarda je najpomembnejša naloga ugotoviti, kdaj in kako je bil ustvarjen njihov seed. Vsakdo, ki ima prizadet seed, mora preveriti navodila prek uradnih kanalov Coinkite, namestiti popravljeno firmware, ustvariti nov seed ter previdno prenesti sredstva, pri tem pa paziti na poskuse phishinga in lažna sporočila podpore.
Dolgoročnejša vprašanja se bodo osredotočila na to, koliko bitcoinov je bilo ukradenih, ali bodo preiskovalci lahko identificirali napadalca in ali je umetna inteligenca igrala odločilno vlogo pri odkritju pomanjkljivosti. Podjetja, ki proizvajajo strojne denarnice, bodo prav tako pod pritiskom, da okrepijo testiranje entropije, revidirajo konfiguracije zgradb in nenehno pregledujejo staro kodo tako s pomočjo človeških strokovnjakov kot tudi z orodji umetne inteligence, zasnovanimi za odkrivanje pomanjkljivosti.
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.
















