Back to Blog

드리프트 프로토콜 사고: 내구성 논스 악용을 통한 멀티시그 거버넌스 침해

Code Auditing
April 3, 2026
7 min read
Key Insights

2026년 4월 1일(UTC), Solana의 Drift Protocol이 멀티시그 승인 조작과 듀러블 논스(durable nonce) 악용을 결합한 조직적 공격으로 해킹당했습니다. 듀러블 논스는 사전 서명된 승인이 무기한 유효하게 유지될 수 있도록 허용하는 Solana 트랜잭션 메커니즘으로, 이번 공격으로 약 2억 8,530만 달러의 피해가 발생한 것으로 추정됩니다 [1, 2]. 수 주간의 온체인 준비 작업 끝에, 공격자는 피싱 또는 오해를 유도하는 서명 요청을 통해 5명의 보안 위원회 멀티시그 서명자 중 2명이 악성 거버넌스 트랜잭션에 사전 서명하도록 유도했습니다. 서명된 명령은 공격자가 선택한 시점까지 보관되었다가, 두 번의 빠른 트랜잭션으로 실행되어 관리자 탈취를 완료하고 관리 권한을 이전했습니다. 완전한 관리자 권한을 확보한 공격자는 악성 담보 자산(CVT)을 도입하고, 해당 자산의 오라클 가격을 부풀리고, 출금 보호 장치를 완화한 뒤, 프로토콜의 대출 경로를 통해 고가 자산을 빼돌렸습니다.

이 글을 작성하는 시점을 기준으로, Drift는 초기 성명 [1]을 발표했지만 아직 전체 사후 분석 보고서를 공개하지 않았습니다. 아래 분석은 공개적으로 이용 가능한 온체인 데이터, Drift의 공식 타임라인, 그리고 독립적인 연구 [2]를 기반으로 합니다. 먼저 듀러블 논스가 멀티시그 거버넌스의 보안 가정을 근본적으로 어떻게 변화시키는지 살펴보고, 이어서 수 주에 걸친 공격 준비 과정, 거버넌스 탈취 실행, 자금 탈취 과정을 재구성한 뒤, 이 유형의 위험을 완화하기 위한 교훈으로 마무리합니다.

Web3 최고의 보안 감사 기관

출시 전 설계, 코드, 비즈니스 로직을 검증하세요

배경

Drift Protocol과 Squads 멀티시그

Drift Protocol은 Solana 위에서 마진 거래, 대출, 현물 시장, 파생상품을 지원하는 DeFi 프로토콜입니다. 관리자 변경, 시장 생성, 오라클 설정, 리스크 파라미터 업데이트, 출금 한도 조정 등 고권한 작업은 단일 개인 키가 아닌 멀티시그로 관리됩니다.

Drift는 Solana에서 일반적으로 사용되는 온체인 거버넌스 시스템인 Squads 멀티시그 프레임워크를 사용합니다. Squads에서는 권한이 필요한 작업이 제안(proposal) 하위의 트랜잭션으로 패키징됩니다. 충분한 수의 구성원이 제안을 승인하면, 저장된 명령은 vaultTransactionExecute를 통해 원자적으로 실행될 수 있습니다. 공격 당시 Drift의 보안 위원회는 타임락이 없는 2-of-5 임계값 구성으로 운영되었으며, 이는 5명의 서명자 중 2명만 있으면 즉각적인 효력으로 관리 작업을 승인할 수 있음을 의미했습니다. 이 시스템의 보안은 서명자 키 보관뿐만 아니라, 전체 승인 파이프라인의 무결성, 즉 어떤 트랜잭션이 생성되었는지, 서명자들이 무엇을 승인한다고 믿었는지, 그리고 최종 실행된 명령이 검토 맥락과 일치하는지에도 달려 있습니다.

듀러블 논스 계정

