永続的ノンスはSolanaの正規機能なのに、なぜ攻撃ツールになったのですか?
永続的ノンスは元々、実際の問題を解決するために設計された機能だ。通常のSolana取引には有効期限があり、署名後すぐに送信しないと期限切れになってしまう。これは複数のデバイスにまたがる署名調整や、レビュープロセスのために実行を遅延させたい正当なユースケースには不便だった。永続的ノンスにより、取引は一度署名され、期限切れになることなく将来の任意の時点まで保持し、送信することができるようになった。
この機能自体に問題はない。問題は「署名時点でのレビュー」と「後で実際に実行される内容」の間に生じる時間差だ。攻撃者はまさにこの時間差を悪用し、何も疑わしく見えない瞬間に署名者に承認させ、実際の悪意ある効果は数週間後にのみ発動するようにした。
Driftはなぜ攻撃のわずか4日前にタイムロックを撤去したのですか?これは攻撃者による操作の結果ですか?
公開されている報告では、タイムロック撤去の意思決定の具体的な経緯が攻撃者から直接影響を受けていたかどうかは明確にされていない。しかし、このタイミングの一致自体が警戒に値する。撤去がチームの自主的な運用判断だったのか、それとも攻撃者が数ヶ月かけて築いた信頼関係を通じて間接的に影響を及ぼした結果だったのかにかかわらず、結果は同じだ——他のメンバーが異常な取引を発見する機会を提供するはずだった緩衝期間の仕組みが、まさに攻撃の重要な時間帯に存在しなかった。
これはより広い原則を示している——ガバナンスのセキュリティ設定への変更(特に閾値の引き下げや保護措置の撤去)は、通常の内部承認プロセスだけでなく、独立した審査を必要とする高リスクの行動として扱われるべきだということだ。
偽造トークンCVTは攻撃全体の中でどのような役割を果たしましたか?
CVT(CarbonVote Token)は、最終的な引き出しをオンチェーン上で正当に見せかけるために攻撃者が作り出した小道具だった。ウォッシュトレード(自作自演の売買で取引量を捏造する)とごくわずかな実際の流動性投入を通じて、攻撃者はDriftのオラクルシステムにCVTが実質的な市場価値を持つと誤認させ、システム内で正当な担保として記録させることに成功した。このステップにより、後に事前署名済み取引を通じて実行される巨額の引き出しが、システムのロジック上、対応する資産に裏付けられているように見えるようにした——資金が何もないところから消えたのではなく。
これはこの攻撃の巧妙さも示している。攻撃者は人とガバナンスプロセスに侵入しただけでなく、オンチェーンの価格発見メカニズムも同時に操作し、2つの攻撃経路を同じ日に収束させたのだ。
他のプロトコルやDAOはこの事件から何を学べますか?
いくつかの実行可能な教訓がある。第一に、ガバナンスのタイムロックは気軽に調整できるパラメータとして扱うべきではなく、タイムロックの撤去や短縮を求める提案自体が追加のマルチパーティ審査を発動すべきだ。第二に、永続的ノンスや類似の遅延実行メカニズムをサポートするチェーンでは、チームは「まだ何も起きていないから安全」と仮定するのではなく、未実行の事前署名済み取引が存在しないか定期的に監査すべきだ。第三に、外部パートナー——たとえ長期的な関係を築き、実際に資金を投じてきた相手であっても——に対して継続的な身元確認と職務分離の意識を保ち、単一の外部連絡先にコードアクセスとガバナンスレベルの影響力の両方を持たせないようにすべきだ。
最も根本的な点は、マルチシグが保護するのは「意思決定の瞬間」であり、「その意思決定の長期的な有効性」ではないということだ。チームは、署名時点で見える内容と、後で実際に実行される内容が一致することを保証する追加のメカニズムを必要としている。
2026年4月1日、分散型デリバティブプロトコルのDrift Protocolは、わずか約12分間で31件の引き出しを通じて2億8500万ドルを失った。セキュリティ業界を最も驚かせたのは損失額そのものではなく、この攻撃が脆弱なコードを一行も利用しなかったという点だ。Driftのスマートコントラクトには指摘すべきロジックエラーはなかった。実際に破られたのは、マルチシグウォレットが機能するために依拠する信頼の仕組みそのものだった。
この作戦は2025年秋にさかのぼる。クオンツ取引会社を装った——技術的に流暢で信頼できそうに見える——グループが、暗号資産カンファレンスでDriftのコントリビューターに接触し始めた。彼らはDriftの運用方法を熟知しており、取引戦略や金庫の統合について実質的な議論を交わすことができ、Telegramグループを通じて長期的に連絡を維持した。2025年12月から2026年1月にかけて、このグループはDrift上でエコシステム金庫を開設し、100万ドル超を入金した——この実際の資金投入が、チームの信頼をさらに強化した。2月から3月にかけて、双方は一見普通の技術的統合協議を続けた。Driftは後に、中程度の確信度でこの攻撃を、AppleJeus、Citrine Sleet、Golden Chollimaとも呼ばれる北朝鮮の国家支援ハッカーグループUNC4736によるものと断定した。これは一部、資金の流れと人物のペルソナの重複、そして2024年10月のRadiant Capitalハッキングとの関連性の痕跡に基づいている。
信頼が確立された後、攻撃者は実際の技術的侵入に移った。単一のコントリビューターに気づかれるリスクを減らすため、2つのまったく異なる手法を用いた。1つ目は、あるコントリビューターを騙して悪意あるコードリポジトリをクローンさせること——中には武器化されたVisual Studio Codeのプロジェクト設定ファイル(tasks.json)が仕込まれており、プロジェクトを開くだけで自動的に悪意あるコードが実行される仕組みで、追加のクリックは一切不要だった。2つ目は、別のコントリビューターを説得し、Apple公式のTestFlightプラットフォーム経由で偽装されたウォレット製品をベータテストさせることだった。両方の経路を並行して進めることで、たとえ一方のコントリビューターが疑念を抱いても、もう一方の経路が引き続き進行できた。
初期アクセス権を獲得した後、攻撃者はすぐには行動せず、最後の一撃を綿密に準備するために約3週間を費やした。2026年3月11日、彼らはTornado Cashから10 ETHを引き出し、準備資金とした。3月12日には、CVT(CarbonVote Token)と呼ばれる偽造トークンをデプロイした。3月23日から30日にかけて、攻撃者はSolanaの永続的ノンス(durable nonce)機能——取引を一度署名すれば後で有効期限なく実行できる、正規のSolana公式サポート機能——を悪用し、「事前に署名し、後で実行する」ことができる取引口座群を作成した。これを利用して、Driftセキュリティ評議会のマルチシグ署名者に、一見ルーティンに見える取引に気づかぬまま署名させたが、その取引には実際には重要な管理操作を承認する隠された指示が含まれていた。さらに重要な動きが3月27日に起きた。Driftはセキュリティ評議会を「5人中2人承認、タイムロックなし」の設定に移行させた——通常であればチームが異常を検知し介入するための猶予期間を提供するはずのタイムロック機構が、攻撃のわずか4日前に撤去されたのだ。同時に、攻撃者はウォッシュトレードとごくわずかな流動性投入を用いて、CVTトークンの人為的な「市場価値」を作り出し、Driftのオラクルシステムにこの完全に架空の資産を、数億ドル相当の正当な担保であるかのように誤認させた。3月30日までに、すべての準備が整った。4月1日、数週間前にすでに署名されていた無害に見える永続的ノンス取引が一斉に送信・実行され——31件の引き出しが12分間で完了し、2億8500万ドルが瞬時に流出した。
マルチシグの中核的な前提は、「複数の独立した署名者が同時に同じ誤った判断をすることはない」というものだ。しかしこの事件は、攻撃者が署名者に一見無害な状況下で取引を承認させることができ、その取引の本当の効力が将来のある時点でのみ発動する場合、従来の「署名時点でのレビュー」という防御線が完全に機能しなくなることを示している。承認の瞬間、署名者はその時点で正常に見えるものをレビューしているのであり、その取引が将来与えられるかもしれない隠された権限をレビューしているわけではない。タイムロックの撤去はさらに事態を悪化させた——たとえコントリビューターが後になって異常に気づいたとしても、すでに事前署名済みの取引を凍結または取り消すための猶予期間はもはや残されていなかった。
あるDeFiプロトコルが安全かどうかを評価する際、「マルチシグがあるかどうか」だけではもはや十分な質問ではない。さらに踏み込んで確認する必要がある——ガバナンスは強制的なタイムロックを課しているか、署名の閾値が最近引き下げられていないか、悪用されうる事前署名メカニズムをチームが使用していないか。マルチシグ保護を謳いながら重要な局面でタイムロックを撤去するプロトコルは、表面上見えるほど信頼できる保護を提供していない可能性がある。