コスモスラボ、コスモスEVMのセキュリティ問題で関連チェーンに停止を助言。KiiChainで約1.48億KII流出

コスモスEVMでセキュリティ・インシデント、関連チェーンに停止を助言

コスモス・ラボ(Cosmos Labs)が、ブロックチェーン開発基盤「コスモスEVM(Cosmos EVM)」のユーザーに影響するセキュリティ・インシデントが発生していると8月25日に公式Xアカウントで発表した。

コスモスEVMは単一のブロックチェーンではなく、コスモスSDK(Cosmos SDK)で構築されたブロックチェーンにEVM機能を組み込むための共通ソフトウェアだ。EVM(Ethereum Virtual Machine)は、イーサリアム(Ethereum)向けに開発されたスマートコントラクトを実行するための環境を指す。

コスモスSDKでは、プロジェクトごとに独立したブロックチェーンを構築できる。そのためコスモスEVMを採用する各チェーンはそれぞれ独立して運営されている一方、同じコスモスEVMのソフトウェアを利用している。つまり共通するソフトウェアに脆弱性が存在した場合、複数の独立したチェーンが同じ問題の影響を受ける可能性がある。

コスモス・ラボは今回のインシデントを受け、同社と連絡を取っているコスモスEVM採用チェーンに対し、バリデータへチェーン停止を要請するよう助言した。同社のセキュリティチームとエンジニアリングチームが、今回のインシデントへの対応を進めているとのことだ。

バリデータは、トランザクションの検証やネットワークの合意形成に参加する主体だ。コスモス・ラボ自身が各チェーンを直接停止するのではなく、各チェーンがバリデータと協調してブロック生成を停止することでチェーンを停止する。

コスモス・ラボは、状況が解決した後にインシデント報告書を公開する予定だ。現時点では、同社から脆弱性の具体的な内容や影響を受けたチェーン、被害総額などは公表されていない。

今回の発表に先立ち、コスモスEVMを採用するキーチェーン(KiiChain)、タック(TAC)、マントラ(MANTRA)が相次いでセキュリティ・インシデントを報告している。キーチェーンとTACでは資産流出が発生した。一方、MANTRAは影響が2つのウォレットアドレスに限定され、ユーザー資金への被害はなかったと説明している。

KiiChainで約1.48億KII流出、共有コスモスEVMの不具合を悪用か

キーチェーンは8月24日に公開したインシデント報告書で、攻撃者が8月22日に異なるウォレットを対象として同じ手法による攻撃を18回実行し、合計1億4,832万6,583.15KIIを流出させたと発表した。

キーチェーンは異常な資産流出を内部で検知し、同日22時50分58秒(UTC)にブロック高9,355,723でチェーンを停止した。チェーンを停止すると新たなトランザクションが処理されなくなるため、さらなる資産流出を防ぐとともに、攻撃者がキーチェーン内に保有していた資産を移動できない状態にしたとのことだ。

キーチェーンの公表値によると、流出したKIIのうち8,072万8,575.06KII(54.4%)はキーチェーン外へ移動しておらず、攻撃者関連アドレスに残っている。キーチェーンは、チェーン再開時のアップグレードで同資産を指定した回収用ウォレットへ移動させる計画だ。

一方、残る6,759万7,997.87KII(45.6%)は、クロスチェーンプロトコル「ハイパーレーン(Hyperlane)」を通じてBNBスマートチェーン(BNB Smart Chain:BSC)へ移動した。ハイパーレーンは、異なるブロックチェーン間で資産やデータを移動するための仕組みを提供している。

BSCへ移動したKIIのうち6,459万7,997.87KIIは、分散型取引所(DEX)で約161万BUSDに売却された。残る300万KIIは暗号資産取引所クーコイン(KuCoin)の入金アドレスへ送金された。

キーチェーンはクーコインに対し、該当アカウントの確認と300万KIIの凍結を要請した。インシデント報告書の公開時点では、凍結の確認は取れていないとのことだ。

キーチェーンは、攻撃者が資産を流出させた仕組みについても説明している。簡単にいえば、攻撃者はコスモス側とEVM側で管理される残高の整合性を崩し、別の不具合と組み合わせることで実際の資産を流出させた。

具体的には、キーチェーンの分析では、攻撃の成立に少なくとも3つの不具合が組み合わされた。そのうち1つは、ステーキングに関する処理後の残高をEVM側へ反映する際に発生する「アンダーフロー」に関する問題だった。アンダーフローは、計算結果がシステムで扱える数値の下限を下回ることで、意図しない値として処理される問題を指す。残る不具合については、セキュリティ上の理由から詳細を公表していない。

またキーチェーンは、通常のウォレットではこの問題を利用した攻撃を実行できなかったと説明している。攻撃者は一定の条件や期間に応じてトークンを利用可能にする特殊なアカウント「ベスティング・アカウント(vesting account)」を利用したとのことだ。

具体的には、攻撃者は攻撃用コントラクトが作成されるアドレスを事前に計算し、そのアドレスを先にベスティング・アカウントへ変更した。その後、攻撃者は同アドレスにコントラクトを展開した。

これにより同コントラクトはベスティング・アカウントとしての性質を引き継いだ。攻撃者は利用可能な残高をわずかに上回る量をステーキングへ委任し、EVM側に反映される残高のアンダーフローを発生させたとのことだ。

その結果、EVM側では同コントラクトの残高が極めて大きな値として扱われる状態となった。攻撃者はさらに残る不具合を利用し、被害ウォレットが実際に保有していた資産を同コントラクトへ移動させたとのことだ。

