언어 선택

신뢰를 훔치다: Web3 인증에서의 블라인드 메시지 공격 분석

Web3 인증의 새로운 '블라인드 메시지 공격' 취약점 분석, Web3AuthChecker를 통한 탐지, 그리고 MetaMask용 Web3AuthGuard를 활용한 완화 방안.
tokens-market.com | PDF Size: 0.6 MB
평점: 4.5/5
당신의 평점
이미 이 문서를 평가했습니다
PDF 문서 표지 - 신뢰를 훔치다: Web3 인증에서의 블라인드 메시지 공격 분석

1. 서론 및 개요

탈중앙화 블록체인 기술 위에 구축된 Web3는 DeFi, NFT, 게임 등의 분야에서 폭발적인 성장을 이루었으며, 총 예치 가치(TVL)는 수십억 달러에 이릅니다. 이 생태계의 근본적인 구성 요소는 Web3 인증으로, 사용자가 자신의 공개 키(지갑 주소)로 식별되는 챌린지-응답 프로토콜입니다. 애플리케이션은 사용자의 암호화폐 지갑(예: MetaMask)에 메시지를 보내고, 사용자는 개인 키로 서명하며, 애플리케이션은 서명을 검증하여 접근 권한을 부여합니다.

Web3 애플리케이션과 자산에 대한 관문으로서의 중요한 역할에도 불구하고, 이 인증 과정의 보안은 대부분 간과되어 왔습니다. 기존 연구가 스마트 계약 버그와 DeFi 공격에 집중하는 동안, 본 논문은 인증 계층 자체의 체계적인 취약점을 규명하고 이를 "블라인드 메시지 공격"이라고 명명합니다.

핵심 통계 한눈에 보기

  • 테스트된 Web3 인증 배포 중 75.8%가 취약했습니다.
  • 실제 애플리케이션 29개 중 22개가 위험에 노출되어 있었습니다.
  • Web3AuthGuard를 사용한 공격 탐지 성공률은 80%였습니다.
  • 발견된 취약점에 대해 두 개의 CVE ID가 할당되었습니다.

2. 블라인드 메시지 공격

2.1 공격 모델 및 취약점

핵심 취약점은 사용자가 서명 요청의 진정한 출처와 의도를 확인할 수 없다는 점에 있습니다. 일반적인 Web3 인증 흐름에서, 지갑 팝업은 사용자가 서명할 메시지(종종 임의의 논스)를 표시합니다. 이 공격은 이 메시지가 불투명하고 그 출처가 위조될 수 있다는 사실을 악용합니다.

공격 시나리오: 공격자는 합법적인 Web3 애플리케이션의 로그인 페이지를 모방한 악성 웹사이트를 생성합니다. 사용자가 지갑을 연결하면, 악성 사이트는 대상 합법 애플리케이션으로부터의 인증 요청(메시지)을 사용자의 지갑으로 전달합니다. 사용자는 지갑 인터페이스에서 일반적인 서명 요청을 보고 무심코 서명합니다. 그런 다음 서명은 공격자를 통해 합법 애플리케이션으로 다시 전송되어, 공격자에게 해당 애플리케이션에서 사용자 계정에 대한 무단 접근 권한을 부여합니다.

2.2 기술적 메커니즘

이 공격은 애플리케이션 계층에서의 중간자 공격의 한 형태이지만, 지갑-애플리케이션 상호작용 프로토콜의 설계 결함에 의해 용이해집니다. 지갑의 API(예: eth_requestAccounts, personal_sign)는 모든 메시지 유형에 대해 요청 도메인에 대한 상황별 메타데이터를 강제하거나 명확하게 표시하지 않아 사용자에게 "블라인드 스팟"을 생성합니다.

3. 탐지 및 완화

3.1 Web3AuthChecker 도구

저자들은 Web3 애플리케이션의 인증 관련 API와 자동으로 상호작용하는 동적 분석 도구인 Web3AuthChecker를 개발했습니다. 이 도구는 블라인드 메시지 공격 벡터(서명 요청을 가로채고 중계하는 것)를 시뮬레이션하려 시도하고, 다른 출처에서 얻은 서명으로 애플리케이션의 세션 관리가 손상될 수 있는지 확인함으로써 취약점을 탐색합니다.

3.2 MetaMask용 Web3AuthGuard

클라이언트 측 방어로서, 저자들은 오픈소스 MetaMask 지갑과 통합되는 브라우저 확장 프로토타입인 Web3AuthGuard를 구현했습니다. 그 기능은 서명 요청의 컨텍스트를 분석하는 것입니다. 요청을 시작한 도메인과 메시지 내에 포함되거나 연관된 의도된 수신자 도메인을 비교합니다. 불일치나 의심스러운 중계 패턴이 감지되면, 사용자가 서명하기 전에 경고를 발생시킵니다.

