Ceny aktywów są tymczasowo opóźnioneNiektóre aktywa przestały otrzymywać aktualne dane cenowe. Aktualizacje zostaną wznowione automatycznie po przywróceniu połączenia danych.
Bitculator

Bitculator na Androida

Kapitalizacja rynkowa:

$1,995,421,489,076

Wolumen 24h:

$196,800,200,171

cze 23 Likwidacje:

$0

24H Długi/Krótki:

Wkrótce

Bitculator · Dowiedz się

Integer Overflow Attack

Co oznacza Integer Overflow Attack w terminologii kryptowalutowej?

# 400·Zaktualizowany cze 2026·3 min czytania

Atak Integer Overflow Attack występuje, gdy operacja matematyczna daje wynik w postaci liczby zbyt dużej, aby system mógł sobie z nią poradzić, co prowadzi do 'przepełnienia' i potencjalnych luk w zabezpieczeniach.

Czym jest Integer Overflow Attack?

Integer Overflow Attack występuje, gdy liczba w programie osiąga maksymalną wartość i zawija się z powrotem, pozwalając atakującemu zmanipulować salda lub limity. W kryptowalutach takie zawinięcie może zmienić kontrolę typu „czy masz wystarczająco tokenów?” w tak, gdy odpowiedź powinna być nie. Wyobraź sobie stary licznik przebiegu samochodu przełączający się z 999999 na 000000, tylko że na szali są pieniądze.


Mit

„Nowoczesne kompilatory to uniemożliwiają.” Nie do końca. Wiele inteligentnych kontraktów nadal używa w niektórych miejscach niezweryfikowanej arytmetyki, własnych operacji matematycznych albo assemblera, które mogą ponownie wprowadzić błędy przepełnienia.


Jak działa Integer Overflow Attack

Krótki opis na przykładzie kontraktu tokena.

  • Krok 1: Kontrakt przechowuje salda w liczbach całkowitych o stałym rozmiarze i ma funkcję, która dodaje, odejmuje lub mnoży kwoty.
  • Krok 2: Atakujący wybiera dane wejściowe, które przesuwają liczbę ponad maksimum, powodując zawinięcie do bardzo małej lub zerowej wartości.
  • Krok 3: To zawinięcie odwraca sprawdzenie. Na przykład po zawinięciu saldo może wyglądać na ogromne albo limit przelewu na bardzo mały, więc instrukcja require przechodzi.
  • Krok 4: Atakujący tworzy niezasłużone tokeny, omija limit podaży lub przenosi środki, których nie powinien móc poruszyć.
  • Krok 5: Przepuszcza zyski przez transakcje lub mosty i wycofuje się, zanim ktoś to zauważy.

Prawdziwy przykład: kilka tokenów ERC 20 miało kiedyś błąd przepełnienia przy operacjach zbiorczych, który pozwalał atakującym wygenerować absurdalnie dużą podaż, a następnie sprzedać ją na giełdach. Tak, to się zdarzyło.


Dlaczego Integer Overflow Attack ma znaczenie

Jeśli posiadasz tokeny, tworzysz aplikacje lub handlujesz w DeFi, warto to znać. Chodzi o liczby, a liczby decydują o wielu rzeczach w kryptowalutach.

  • Korzyść: Wiedza o tym, jak to działa, pomaga wcześnie zauważyć sygnały ostrzegawcze i chronić środki.
  • Perspektywa: Błędy arytmetyczne są ponadczasowe. Pojawiają się nowe łańcuchy i narzędzia, ale błędy w obliczeniach nadal są wykorzystywane przez specjalistów.
  • Zastosowanie: Zobaczysz to przy obliczeniach podaży tokenów, systemach nagród, licznikach NFT i w popularnych zdecentralizowanych aplikacjach, które operują na saldach użytkowników.

Wskazówka

W Solidity domyślnie stosuj sprawdzaną arytmetykę, a bloki unchecked utrzymuj małe i poddane audytowi. Dodaj testy fuzz, które próbują wartości ekstremalnych, nie tylko typowych ścieżek.


Kluczowe cechy Integer Overflow Attack

Co odróżnia to od innych błędów:

  • Zawinięcie: Liczby przeskakują z wartości maksymalnej z powrotem do zera, jak zapętlony licznik.
  • Ciche: Brak natywnego błędu, jeśli arytmetyka nie jest sprawdzana, więc usterki wyglądają jak prawidłowe wyniki.
  • Możliwe do wywołania: Często dane wejściowe kontrolowane przez użytkownika mogą spowodować wystąpienie w określonym momencie.
  • Powtarzalne: Po znalezieniu atakujący mogą to zautomatyzować i stosować wobec wielu celów.

Wariacje

Główne odmiany, ta sama rodzina, różne ścieżki:

  1. Underflow: Odejmowanie schodzi poniżej zera i zawija się do bardzo dużej wartości.
  2. Dodawanie: Dodanie do salda lub podaży powoduje przekroczenie maksimum i zawinięcie do małych liczb.
  3. Mnożenie: Mnożniki nagród lub czynniki skalujące mogą przepchnąć wartość poza limity.
  4. Licznik: ID tokena lub liczniki podaży przetaczają się i pozwalają na mintowanie powyżej ustalonego limitu.

Przypomnienie

Integer Overflow Attack to nie tylko problem Solidity. Może wystąpić w Vyper, Rust, Move lub w niestandardowym assemblerze, a wiele nagłośnionych eksploity sprowadzało się do niezweryfikowanej arytmetyki wokół sald lub podaży.


Przykład

Funkcja nagród mnoży liczbę podaną przez użytkownika przez duży bonus, wartość zawija się, kontrola limitu przechodzi, a Integer Overflow Attack pozwala atakującemu wygenerować znacznie więcej tokenów niż zamierzano.


Ciekawostka

Klasyka z automatów z ekranem śmierci na poziomie 256? To słynne zacięcie wynikało z przepełnienia liczby całkowitej, co pokazuje, że nawet retro gry mogą przypadkowo ujawniać błędy przypominające te z kryptowalut.


Podsumowanie

Pomyśl o Integer Overflow Attack jak o liczbach robiących pełen obrót i złodziejach wkraczających przez lukę. Sprawdzaj arytmetykę i będziesz spać spokojniej.

Czy o czymś zapomnieliśmy??

Twój wkład pomaga nam utrzymywać poprawność. Skontaktuj się z nami, jeśli coś jest niepoprawne lub brakuje.

Kontakt