HydraがCardanoのレイヤー2におけるセキュリティ脆弱性を修正
HydraチームがCardanoのレイヤー2プロトコルに影響する重大なセキュリティ脆弱性にパッチを適用した。特定の攻撃シナリオの下では、Hydra Head内部の悪意ある参加者が、善意のノードに別の参加者の資金を再割り当てするスナップショットを承認させる可能性があった。
By SongMarketCap
スナップショット確認時のトランザクション処理における欠陥が研究者により特定され、Hydraの重大な脆弱性は修正された。この問題は2.4.0までのHydraノードのバージョンに影響し、9月2日に公開されたセキュリティアドバイザリによれば、バージョン2.4.1でパッチが適用された。
HydraはCardanoのレイヤー2スケーリングプロトコルであり、オフチェーンで低遅延にトランザクションを処理し、その結果の状態をCardanoのメインチェーンへ最終化するよう設計されている。
脆弱性はHydra Headのトランザクションに影響
Hydra Headは、参加者がCardanoのUTxOをコミットし、全ての操作をレイヤー1に直接記録することなくトランザクションを処理するオフチェーン環境である。
この脆弱性により、必要な検証プロセスを完了する前に不正なトランザクションがHydraの内部トランザクション集合に取り込まれる可能性があった。
特定の条件下では、そのトランザクションがスナップショット処理中に再適用され、その際に一部の署名検証やPlutusのチェックがスキップされ得た。これにより、悪意ある参加者が、善意のノードに別の参加者の資金を再割り当てするスナップショットへ署名させることが可能になっていた。
アドバイザリはこの脆弱性をクリティカルと分類している。
Hydraのパッチはトランザクション検証を変更
このパッチは、後続の処理のためにHydraがトランザクションを保存する方法を変更した。
トランザクションは、検証が成功した後にのみ保持されるようになり、不正なトランザクションが問題のスナップショット経路に到達することを防ぐ。
2.4.0までのHydraのバージョンが脆弱とされ、2.4.1に修正が含まれている。
この攻撃には、影響を受けるHydra Head内部での関与が必要である。これはCardanoのレイヤー1コンセンサスの侵害を意味せず、外部の攻撃者がCardanoネットワークを直接支配できるわけでもない。
セキュリティアドバイザリは想定される攻撃とその対処を記述しているが、この脆弱性に起因する本番環境での盗難が確認されたとは報告していない。
Hydraは検証とテストを拡充
この開示は、形式仕様、テスト、運用ツール群にわたってHydraの開発が継続する中で行われた。
Cardanoの9月4日の開発レポートは、Hydraの仕様がAgdaで形式化されており、チームがHydraノードとそのバリデータ間の差分テストを、機械検証されたリファレンスとともに追加したと述べている。
このアップデートには、スクリプトの整合性、UTxOの値の取り扱い、ベンチマークの一貫性、より広範なプロパティテストに関する作業も含まれており、AMD64のサポートに加えてネイティブのLinux ARM64向けHydraノードイメージも追加された。
同レポートは、これらの開発上の変更がセキュリティアドバイザリへの直接の対応であるとは特定していない。
Hydraのアーキテクチャは、参加者がオフチェーンのHead内で取引でき、後に合意済みの状態をCardanoへ最終化できることに依存している。今回のパッチ適用版は、検証に成功したトランザクションのみがスナップショット処理に入れるようにすることで、特定されたトランザクション経路を取り除いた。