» »

Kako so Bybitu ukradli poldrugo milijardo?

Kako so Bybitu ukradli poldrugo milijardo?

Slo-Tech - Nadaljuje se preiskava napada, zaradi katerega je Bybit ostal brez 400 tisoč ethrov, ki so vredni približno 1,5 milijarde dolarjev. Čeprav so uporabljali več varovalk, so napadalci uspeli ukaniti sistem in ether prenesti v svoje denarnice. Kot kažejo prvi izsledki preiskav, Bybit ni upošteval nekaterih znakov in opozoril, da njihova politika ni v skladu z najboljšim praksami zaščite. Temu je svoje dodal vdor v Safe.

Izvršni direktor Ben Zhou je 21. februarja zvečer na svoj računalnik prejel na prvi pogled rutinsko zahtevo za podpis transakcije, katere izvedba je terjala podpise treh ljudi. Pol ure pozneje ga je poklical finančni direktor in mu sporočil, da ethra ni več. Bybit je uporabljal infrastrukturo Safe, ki sicer ni namenjena velikim uporabnikom, kamor sodijo menjalnice, ki dnevno prenašajo milijarde, temveč domačim uporabnikom. A v Bybitu zatrjujejo, da se vdor ni zgodil pri njih, temveč pri Safu.

Poročila to potrjujejo. Napadalci so ustvarili zlonamerne pogodbe, ki so predvidevale prenos ethra v njihove denarnice. A ker bi bila takšna pogodba pri podpisu očitna, so napadalci podtaknili zlonamerni uporabniški vmesnik, ki je podpisovalcev prikril dejansko pogodbo. Gre torej za preusmeritev v lažni uporabniški vmesnik ali vdor v Safe. Izkazalo se je, da ni šlo za prvo varianto (phishing), temveč so uspeli vdreti v račun enega izmed zaposlenih pri Safu, nato pa so spremenili uporabniški vmesnik, do katerega dostopajo vse stranke. Bybitovi vodilni uslužbenci so za podpisovanje uporabljale Safovo programsko opremo, medtem ko strojni del (ledger) ni bil povezan, zato so podpisovali na slepo - z zaupanjem, da drži, kar jim prikazuje Safe.




6 komentarjev

tikitoki ::

Zanimivo. Bodo tozili.safe za nastalo skodo?

Sparrow ::

Na ledgerju lahko vedno preveriš message hash ki ga podpisuješ. Problem je samo da ne smeš Safe-u zaupat ker ti bo prikazal lazni message hash od škodljive transakcije, medtem ko se bo transakcija izdajala za pravo.

Edino kar bi lahko naredili je, da imajo neodvisen sistem za izračun message hash-a iz transakcije in potem tega preverjati preden podpišeš z Ledgerjem.

nekdu ::

Sparrow je izjavil:

Edino kar bi lahko naredili je, da imajo neodvisen sistem za izračun message hash-a iz transakcije in potem tega preverjati preden podpišeš z Ledgerjem.


To se mi zdi precej osnovno in bi moralo biti že v osnovi tako narejeno.

Sparrow ::

nekdu je izjavil:


To se mi zdi precej osnovno in bi moralo biti že v osnovi tako narejeno.


Ja res je, tako bi moralo biti. Samo smo do sedaj kar vsi malo slepo zaupali Safe aplikaciji. Veliko nas pazi na phising (da te ne pelje kak link na kopijo Safe aplikacije, ki je škodljiva), vendar tokrat to ni bil vektor napada.

Problem je v tem da ima vsak malo po svoje narejen sistem priprave transakcije za multisig (denarnica kjer mora več accountov podpisat transakcijo preden jo izvedeš), in bi bilo prav da bi vsak v okviru tega sistema tudi izračunal message hash (hash transakcije ki jo podpisuješ), saj je to edina stvar ki se ti prikaže na Ledgerju ob podpisu.

Sam napad je bil dokaj komplesken, profesionalno napisan in dobro izveden. Svetla točka v tej nesreči pa je, da bo sedaj več uporabnikov multisig-ov preverjalo hash-e na hardware denarnicah.

WhiteAngel ::

Sparrow je izjavil:

Na ledgerju lahko vedno preveriš message hash ki ga podpisuješ.


Že to je trapasto. Ledger bi ti moral izpisat *vsebino* transakcije, ne pa nek hash. Ampak pisanje appov za Ledger in njihov audit je zelo drag in mukotrpen. Standardizacija Ethereum transakcij (Ledger safe iniciativa) je pa tudi še daleč. Izvirni greh je pa seveda debilen ethereumov RLP format namesto CBOR ali kaj podobnega, kjer ne rabiš ABIja contracta, da sploh veš, kaj podpisuješ.

stara mama ::

Ekologija™ in Trajnost™