Przejdź do treści
Słownikbezpieczenstwoportfelesmart-kontraktyryzyko

Przejęcie frontendu

Przejęcie frontendu oznacza atak na warstwę interfejsu aplikacji. Frontend to część aplikacji widoczna dla użytkownika: strona, formularze, przyciski i ekran przygotowujący transakcję do podpisu.

Czym jest przejęcie frontendu

Frontend compromise, po polsku przejęcie frontendu, dotyczy sytuacji, w której atakujący manipuluje stroną, aplikacją albo signing flow, z którego korzysta użytkownik.

Smart kontrakty mogą pozostać nietknięte. Atak działa dlatego, że człowiek ufa interfejsowi i podpisuje operację przygotowaną przez złośliwy frontend.

Ten scenariusz jest szczególnie groźny przy DeFi, multisigach i dużych treasury, bo użytkownicy często wykonują złożone operacje przez webowy interfejs.

Gdzie może dojść do przejęcia

Strona
Złośliwy kod w bundle’u, podmiana deploymentu albo przejęta domena.
CDN
Podmieniony asset ładowany przez aplikację.
Maszyna dewelopera
Przejęte środowisko może wprowadzić złośliwą zmianę do procesu publikacji.
Signing flow
Interfejs pokazuje użytkownikowi bezpiecznie wyglądającą operację, a portfel dostaje inną treść.
Multisig
Członkowie podpisują transakcję, która wygląda jak rutynowa operacja, ale wykonuje złośliwe calldata.

Dlaczego hardware wallet nie wystarcza

Hardware wallet chroni klucz prywatny przed wyciekiem. Nie gwarantuje, że użytkownik rozumie każdą podpisywaną operację.

Jeśli ekran portfela pokazuje nieczytelne calldata albo użytkownik podpisuje blind signing, przejęty frontend może nadal doprowadzić do złej autoryzacji.

Najważniejsze są niezależna weryfikacja transakcji, symulacje, czytelne podpisy i procedury dla wysokich kwot.

Jak ograniczyć ryzyko

  • Sprawdzaj domenę i oficjalne kanały projektu.
  • Przy dużych kwotach weryfikuj calldata lub używaj narzędzi do symulacji transakcji.
  • Nie podpisuj blind signing, jeśli nie rozumiesz skutku operacji.
  • W multisigu stosuj zasadę niezależnej weryfikacji przez więcej niż jedną osobę.
  • Używaj approval checkera po podejrzanej interakcji.
  • Dla treasury i multisigów ustal procedury awaryjne przed incydentem.

Najczęstsze błędne założenia

  • Audyt smart kontraktu nie chroni przed złośliwym frontendem.
  • Prawdziwa domena może nadal serwować przejęty kod, jeśli pipeline publikacji został naruszony.
  • Hardware wallet nie naprawia sytuacji, w której użytkownik zatwierdza złą operację.
  • Multisig ogranicza ryzyko jednej osoby, ale nie usuwa ryzyka wspólnego zaufania do fałszywego interfejsu.
  • Symulacja transakcji pomaga, ale jej wynik też trzeba czytać ze zrozumieniem.

Zaufany wygląd interfejsu nie wystarcza

Przy wysokich kwotach sprawdzaj stronę, adres kontraktu, calldata i skutki podpisywanej operacji. Frontend może pokazywać znany ekran i jednocześnie przygotować złośliwe calldata.

Najczęstsze pytania

Nie. Kontrakty mogą działać poprawnie, a atak może przejść przez złośliwy interfejs i podpis użytkownika.

Zmniejsza ryzyko pojedynczego błędu, ale kilku signerów może zatwierdzić tę samą złośliwą transakcję, jeśli wszyscy ufają przejętemu interfejsowi.

Chroni klucz prywatny, ale nie gwarantuje poprawności podpisywanej operacji. Przy blind signing użytkownik może zatwierdzić zły payload.

Adres kontraktu, calldata, symulację, skutki dla tokenów, approvale, odbiorców i zgodność z oczekiwaną operacją.