Suosittu versio: Yksinkertainen "käännös", joka tulkitsee teknisen pomon @CetusProtocol hakkerin analyysiä:
Tämä hyökkäys paljastaa klassisen kokonaisluvun ylivuoto-ongelman, joka ilmenee tietojen katkaisuna tyypin muuntamisen aikana.
Tekniset tiedot purettuna:
1) Haavoittuvuuden sijainti: Ongelma ilmenee get_amount_by_liquidity-funktion tyyppimuunnosmekanismissa, ja valetun muunnos U256:sta U64:ksi aiheuttaa korkean tason tietojen menetyksen.
2) Hyökkäysprosessi:
1. Hyökkääjä välittää suuren määrän likviditeettiparametreja add_liquidity-toiminnon kautta;
2. Järjestelmäkutsun get_delta_b funktion laskemiseen tarvittavien B-tokenien määrä;
3. Laskentaprosessissa kaksi U128-tyyppistä dataa kerrotaan, ja teoreettisen tuloksen tulee olla U256-tyyppinen;
Keskeinen virhe: u256-tulos heitetään u64:ään, kun funktio palaa, mikä johtaa korkean tason 128-bittisen datan katkaisemiseen.
3) Käyttövaikutus: Likviditeettikiintiö, jonka lyöminen alun perin vaati suuren määrän tokeneita, voidaan nyt täydentää vain hyvin pienellä määrällä tokeneita. Hyökkääjä saa valtavan osan likviditeetistä erittäin alhaisin kustannuksin ja toteuttaa sitten poolin arbitraasin tuhoamalla osan likviditeetistä.
Yksinkertainen analogia: Aivan kuten laskimella, joka voi näyttää vain 8 numeroa 1 miljardin × 1 miljardin laskemiseksi, 20-numeroisen laskelman tulos voi näyttää vain 8 viimeistä numeroa, ja ensimmäiset 12 numeroa katoavat suoraan. Hyökkääjä hyödyntää tätä haavoittuvuutta.
Selvyyden vuoksi: tällä haavoittuvuudella ei ole mitään tekemistä @SuiNetwork:n taustalla olevan tietoturva-arkkitehtuurin kanssa, ja Move-kielen tietoturvan "loisto" on toistaiseksi edelleen uskottava. Miksi?
Move-kielellä on merkittäviä etuja resurssienhallinnan ja tyyppiturvallisuuden kannalta, ja se voi tehokkaasti estää matalan tason tietoturvaongelmia, kuten kaksinkertaista kulutusta ja resurssivuotoja. Tällä kertaa Cetus-protokolla on kuitenkin matemaattinen virhe sovelluslogiikan tasolla, ei itse Move-kielen suunnitteluvirhe.
Tarkemmin sanottuna Moven tyyppijärjestelmä, vaikka se on tiukka, luottaa silti kehittäjän oikeaan harkintaan eksplisiittisessä roolituksessa. Kun ohjelma suorittaa aktiivisesti tyypin muuntamisen U256:sta U64:ksi, kääntäjä ei pysty sanomaan, onko tämä tahallista vai loogista virhettä.
Lisäksi tällä tietoturvaloukkauksella ei ole mitään tekemistä Suin ydintoimintojen, kuten konsensusmekanismin, tapahtumien käsittelyn ja tilanhallinnan, kanssa. Sui Network suorittaa uskollisesti vain Cetus-protokollan lähettämät transaktiokäskyt, ja haavoittuvuus johtuu itse sovelluskerroksen protokollan loogisista virheistä.
Suoraan sanottuna mikään määrä kehittyneitä ohjelmointikieliä ei pysty täysin poistamaan loogisia virheitä sovelluskerroksessa. Move voi estää suurimman osan taustalla olevista tietoturvariskeistä, mutta se ei voi korvata kehittäjiä liiketoimintalogiikan rajojen tarkistamisella ja matemaattisten operaatioiden ylivuotosuojauksella.
After investigating the Cetus exploit transaction, I believe I have identified the root cause of the bug. The issue stems from a type casting from u256 to u64 within the get_amount_by_liquidity function.
53,94 t.
151
Tällä sivulla näytettävä sisältö on kolmansien osapuolten tarjoamaa. Ellei toisin mainita, OKX ei ole lainatun artikkelin / lainattujen artikkelien kirjoittaja, eikä OKX väitä olevansa materiaalin tekijänoikeuksien haltija. Sisältö on tarkoitettu vain tiedoksi, eikä se edusta OKX:n näkemyksiä. Sitä ei ole tarkoitettu minkäänlaiseksi suositukseksi, eikä sitä tule pitää sijoitusneuvontana tai kehotuksena ostaa tai myydä digitaalisia varoja. Siltä osin kuin yhteenvetojen tai muiden tietojen tuottamiseen käytetään generatiivista tekoälyä, tällainen tekoälyn tuottama sisältö voi olla epätarkkaa tai epäjohdonmukaista. Lue aiheesta lisätietoa linkitetystä artikkelista. OKX ei ole vastuussa kolmansien osapuolten sivustojen sisällöstä. Digitaalisten varojen, kuten vakaakolikoiden ja NFT:iden, omistukseen liittyy suuri riski, ja niiden arvo voi vaihdella merkittävästi. Sinun tulee huolellisesti harkita, sopiiko digitaalisten varojen treidaus tai omistus sinulle taloudellisessa tilanteessasi.