Insecurity Through Obscurity: Veiled Vulnerabilities in Closed-Source Contracts
本論文は、クローズドソースのスマートコントラクトにおけるコードの難読化がいかに脆弱性を防止するのではなくむしろ隠蔽しているかを実証する、新しいEVMバイトコード解析ツールであるSKANFを紹介するものであり、1,000件以上の実世界のMEVボットにおける欠陥の検出に成功し、1,0 forget60万ドルの潜在的価値を持つエクスプロイトを生成した。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
ブロックチェーン(Ethereumなど)を、巨大で公開されたガラスの家だと想像してみてください。この家の中では、誰もがそこで動いているあらゆる機械(スマートコントラクト)の設計図を見ることができます。通常、これは良いことです。なぜなら、誰にも罠を隠させないことを意味するからです。しかし、一部の機械製作者たちは、設計図を霧の層で包んだり、図面の上に塗料を塗ったり、あるいは自分たちにしか通れない秘密の通路を作ったりすることを選択します。彼らは、ビジネスの秘密を守ったり、アイデアを盗まれたりするのを防いだりするためにこれを行います。
論文「Insecurity Through Obscurity(不透明性による不安全)」は、これらの製作者たちが、設計図を隠すことで機械をより安全にしていると考えている一方で、実際にはそれによってより危険にしていると主張しています。設計図を隠してしまうことで、壊れた鍵や開いた窓までもが、意図せず隠されてしまうのです。
以下は、研究者たちが何を行い、何を発見したのかについての簡単な内訳です。
1. 問題点:「鍵を隠すこと」
研究者たちは、このガラスの家の中で最も活発に動いている機械の多くが、「クローズドソース(設計図が利用不可)」であり、「難読化(コードがバラバラにされている)」されていることに気づきました。
- 比喩: セキュリティガードが目隠しをしており、アラームシステムが秘密のコードで書かれている銀行の金庫を想像してください。銀行のオーナーはこう考えます。「コードを読めなければ、誰もハッキングできない!」
- 現実: コードがあまりにも乱雑であるため、銀行自身のセキュリティ専門家でさえ、金庫の扉が実は全開であることに気づくことができません。「不透明さ(隠蔽)」が「不安全」を生み出しているのです。
2. ツール:「霧を晴らすロボット」(skanf)
著者たちは、skanf(研究者4人:Sen, Kaihua, Aviv, Fanの名前にちなむ)と呼ばれる新しいツールを構築しました。skanfは、特殊な懐中電灯とデコーダーリングを備えたハイテクロボットだと考えてください。
- ステップ1:霧を晴らす(脱難読化): ロボットはバラバラにされたコードをスキャンします。この特定の種類の機械(EVM)においては、すべての秘密のドアには特定の「進入禁止」のサイン(
JUMPDESTと呼ばれるもの)があることをロボットは知っています。ロボットはこれらのサインを見つけ出し、地図を描き直して、秘密の曲がりくねった道を、明確で真っ直ぐな線へと変えます。突然、隠されていたドアが可視化されます。 - ステップ2:歴史をガイドとして使う(シード実行): ロボットは単に機械がどのように動くかを推測するだけではありません。ロボットは、その機械の過去の挙動(履歴的なトランザクション)を見て、通常どこを通るのかを確認します。これらの過去の走行を「シード(種)」として使い、探索をガイドすることで、暗闇で推測するよりもはるかに速く危険な経路を見つけ出します。
- ステップ3:テストドライブ(エクスプロイト生成): ロボットが壊れた鍵(脆弱性)を見つけると、単にそれを報告するだけではありません。実際に「鍵(エクスプロイト)」を作り、そのドアを開けられるか試みます。もしその鍵が機能すれば、その機械が本当に脆弱であることを証明することになります。
3. テスト環境:MEVボット
ロボットをテストするために、研究者たちはMEVボットに注目しました。
- 比喩: 高速のレースカーの艦隊(ボット)が、素早い利益を得るために交通の流れのわずかな隙間を探して、コース(ブロックチェーン)を走り回っている様子を想像してください。これらの車は非常に高速で、膨大な金額を扱い、そのドライバー(サーチャー)たちはエンジンの仕組みについて非常に秘密主義です。
- 選んだ理由: これらのボットはしばしばソースが非公開で、コードが難読化されているため、霧を見通すためのツールをテストするための完璧な被験体となります。
4. 発見:多くの開いたドア
結果は驚くべきものでした。
- スキャン: ロボットはこれら6,554台のレースカーをスキャンしました。
- 発見: そのうち1,030台に、泥棒が燃料(暗号資産)を盗むことができる「壊れた鍵(脆弱性)」があることが判明しました。
- 証明: ロボットは394台の車に対して、実際に機能する「鍵」を作成することに成功しました。
- コスト: もし泥棒がこれらの鍵を使用していた場合、1,060万ドル(約16億円)以上の資産を盗むことができたでしょう。
5. 現実世界の証拠:「フィッシング」の罠
研究者たちは、過去に誰かがこれらの車から盗みを行ったかどうかを確認するために、歴史を振り返りました。
- 攻撃: 彼らは104件の実際の窃盗事件を見つけました。泥棒たちは**「MEVフィッシング」**と呼ばれる巧妙なトリックを使用していました。
- 仕組み: 泥棒がコース上に偽の、光り輝く金塊(偽の機会)を置いている様子を想像してください。レースカーのドライバーはそれを見て、素晴らしい利益が得られると考え、それを拾おうと走行します。しかし、その金塊は実は落とし穴です。車がその上を通過すると、落とし穴が開き、泥棒は車の燃料を盗みます。
- 損失: これらの現実世界の窃盗により、ドライバーたちはすでに約276万ドルを失っています。
- 逃した機会: 研究者たちは、彼らのロボット(skanf)があれば、窃盗が発生する前に、ほとんどの盗まれた車における壊れた鍵を特定できていたはずであることを発見しました。
6. 結論
論文は、コードを隠すことは安全にするのではなく、単に自分自身のミスを見えにくくしているだけであると結論付けています。
- 製作者へ: お金を持つ機械を構築しているなら、自分自身の設計図を明確に見ることができる必要があります。隠すことは秘密を守れるかもしれませんが、それはあなたのお金を無防備な状態にさらすことになります。
- 教訓: 研究者たちは、適切なツール(skanfのような)があれば、霧を晴らし、壊れた鍵を見つけ、泥棒が到着する前にそれらを修理できることを示しました。
要するに、セキュリティの欠陥を暗闇の中に隠すのではなく、修理するために光を当てて照らし出すべきなのです。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。