듀러블 논스 계정은 트랜잭션 실행에 중요한 시간적 차원을 도입합니다 [3]. 일반적인 조건에서 Solana 트랜잭션은 최근 블록해시에 의존하며, 제때 브로드캐스트되지 않으면 서명 후 빠르게 만료됩니다. 듀러블 논스는 이 단명 블록해시를 전용 계정에 저장된 논스로 대체하여, 서명된 트랜잭션이 논스가 진행될 때까지 무기한 유효하게 유지되도록 합니다. 이 기능은 오프라인 서명이나 지연 제출과 같은 합법적인 사용 사례에 유용하지만, 중요한 공격 원시값을 생성하기도 합니다. 바로 트랜잭션이 서명되는 시점온체인에서 실행되는 시점을 분리한다는 것입니다. 결정적으로, 서명자가 듀러블 논스 트랜잭션을 승인하면, 논스 권한자가 수동으로 논스 계정을 진행시키지 않는 한 서명을 취소할 수 없습니다.

이러한 분리는 멀티시그 보안에 미묘하지만 근본적인 영향을 미칩니다. 일반적인 블록해시 기반 트랜잭션에서는 짧은 만료 기간이 암묵적인 안전 계층 역할을 합니다. 즉, 서명자의 승인은 즉시 실행되거나 무해하게 만료됩니다. 이러한 시간적 제약은 서명자가 악성 트랜잭션을 승인하도록 속더라도 공격자가 좁은 시간 창 내에 이를 브로드캐스트해야 함을 의미하며, 조율된 다단계 악용의 범위를 제한합니다. 듀러블 논스는 이 제약을 완전히 제거합니다. 무기한 유효한 서명으로 인해, 단 한 번의 서명 실수의 비용이 근본적으로 달라집니다. 속아서 한 승인이 더 이상 몇 분 내에 만료되지 않고 자동 시간 제한 없이 악용 가능한 상태로 유지되어, 공격자가 실행 타이밍을 완전히 통제하고 후속 단계를 마음대로 조율할 수 있게 됩니다.

공격 분석

공격은 세 가지 뚜렷한 단계로 전개되었습니다. 공격 전 준비 단계에서 공격자는 수 주에 걸친 작전을 수행하여 가짜 담보 자산을 제조하고 오해를 유도하는 서명 요청을 통해 거버넌스 접근 권한을 획득했습니다. 거버넌스 탈취 단계에서는 사전 서명된 두 개의 듀러블 논스 트랜잭션이 빠른 연속으로 제출되어 관리 권한을 장악했습니다. 자금 탈취 단계에서는 공격자가 프로토콜 파라미터를 조작하고 프로토콜의 대출 경로를 통해 실제 자산을 빼돌렸습니다. 아래 다이어그램은 세 단계에 걸친 공격 실행 흐름을 보여주며, 이어지는 각 소절에 해당합니다. 공격 전 준비 단계에서 자세히 설명하는 CVT 제조 병렬 트랙은 다이어그램에 표시되지 않습니다.

공격 전 준비

이 공격은 단순한 기회주의적 타격이 아니라 두 가지 병렬 준비 트랙으로 진행된 수 주에 걸친 작전이었습니다. 첫 번째 트랙은 그럴듯한 담보 자산을 제조하는 데 집중했습니다. 3월 11일, 공격자는 Tornado Cash에서 10 ETH를 인출하고 이 자금으로 CarbonVote Token(CVT)을 배포하여 7억 5,000만 개를 발행했습니다. 이후 수 주에 걸쳐 공격자는 Raydium에 소량의 유동성을 심고 워시 트레이딩을 사용하여 $1 근처에 인위적인 가격 기록을 구축함으로써, CVT에 시장 합법성의 표면적인 모습을 부여했습니다 [4].

두 번째 트랙은 거버넌스 접근 권한을 목표로 했습니다. Drift의 공식 타임라인 [1]에 따르면, 3월 23일에 4개의 듀러블 논스 계정이 생성되었습니다. 그 중 2개는 Drift 보안 위원회 멀티시그 구성원과 연결되었고, 2개는 공격자가 통제했습니다. 이는 5명의 서명자 중 최소 2명이 이미 듀러블 논스 계정과 연결된 트랜잭션에 서명했음을 나타내며, 공격자에게 필요한 2-of-5 승인 임계값을 부여했습니다.

