Bybit の事件

2025 年 2 月 21 日、Bybit は Safe のマルチシグのコールドウォレットから約 15 億ドルを失いました。この業界の歴史で最大の盗難であり、丁寧に読む価値が あります。というのも、たったひとつを除いて、ほとんどすべてが正しかったからです。

何が起きたか

公開されたポストモーテムからの短い要約です。

  1. 攻撃者が Safe{Wallet} の開発者のマシンを侵害し、Safe{Wallet} の フロントエンドを配信していた AWS S3 バケットに悪意ある JavaScript を注入しました。 コードは 2 月 19 日に入り、2 月 21 日に、Bybit の特定の Safe を狙って発火しました。
  2. Bybit の署名者たちはインターフェースを開き、ごく普通に見える取引を確認しました。
  3. 実際に彼らのハードウェアウォレットへ送られたのは、その取引ではありませんでした。 Safe プロキシの masterCopy——スロット 0——を上書きし、アカウントの実装まるごとを 攻撃者のものに置き換える delegatecall でした。
  4. 署名者は承認しました。署名は有効でした。コントラクトは、言われたとおりのことを 正確に実行しました。

帰属については、北朝鮮に関連する活動として公表されています(FBI は TraderTraitor クラスターを名指ししました)。

壊れていなかったもの

  • Safe のコントラクトではありません。 有効に署名された命令を実行しただけです。 Safe のバグが突かれたわけではありません。
  • 暗号でもありません。 どの署名も本物でした。
  • ハードウェアウォレットでもありません。 Ledger の端末は経路に入っていて、 それでも署名しました。ハードウェアウォレットは渡されたものを見せるだけであり、 渡されたのが悪意ある内容だったからです。delegatecall を人が判断できる形に できない端末が守るのはであって、判断ではありません。

壊れたのは、あらゆるウォレットのインターフェースの下に横たわる前提です。 取引を説明している画面と、署名されているバイト列は同じものである、という前提です。

これが例外ではなく一般則である理由

あなたがウェブウォレットで作ったすべての署名は、その前提に乗っていました。 インターフェースが内容を組み立て、インターフェースが要約を描き、両者が一致して いるかを独立に確かめるものは何もありません。そのインターフェースを配信するコードが 置き換われば——侵害されたビルドパイプライン、乗っ取られた CDN、悪意ある依存、 盗まれたデプロイ資格情報——要約は攻撃者の望むものになり、あなたの署名は本物になります。

これが Vela の署名設計が狙っているリスクです。フィッシングでも、鍵の流出でもなく、 あなたに嘘をつく署名画面です。

Vela がしていること

calldata まで届くクリア署名。 すべての取引は、承認前に人が読める意図へ変換され ます——金額、受取人、その呼び出しが実際に何をするのか (ERC-7730)。デコードできない呼び出しは、問題ないかの ように静かに描かれるのではなく、デコード不能と明示されます。Bybit の内容は実装 アドレスを差し替える delegatecall でした。それこそ署名者を立ち止まらせるべき形で あり、親切な要約の裏に隠れていたからこそ止まらなかったのです。

インターフェースを検算できる独立した経路。 Vela は、ビルドなし・依存なしの署名 ページを作っています。意図を自分で描き、WebAuthn の署名も自分で行う——端から端まで 読める、自分で配信できる、ブラウザ拡張としても動く静的ファイルのフォルダです。 その存在意義は、本体アプリとサプライチェーンを共有しないセカンドオピニオンになること です。状態:作成とテストは完了、まだデプロイしていません。 公開後は任意の機能で、 状況が変わればこのページにそう書きます。

私たちがアップグレードできるコントラクトはありません。 Bybit の攻撃は、アカウント の実装を差し替えることで成立しました。Vela のアカウントは 改変していない Safe v1.4.1で、Vela はそこに特権的な 役割を持ちません。管理者鍵も、強要や侵害で使われうるアップグレード経路もありません。

署名ごとに生体認証をやり直します。 長命のセッション鍵がないので、あなたが その場にいないのに何かが代わりに署名できる窓は存在しません。

最後の砦としてのセルフホスト。 アプリもすべてのバックエンドサービスもオープン ソースです。私たちのビルドパイプラインをまったく信頼したくないなら、自分で動かして ください。この種の攻撃に対して、誰かを信頼せずに済む答えはそれだけです。

Vela が主張しないこと

Vela のフロントエンドも、Safe{Wallet} と同じやり方で侵害されうります。私たちの コードは監査されていません。それ以上に良く言うことこそ、この事件が終わらせるべき だった類いの保証です。

この設計がしようとしているのは経路を狭めることです。内容を不透明ではなく読めるもの にし、攻撃が頼った「アップグレード」という原始的な仕掛けを取り除き、私たち以外の ものと突き合わせる手段を渡すこと。正直にまとめれば、 この種の攻撃は設計によって弱められてはいるが、消えてはいないのであり、 さらに硬くするための部分は、未完成のまま 監査と既知の問題に並んでいます。

出典