Az amerikai hatóságok tudják, hogy ki áll az első Coldcard-támadás mögött

Cikk meghallgatása

00:00 00:00

Néhány órája egyre több poszt és tweet jelent meg arról, hogy az amerikai hatóságok már tudják, ki ürítette ki az első – és egyben legnagyobb – 2026. júliusi támadási hullámban ellopott több mint ezer bitcoint a Coldcard tárcákból. A nyomok szerint az elkövető on-chain tranzakcióit egy nagy blokklánc-adatszolgáltató fizetős fiókjáig sikerült visszakövetni, és a szolgáltató belső naplói pontosan egyeztek a lopások mintázatával. Eközben a támadás továbbra is zajlik: a gyenge privát kulcsokat célozza, amelyeket a Coldcard eszközök (akár már az MK2 modell) 4.0.1-es vagy újabb firmware-ével generáltak.

Az első hullámban ellopott 1082,65 BTC továbbra is érintetlenül áll a támadó címén. Ez reményt adhat arra, hogy az áldozatok esetleg visszakaphatják a pénzüket. A legfontosabb kérdés most az, hogy ki a hacker, és hogy az eddig feltárt nyomok kifinomult külső támadóra, vagy esetleg valami sokkal kellemetlenebbre – egy, a Coinkite által évekkel korábban is felvetett úgynevezett „retirement attackre”, azaz szándékosan előkészített belső támadásra – mutatnak-e.

A támadás első részletei és a reakciók

Július 30-án egy támadó szisztematikusan elkezdte kiüríteni azokat a Bitcoin-tárcákat, amelyek olyan firmware-rel generáltak seedeket, amelyben egy éveken át észrevétlenül maradt hiba volt. Az első és legnagyobb hullámban önmagában 1082,65 BTC mozdult meg. Ezt követően további hullámok indultak, és az összes érintett bitcoin mennyiségére már több mint 2000 BTC-s becslések is születtek. Alex Thorn, a Galaxy Research munkatársa az on-chain tranzakciók elemzését és az áldozatok önkéntes beszámolóit kombinálva követte nyomon a támadásokat. Augusztus elejére a több hullámból származó megerősített és becsült veszteség meghaladta az 1800 BTC-t, több ezer érintett cím mellett. A pontos végösszeg azonban továbbra is változik, ahogy újabb áldozatok jelentkeznek. Dollárban ez nagyjából 110–120 millió dollárnyi megerősített lopást jelent.

Thorn nyilvánosan arról is beszélt, hogy a hatóságoknak akár már konkrét nyomuk is lehet az első, legnagyobb hullám elkövetőjéhez. Szerinte az első hullám továbbra is a legnagyobb egyedi zsákmány, és az ellopott bitcoinok még mindig a támadó címén vannak. A második hullám mintázata annyira hasonló, hogy akár ugyanaz az elkövető is állhat mögötte (ez nagyjából további 76 BTC-t jelent).

Az első hullám támadójának lehetséges azonosítására vonatkozó legfontosabb információ forrása Clay Garrett, a Block Bitkey-projektjének mérnöki vezetője. Garrett július 31-én ismertette vizsgálatának eredményeit. A csapat a kiürítési tranzakciókban egy szokatlan mintázatra figyelt fel, és arra a következtetésre jutott, hogy a támadó egy blokkláncadatok elemzésére szakosodott szolgáltatás előfizetője volt, és annak rendszerét használta az érintett Bitcoin-címek lekérdezésére, valamint a támadáshoz kapcsolódó egyéb műveletek előkészítésére. Felvették a kapcsolatot a szolgáltatóval, amelynek belső naplói rendkívül pontosan egyeztek a feltételezett munkafolyamattal – a kérések számát, időzítését és sorrendjét illetően is.

Thorn és más elemzők szerint a későbbi, kisebb hullámok működési mintázata eltérő. Egyes támadások gyors, opportunista pénzelszívásnak tűnnek, amelyet rövid időn belül pénzmosási tranzakciók követnek. Ez arra utalhat, hogy az eredeti támadás nyilvánosságra kerülése után más szereplők is visszafejtették a gyenge seedek keresési lehetőségét. Az áldozatok által bejelentett támadások száma augusztus 6. után jelentősen visszaesett. Ettől függetlenül továbbra is veszélyben lehetnek azok a seedek, amelyeket az érintett firmware-rel generáltak 2021 és a 2026. júliusi javítás között – egészen addig, amíg a felhasználók át nem költöztetik a pénzüket biztonságos tárcába.