3월 27일, Drift는 위원회 구성원 변경으로 인해 계획된 보안 위원회 마이그레이션을 실행했습니다. 이 마이그레이션으로 이전에 수집된 서명이 이전 구성에서 무효화되었습니다. 그러나 3월 30일까지 업데이트된 멀티시그의 구성원과 연결된 새로운 듀러블 논스 계정이 나타났으며, 이는 공격자가 새로운 구성에서 필요한 2-of-5 승인 임계값을 재획득했음을 나타냅니다.

이 일련의 과정은 공격자가 온체인 거버넌스 변경 사항을 적극적으로 모니터링하고 실시간으로 적응하고 있었음을 보여줍니다. 단일 피싱 캠페인이 아니라, 서명 수집은 멀티시그 재구성이라는 준비 중간 변화에도 살아남은 지속적인 작전이었습니다. 마이그레이션 자체가 의도치 않게 공격자를 도왔을 수도 있습니다. 거버넌스 전환 중에는 서명자들이 관리 서명 요청을 마주하고 승인할 가능성이 더 높아, 자연스러운 사회공학적 공격 창을 만들어냅니다.

4월 1일, 공격자는 정확한 실행 창을 선택했습니다. Drift가 먼저 보험 펀드에서 합법적인 테스트 출금을 실행했습니다. 약 1분 후, 공격자는 사전 서명된 공격 트랜잭션을 제출했습니다. 이 타이밍은 공격자가 실시간으로 온체인 활동을 모니터링하다가, 시스템이 정상 운영 상태임을 확인하는 합법적인 성공 작업을 기다렸다가 공격했음을 시사합니다.

거버넌스 탈취

4월 1일 약 16:05 UTC에 공격자는 사전 서명된 두 개의 듀러블 논스 트랜잭션을 4슬롯 간격으로 제출했습니다. 첫 번째 트랜잭션(2HvMSg...2C4H)은 악성 관리자 이전 제안을 생성하고 승인했습니다. 두 번째 트랜잭션(4BKBmA...RsN1)은 이를 승인하고 실행했으며, AdvanceNonceAccount로 저장된 논스를 활성화한 다음 proposalApprovevaultTransactionExecute를 통해 진행하여 최종적으로 UpdateAdmin을 호출해 관리 권한을 공격자가 통제하는 주소로 이전했습니다.

이 실행 흐름은 공격의 핵심 속성을 부각시킵니다. 결정적인 승인은 실행 시점이 아니라 이전 서명 단계에서 발생했다는 것입니다. 온체인 트랜잭션은 이미 부여된 권한을 단지 구현한 것에 불과합니다.

자금 탈취

관리 권한을 획득한 후, 공격자는 자금을 탈취하기 전에 세 가지 준비 단계를 수행했습니다. CVT에 대한 악성 담보 시장을 생성하고, 공격자가 통제하는 오라클로 전환하여 가격을 부풀리고, 대규모 탈취를 가능하게 하기 위해 출금 보호 장치를 완화했습니다.

첫 번째 단계는 CVT에 대한 악성 담보 시장을 생성하는 것이었습니다. 이 시장의 문제는 단순히 새롭다는 것이 아니라, 실제 유동성이 없으면서도 지나치게 관대한 리스크 파라미터가 할당되었다는 점입니다. 환금 가치가 없는 자산이 프로토콜 내에서 고가중 담보로 수락되면, 실재하지 않는 차입 능력을 만들어내는 데 사용될 수 있습니다.

두 번째 단계는 공격자가 통제하는 오라클로 전환하여 가격을 부풀리는 것이었습니다. 관리자 권한으로 이 단계에서 우회해야 할 추가적인 제한이 없었습니다. 오라클이 공격자의 통제하에 들어오면, CVT의 장부 가격을 임의로 부풀려 실제 시장 가치가 거의 없는 자산이 프로토콜 내에서 고가치 담보처럼 보이게 만들 수 있었습니다.