4. 평가 및 결과

4.1 실험 설정

본 연구는 DeFi 플랫폼(예: Uniswap, Aave), NFT 마켓플레이스(예: OpenSea), Web3 게임 등을 포함한 카테고리의 29개의 인기 Web3 애플리케이션을 평가했습니다. Web3AuthChecker는 자동으로 이들의 인증 엔드포인트를 테스트하기 위해 배포되었습니다.

4.2 주요 발견 사항 및 통계

결과는 경각심을 불러일으켰습니다: 애플리케이션 29개 중 22개(75.8%)가 블라인드 메시지 공격에 취약했습니다. 이 높은 유병률은 취약점이 체계적이며 예외적인 경우가 아님을 나타냅니다. Web3AuthGuard의 후속 평가는 테스트된 취약한 인증 흐름의 80%에서 성공적으로 경고를 발생시킬 수 있음을 보여주어, 실시간 사용자 보호의 실현 가능성을 입증했습니다.

차트 설명 (상상): 막대 차트는 "취약한 애플리케이션 (22개)"가 "안전한 애플리케이션 (7개)"보다 훨씬 높게 표시될 것입니다. 두 번째 차트는 Web3AuthGuard의 "성공적인 경고" 막대가 "테스트된 취약한 흐름" 막대의 80%를 차지하는 것을 보여줄 것입니다.

5. 기술 심층 분석

5.1 수학적 기초

Web3 인증은 일반적으로 이더리움에서 사용되는 secp256k1 곡선을 사용하는 타원 곡선 암호화를 이용한 디지털 서명에 의존합니다. 공개 키 $Q$(주소에서 파생됨)에 대한 메시지 $m$의 서명 $(r, s)$에 대한 핵심 검증은 다음과 같습니다:

$ \text{Verify}(m, (r, s), Q) = \text{true} \quad \text{if} \quad s^{-1} \cdot (eG + rQ)_x \equiv r \ (\text{mod}\ n) $

여기서 $e$는 메시지 $m$의 해시, $G$는 생성점, $n$은 곡선 차수입니다. 이 공격은 이 암호화를 깨뜨리지 않습니다. 대신, $m$이 특정 출처/컨텍스트에 결속된다는 프로토콜 가정을 깨뜨립니다. 보안 실패는 $ \text{Context}(m) \neq \text{PerceivedContext}_{user} $입니다.

5.2 분석 프레임워크 예시

사례 연구: DeFi 대시보드 로그인 분석.

  1. 1단계 - 정찰: Web3AuthChecker를 사용하여 대시보드의 로그인 API 엔드포인트를 호출하고 챌린지 메시지 $C_d$를 캡처합니다.
  2. 2단계 - 중계 시뮬레이션: $C_d$를 모의 악성 사이트 $M$에 의해 생성된 서명 요청에 포함시킵니다.
  3. 3단계 - 서명 제출: $M$의 컨텍스트에서 $C_d$에 서명하여 생성된 서명 $\sigma$를 원래 대시보드의 검증 엔드포인트로 다시 제출합니다.
  4. 4단계 - 취약점 확인: 대시보드가 $\sigma$를 수락하고 세션을 설정하면, 블라인드 메시지 공격이 확인됩니다. 결함은 대시보드가 $\text{Verify}(C_d, \sigma, Q)$만 검증하고 $\text{Origin}(\sigma) == \text{Dashboard}$는 검증하지 않는다는 점입니다.

6. 분석가 관점

핵심 통찰: Yan 외 연구진의 논문은 Web3 산업의 UX 보안에 대한 안일함에 강력한 일격을 가합니다. 사용자 주권을 내세운 바로 그 메커니즘—암호화 서명—이 피싱 시나리오에서 전통적인 비밀번호보다 안전하게 만드는 치명적인 UX 결함을 가지고 있음을 폭로합니다. 사용자는 가짜 비밀번호 필드를 감지할 수 있지만, 위조된 서명 요청은 구별할 수 없습니다. 이것은 스마트 계약 버그가 아닙니다. 이는 초기 웹의 TLS 및 동일 출처 정책 부재를 연상시키는, 지갑-애플리케이션 핸드셰이크의 근본적인 프로토콜 수준 설계 실패입니다.