Az elméletek a bennfentes akcióról

A hiba természete miatt hamar megjelentek a bennfentes támadásról szóló összeesküvés-elméletek is. A Coinkite maga is beszélt korábban ilyen lehetőségről. A Coldcard hivatalos fiókja 2021 októberében olyan forgatókönyvként írta le, amelyben a projekt készítői szándékosan hibát építenek az entrópiagenerálásba, hogy azt később visszafejthessék. A 2026-os sérülékenység valóban pontosan ilyen eredményhez vezetett: a hibás firmware-rel létrehozott seedek a vártnál lényegesen kevesebb entrópiát tartalmaztak, így évekkel később is kereshetővé és támadhatóvá váltak.

A problémás változtatás 2021. március 1-jén került be a kódbázisba, a „First pass w/ libNgU” című, b18723dd azonosítójú commit részeként. A Coldcard fejlesztői lecserélték a korábbi, Trezor-eredetű kriptográfiai és BIP-39 kód jelentős részét az új libngu könyvtárra (amelyet egy Switch nevű fejlesztő készített). A cél az volt, hogy a véletlenszám-generálás az STM32 hardver valódi véletlenszám-generátorát használja.

A hiba miatt azonban a hívás nem a hardveres RNG-hez, hanem a MicroPython Yasmarang nevű szoftveres PRNG-jéhez vezetett. Ennek következtében az érintett régebbi modelleknél a tényleges entrópia nagyjából 40 bitre, az újabb modelleknél pedig körülbelül 72 bitre esett vissza. Ez azt jelentette, hogy az így létrehozott Bitcoin-privát kulcsok a modern számítási kapacitással már gyakorlatilag kereshetővé váltak.

A kritikus könyvtárcserét a Coinkite CTO-ja, Peter Gray (más néven Doc-Hex) építette be a kódbázisba. Egyesek szerint a változtatás mögött licencelési megfontolások is álltak; Zach Herbert, a Foundation Devices alapítója és vezérigazgatója például erre vezette vissza a migrációt. A Coinkite azonban tagadta, hogy ez lett volna az elsődleges motiváció, és hangsúlyozta, hogy a Coldcardnak a libsecp256k1 használatához volt szüksége a változtatásra, a licencváltás pedig ettől független kérdés. A Coldcard korábban Trezor-eredetű, GPLv3 alatt kiadott kódot használt. Miután a Foundation Devices kapcsolódó kódot forkolt, a Coinkite arra törekedett, hogy a megmaradt komponenseket egy MIT + Commons Clause alapú konstrukcióra helyezze át, amely korlátozta a kereskedelmi célú újrafelhasználást.

A Trezor kriptográfiai könyvtárának lecserélésével kapcsolatban már 2021. április 7-én is felmerült kritika a Coinkite Telegram-csoportjában. Egy hozzászóló azt kérdezte, hogy valóban érdemes-e lecserélni a sok éve használt TrezorCrypto kódot, amelyet korábban biztonsági kutatók és a Wallet.fail szakemberei is alaposan vizsgáltak. A felvetés azonban nem kapott komolyabb figyelmet. Ironikus módon éppen az jelentett volna komolyabb biztonsági előnyt, hogy a Trezor kódját a kriptoközösség széles körben használta, és nyílt licenc alatt elérhető volt – emiatt az évek során jóval több külső ellenőrzésen és kódvizsgálaton esett át, mint a később bevezetett libngu.

A Switch álnév 2019. augusztus 3-án jelent meg az X-en egy DEFCON-ra utaló bejegyzéssel. 2020. október 16-án Switch megköszönte Doc-Hexnek, hogy beolvasztotta a kódját, és azt írta, hogy újabb Bitcoin-könyvtárat készít, amely egy napon akár a COLDCARD számára is hasznos lehet. Néhány nappal később közzétette a libngu-t is. James O’Beirne Bitcoin Core-fejlesztő kutatása szerint a Switch néven commitoló fejlesztő és Peter D. Gray ugyanazokat a GPG-kulcsokat használta: több tucat olyan commitot azonosított, amelyeket a switck néven működő fejlesztő írt alá, de az aláírások Peter D. Gray személyes GPG-kulcsához tartoztak.

Zach Herbert emellett azt állította, hogy a DocHex és Switch X-fiókjaihoz kapcsolódó telefonszámok utolsó két számjegye is megegyezett. Más kutatók hasonló DNS-regisztrációs mintázatokra is felhívták a figyelmet. Gray és a Coinkite a GPG-aláírásokkal kapcsolatos állításokat a cikk készítéséig nyilvánosan nem kommentálta. A Switch-fiók ugyanakkor továbbra is aktív, és még 2026. augusztus 17-én is közölt libnguhoz kapcsolódó kódváltoztatásokat.

Ha Gray valóban szándékosan akarta volna megkárosítani a Coldcard felhasználóit ezzel az RNG-hibával, meglehetősen furcsa lenne, hogy közben a saját GPG-kulcsával írta alá az álnéven készített commitokat. Nehéz egyszerre elképzelni valakit olyan rendkívül előrelátó támadóként, aki évekre előre elrejt egy hibát, majd gondosan kivárja, amíg elegendő felhasználó lesz érintett, miközben olyan alapvető hibát követ el az anonimitásban, hogy ugyanazt a személyes GPG-kulcsot használja.

Valószínűbbnek tűnik, hogy Gray a DEFCON környékén egyszerűen létrehozott egy álneves identitást – talán adatvédelmi vagy biztonsági megfontolásból –, amelyet aztán bizonyos projektekhez az évek során tovább használt. Így a Gray és Switch közötti kapcsolat önmagában aligha jelent döntő bizonyítékot a Coldcard-támadás elkövetőjének azonosítására.

A probléma valószínűleg inkább egy hibás döntés miatt született meg

A közelmúltban több más nyílt forráskódú fejlesztő neve is felmerült, akik közvetve vagy közvetlenül kapcsolatba kerültek a Coldcard RNG-hibájához vezető kóddal. A MicroPython egy könnyű, nyílt forráskódú Python 3-implementáció, amelyet mikrokontrollerekhez és korlátozott erőforrású eszközökhöz terveztek. A Coldcard firmware-e végül a MicroPython Yasmarang PRNG-jét használta az RNG-hiba következtében, és ez vezetett az alacsony entrópiájú seedek generálásához.

A PRNG működését érintő MicroPython-változtatások története 2020. augusztus 20-án kezdődött, amikor egy „mirko” nevű felhasználó megnyitotta a #6347-es GitHub-issue-t. Arra panaszkodott, hogy ESP32-es hardverén egy bizonyos módon meghívva a random.choice() függvényt mindig ugyanazt az eredményt kapja. Ebből hosszabb vita bontakozott ki. Egy adatelemző kutatása szerint 2020. augusztus 22-én egy „robert-hh” néven dolgozó fejlesztő módosítást javasolt arra, hogyan inicializálja a MicroPython a véletlenszám-generátort.

A javaslatot a MicroPython egyik karbantartója, Dpgeorge október 29-én – némi módosítással – beépítette a projekt fejlesztés alatt álló fő ágába. A változtatás során a rendszer több, az eszközhöz és annak működéséhez kapcsolódó értéket (UID-t, SysTick-et és RTC-t) használt fel a véletlenszám-generátor kezdeti állapotának beállításához.

A probléma az, hogy amikor a Coldcard fejlesztői később átvették ezt a kódot a libngu könyvtárba, nem egy már hivatalosan kiadott, stabil MicroPython-verzióból dolgoztak, hanem a fejlesztés alatt álló fő ág egy akkori állapotát használták. Ebben már benne volt a fenti változtatás, miközben a módosítást tartalmazó hivatalos MicroPython-kiadás még nem jelent meg. Ez önmagában nem feltétlenül jelent hibát, de biztonságkritikus szoftver esetében kockázatos lehet.

A MicroPython v1.14 végül 2021. február 3-án jelent meg, és már tartalmazta ezt az RNG-módosítást. A kiadási jegyzet azonban csak röviden említette, hogy az urandom modul bizonyos platformokon már betöltéskor véletlenszerű seedet kap. Ha a Coldcard fejlesztői a MicroPython hivatalosan kiadott, stabil verzióját használták volna a fejlesztés alatt álló változat helyett, akkor az RNG-vel kapcsolatos probléma valószínűleg már akkor kiderült volna, és nem maradt volna éveken keresztül észrevétlenül.

Minden találgatás mellett a végső felelősség az implementációért a Coldcard gyártóját, a Coinkite-ot terheli. A MicroPython egy széles körben használt, nagy nyílt forráskódú projekt, és az itt felmerült fejlesztői döntések önmagukban nem utalnak rosszhiszeműségre.

Konkluzió

Több körülmény is a tudatosan előkészített, éveken át tartó retirement attack ellen szól. Először is, a Switch fejlesztői identitás elkülönítése meglehetősen gyengére sikerült: a közös GPG-kulcs és az egyéb átfedések alapján a fejlesztő személye viszonylag könnyen összekapcsolható volt Peter Gray személyével, amint valaki célzottan elkezdett utánanézni. Ráadásul az álneves fiókot évekig alig használták, miközben a MicroPython fejlesztői nyíltan, nagy figyelem mellett dolgoztak a projekten. A jelenleg elérhető technikai elemzések nem találtak bizonyítékot arra, hogy az entrópiahibát szándékosan építették volna be.

A vizsgálatok inkább azt mutatják, hogy több, egymást követő fejlesztési és ellenőrzési hiba vezetett a problémához, amelyek külön-külön nem tűntek súlyosnak, együtt azonban komoly biztonsági rést hoztak létre. Ha valóban egy éveken át előkészített, tudatos belső támadásról lett volna szó, várhatóan jóval több bizonyíték utalna szándékosságra.

A Bitcoin-iparág egyik legismertebb hosszú távú, „retirement” csalása a QuadrigaCX ügye volt. A kanadai tőzsde alapítója, Gerald Cotten 2018-ban Indiában bekövetkezett haláláról nem sokkal azután számoltak be, hogy fény derült az ügyfelek pénzének eltűnésére. A vizsgálatok szerint a tőzsde vezetése éveken keresztül jogtalanul használhatta fel az ügyfelek betéteit, összesen közel 170 millió kanadai dollár értékben. A Coldcard esetében azonban egészen más a helyzet. A Coinkite vezetése továbbra is nyilvánosan működik. A cég reagált a támadásra, javított firmware-t adott ki, segíti a felhasználók migrációját, és technikai részletekről is kommunikál. Az első támadásból származó több mint 1000 BTC jelenleg is több címre összegyűjtve áll. Ezeket több száz mérnök, biztonsági kutató és minden bizonnyal a hatóságok is figyelik.

Jelenleg nincs végleges válasz arra, ki áll az első hullám mögött, és az sem bizonyított, hogy a támadásnak bármilyen köze lenne a Coinkite belső munkatársaihoz. A hatósági vizsgálatok várhatóan még hosszú ideig folytatódnak, és könnyen lehet, hogy csak évek múlva derül ki, pontosan ki használta ki a hibát, hogyan azonosította a sebezhető címeket, és milyen kapcsolatban állt a blokklánc-adatszolgáltató fizetős fiókjával.

A jelenleg rendelkezésre álló bizonyítékok inkább egy összetett technikai és szervezeti kudarc képét rajzolják ki, mint egy gondosan megtervezett belső összeesküvését.

Jelen írás nem minősül befektetési tanácsadásnak. Részletes jogi információ

Költs kriptóból közvetlenül a Kraken Krak Mastercarddal!

MI A TEENDŐD?
  1. Regisztrálj a Krakenre a linkünkkel.
  2. Igényeld meg ingyenesen a Krak Cardot.
  3. Add hozzá Apple Payhez vagy Google Payhez.
  4. Vásárolj közvetlenül Kraken egyenlegedről akár 400+ kripto- és fiat eszközzel.
  5. Élvezd a 2% cashback-et a vásárlások után, havi vagy éves kártyadíj nélkül!
Készen állsz a mindennapi kriptós fizetésre?

Krak Card igénylése

Értékelés

logo