세 번째 단계는 출금 보호 장치와 서킷 브레이커를 완화하는 것이었습니다. 담보 가격이 부풀려졌다 하더라도, 주요 자산 시장의 출금 한도가 대규모 탈취를 제한했을 것입니다. 조작된 담보 가치를 탈취 가능한 실제 자산으로 전환하기 전에, 이러한 안전장치를 높이거나 제거해야 했습니다.

이 단계들이 완료되자, 공격자는 과대평가된 CVT를 대량으로 프로토콜에 예치한 뒤, 약 12분에 걸쳐 31번의 빠른 출금을 실행하여 USDC, JLP, SOL, cbBTC, USDT, wETH, dSOL, WBTC, JTO, FARTCOIN을 포함한 실제 자산을 빼돌렸습니다. 이로써 수익 탈취 루프가 완성되었습니다. 거버넌스 통제권을 획득하고, 파라미터를 변경하고, 가치 없는 자산을 고가치 담보로 포장한 뒤, 프로토콜의 기존 대출 및 출금 경로를 통해 자금을 빼내는 것입니다.

이 글을 작성하는 시점을 기준으로, 공격자의 출금 계정(HkGz4K...pZES)를 기준으로 계산된 총 손실은 $285,279,417.69입니다.

교훈

  • 멀티시그 보안은 키 보관을 넘어선다. 개인 키를 보호하고 서명 임계값을 적용하는 것만으로는 충분하지 않습니다. 트랜잭션 구성, 표시, 서명자 해석을 포함한 전체 승인 파이프라인이 신뢰할 수 있어야 합니다. 이번 사건에서 서명자들의 키는 침해되지 않았지만, 승인 과정이 의도하지 않은 행동을 승인하도록 조작되었습니다.

  • 타임락은 고권한 작업에 필수적이다. 소유권 이전과 같은 관리 작업은 즉시 실행 가능해서는 안 됩니다. Drift의 타임락 없는 구성은 사전 서명된 트랜잭션이 트리거되자마자 관리 권한이 이전되고 단 몇 분 만에 악용되어, 감지나 개입의 기회가 전혀 없었음을 의미했습니다. 타임락이 있었다면 악성 이전을 식별하고 차단할 수 있는 대응 창을 만들어냈을 것입니다.

  • 지연 실행 메커니즘은 거버넌스 맥락에서 추가적인 안전장치를 필요로 한다. 듀러블 논스는 서명과 실행을 분리하여 서명자들이 의존하는 암묵적인 시간적 보장을 제거합니다. 거버넌스 시스템에서 이러한 종류의 메커니즘은 더 높은 서명 임계값, 시간 제한 또는 취소 가능한 승인, 그리고 서명된 트랜잭션이 무기한 유효하게 유지되는 것을 방지하는 제한과 함께 사용되어야 합니다.

결론

이번 사건은 스마트 컨트랙트 취약점이나 키 침해로 인한 것이 아니라, 멀티시그 승인 과정의 붕괴와 듀러블 논스 기반 지연 실행의 결합으로 발생했습니다. 공격자는 오해를 유도하는 서명을 통해 5명의 보안 위원회 서명자 중 2명으로부터 유효한 멀티시그 승인을 사전에 수집하고, 듀러블 논스 트랜잭션을 사용하여 이를 보존한 뒤, 나중에 이를 실행하여 관리 권한을 획득했습니다. 이후의 자금 탈취는 침해된 거버넌스의 직접적인 결과로, 달리 유효한 프로토콜 작업을 통해 수행되었습니다. 이 유형의 위험을 완화하려면 전체 승인 파이프라인을 보호하고, 고권한 작업에 타임락을 적용하며, 지연 실행 메커니즘에 대한 추가 안전장치를 구현해야 합니다. 실시간으로 비정상적인 거버넌스 활동을 감지할 수 있는 온체인 모니터링 시스템과 결합하면, 이러한 조치들이 이 유형의 거버넌스 계층 공격에 대한 포괄적인 보안 시스템을 형성합니다.

