最近、超安定通貨プロトコル「Curve」がリエントラント攻撃を受け、深刻な損失を引き起こしました。以下は、この攻撃に対する MetaTrust Labs のセキュリティ分析とセキュリティ推奨事項です。
イベントレビュー
Curve Finance の公式 Twitter によると、2023 年 7 月 31 日に、Vyper バージョン 0.2.15 を使用して作成された一部の安定したプール (alETH/msETH/pETH) がリエントランシー攻撃の対象となりました。 Curve Financeは、この攻撃はVyperバージョン0.2.15の再入ロックの誤動作によって引き起こされ、純粋なETHを使用するプールのみに影響を与えたと述べた。現在、カーブは被害状況を調査中で、他のプールは安全だという。
MetaTrust Labs の分析によると、この脆弱性は主に Vyper のバージョン 0.2.15/0.2.16/0.3.0 コンパイラが原因で、2021 年 8 月から 10 月の間に導入されました。この脆弱性の理由は、コンパイラのバグにより、生成されたバイトコード内の再入ロジックが有効にならないためです。
チェーンの統計によると、Curve Financeのステーブルコインプールハッキング事件により、Alchemix、JPEG、CRV/ETHプールなどで累積5,200万米ドルの損失が発生しました。カーブ・ファイナンスのトークンCRVも大きな打撃を受け、この日は15%以上下落した。
原因分析
今回Curve Financeが攻撃を受けた理由は、CurveがVyper言語を使ってスマートコントラクトを作成する際にVyperのバージョン0.2.15を使用していたためで、このバージョンにはリエントランシーロックの誤動作(リエントランシーロック失敗)と呼ばれる脆弱性が存在し、エクスプロイトが開始されたためです。損失を引き起こすリエントラント攻撃。今回のCurve Financeの脆弱性は言語固有の脆弱性です。
言語固有の脆弱性とは、特定のプログラミング言語またはコンパイラ自体の欠陥または非互換性によって引き起こされる脆弱性を指します。このような脆弱性は、開発者の過失や論理エラーによって引き起こされるのではなく、基盤となるテクノロジー プラットフォームの問題によって引き起こされるため、発見して防ぐことが困難なことがよくあります。これらのタイプの脆弱性は、すべて同じ言語またはコンパイラを使用しているため、複数のプロジェクトまたは契約に影響を与える傾向があります。
Vyper は、セキュリティと読みやすさを高めるために設計された Python ベースのスマート コントラクト プログラミング言語です。 Vyper は「安全第一」言語であると主張しており、クラス、継承、修飾子、インライン アセンブリなど、セキュリティ リスクを引き起こす可能性のある一部の機能をサポートしていません。ただし、Vyper は完璧ではなく、契約のセキュリティに影響を与える可能性のあるバグや抜け穴がまだいくつかあります。たとえば、今回 Curve Finance で発生したリエントラント ロックの障害に加えて、Vyper では配列の境界外、整数のオーバーフロー、ストレージ アクセス エラーなどの問題も発生しました。
セキュリティ対策
今回のカーブファイナンスのリエントラント攻撃に対しては、いくつかの対策が講じられたり、提案されたりしています。実行できるセキュリティ対策は次のとおりです。
- 流動性の引き出し: 影響を受けるプールについて、ユーザーはさらなる損失を避けるために流動性の引き出しを選択できます。カーブファイナンスは、公式ウェブサイトに流動性の出金ボタンを設けており、ユーザーにとって操作が便利です。
- コンパイラをアップグレードする: Vyper 0.2.15/0.2.16/0.3.0 コンパイラを使用するコントラクトの場合は、リエントリ ロックの失敗の問題が修正された最新の Vyper 0.3.1 バージョンにアップグレードすることをお勧めします。同時に、正式な検証やコード監査など、契約のセキュリティを検証するために他のツールや方法を使用することもお勧めします。
- 警戒する: Vyper またはその他の言語で書かれた契約の場合は、警戒し、言語またはコンパイラーの更新とバグ修正に注意を払い、資産を保護するために必要な措置をタイムリーに講じることをお勧めします。同時に、新しい言語や新しいテクノロジーを使用する場合は、その成熟度や安定性を慎重に評価し、やみくもに鮮度や効率性を追求しないことをお勧めします。
要約する
要約する
Curve Finance のリエントラント事件は、不幸なセキュリティ事件であり、考えさせられる教訓でした。分散型金融 (DeFi) の分野では、セキュリティは常に最優先事項です。プロジェクト関係者は常にセキュリティの意識と能力を向上させる必要があります。あらゆる詳細が攻撃者にとって突破口となる可能性があります。
フォローする
Twitter: @MetaTrustLabs
ウェブサイト: metatrust.io
全てのコメント