Wintermuteは1億6000万ドル以上の損失で悪用されました。根本原因は、Wintermuteプロジェクトの秘密鍵が、Wintermuteが秘密鍵とイーサリアムアカウントを生成するために使用したProfanityツールの脆弱性により侵害されたことです。
この記事では、Profanityの脆弱性の根本原因と、その脆弱性がどのように悪用されるかについて説明します。
イーサリアムアドレス
イーサリアムアドレスは、公開鍵のKeccak-256ハッシュから生成され、16進数で表されます。公開鍵は、楕円曲線乗算を使用して秘密鍵から生成され、一方向性です。秘密鍵から公開鍵を取得できます。しかし、公開鍵が与えられても、総当たり攻撃なしに秘密鍵を取得することはできません。秘密鍵の長さは256ビットであることに注意してください。公開鍵が与えられた場合、対応する秘密鍵を見つけるには最大で2^256回の計算が必要です。
一言で言えば、秘密鍵/公開鍵とイーサリアムアドレスの関係は、次の図に示すとおりです。

脆弱性の根本原因
Profanityの目的は、アドレスの先頭5桁がゼロであるなど、特殊なイーサリアムアドレスを見つけることです。この目的のために、Profanityは次の方法を採用します。

詳細な実装は若干異なる場合があります。
private_keyの長さは256ビット(2^256通りの値)ですが、秘密鍵の生成には脆弱性があります。具体的には、シード(ステップ1)はわずか32ビットであり、ステップ1のシードからステップ2のprivate_keyへのプロセスは決定論的です。
ここでのセキュリティへの影響は何でしょうか?
悪用方法
多くの価値ある資産を持つイーサリアムアドレスがあるとします。その秘密鍵を取得できれば、そのアカウントを所有し、すべての資産を転送できます。しかし、前述のように、秘密鍵を見つけるには2^256の全空間を総当たり攻撃する必要があり、これはほぼ不可能です。
しかし、イーサリアムアドレスがProfanityツールから生成された場合はどうでしょうか?はるかに低い難易度で秘密鍵を見つけるために総当たり攻撃を実行できます。0から2^32-1までのシードを指定し、同じ公開鍵(およびイーサリアムアドレス)を生成できる秘密鍵を見つけるまで同じプロセスを繰り返すだけです。最大で2^32回のループしきい値計算しか必要としません。強力なGPUクラスターがあれば、数時間または数日/数週間で実行可能です。
しかし、これはまだ最適化されたアルゴリズムです。詳細についてはSlowmistの記事を参照してください。
まとめ
DeFiプロジェクトを安全にすることは簡単な仕事ではありません。コード監査に加えて、コミュニティはプロジェクトのステータスを積極的に監視し、攻撃が発生する前にブロックする方法を取るべきだと考えています。
BlockSecについて
BlockSecは、世界的に著名なセキュリティ専門家グループによって2021年に設立された、先駆的なブロックチェーンセキュリティ企業です。同社は、Web3の普及を促進するために、新興のWeb3の世界のセキュリティと使いやすさを向上させることに専念しています。この目的のため、BlockSecはスマートコントラクトとEVMチェーンのセキュリティ監査サービス、セキュリティ開発と脅威のプロアクティブなブロックのためのPhalconプラットフォーム、資金追跡と調査のためのMetaSleuthプラットフォーム、そしてWeb3ビルダーが仮想通貨の世界を効率的にサーフィンするためのMetaSuites拡張機能を提供しています。
今日までに、同社はMetaMask、Uniswap Foundation、Compound、Forta、PancakeSwapなど300社以上の著名なクライアントにサービスを提供し、Matrix Partners、Vitalbridge Capital、Fenbushi Capitalなどの著名な投資家から2回の資金調達で数千万米ドルを受け取っています。
公式ウェブサイト:https://blocksec.com/ 公式Twitterアカウント:https://twitter.com/BlockSecTeam



