Coldcard-lompakon ohjelmointivirhe johti yli 100 miljoonan dollarin kryptovarkauteen

Coldcardin lompakkovika paljastui vuosien hiljaisuuden jälkeen

Toronto-lahtöisen teknologiayrityksen Coinkiten valmistamassa Coldcard-hardware-lompakossa havaittiin merkittävä ohjelmointivirhe, joka mahdollisti yli 100 miljoonan dollarin arvosta bitcoinien (digitaalinen kryptovaluutta) varkauden. Kyseinen laite on tunnettu turvallisuudestaan, sillä se on ns. cold wallet eli offline-lompakko, jonka salausavaimet (kryptografiset yksityiset avaimet) tallentuvat täysin irti internetistä, mikä tekee siitä periaatteessa hakkereiden tavoittamattoman.

Tapaus paljasti kuitenkin, miten ohjelmiston pieni bugi, joka liittyi satunnaislukugeneraattorin (random number generator) virheelliseen toimintatapaan lompakon siementen eli seed phrase luomisessa, jäi huomaamatta vuosikausiksi. Seed phrase on avain perimään ja hallitsemaan lompakon varoja. Tämän virheen takia hyökkääjät pystyivät laskemaan lompakkojen yksityisiä avaimia ja tyhjentämään noin 7 300 osoitetta, joilta varastettiin yhteensä 1 596 bitcoinia – noin 100 miljoonan dollarin arvosta kyseisen päivän kurssilla.

Miten bugi syntyi ja miksi se jäi huomaamatta?

Kriittinen virhe liittyi Coinkiten kehittämiin kirjastoihin, joita Coldcardin firmware käyttää satunnaisuuden luomiseen. Vuonna 2021 julkaistussa firmware-versiossa (laiteohjelmistossa) 4.0.0 tehtiin suuria ohjelmakirjastomuutoksia. Yksi kirjastoista, libngu, vastasi satunnaisluvun tuottamisesta, joka on keskeinen komponentti seedien turvassa.

Ongelma syntyi, kun järjestelmä oli suunniteltu vaihtamaan satunnaisuuden lähde laitteeseen sisäänrakennetusta turvallisesta generaattorista (hardware random number generator, HRNG) edullisempaan ohjelmistoavusteiseen lähteeseen, mutta ohjelmisto ei tarkistanut asetuksen tilaa asianmukaisesti. Tämän seurauksena joillekin lompakkolaitteille luotiin siemeniä, joissa oli vain 72 bittiä entropiaa (epäennustettävyyttä) 128 bitin sijaan. Vaikka 72 bittiä saattaa vaikuttaa turvalliselta, se tarkoittaa, että mahdollisten siemenien määrä pieneni noin 72 biljoonaa kertaa, mahdollistaen laskentateholla hyökkääjien siementen pääsyn ja yksityisten avainten selvittämisen.

Coldwallet-lompakot ja niiden rajoitukset

Bitcoin lompakot voidaan jakaa karkeasti kahteen tyyppiin: hot wallet (ohjelmistolompakko internetissä) ja cold wallet (offline-lompakko). Coldwalletit, kuten Coldcard, ovat suosittuja turvallisuutensa vuoksi, sillä niiden avaimet ovat laitteistossa, joka ei ole koskaan suoraan yhteydessä internetiin.

Kuitenkin tämä tapa luottaa laitteeseen vaatii, että laite toimii moitteettomasti. Coldcardin tapaus muistuttaa, että vaikka käyttäjä noudattaisi kaikkia varotoimia (kuten säilyttäisi laitteet ja siemenet erillisissä turvasäilytyksissä), ohjelmiston virhe voi vaarantaa koko turvallisuuden. Tämä on esimerkki niin sanotusta vastapuoliriskistä (counterparty risk) itsemiehityksessä, eli riskiin, joka liittyy siihen, että käyttäjä luottaa laitevalmistajaan turvallisen koodin toimittamisessa.

Markkinasävy ja hyökkäysten laajuus

Hyökkäyksiin arvioitiin osallistuneen vähintään 15 eri hyökkääjää, jotka eivät tarvinneet fyysistä pääsyä laitteisiin, mikä kumosi Coldcardin perinteisen oletuksen, että laite on suojassa etähyökkäyksiltä.

Markkinasävy on toistaiseksi varautuneen negatiivinen, sillä tapaus ravistelee luottamusta laitteisiin ja niiden turvallisuuteen. Vaikka Coinkite on julkaissut korjaukset ja tukenut uhreja, menetykset ovat olleet mittavat ja suosittuja cold wallet -laitteita kohtaan on noussut uusia epäluuloja.

Tapaus herättää keskustelua turvallisuuden monikerroksisuudesta

Bitcoin-yhteisössä on korostettu maksimia “don’t trust, verify” (älä luota, tarkasta itse). Coldcardin tapauksessa käyttäjät pääsivät tarkastelemaan julkista firmware-koodia, mutta virhe jäi huomaamatta, koska koodia ei tutkittu riittävän perusteellisesti. Tämä korostaa sitä, että jopa avoin lähdekoodi ei poista kaikkia riskejä, varsinkaan kun järjestelmä koostuu monista erillisistä osista. Lisäksi AI-avusteiset turvatarkastukset eivät onnistuneet havaitsemaan vikaa etukäteen.

Korjaukset ja ohjeet käyttäjille

Coinkite on julkaissut päivitykset laiteohjelmistoon, jotka korjaavat tulevaa siementen generointia, mutta jo olemassa olevien tilien parannus ei ole mahdollista. Käyttäjiä kehotetaan päivittämään firmware uudelleen, luomaan uudet siemenet ja siirtämään bitcoinejaan uusiin osoitteisiin, jotka perustuvat turvallisiin siemeniin.

Alla on yhteenveto tärkeimmistä toimenpiteistä Coldcardin käyttäjille:

  • Päivitä Coldcardin firmware uusimpaan versioon heti.
  • Generoi uusi seed phrase vahvalla satunnaisuudella kurinalaisesti ja turvallisesti.
  • Siirrä varat uusiin, päivitetyillä lompakoilla tuotettuihin osoitteisiin.
  • Varmista, että et jaa seed phrase -avainta kenenkään kanssa.
  • Käytä useiden hallintojen (multisig) ratkaisuja lisäsuojana, jos mahdollista.

Lähteet

CoinDesk: How a bug in Coldcard’s code went unnoticed for years, leading to $100 million in hacked funds

Tämä uutinen on tiivistelmä, eikä se ole sijoitusneuvo.

Tämä uutinen on tiivistelmä, eikä se ole sijoitusneuvo.