はじめに
過去3年間で、DeFiエコシステムではいくつかのセキュリティインシデントが発生しました。これらの脅威に対抗するため、コミュニティでは静的コード監査、スマートコントラクトスキャナー、動的ファジングなどのコード中心の手法が採用されています。これらの手法は有効性を示していますが、コード中心のアプローチだけではセキュリティ問題やプロジェクトユーザーの資産を完全に解決することはできないと私たちは主張します。例えば、複数の著名なコード監査企業によって監査された脆弱なコントラクトの事例が複数存在します。
私たちは、既存のコード中心のアプローチに加えて、脅威に対抗するためのより積極的な脅威防止ソリューションが存在すべきだと信じています。このアイデアについて2021年末に内部で検討し、2022年初頭にIronDomeというシステムを開発しました。それ以来、BlockSec社内でこのシステムを導入しています。2022年、IronDomeは複数の攻撃を阻止し、500万ドル以上のユーザー資産を救済しました。これには、2022年4月のSaddle Financeへのエクスプロイトを阻止し、380万ドルを救済した事例も含まれます。
本ブログでは、IronDomeのシステムアーキテクチャとその成功事例について詳しく説明します。また、本システムの限界と、脅威防止の将来の方向性についての洞察も議論します。
ハイレベルシステムアーキテクチャ
IronDomeの基本的な考え方は、Ethereumの保留中プールを監視し、トランザクション事前実行システムMopsusを通じて攻撃トランザクションを検出し、救済トランザクションを自動合成して脆弱な資産を安全なアカウントに移動させ、FlashBotで攻撃トランザクションをフロントランニングすることによって攻撃を阻止することです。以下の図は、そのアーキテクチャを示しています。

Mempool監視
IronDomeは、カスタムGethクライアントを通じてメモリプール内の保留中トランザクションを監視します。重要な点は、システムがトランザクションを迅速に監視し、できるだけ多くのトランザクションを監視する必要があることです。
攻撃検出
保留中の各トランザクションは、攻撃検出モジュールに供給されます。これらのトランザクションはまだチェーン上にないため、トランザクション事前実行エンジンMopsusを活用してこれらのトランザクションを事前実行し、トランザクションの実行時状態と結果に基づいて攻撃(悪意のある)トランザクションを検出します。
救済Tx合成
攻撃トランザクションに対して、IronDomeは救済トランザクションとその補助コントラクトを自動的に合成します。救済トランザクションは、攻撃トランザクションと同様の方法で脆弱なコントラクトを「エクスプロイト」しますが、利益を攻撃者が制御するアカウントではなく、安全なアカウント(マルチシグアカウント)に転送します。例えば、攻撃コントラクトと同様の補助コントラクトを自動的にデプロイできますが、トークン転送先アドレスを安全なアカウントに置き換えます。もちろん、一部の攻撃トランザクションには、より複雑なアプローチが必要です。
救済トランザクションについては、攻撃トランザクションよりも先にチェーン上に含める必要があります。現在のシステムでは、この目的のためにFlashBotを利用しています。まず、他の誰にも救済Txを傍受されないようにする必要があります。次に、救済トランザクションをブロックの最上部に配置するための戦略を取ることができます。
代表的な成功事例
IronDomeは2022年初頭に導入されました。このシステムは、複数の攻撃を検出し、阻止することに成功しました。この表に、成功事例の一部をまとめます。
以下のタイムラインは、2022年4月末にSaddle Financeのために380万ドルを救済した当社のシステムがどのように機能したかを示しています。特に、当社のシステムは、攻撃トランザクションを検出し、救済Txを自動合成する全プロセスを1秒未満で完了しました。救済された資金はすべてSaddle Financeに返還されました。元のハックTxはこちらを、救済Txは以下のリンクをクリックしてください。
- 元のハックTx: https://etherscan.io/tx/0xd9bc83688e8eddde39bd9073c363665b1419d475dd4498e81b52cce41d7c76b3
- 当社の救済Tx: https://etherscan.io/tx/0x9549c0cb48ec5a5a2c4703cbbbbea5638028b2d8c8adc103220ef1c7fe5e99a3
倫理的考慮事項
当社は、システムにおけるセキュリティ倫理を真剣に受け止めています。当社のシステムは脆弱なコントラクトを「エクスプロイト」してユーザー資産を救済しますが、この行為には倫理的な問題はないと信じています。
- 第一に、当社のシステムは脆弱なコントラクトを積極的にエクスプロイトしません。保留中の攻撃トランザクションを検出した場合にのみ反応し、同様のトランザクションを自動合成して(攻撃トランザクションを阻止するため)います。攻撃トランザクションを最初に作成することはありません。
- 第二に、影響を受けたプロトコルと積極的にコミュニケーションを取り、救済された資金を返還します。
限界
IronDomeはその有効性を示していますが、システムにはいくつかの限界があります。以下に、これらの限界を説明し、積極的な脅威防止のさらなる方向性について議論します。
- 第一に、当社のシステムはメモリプール内の保留中Txを監視します。攻撃者がFlashBotのようなプライベートトランザクションサービスを利用した場合、攻撃トランザクションはメモリプールになく、検出されません。この問題に対処するため、プライベートトランザクションサービスプロバイダーと協力して、攻撃トランザクションを検出・阻止することを求めています(当社のシステムと同様の方法で悪意のあるトランザクションを検出します)。さらに、当社のシステムが保留中プールで攻撃Txを阻止できない場合でも、チェーン上の攻撃Txを検出し、さらなる攻撃トランザクションを防止するために救済Txを送信することは可能です。多くのケースで、複数の攻撃トランザクションが存在することに注意してください。
- 第二に、セキュリティは軍拡競争です。攻撃者が救済トランザクションの合成のハードルを上げている事例を見てきました。例えば、攻撃トランザクションを複数のトランザクションに分割し、利益アドレスを曖昧にすることができます。これらの問題は解決可能ですが、軍拡競争は止まらないと信じています。これらの問題に対処するためのソリューションに取り組んでいます。
- 第三に、救済トランザクションを攻撃Txよりも先にチェーン上に含める方法が、依然として未解決の課題です。一部の入札戦略は、救済Txがブロックに含まれる可能性を高めることができますが、100%の保証はありません。
参考文献とさらなる資料
[1] How to Make the BlockChain Attack “Blockable” | by BlockSec
[2] The Block: Stablecoin DEX Saddle Finance hacked for $10 million
[3] Lend Exploit Post-Mortem — HomeCoin (mirror.xyz)
[5] FSWAP on Twitter: “The details of the attack on FSWAP liquidity progress” / Twitter
[6] https://forta.org/blog/blocksec-and-forta-work-to-secure-web3-beyond-audits/
[7] https://forta.org/blog/the-future-of-threat-prevention-in-web3/