참고문헌

[1] DriftProtocol, "공식 성명": https://x.com/DriftProtocol/status/2039564437795836039

[2] Phalcon (BlockSec), "Drift Protocol 익스플로잇 분석": https://x.com/Phalcon_xyz/status/2039602380074016909

[3] Solana, "듀러블 논스 소개": https://solana.com/developers/guides/advanced/introduction-to-durable-nonces

[4] CoinDesk, "Drift 공격자들이 편의를 위해 설계된 Solana 기능을 사용하여 2억 7,000만 달러 이상을 탈취한 방법": https://www.coindesk.com/tech/2026/04/02/how-a-solana-feature-designed-for-convenience-let-an-attacker-drain-usd270-million-from-drift


Phalcon Security 시작하기

모든 위협을 감지하고, 중요한 것을 알리고, 공격을 차단하세요.

지금 무료로 시작하기

BlockSec 소개

BlockSec은 풀스택 블록체인 보안 및 암호화폐 컴플라이언스 제공업체입니다. 저희는 고객이 프로토콜 및 플랫폼의 전체 수명 주기에 걸쳐 코드 감사(스마트 컨트랙트, 블록체인 및 지갑 포함)를 수행하고, 공격을 실시간으로 차단하고, 사건을 분석하고, 불법 자금을 추적하고, AML/CFT 의무를 이행할 수 있도록 돕는 제품과 서비스를 구축합니다.

BlockSec은 권위 있는 학술 대회에서 여러 블록체인 보안 논문을 발표하고, DeFi 애플리케이션의 여러 제로데이 공격을 보고하고, 2,000만 달러 이상을 구제하기 위한 여러 해킹을 차단하고, 수십억 달러의 암호화폐를 보호했습니다.

Sign up for the latest updates
~$410만 손실: Taiko, SecondFi 익스플로잇 | BlockSec 위클리
Security Insights

~$410만 손실: Taiko, SecondFi 익스플로잇 | BlockSec 위클리

이 주간 블록체인 보안 리포트는 2026년 6월 22~28일 발생한 주요 사건 2건을 다루며, 이더리움과 카르다노에서 약 410만 달러의 피해가 확인됐습니다. Taiko 브릿지 공격은 노출된 SGX 서명 키와 디버그 엔클레이브를 거부하지 못한 증명 정책 결함을 이용해 악성 증명자를 등록하고 L2 상태 증명을 위조했습니다. SecondFi 지갑은 Ed25519 논스 도출 시 비밀 입력이 제거되는 결함으로 공개 트랜잭션 데이터만으로 개인 키 복구가 가능했습니다.

~$18M 손실: jaredFromSubway, Aztec 등 | BlockSec 위클리
Security Insights

~$18M 손실: jaredFromSubway, Aztec 등 | BlockSec 위클리

이 주간 블록체인 보안 보고서는 2026년 6월 15일~21일을 다루며, 이더리움과 BNB 체인에서 3건의 주요 사고가 발생해 약 $18.3M의 손실이 발생했습니다. jaredFromSubway 사건은 MEV 봇이 차익거래를 위해 신뢰할 수 없는 제3자 컨트랙트에 자산을 승인한 역방향 승인 공격으로, 가짜 래퍼 토큰과 스왑 풀을 이용해 약 $15M 손실이 발생했습니다. Aztec은 이스케이프 해치 ZK 회로의 제약 누락으로 공격자가 가짜 머클 트리로 온체인 검증을 통과했습니다.

Web3 컴패니언: 오픈소스 보안 에이전틱 지갑

Web3 컴패니언: 오픈소스 보안 에이전틱 지갑

BlockSec가 Web3 Companion을 오픈소스로 공개했습니다. 이 보안 중심의 에이전트 지갑은 자체 AI 에이전트를 신뢰하지 않는 방식으로 설계되었으며, 키 격리, 강력한 정책, Passkey를 활용해 온체인 자산을 보호합니다.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit