4 soorten cryptohacks uitgelegd

We kijken naar de belachelijke redenen achter vier recente cryptohacks.

Cryptocurrencies bestaan inmiddels al meer dan tien jaar. Tijdens deze periode hebben we meer dan honderd grote hacks van crypto-exchanges en andere cryptocurrency-gerelateerde diensten gezien.

Vaak blijven de details van zulke hacks erg onduidelijk. Het is eenvoudig om erachter te komen wie er is gehackt, wanneer het is gebeurd en hoeveel er werd gestolen, maar “hoe” dat allemaal plaatsvond blijft vaag. Journalisten zijn meer geïnteresseerd in de bedragen waar het om gaat, en organisaties die slachtoffers worden van de hacks hebben niet bepaald haast met het onthullen van de details van hun misstap.

Laten we deze gaten opvullen en het hebben over hoe de hacks werken, om zo hopelijk toekomstige incidenten te kunnen voorkomen.

Phishing en malware: de standaard crypto-exchange-hack

Crypto-exchanges slaan de cryptocurrencies en het gewone geld van gebruikers op op normale bankrekeningen. Het is voor cybercriminelen te riskant om zich in te laten met gewoon geld; om ervandoor te gaan met de gestolen buit zouden ze het geld snel moeten opnemen vóór de bank een kans krijgt om de rekeningen te bevriezen. Daarom kiezen hackers veel vaker voor cryptocurrency.

Van buitenaf zijn de eerste en wellicht enige feiten die bekend zijn over een typische crypto-exchange-hack dat het (1) gebeurd is, en (2) dat het geld van de cliënt weg is. Maar wat is er nou echt gebeurd? Hoogstwaarschijnlijk is dat het volgende: allereerst verkregen de aanvallers een lijst met werknemers, bestudeerden hun interesses (inclusief op sociale netwerken), en verstuurden gerichte phishing-e-mails met schadelijke payloads naar degenen die ze het goedgelovigst achtten. Op die manier kregen de cybercriminelen toegang tot het exchange-netwerk.

Vervolgens vergaarden ze informatie over hoe het bedrijf te werk ging: hoe vaak de accountant met de directeur communiceerde, wat ze elkaar verstuurden, de architectuur van het interne netwerk, waar de cryptowallets waren opgeslagen en hoe deze waren beschermd. Deze fase kan veel tijd kosten, maar uiteindelijk leidt het de cybercriminelen naar de machine van een werknemer met toegang tot kritieke systemen.

Als het automatische systeem van de uitwisseling is ingesteld om cryptocurrency te versturen, dan betekent het hebben van operator-rechten dat de aanvallers cryptocurrency naar zichzelf kunnen versturen. Van een recente aanval op de Binance-uitwisseling wordt gedacht dat er zich zo’n soort scenario heeft ontvouwen.

Incident: Binance-exchange-hack

Datum: 7 mei 2019

Gestolen bedrag: $ 40.000.000 (7.000 BTC)

Gerichte aanvallen: hoe bescherm je jezelf?

Als uw bedrijf een crypto-exchange is, dan is het uw taak om ervoor te zorgen dat de kosten van een aanval de potentiële winst vermenigvuldigd met de kans op succes overstijgen. Hiervoor dient u het volgende te doen:

  • Train uw personeel in cyberkennis (bijvoorbeeld: open geen cv in .DOC-formaat);
  • Gebruik een beveiligingsoplossing ter bescherming tegen aanvallen — het liefst een systeem dat niet alleen tegen dreigingen beschermt op elk specifiek knooppunt, maar ook afwijkingen over de hele organisatie opspoort;
  • Regel een pentest (waarbij een beveiligingsexpert probeert om uw systeem te penetreren, kwetsbaarheden te vinden en u vervolgens vertelt waar deze zich bevinden).

Double-spending: het beroven van een Bitcoin ATM met een telefoon

Een ander manier om Bitcoins te stelen gebeurt via pinautomaten. Normaal gesproken gebruiken mensen een pinautomaat om geld op te nemen (of juist te storten) van hun bestaande bankrekening, maar een Bitcoin ATM biedt nog een mogelijkheid, namelijk om cryptocurrency te kopen en verkopen.

Om een bitcoin-scam via een ATM uit te voeren, zouden mensen de machines kunnen gebruiken om bitcoins te verkopen, een contante uitbetaling te ontvangen en vervolgens de transacties te annuleren. Het klinkt te doorzichtig om te werken, maar er is één voorbeeld waarbij in korte tijd 45 pinautomaten met cryptocurrency-mogelijkheden in Canada verschenen en dieven daar $ 200.000 buitmaakten.

Hoe kon dat gebeuren? Zoals u weet is de informatie in de blockchain opgeslagen in blocks, vandaar de naam. Een transactie zoals “1 BTC naar John versturen” wordt niet meteen in het block geschreven, maar komt eerst in de rij te staan, en er wordt ongeveer elke 10 minuten een nieuw block gecreëerd. Eventuele onbevestigde transacties worden uit de rij verwijderd door de block creator. Er is niet genoeg ruimte in het block is voor alle transacties, dus er wordt prioriteit gegeven aan de transacties met hogere toeslagen (die de block creator inhoudt).

