Súlyos vádak érték a Coldcard hardvertárcát gyártó Coinkite-ot, miután a GitHubon megmaradt digitális aláírások kapcsolatot mutattak ki a vállalat technológiai vezetője és egy álnevet használó fejlesztő között. A Coldcard tárcákból a napokban több mint 100 milló dollár értékű bitcoint loptak el, a feltárt adatok kapcsán pedig terjedni kezdett, hogy a bitcoinok ellopását lehetővé tevő hibát valaki szándékosan építhette a rendszerbe.
- Öt éve létezett a biztonsági rés, amivel most több 5000 bitcoincímet fosztottak ki
- Egy két dolláros AI-vizsgálat megelőzhette volna a 100 millió dolláros bitcoinlopást
- Már 15 támadó fosztogathatja a hibás Coldcard-tárcákat
Az interneten terjedő elmélet szerint a hardvertárcát gyártó Coinkite egyik vezetője álnéven vett részt annak a kódkönyvtárnak a fejlesztésében, amelyen keresztül a lopásokat lehetővé tevő sebezhetőség bekerült a készülék firmware-ébe.
A vádak alapját nem pusztán egy névtelen bejegyzés adja. A GitHubon közzétett commitok kriptográfiai aláírásai alapján a “Switck” néven dolgozó fejlesztő nagy valószínűséggel Peter D. Gray, a Coinkite társalapítója és technológiai vezetője (CTO) lehetett.
Gray saját nevén is részt vett abban a 2021-es szoftverfrissítésben, ami után a Coldcard egy gyenge szoftveres véletlenszám generátort kezdett használni a tárcák seedjeinek létrehozásához. Bár a fejlemény után érthető, hogy miért merülhetett fel a belső szabotázs gyanúja, az eddig ismert adatok csak a személyazonosságok közötti kapcsolatot és a fejlesztési folyamat hiányosságait támasztják alá, a szándékosságot nem.
Álnéven fejleszthette a Coldcard egyik vezetője a hibás könyvtárat
A történet középpontjában a libNgU nevű kódkönyvtár áll. Ezt építették be 2021-ben a Coldcard firmware-ébe, de mint később kiderült, hogy az a tárcák seedjeinek létrehozásakor nem az erősebb hardveres véletlenszám-generátort alkalmazta, hanem egy gyengébb szoftveres megoldást.
A könyvtár GitHub-tárhelye egy Switck nevű fejlesztőhöz tartozott, és a fiók látszólag független volt a Coinkite-tól, a commitok digitális aláírásai azonban más képet mutatnak.
James O’Beirne Bitcoin-fejlesztő technikai elemzése szerint 58 darab Switck nevével ellátott commitot írtak alát Peter Gray személyes GPG-kulcsával. Közülük 56 alatt Gray aláíró alkulcsa szerepel, további kettőt pedig közvetlenül az elsődleges kulcsával hitelesítettek.
Ugyanezzel az alkulccsal 19, Peter D. Gray nevében közzétett commitot is aláírtak. A módosítások időpontjai szintén egyeznek, vagyis Gray és Switck neve egymáshoz közeli időpontokban, ugyanazzal a kriptográfiai kulccsal jelent meg.
Egy GPG-aláírás azt igazolja, hogy a fejlesztési hozzájárulást az adott privát kulccsal hitelesítették. Bár elméletileg más személy is használhatta Gray kulcsát, ha azt megosztották vele, vagy valamilyen módon megszerezte, de ilyen kulcsmegosztásról vagy illetéktelen hozzáférésről Gray korábban nem számolt be.
A legvalószínűbb magyarázat ezért az, hogy a két fejlesztői identitás mögött ugyanaz a személy állt.
A két fiók látszólag egymással is együttműködött
A vádak súlyát az növelte, hogy a két GitHub-fiók bizonyos esetekben egymástól független fejlesztőként viselkedett. Gray a doc-hex nevű fiókjával hibajegyet nyitott a Switck által kezelt libNgU projektben. Máskor módosításokat küldött be a könyvtárhoz, amelyeket az álneves fiók fogadott el.
Egy 2022-ben lezárt pull requestben a doc-hex fiók négy commitot adott a projekthez, majd ezeket a Switck fiók olvasztotta be a kódba. Amennyiben valóban Gray kezelte mindkét fiókot, akkor lényegében saját módosításait küldte be és fogadta el két különböző fejlesztő nevében.
Ez azt a benyomást keltette, hogy a Coinkite egy külső fejlesztő által karbantartott könyvtárral dolgozik, miközben a projekt irányítása valójában ugyanannál a vállalati vezetőnél futhatott össze.
Az álnév használata önmagában nem szokatlan a nyílt forráskódú és a kriptós fejlesztésekben, a probléma abból adódik, hogy a két identitás elkülönítése a független ellenőrzés látszatát teremthette meg egy olyan könyvtárnál, amely közvetlenül befolyásolta a felhasználók privát kulcsainak biztonságát.
Gray saját nevén is részt vett a hibás átállásban
A Coldcard firmware 2021 márciusában állt át a libNgU használatára. A folyamatot elindító, First pass w/ libNgU című commitot Peter Gray doc-hex fiókja jegyezte.
A módosítás után a készülék a seed előállításához korábban használt közvetlen hardveres véletlenszám-forrás helyett a libNgU függvényét kezdte használni. A programozók feltételezése szerint ez továbbra is a hardveres véletlenszám-generátorhoz kapcsolódott volna, a hívás azonban végül a gyengébb szoftveres tartalékmegoldásához jutott el.
A Coinkite technikai beszámolója szerint egy változót nullára állítottak, és azt feltételezték, hogy ezzel minden a szoftveres generátorhoz kapcsolódó megoldást kikapcsolnak.
A kódban azonban #ifndef ellenőrzés szerepelt. Ez csak azt vizsgálta, hogy a változót definiálták-e, azt viszont nem, hogy az értéke nulla vagy egy. A firmware ezért hibaüzenet nélkül lefordult, és a hardveres forrás helyett a szoftveres helyettesítést kezdte használni.
A hiba ezután 5 éven keresztül észrevétlen maradt, egészen a múlt heti lopássorozatig.
A tárcákat ért belsős támadással kapcsolatos feltételezés tehát több, önmagában is szokatlan körülményen alapul, de a technikai hiba kialakulása az eddig bemutatott bizonyítékok alapján programozási és tesztelési mulasztásokkal is magyarázható.
Gray korábbi munkáiból is összeesküvés-elmélet született
A közösségi médiában megjelent vádak Gray korábbi szakmai tevékenységét is összekapcsolták a Coldcard sebezhetőségével.
A személyes GPG-kulcsában szereplő [email protected] e-mail-cím például egy régi weboldalhoz vezetett. Az internetes archívumban megtalált önéletrajz billentyűzetnaplózó eszközök és távolról vezérelhető KVM-rendszerek fejlesztését is felsorolta Gray korábbi munkái között.
A KVM-eszközök segítségével távolról kezelhető egy számítógép billentyűzete, képernyője és egere. Ilyen rendszereket általában szerverek karbantartására és informatikai hálózatok felügyeletére is használnak. Noha a technológia megfigyelésre is alkalmazható, a fejlesztésében való részvétel önmagában nem bizonyít rosszindulatú tevékenységet.
Olyan állítás is megjelent, hogy Gray egyik korábbi vállalkozása amerikai állami szerződésekre vagy kutatási támogatásokra pályázhatott. Egy ilyen beszállítói regisztráció azonban csak arra utal, hogy a fejlesztő jogosult volt állami megrendelésekért indulni, konkrét hírszerzési kapcsolatra vagy egy “magasabb szintről jövő, bitcoin ellenes akcióra való megbízásra” önmagában még nem bizonyíték.
A belső szabotázs elmélete tehát jelenleg még nem tekinthető bizonyított állításnak. A GitHubon fennmaradt adatok viszont komoly kérdéseket vetnek fel a Coldcardot fejlesztő Coinkite átláthatóságával és fejlesztési gyakorlatával kapcsolatban, ami azt is megmagyarázhatja, hogyan maradhatott rejtve éveken keresztül egy ennyire súlyos biztonsági hiba.



