EIP-7702 nadaje adresom zdolności i elastyczności podobnej do inteligentnych kontraktów, coraz więcej aplikacji 7702 jest nieustannie tworzonych, co jest kluczowe dla wprowadzenia większej liczby osób do Web3 i poprawy doświadczeń użytkowników.
Jednak elastyczność 7702 oraz fakt, że większość użytkowników nadal nie jest zaznajomiona z 7702, są wykorzystywane przez grupy oszustów. Ostatnio zaobserwowaliśmy, że użytkownicy z powodu możliwości masowego wykonywania przez Metamask 7702 mieli interakcje, które wcześniej wymagały dziesięciu autoryzacji, złożone przez grupy phishingowe #InfernoDrainer w jedną transakcję, co doprowadziło do kradzieży aktywów.
Wyjaśnienie: Metamask sam w sobie nie ma problemów z bezpieczeństwem, Metamask stawia bezpieczeństwo użytkowników na pierwszym miejscu, gdy oferuje możliwości związane z 7702, i wprowadził wiele środków bezpieczeństwa. Użytkownicy muszą lepiej zrozumieć możliwości 7702 i związane z nimi ryzyko, aby zapobiec powtórzeniu się takich incydentów bezpieczeństwa.
Jedna, zasady autoryzacji podpisu Delegatora 7702 przez Metamask oraz projekt bezpieczeństwa
1. Analiza techniczna
Użytkownik autoryzuje już wdrożony kontrakt Delegatora, wskazując pole code swojego konta na ten kontrakt. Aktualny adres kontraktu Delegatora MetaMask: 0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B
Struktura autoryzacji: (chainId, delegatorAddress, nonce, signature) wpisane do authorization_list
Metoda podpisu: Podstawowy mechanizm MetaMask dla transakcji autoryzacyjnych związanych z EIP-7702 stosuje jednolitą logikę podpisu, tj. metodę signEIP7702Authorization, aby podpisać dane autoryzacyjne digest7702 = keccak256(0x05 ‖ RLP(chainId, delegator, nonce)), generując strukturę podpisu (v, r, s) i dołączając ją do następnej transakcji typu 4, realizując autoryzację i aktualizację konta, szczegóły realizacji można znaleźć tutaj: https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-eip7702-authorization.ts
Metoda weryfikacji: warstwa konsensusu weryfikuje ecrecover(digest7702, sig) == tx.from.
Bezpieczny projekt: Strona internetowa nie może skłonić użytkownika do autoryzacji dowolnego Delegatora, ponieważ metoda signEIP7702Authorization jest implementowana tylko wewnętrznie w portfelu MetaMask i nie jest otwarta do wywołania z poziomu window.ethereum na stronie internetowej. Dostępne metody podpisu, takie jak eth_signTypedData_v4, nie są odpowiednie dla podpisów autoryzacyjnych EIP-7702, a format podsumowania podpisu jest następujący:

A format podpisu wymagany przez specyfikację EIP-7702 to:

Ponieważ eth_signTypedData_v4 zawsze zawiera prefiks 0x1901, a proces obliczania podsumowania jest całkowicie inny niż 7702, dlatego nawet przy sprytnym skonstruowaniu domainSeparator, primaryType i message, prawie niemożliwe jest, aby digest712 == digest7702.
W związku z tym, strona internetowa nie może sfałszować legalnego podpisu autoryzacyjnego 7702 za pomocą tej metody. Ponadto, MetaMask wprowadza mechanizm białej listy dla adresów Delegatora, domyślnie i tylko zezwalając na autoryzację oficjalnego Delegatora (0x63c0...32B), zabraniając DApp na wstrzykiwanie adresów, aby dalej zapobiec użytkownikom składającym podpisy na złośliwe dane autoryzacyjne Delegatora. EIP-7702 nadaje adresowi zdolności i elastyczność podobną do inteligentnych kontraktów, a coraz więcej aplikacji 7702 nieustannie powstaje, co jest kluczowe dla umożliwienia większej liczbie osób wejścia do Web3 i poprawy doświadczeń użytkowników.
Jednak elastyczność 7702 oraz fakt, że większość użytkowników nie jest jeszcze zaznajomiona z 7702, są wykorzystywane przez gangi oszustów; ostatnio zaobserwowaliśmy, że użytkownicy, którzy z powodu możliwości masowego wykonania 7702 w Metamask musieli autoryzować wiele razy, zostali oszukani przez gang phishingowy #InfernoDrainer, który połączył to w jedną transakcję, co spowodowało kradzież aktywów.
Wyjaśnienie: Metamask nie ma problemu z bezpieczeństwem, Metamask stawia bezpieczeństwo użytkowników na pierwszym miejscu, gdy dostarcza możliwości związane z 7702, a także podjął wiele działań w celu zapewnienia bezpieczeństwa. Użytkownicy powinni lepiej zrozumieć możliwości 7702 i związane z nimi ryzyko, aby zapobiec powtórzeniu się takich incydentów bezpieczeństwa.
Jedna, zasady autoryzacji podpisu Delegatora 7702 przez Metamask oraz projekt bezpieczeństwa
1. Analiza techniczna
Użytkownik autoryzuje już wdrożony kontrakt Delegatora, wskazując pole code swojego konta na ten kontrakt. Aktualny adres kontraktu Delegatora MetaMask: 0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B
Struktura autoryzacji: (chainId, delegatorAddress, nonce, signature) wpisane do authorization_list
Metoda podpisu: Podstawowy mechanizm MetaMask dla transakcji autoryzacyjnych związanych z EIP-7702 stosuje jednolitą logikę podpisu, tj. metodę signEIP7702Authorization, aby podpisać dane autoryzacyjne digest7702 = keccak256(0x05 ‖ RLP(chainId, delegator, nonce)), generując strukturę podpisu (v, r, s) i dołączając ją do następnej transakcji typu 4, realizując autoryzację i aktualizację konta, szczegóły realizacji można znaleźć tutaj: https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-eip7702-authorization.ts
Metoda weryfikacji: warstwa konsensusu weryfikuje ecrecover(digest7702, sig) == tx.from.
Bezpieczny projekt: Strona internetowa nie może skłonić użytkownika do autoryzacji dowolnego Delegatora, ponieważ metoda signEIP7702Authorization jest implementowana tylko wewnętrznie w portfelu MetaMask i nie jest otwarta do wywołania z poziomu window.ethereum na stronie internetowej. Dostępne metody podpisu, takie jak eth_signTypedData_v4, nie są odpowiednie dla podpisów autoryzacyjnych EIP-7702, a format podsumowania podpisu jest następujący:

A format podpisu wymagany przez specyfikację EIP-7702 to:

Ponieważ eth_signTypedData_v4 zawsze zawiera prefiks 0x1901, a proces obliczania podsumowania jest całkowicie inny niż 7702, dlatego nawet przy sprytnym skonstruowaniu domainSeparator, primaryType i message, prawie niemożliwe jest, aby digest712 == digest7702.
W związku z tym, strona internetowa nie może sfałszować legalnego podpisu autoryzacyjnego 7702 za pomocą tej metody. Ponadto, MetaMask wprowadza mechanizm białej listy dla adresów Delegatora, domyślnie i tylko zezwalając na autoryzację oficjalnego Delegatora (0x63c0...32B), zabraniając DApp na wstrzykiwanie adresów, aby dalej zapobiec użytkownikom składającym podpisy na złośliwe dane autoryzacyjne Delegatora.
2. Sposób użycia
Obecnie w Metamask, sposób na aktualizację istniejącego EOA do inteligentnego konta 7702 (Smart Account) dzieli się głównie na dwie kategorie: aktywna aktualizacja i pasywna aktualizacja.
Aktywna aktualizacja oznacza, że użytkownik na interfejsie portfela aktywnie klika przycisk 'Przełącz', aby autoryzować określony kontrakt Delegatora.
Pasywna aktualizacja występuje, gdy użytkownik wchodzi w interakcje z niektórymi DApp obsługującymi 7702, a Metamask wykrywa odpowiednie operacje, automatycznie wyświetlając podpowiedź, sugerując użytkownikowi zakończenie aktualizacji.
2.1 Aktywna aktualizacja:
Treść transakcji: obejmuje tylko akcję aktualizacji konta, tj. autoryzację określonego kontraktu Delegatora.
Proces aktualizacji: Wejdź do szczegółów konta w portfelu, kliknij przycisk przełączania na poniższym obrazku, aby zaktualizować użytkownika na Ethereum Mainnet do konta inteligentnego. Po kliknięciu przełącz, pojawi się okno podpisu aktualizacji transakcji użytkownika:

Rekord autoryzacji: Po potwierdzeniu, poczekaj na dodanie transakcji do łańcucha, pomyślne dodanie do łańcucha oznacza, że użytkownik pomyślnie zaktualizował do konta inteligentnego, a szczegółowe informacje o transakcji autoryzacyjnej można zobaczyć w sekcji **Authorizations (EIP-7702)** na stronie aktualnego adresu portfela w etherscan.

2. Sposób użycia
Obecnie w Metamask, sposób na aktualizację istniejącego EOA do inteligentnego konta 7702 (Smart Account) dzieli się głównie na dwie kategorie: aktywna aktualizacja i pasywna aktualizacja.
Aktywna aktualizacja oznacza, że użytkownik na interfejsie portfela aktywnie klika przycisk 'Przełącz', aby autoryzować określony kontrakt Delegatora.
Pasywna aktualizacja występuje, gdy użytkownik wchodzi w interakcje z niektórymi DApp obsługującymi 7702, a Metamask wykrywa odpowiednie operacje, automatycznie wyświetlając podpowiedź, sugerując użytkownikowi zakończenie aktualizacji.
2.1 Aktywna aktualizacja:
Treść transakcji: obejmuje tylko akcję aktualizacji konta, tj. autoryzację określonego kontraktu Delegatora.
Proces aktualizacji: Wejdź do szczegółów konta w portfelu, kliknij przycisk przełączania na poniższym obrazku, aby zaktualizować użytkownika na Ethereum Mainnet do konta inteligentnego. Po kliknięciu przełącz, pojawi się okno podpisu aktualizacji transakcji użytkownika:

Rekord autoryzacji: Po potwierdzeniu, poczekaj na dodanie transakcji do łańcucha, pomyślne dodanie do łańcucha oznacza, że użytkownik pomyślnie zaktualizował do konta inteligentnego, a szczegółowe informacje o transakcji autoryzacyjnej można zobaczyć w sekcji **Authorizations (EIP-7702)** na stronie aktualnego adresu portfela w etherscan.

2.2 Pasywna aktualizacja
Treść transakcji: obejmuje akcję aktualizacji konta oraz działania zbiorcze związane z interakcją z kontraktem on-chain.
Proces aktualizacji: Gdy użytkownik wchodzi w interakcje z niektórymi DApp on-chain, Metamask aktywnie informuje użytkownika, że bieżąca transakcja może być zrealizowana poprzez aktualizację do konta inteligentnego w trybie zbiorczym. Na przykład, przy wymianach niektórych tokenów na Uniswap, kliknij przycisk Użyj konta inteligentnego, zaktualizuj do konta inteligentnego, a następnie autoryzacja tokenów i wymiana zostaną zrealizowane w jednej transakcji.

2.3 Przełącz się z powrotem na zwykłe EOA
Niezależnie od tego, czy użytkownik konwertuje bieżące konto na konto inteligentne za pomocą aktywnej czy pasywnej aktualizacji, powiązany adres kontraktu Delegatora będzie na stałe przechowywany na łańcuchu jako bieżąca logika wykonawcza konta.
Jeśli użytkownik chce przywrócić konto do zwykłego EOA, musi ręcznie wykonać operację 'Przełącz się z powrotem na EOA'. Istotą tej operacji jest: poprzez jedną autoryzację EIP-7702, złożyć address(0) jako nowy adres kontraktu Delegatora. Po pomyślnym dodaniu tej transakcji do łańcucha, pole code konta zostanie wyczyszczone, a logika wykonawcza powróci do domyślnego pustego kodu, a konto wróci do stanu zwykłego EOA.
Wejdź do szczegółów konta w portfelu, kliknij przycisk przełączania, aby przełączyć użytkownika z Ethereum Mainnet na zwykłe konto EOA.

Po kliknięciu potwierdzenia, poczekaj na dodanie transakcji do łańcucha, pomyślne dodanie do łańcucha oznacza, że użytkownik przeszedł z konta inteligentnego z powrotem do zwykłego konta EOA, a szczegółowe informacje o transakcji można również znaleźć na stronie aktualnego adresu portfela w etherscan.

Dwa, przykłady ataków phishingowych 7702
24 maja, gang phishingowy #InfernoDrainer wykorzystał funkcję masowego wykonywania kontraktu Metamask 7702-Delegator, aby masowo wyłudzić autoryzację tokenów użytkownika (0xc6D2…06DC) i przeprowadzić atak phishingowy, powodując straty przekraczające 146 000 USD w $HashAI $HUMANS $ParallelAI $NeuralAI $DSync $Zero1 $NodeAI $Sensay $Virtual.
Adres oszustwa
0x0000db5c8B030ae20308ac975898E09741e70000 0x00008C22F9F6f3101533f520e229BbB54Be90000 0xa85d90B8Febc092E11E75Bf8F93a7090E2ed04DE 0xC83De81A2aa92640D8d68ddf3Fc6b4B853D77359 0x33dAD2bbb03Dca73a3d92FC2413A1F8D09c34181
Przykład transakcji phishingowej
https://etherscan.io/tx/0x09c264618e93983510aaeb7aa2c91c8254a8b2ec66167438f3f6c28b866b6eba
Przyczyna phishingu
Użytkownik (0xc6D2…06DC) wykonał złośliwą transakcję autoryzacyjną w partii:
Ethereum Transaction Hash: 0x1ddc8cecbc... | Etherscan
Wywołaj metodę 0xe9ae5c53 przez 0xc6D289d5...0d2E606DC na 0xc6D289d5...0d2E606DC | Sukces | 23-maj-2025 14:31:35 (UTC)
etherscan.io

#InfernoDrainer i #PinkDrainer eksperymentują z bardziej ukrytymi i wpływowymi metodami wykorzystywania 7702 w phishingowym czarnym przemyśle.
Zgodnie z naszymi badaniami, aktualnie gangi phishingowe #InfernoDrainer i #PinkDrainer badają i eksperymentują z bardziej ukrytymi i wpływowymi metodami wykorzystywania 7702 w phishingowym czarnym przemyśle, związane adresy są następujące, a my również opublikujemy bardziej szczegółowy raport w przyszłości:
Inferno Drainer:
0x0000db5c8B030ae20308ac975898E09741e70000
Pink Drainer:
0xe49e04F40C272F405eCB9a668a73EEAD4b3B5624
Trzy, zalecenia bezpieczeństwa
Dostawca portfela:
Odniesienie do implementacji i zarządzania bezpieczeństwem Delegatora 7702 przez Metamask, zabraniając użytkownikom autoryzacji dowolnego Delegatora, oraz pozwalając tylko na operacje wewnętrzne aplikacji. Przypomnij użytkownikom, że wszelkie działania mające na celu skłonienie użytkowników do składania podpisów autoryzacyjnych za pośrednictwem strony internetowej są atakami phishingowymi.
Sprawdź, czy sieć zgadza się z bieżącą siecią i przypomnij użytkownikowi o ryzyku ponownego użycia podpisu podczas podpisywania z chainID równym 0.
Podczas podpisywania przez użytkownika, wyświetl docelowy kontrakt, a podczas masowego wykonania przez Delegatora wyświetl konkretne wywołania funkcji, aby zmniejszyć ryzyko ataków phishingowych w sieci.
Użytkownik:
Ochrona klucza prywatnego zawsze jest najważniejsza. Nie Twoje klucze, nie Twoje monety.
Nie autoryzuj Delegatora na podstawie żadnej niezależnej strony internetowej, bezpieczne autoryzacje zazwyczaj odbywają się tylko w aplikacjach, takich jak Metamask.
Podczas korzystania z dowolnego portfela do podpisu, zwróć uwagę na treść podpisu, aby uniknąć ślepego podpisywania lub błędnego podpisywania. Po kliknięciu potwierdzenia, poczekaj na dodanie transakcji do łańcucha, pomyślne dodanie do łańcucha oznacza, że użytkownik przeszedł z konta inteligentnego z powrotem do zwykłego konta EOA, a szczegółowe informacje o transakcji można również znaleźć na stronie aktualnego adresu portfela w etherscan.

Dwa, przykłady ataków phishingowych 7702
24 maja, gang phishingowy #InfernoDrainer wykorzystał funkcję masowego wykonywania kontraktu Metamask 7702-Delegator, aby masowo wyłudzić autoryzację tokenów użytkownika (0xc6D2…06DC) i przeprowadzić atak phishingowy, powodując straty przekraczające 146 000 USD w $HashAI $HUMANS $ParallelAI $NeuralAI $DSync $Zero1 $NodeAI $Sensay $Virtual.
Adres oszustwa
0x0000db5c8B030ae20308ac975898E09741e70000 0x00008C22F9F6f3101533f520e229BbB54Be90000 0xa85d90B8Febc092E11E75Bf8F93a7090E2ed04DE 0xC83De81A2aa92640D8d68ddf3Fc6b4B853D77359 0x33dAD2bbb03Dca73a3d92FC2413A1F8D09c34181
Przykład transakcji phishingowej

Przyczyna phishingu
Użytkownik (0xc6D2…06DC) wykonał złośliwą transakcję autoryzacyjną w partii:

#InfernoDrainer i #PinkDrainer eksperymentują z bardziej ukrytymi i wpływowymi metodami wykorzystywania 7702 w phishingowym czarnym przemyśle.
Zgodnie z naszymi badaniami, aktualnie gangi phishingowe #InfernoDrainer i #PinkDrainer badają i eksperymentują z bardziej ukrytymi i wpływowymi metodami wykorzystywania 7702 w phishingowym czarnym przemyśle, związane adresy są następujące, a my również opublikujemy bardziej szczegółowy raport w przyszłości:
Inferno Drainer:
0x0000db5c8B030ae20308ac975898E09741e70000
Pink Drainer:
0xe49e04F40C272F405eCB9a668a73EEAD4b3B5624
Trzy, zalecenia bezpieczeństwa
Dostawca portfela:
Odniesienie do implementacji i zarządzania bezpieczeństwem Delegatora 7702 przez Metamask, zabraniając użytkownikom autoryzacji dowolnego Delegatora, oraz pozwalając tylko na operacje wewnętrzne aplikacji. Przypomnij użytkownikom, że wszelkie działania mające na celu skłonienie użytkowników do składania podpisów autoryzacyjnych za pośrednictwem strony internetowej są atakami phishingowymi.
Sprawdź, czy sieć zgadza się z bieżącą siecią i przypomnij użytkownikowi o ryzyku ponownego użycia podpisu podczas podpisywania z chainID równym 0.
Podczas podpisywania przez użytkownika, wyświetl docelowy kontrakt, a podczas masowego wykonania przez Delegatora wyświetl konkretne wywołania funkcji, aby zmniejszyć ryzyko ataków phishingowych w sieci.
Użytkownik:
Ochrona klucza prywatnego zawsze jest najważniejsza. Nie Twoje klucze, nie Twoje monety.
Nie autoryzuj Delegatora na podstawie żadnej niezależnej strony internetowej, bezpieczne autoryzacje zazwyczaj odbywają się tylko w aplikacjach, takich jak Metamask.
Podczas korzystania z dowolnego portfela do podpisu, zwróć uwagę na treść podpisu, aby uniknąć ślepego podpisywania lub błędnego podpisywania.
