비수탁형 · 읽기 전용

EIP-7702 공격 완전 정리

Ethereum의 Pectra 업그레이드는 일반 지갑이 일시적으로 스마트 컨트랙트처럼 동작할 수 있게 했습니다. 드레이너들은 이를 즉시, 기존 승인 검사로는 볼 수 없는 새로운 서명 한 번짜리 익스플로잇으로 바꿔버렸습니다.

무료로 지갑 스캔하기 텔레그램에서 24/7 감시

공개 주소만 입력하세요. 지갑 연결도, 서명할 것도 없습니다.

EIP-7702이 실제로 하는 일

EIP-7702은 일반 지갑(EOA)이 자신의 실행을 다른 주소에 있는 코드에 위임하는 '승인(authorization)'에 서명하게 하여, 그 위임이 유지되는 동안 스마트 컨트랙트 같은 계정으로 바꿔줍니다. 이는 새 주소로 옮기지 않고도 정당한 계정 추상화(account abstraction) 업그레이드, 일괄 트랜잭션, 가스비 대납, 를 위한 것입니다.

드레이너가 이 승인을 악용하는 방법

피싱 페이지는 똑같은 서명을 수령, 업그레이드, 또는 '계정 인증' 단계인 것처럼 꾸밉니다. 서명하면, 당신의 지갑 실행은 이제 공격자의 컨트랙트로 위임됩니다. 토큰마다 따로 서명할 승인이 없습니다, 위임된 코드가 당신의 계정으로서 행동하며 그 안의 무엇이든 옮길 수 있습니다.

기존 방어가 이를 놓치는 이유

승인 스캐너는 토큰 allowance 저장 공간을 건드리는 approve()와 Permit 호출을 감시합니다. 7702 승인은 둘 다 하지 않으므로, 이후에 승인을 revoke해도 아무것도 바뀌지 않습니다. chainId 0으로 서명된 위임은 모든 체인에서 동시에 유효합니다, 하나의 정당한 앱이 아니라 대량 드레인을 위해 만들어진 위임의 특징입니다.

Guardian이 서명 전에 이를 잡아내는 방법

Veriql의 Guardian은 대기 중인 요청 안의 authorizationList를 모두 디코딩하고, chainId-0(모든 체인) 위임을 드레이너의 특징으로 표시하며, 대상 컨트랙트의 코드가 무엇을 하든 상관없이 서명하기 전에 전체 화면 STOP을 띄웁니다. Pectra 출시 이후, 알려진 앱 밖에서 관찰된 7702 위임의 대다수가 악성이었으므로, 예상치 못한 위임 프롬프트는 무조건 멈춤 신호로 받아들이세요.

자주 묻는 질문

토큰 승인을 revoke하면 악성 7702 위임이 되돌려지나요?

아니요. 위임은 allowance 저장 공간을 건드리지 않으므로, 거기에 revoke할 것이 없습니다. 되돌리려면 같은 지갑에서 위임을 다시 아무것도 아닌 곳으로 향하게 하는 새 승인에 서명해야 하는데, 지갑이 완전히 탈취된 상태라면 늘 실용적이지는 않습니다. 그래서 남은 자산을 새 지갑으로 옮기는 것이 더 안전한 기본 선택입니다.

EIP-7702 자체가 위험한가요?

아니요: 정당한 Ethereum 업그레이드입니다. 위험은 다른 모든 드레이너 패턴과 동일합니다: 남의 컨트랙트를 위한 무언가에 서명하도록 속는 것이죠. 서명이 더 새로울 뿐이라, 처음에는 이를 감시하는 도구가 더 적었을 뿐입니다.

관련 글