논리적 흐름: 연구 논리는 흠잡을 데 없습니다. 가설(인증 메시지가 악의적으로 중계될 수 있음)로 시작하여, 대규모 테스트를 위한 도구(Web3AuthChecker)를 구축하고, 엄청난 유병률(75.8%)을 발견한 다음, 실용적인 대응책(Web3AuthGuard)을 설계하여 완화 가능성을 증명합니다. CVE 할당은 위협을 공식화하여 학술적 개념에서 반드시 패치해야 할 취약점으로 이동시킵니다.

강점과 결함: 강점은 파괴적으로 단순하지만 이전에는 간과되었던 공격 벡터와 그 막대한 실제 영향에 있습니다. 프로토타입 방어는 실용적입니다. 많은 시스템 보안 연구와 마찬가지로 결함은 Web3AuthGuard가 일시적인 해결책이라는 점입니다. 이는 프로토콜 자체가 보안을 강제해야 하는 곳에 검사를 추가합니다. 장기적인 해결책은 지갑 제공업체(예: MetaMask)와 표준 기관(예: EIP-712)이 도메인 컨텍스트를 서명 가능한 메시지에 암호화적으로 결속하도록 의무화하는 것을 요구합니다. 수십 년간의 피싱 연구로 입증된 바와 같이, 사용자가 경고에 주의하도록 의존하는 것은 실패로 입증되었습니다.

실행 가능한 통찰: 개발자를 위해: 즉시 인증 흐름을 감사하십시오. 서명만 검증하지 말고, 세션 바인딩을 통해 서명의 출처가 귀하의 도메인과 일치하는지 검증하십시오. 지갑 제작자를 위해: 이것은 최고 위험 등급의 화재입니다. 의무적인 도메인 분리가 포함된 EIP-712 구조화된 데이터 서명을 구현하고 모든 인증 요청에 기본값으로 설정하십시오. 신뢰할 수 없는 일반 텍스트 personal_sign 요청은 눈에 띄는, 위험 신호 UI로 렌더링하십시오. 표준 기관을 위해: 중계 공격을 암호화적으로 불가능하게 만드는 프로토콜을, 단순히 시각적으로 경고하는 것이 아니라, 신속하게 추진하십시오. 정중한 제안의 시간은 끝났습니다. 520억 달러 규모의 DeFi 생태계는 강력한 보안 기본 요소를 요구합니다.

7. 향후 적용 및 방향

함의는 로그인을 넘어 확장됩니다. 트랜잭션, 토큰 승인, DAO 투표를 위한 모든 Web3 서명 요청은 유사한 블라인드 중계 공격에 잠재적으로 취약합니다. 향후 연구 및 개발은 다음에 집중해야 합니다:

  1. 프로토콜 수준 솔루션: 메시지가 검증 가능한 도메인 매개변수로 유형화되고 구조화되어 중계 불가능하게 만드는 EIP-712 및 그 후속 표준의 광범위한 채택과 강제.
  2. 하드웨어 지갑 통합: 현재 제한된 메시지 데이터만 표시하는 하드웨어 지갑 화면으로 컨텍스트 검증 확장.
  3. 인증 흐름의 정형 검증: 스마트 계약에 사용되는 것(예: KEVM 프레임워크)과 유사한 정형 방법을 적용하여 오프체인 인증 프로토콜 자체의 보안 속성을 검증.
  4. 머신러닝 탐지기: Web3AuthChecker와 같은 도구를 기반으로 하여 취약한 인증 구현을 자동으로 표시하는 dApp 스토어나 보안 감사관을 위한 지속적인 모니터링 시스템 구축.
  5. 탈중앙화 신원(DID) 융합: 이 작업은 이러한 공격 벡터를 처음부터 염두에 두고 설계된 더 강력한 DID 인증 표준(예: W3C 검증 가능한 자격증명)의 필요성을 강조합니다.

8. 참고문헌

  1. Yan, K., Zhang, X., & Diao, W. (2024). Stealing Trust: Unraveling Blind Message Attacks in Web3 Authentication. Proceedings of the 2024 ACM SIGSAC Conference on Computer and Communications Security (CCS’24).
  2. Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System.
  3. MetaMask. https://metamask.io
  4. EIP-712: Ethereum Typed Structured Data Hashing and Signing. https://eips.ethereum.org/EIPS/eip-712
  5. Atzei, N., Bartoletti, M., & Cimoli, T. (2017). A survey of attacks on Ethereum smart contracts (SoK). Principles of Security and Trust.
  6. Zhuang, Y., et al. (2020). Tools and benchmarks for automated log parsing. IEEE International Conference on Software Engineering (ICSE). (Example of rigorous tool evaluation methodology).
  7. DeFi Llama. Total Value Locked Statistics. https://defillama.com