Het is moeilijk te geloven, maar de logica-ontwikkelaars achter de ATM’s instrueerden ze niet om te wachten tot transacties naar de blockchain werden geschreven vóór het geld vrij te geven. Gebruiksgemak won het van veiligheid.

En nog een klein detail: in eerste instantie liet Bitcoin de annulering van transacties in de wachtrij niet toe, wat er vaak toe leidde dat transacties met kleine toeslagen meerdere dagen in het systeem bleven hangen voor ze verwijderd werden. Omdat op te lossen, voegde Bitcoin een replace-by-fee-mechanisme toe, waardoor een transactie in de wachtrij kan worden vervangen door een andere — vaak om de toeslag te laten stijgen zodat de transactie doorgang vindt. Maar door dit mechanisme is het ook mogelijk om de ontvanger te wijzigen en de bitcoins terug te sturen naar de verzender.

Dat is een kwetsbaarheid noemen is nogal zacht uitgedrukt. Het was volslagen roekeloos. En dat leidde tot het volgende incident:

Incident: Bitcoin ATM-hack

Datum: September 2018

Gestolen bedrag: $ 200.000

Double-spending hack: hoe bescherm je jezelf?

Nadat het geld was gestolen, veranderde het bedrijf achter de ATM’s zijn machines om een wachttijd te incorporeren. Nu moeten gebruikers terug naar de ATM om hun geld te ontvangen nadat de bitcoins zijn geleverd. Dat is veel minder gebruiksvriendelijk, maar het is de enige manier om alles goed te laten verlopen terwijl rekening wordt gehouden met de mechanismes van de blockchain.

Achteraf is het duidelijk dat om zo’n dom verlies van geld te voorkomen de ontwikkelaars een veiligheidscontrole van de applicatie hadden moeten doen. En daar is zijn experts van buitenaf voor nodig die de architectuur van de dienst onderzoeken, de code bekijken en naar kwetsbaarheden op zoek gaan.

De 51%-aanval: de blockchain beheren

U heeft wellicht van het axioma van onveranderlijkheid gehoord: “Gegevens in de blockchain kunnen niet worden gewijzigd.” Maar dat is niet helemaal waar in sommige gevallen. Om in detail te begrijpen hoe de blockchain en mining werken, kunt u “What is blockchain technology and how it works” en “Explainer: Bitcoin mining” lezen.

Twee principes garanderen dat de blockchain voor alle gebruikers hetzelfde is. Ten eerste moeten alle deelnemers akkoord gaan met wie de maker van het volgende block wordt. De kans om de gelukkige te zijn hangt af van de geïnvesteerde middelen: hoe meer mining power, hoe hoger uw kansen.

Het tweede principe is de “regel van de langste chain”, die stelt dat in het geval van conflict de geldige versie van de blockchain automatisch de langste is. Als iemand zijn eigen versie van de blockchain maakt en probeert om deze uit te zenden, zullen alle andere gebruikers deze weigeren omdat er minder middelen aan zijn besteed en deze dus korter is.

Maar die situatie verandert als de maker van de blockchain meer dan 50% van alle mining power gebruikt. In de tijd die het kost om voor alle andere miners bijvoorbeeld negen blocks te creëren, kan een kwaadwillende gebruiker er 10 creëren. Op dat moment wordt de vervalste versie van de blockchain de langste, en daarom wordt die door iedereen geaccepteerd en wordt de financiële geschiedenis gewijzigd. Een gebruiker die bitcoins in de oude versie van de openbare blockchain uit heeft gegeven, vindt die bitcoins terug in hun account in de vervalste blockchain.

Dat is precies wat er gebeurde bij de Gate.io crypto-exchange begin 2019. Een aanvaller verstuurde hun cryptocurrency naar de exchange (en schreef dit op de openbare blockchain), en ging ondertussen aan de slag met het creëren van zijn eigen blockchain. Toen de exchange de transactie ontving en het bedrag overschreef naar de aanvaller, verstuurde deze laatste dit naar zijn privé-blockchain (die de eerdergenoemde transactie niet bevatte, waardoor de cryptocurrency teruggezet werd) en vroeg een opname aan van het saldo van de exchange. Het resultaat is dat de exchange geld kwijtraakt.

Laten we nu eens kijken waarom dit niet alledaagse kost is, en hoeveel rekenkracht de aanvaller nodig had.

We gebruiken Bitcoin als voorbeeld. Miners creëren zes blocks per uur. Voor elk block wordt er een beloning van 12,5 BTC uitgegeven. (Op 6 oktober 2019 stond 75 BTC gelijk aan $ 600.000.) Dat is ongeveer hoeveel het kost om alle Bitcoin-mining power voor een uur te huren. De Crypto51 site laat zulke berekeningen zien:

Geschatte kosten van één uur van een 51%-aanval op bekende cryptocurrencies.

De laatste kolom geeft aan hoeveel capaciteit er momenteel beschikbaar is voor verhuur. Zoals u ziet zou het in bezitnemen van de Ethereum Classic blockchain, zoals de bovengenoemde aanvaller deed, $ 10.000 kosten. Ze hadden vier uur nodig om $ 200.000 op te nemen.

Bedenk dat dit niet de eerste keer was dat zo’n soort aanval plaatsvond. Er zijn verschillende andere cryptocurrencies die getroffen zijn door succesvolle 51%-aanvallen.

Incident: ETC 51% Gate.io-aanval

Datum: 7 januari 2019

Gestolen bedrag: $ 200.000 (40.000 ETC)

51%-aanvallen: hoe bescherm je jezelf?

Over het algemeen is de mogelijkheid om een blockchain te herschrijven en geld te verdienen aan een 51%-aanval een onvermijdelijke feature van deze technologie. Om een aanval zo duur mogelijk te maken, proberen crypto-exchanges om zo lang mogelijk te wachten met het updaten van het saldo van de gebruiker na een transactie. Dat gebeurt omdat hoe meer blocks er zijn gecreëerd sinds de transactie de blockchain binnen is gekomen, hoe minder waarschijnlijk het is dat de blockchain wordt gereorganiseerd en teruggedraaid. Maar deze vertraging zorgt ook voor veel ongemak omdat het zo uren duurt voordat transacties verwerkt worden.

We zullen dit soort aanvallen ongetwijfeld nog vaker gaan zien.

Diefstal van geheime sleutel: Passphrase-spellingscontrole

Om cryptocurrency uit te geven, heeft u de geheime sleutel nodig. De sleutel is wat is opgeslagen in cryptowallets; het saldo van de gebruikers is opgeslagen in de blockchain.

Als u van cryptowallets wisselt, moet u de sleutel van de oude wallet naar de nieuwe kopiëren. Voor het gemak bestaat de sleutel uit een seed phrase die uit 12 simpele woorden bestaat — bijvoorbeeld witch collapse practice feed shame open despair creek road again ice least.

Het gebeurde ooit dat de ontwikkelaars van een cryptowallet deze regel met woorden per ongeluk online verstuurden voor een spellingscontrole, een fout die een crypto-investeerder ontdekte nadat hij een diefstal van $ 70.000 had geleden. We betwijfelen dat dit de reden voor de diefstal was, maar het verhaal biedt hoe dan ook een leerzame les.

Het gebeurde omdat applicaties tegenwoordig vaak niet helemaal vanuit het niets worden geschreven, maar juist samengesteld met componenten, inclusief componenten van externe ontwikkelaars. Zo gingen de ontwikkelaars van de Coinomi-cryptowallet ook te werk. Om de inputvorm van de passphrase weer te geven, gebruikten ze het jxBrowser-component. De ontwikkelaars waren er zich echter niet van bewust dat dit component standaard een spellingscontrole uitvoert op alle tekst die wordt ingevoerd. En om niet volgestopt te hoeven zitten met woordenboeken van alle talen ter wereld, voert het een cloud-gebaseerde controle uit met gebruik van googleapis.com.

Voor normale inputvelden kan dit handig zijn, maar voor velden die wachtwoorden en supergeheime phrases bevatten, is dit ongelofelijke riskant.

Ter verdediging beweerden de ontwikkelaars dat de seed phrase alleen naar Google ging en versleuteld werd verstuurd. En Google gaf een foutmelding. Desondanks is het slachtoffer er zeker van dat deze kwetsbaarheid de oorzaak van de diefstal was.

Incident: Authenticatie-kwetsbaarheid Coinomi-wallet

Datum: 22 februari 2019

Gestolen bedrag: $ 70.000

Diefstal van geheime sleutel: hoe bescherm je jezelf?

Aan de ene kant was doodgewone onzorgvuldigheid de oorzaak van het probleem. De spellingscontrolefunctie van de component was beschreven, net als de instructies om deze uit te schakelen. Conventioneel tests had het probleem waarschijnlijk niet geïdentificeerd, maar een veiligheidsbeoordeling van de applicatie wel.

Aan de andere kant ligt het probleem dieper. Het gebruik van externe bibliotheken zorgt voor potentiële problemen, nu of in de toekomst (als updates ervoor zorgen dat ze kwetsbaar worden), evenals het risico op een supply-chain-aanval. Bij een supply-chain-aanval hoeft een aanvaller de originele ontwikkelaar van de tool niet eens te hacken, maar alleen een van de opdrachtnemers. Opdrachtnemers zijn vaak niet even goed beschermd en zijn zich wellicht niet eens bewust van de belangrijke projecten waar hun code in zal worden gebruikt.

Soms krab je je achter je oren als je ziet hoe roekeloos de verantwoordelijke mensen te werk gaan, en in andere gevallen voel je mee met hun hulpeloosheid.

Tips