なお今回の攻撃によってKIIの総供給量が増加したわけではない。キーチェーンの説明では、攻撃者が新たなKIIを発行したのではなく、各攻撃で対象となったウォレットが実際に保有していたKIIを流出させた。それぞれの攻撃による流出額は、被害ウォレットの実際の残高を上限としていたとのことだ。

キーチェーンは、こうした不具合が同チェーンによる独自の変更部分ではなく、キーチェーン側で変更を加えていない共有コスモスEVMの上流コードに存在したと説明している。つまりキーチェーンだけが利用するソフトウェアではなく、複数のブロックチェーンが利用できる共通部分に問題があったとの説明だ。

またキーチェーンは、ベスティング・アカウントを有効にしているコスモスEVMチェーンには同様の問題へのエクスポージャーがあると指摘した。同社は、MANTRAとTACも同じ週に同種の攻撃を受けたと説明している。ただしコスモス・ラボは現時点で、各チェーンで発生したインシデントの原因が同一であるとの見解を公表していない。

KiiChain、Cosmos Labsの脆弱性開示プロセスを批判

キーチェーンは今回のインシデント報告書で、コスモス・ラボによる脆弱性の開示プロセスについても批判した。

セキュリティ上の重大な脆弱性が発見された場合、「責任ある開示(responsible disclosure)」と呼ばれる対応が用いられる。影響を受ける事業者などへ非公開で事前通知し、修正する時間を確保した上で詳細を公開する方法だ。脆弱性の詳細や修正内容が先に公開され、修正前のシステムが攻撃者に悪用されるリスクを抑える目的がある。

キーチェーンの説明では、コスモス・ラボは今回の攻撃に使われた不具合のうち1つに対する修正を、8月19日(UTC、日本時間20日)に公開リポジトリへ反映した。同日、コスモスEVMの「v0.6.2」と「v0.7.2」が公開され、いずれも重要なセキュリティ修正を含むとして、全チェーンに早急な協調アップグレードが推奨された。ただしキーチェーンは、影響を受ける下流チェーンへ事前通知し、修正する時間を与える前にセキュリティ修正が公開されたと指摘している。

またキーチェーンは、コスモス・ラボから関連する連絡を受けたのは8月21日だったと説明している。その際、今回の問題が資産の恒久的な損失につながる可能性のある重大な脆弱性であることは明示されず、チェーン停止も推奨されなかったとのことだ。

キーチェーンが特に問題視しているのが、パッチの提供だけでなく、チェーン停止を早期に推奨すべきだったという点だ。パッチを適用するには、コードのレビューやビルド、テストを行い、バリデータへ展開する必要がある。一方、バリデータが協調してブロック生成を停止すれば、より短時間で資産の移動を止められる。

キーチェーンは、被害拡大を防ぐ上では、パッチそのものよりチェーン停止の推奨が重要だったと指摘した。8月21日の段階で明確に停止が推奨されていれば、残るチェーンの被害を防げたとの見解を示している。

さらにキーチェーンは、攻撃に使われた不具合のうちコスモス・ラボ側で公開修正されたのはアンダーフローに関する問題のみだと説明している。残る不具合は同報告書の公開時点で、共有コスモスEVMモジュール側では未修正とのことだ。

キーチェーン側では3つの不具合への修正を進めており、うち2つの修正について隔離されたローカルネットワークで攻撃を再現して検証した。また攻撃成立の条件となったベスティング・アカウントの作成も、一時的な対策として停止したとのことだ。

同チェーンは、修正を含むアップグレードを実施した上でチェーンを再開する予定だ。アップグレードでは、攻撃者アドレスに残る8,072万8,575.06KIIを回収用ウォレットへ移動するほか、攻撃者関連アドレスの送受信を制限する措置も実施する。

またキーチェーンは、ハイパーレーンを通じたKIIの移動量について、24時間あたり1,000万KIIを上限とする制限を導入する計画だ。これにより、将来同様の攻撃がブリッジまで到達した場合でも、一度に大量のKIIがチェーン外へ流出するリスクを抑える。

ただしコスモス・ラボによる脆弱性の開示経緯や未修正とされる不具合については、現時点ではキーチェーン側による説明となる。コスモス・ラボは状況の解決後にインシデント報告書を公開する予定で、同社側から詳細な経緯は明らかにされていない。

参考:キーチェーン(X)タック(X)マントラ(X)
画像:PIXTA

関連ニュース

関連するキーワード

この記事の著者・インタビューイ

渡邉洋輔

「あたらしい経済」編集部 記者
ブロックチェーンおよびデジタル資産分野を専門とし情報発信を行っている。オンチェーンデータや流動性構造など、市場設計の観点からのリサーチにも取り組んでいる。

「あたらしい経済」編集部 記者
ブロックチェーンおよびデジタル資産分野を専門とし情報発信を行っている。オンチェーンデータや流動性構造など、市場設計の観点からのリサーチにも取り組んでいる。

合わせて読みたい記事

ジェミナイ、暗号資産予測市場をエイペックスの証券会社顧客に提供へ

ジェミナイ(Gemini)と、証券会社向けに取引・清算インフラを提供するエイペックス・フィンテック・ソリューションズ(Apex Fintech Solutions:以下、エイペックス)が、ジェミナイの暗号資産(仮想通貨)イベント契約を、エイペックスの顧客である証券会社に提供する構想について、法的拘束力のない意向表明書(LOI)を締結した