마지막 업데이트
이더리움 네트워크의 최근 업데이트인 Pectra는 5월 7일에 출시되어 해커들에게 위험한 구멍을 만들어주었습니다. 이제 악의적인 사용자는 전통적인 온체인 거래 없이 오프체인 서명만으로 사용자 지갑을 비울 수 있습니다.
문제의 근원 – EIP-7702
위험의 중심 요소는 EIP-7702로, Pectra 업데이트의 핵심 구성 요소입니다. 이 제안은 사용자가 메시지에 서명하는 것만으로 다른 계약에 자신의 지갑에 대한 제어를 위임할 수 있도록 하는 새로운 유형의 거래인 SetCode(유형 0x04)를 도입합니다.
오프체인 서명이란?
오프체인 서명은 사용자가 거래를 블록체인에 전송하지 않고 메시지 아래에 서명하는 것입니다. 이러한 서명은 종종 웹사이트 및 서비스에서 인증할 때, 분산형 애플리케이션(DApps)에 로그인할 때 또는 블록체인 기록이 필요 없는 다양한 작업을 확인할 때 사용됩니다.
공격 메커니즘
공격 메커니즘은 간단합니다: 만약 악의적인 사용자가 피싱 사이트, 허위 DApp 애플리케이션 또는 Discord 사기를 통해 그러한 서명을 획득하면, 그는 악성 계약을 설정하여 지갑의 코드를 덮어쓸 수 있습니다. 그 후 해커는 자금에 대한 완전한 제어권을 얻게 됩니다.
위협을 받는 사람들
위험에 처해 있는 모든 이더리움 지갑 소유자들:
- 표준 이더리움 지갑을 가진 일반 사용자, 특히 DApps와 정기적으로 상호작용하는 사용자
- 하드웨어 지갑 소유자 (소프트웨어 지갑과 마찬가지로 취약함)
- 구식 보안 검사를 기반으로 하는 스마트 계약 사용자
코드가 설정되면
코드가 설정되면, 악의적인 사용자는 이 코드를 호출하여 계정에서 ETH 또는 토큰을 전송할 수 있으며, 이 모든 것이 사용자가 일반적인 전송 거래에 서명할 필요 없이 이루어집니다. Pectra 이전에는 지갑이 사용자에 의해 직접 서명된 거래 없이 수정될 수 없었습니다. 업데이트 이후, 사용자가 SET_CODE를 통해 승인한 계약에서 모든 작업이 수행될 수 있습니다.
하드웨어 지갑도 위험에 처함
하드웨어 지갑은 이제 악성 메시지 서명 측면에서 핫 월렛과 동일한 위험에 처해 있습니다. 만약 이러한 서명이 이루어지면 모든 자금이 순식간에 사라질 수 있습니다.
보호를 위해 전문가들은 권장합니다:
- 이해하지 못하는 메시지에는 서명하지 마십시오
- 지갑의 경고에 주의하십시오
- 계정의 nonce(거래 카운터)를 포함하는 메시지에 특히 주의하십시오
- chain_id = 0인 서명은 모든 이더리움 호환 네트워크에서 재생될 수 있음을 기억하십시오
가장 안전한 것은 여러 서명자가 요구되는 멀티서명 지갑입니다. 그러나 단일 키를 가진 지갑 사용자들은 극도로 조심해야 합니다.