Bitculator

Hanki Bitculator Androidille

Markkina-arvo:

$2.74 T

Vaihto 24h:

$11.02 B

lokak. 03 Likvidaatiot:

$1.60 M

Luo tili

Bitculator · Opi

Integer Overflow Attack

Mitä Integer Overflow Attack tarkoittaa kryptomaailmassa?

# 400·Päivitetty loka 2026·3 min lukuaika

Kokonaislukujen ylivuotohyökkäys tapahtuu, kun laskutoimituksen tuloksena syntyy luku, joka on liian suuri järjestelmän käsiteltäväksi. Tällöin tapahtuu ylivuoto, joka voi aiheuttaa haavoittuvuuksia.

Mikä on kokonaislukujen ylivuotohyökkäys?

Kokonaislukujen ylivuotohyökkäys tapahtuu, kun ohjelman luku saavuttaa enimmäisarvonsa ja kiertyy takaisin alkuun, jolloin hyökkääjä voi manipuloida saldoja tai rajoituksia. Kryptossa tällainen kiertyminen voi muuttaa tarkistuksen ”onko sinulla tarpeeksi tokeneita?” myöntäväksi, vaikka vastauksen pitäisi olla kielteinen. Kuvittele vanhan auton matkamittari, joka vaihtuu lukemasta 999999 lukemaan 000000 — mutta nyt pelissä on rahaa.


Myytti

”Nykyaikaiset kääntäjät tekevät tämän mahdottomaksi.” Ei aivan. Monissa älysopimuksissa käytetään yhä paikoin tarkistamatonta aritmetiikkaa, mukautettua matematiikkaa tai assembly-koodia, jotka voivat tuoda ylivuotovirheet takaisin.


Näin kokonaislukujen ylivuotohyökkäys toimii

Tässä nopea läpikäynti, jossa näyttämönä on token-sopimus.

  • Vaihe 1: Sopimus tallentaa saldot kiinteän kokoisina kokonaislukuina, ja siinä on toiminto, joka lisää, vähentää tai kertoo määriä.
  • Vaihe 2: Hyökkääjä valitsee syötteet, jotka kasvattavat luvun sen enimmäisarvon yli ja saavat sen kiertymään hyvin pieneksi tai lähelle nollaa.
  • Vaihe 3: Kiertyminen muuttaa tarkistuksen tuloksen. Esimerkiksi kiertymisen jälkeen saldo näyttää valtavalta tai siirtoraja hyvin pieneltä, jolloin require-ehto täyttyy.
  • Vaihe 4: Hyökkääjä luo ansaitsemattomia tokeneita, kiertää ylärajan tai siirtää varoja, joita hänen ei pitäisi pystyä liikuttamaan.
  • Vaihe 5: Hän siirtelee voitot kaupoilla tai siltojen kautta ja poistuu ennen kuin kukaan huomaa tapahtunutta.

Tositarina: useissa ERC 20 -tokeneissa oli aikoinaan eräkäsittelyn ylivuotovirhe, jonka avulla hyökkääjät pystyivät luomaan järjettömän suuren määrän tokeneita ja sitten myymään ne exchangessa. Kyllä, niin todella tapahtui.


Miksi kokonaislukujen ylivuotohyökkäyksellä on väliä

Jos omistat tokeneita, kehität sovelluksia tai käyt kauppaa DeFi-markkinoilla, tähän kannattaa kiinnittää huomiota. Kyse on luvuista, ja kryptossa kaikki perustuu lukuihin.

  • Hyöty: Kun ymmärrät, miten tämä toimii, huomaat varoitusmerkit ajoissa ja pystyt suojaamaan rahasi.
  • Näkökulma: Aritmeettiset virheet eivät vanhene. Uusia ketjuja ja työkaluja tulee, mutta ammattilaiset hyödyntävät yhä matemaattisia virheitä.
  • Ajankohtaisuus: Tällaisia virheitä voi esiintyä tokenien tarjontalaskennassa, palkkiojärjestelmissä, NFT-laskureissa ja suosituissa dAppeissa, jotka käsittelevät käyttäjien saldoja.

Vinkki

Solidityssä aritmetiikan tarkistusten kannattaa olla oletusarvoisesti käytössä, ja unchecked-lohkojen tulee olla pieniä ja auditoituja. Lisää fuzz-testejä, joissa kokeillaan ääriarvoja eikä vain suotuisia tapauksia.


Kokonaislukujen ylivuotohyökkäyksen keskeiset ominaisuudet

Mikä erottaa sen muista virheistä:

  • Kiertyminen: Luvut palaavat enimmäisarvosta nollaan kuin ympyrää kiertävä laskuri.
  • Huomaamattomuus: Tarkistamattomasta laskutoimituksesta ei tule natiivia virheilmoitusta, joten virheelliset tulokset näyttävät kelvollisilta.
  • Laukaistavuus: Käyttäjän hallitsemilla syötteillä voidaan usein saada virhe tapahtumaan juuri halutulla hetkellä.
  • Toistettavuus: Kun hyökkääjät löytävät virheen, he voivat automatisoida sen ja käyttää sitä moniin kohteisiin.

Muunnelmat

Tavallisimmat muodot: samaa virhetyyppiä, mutta eri toteutustapoja:

  1. Alivuoto: Vähennyslasku alittaa nollan ja kiertyy valtavan suureksi arvoksi.
  2. Yhteenlasku: Saldoon tai tarjontaan tehtävä lisäys ylittää enimmäisarvon ja kiertyy takaisin pieneksi luvuksi.
  3. Kertolasku: Palkkiokertoimet tai skaalauskertoimet kasvattavat arvon rajoitusten yli.
  4. Laskuri: Tokenin tunnisteen tai tarjonnan laskuri kiertyy ympäri, jolloin tokeneita voidaan luoda ylärajan yli.

Muistutus

Kokonaislukujen ylivuotohyökkäys ei koske vain Solidityä. Sitä voi esiintyä Vyperissä, Rustissa, Movessa tai mukautetussa assembly-koodissa, ja monet julkisuuteen nousseet hyväksikäytöt ovat pohjimmiltaan johtuneet saldojen tai tarjonnan tarkistamattomasta laskennasta.


Esimerkki

Palkkiotoiminto kertoo käyttäjän antaman luvun suurella bonuksella, arvo kiertyy ympäri ja ylärajan tarkistus menee läpi. Näin kokonaislukujen ylivuotohyökkäys antaa hyökkääjän luoda paljon enemmän tokeneita kuin oli tarkoitus.


Hauska fakta

Kolikkopelien klassikkopelin tason 256 tapporuutu? Tuo kuuluisa jumittuminen johtui kokonaislukujen ylivuodosta. Se todistaa, että myös retropeleissä voi vahingossa nähdä esimakua kryptovirheistä.


Yhteenveto

Ajattele kokonaislukujen ylivuotohyökkäystä niin, että luvut kiertävät täyden kierroksen ja varkaat syöksyvät syntyneestä aukosta läpi. Pidä laskutoimitukset tarkistettuina, niin nukut yösi paremmin.

Unohtuiko jotain?

Palautteesi auttaa meitä pitämään tiedot oikeina. Ota yhteyttä, jos jotain on väärin tai puuttuu.

Ota yhteyttä