毎月、MetaMaskのセキュリティディレクターであるLukerが、知っておくべき最新の暗号資産攻撃と新たなリスクについて報告します。
2022年6月、EndoおよびLavaMoatプロジェクトがビルドパイプラインを強化するためにimport.meta、require.resolve、およびYarn 3のサポートを提供し、MetaMaskのバグバウンティプログラムがHackerOneで開始されました。メトリクス面では、コンピューターインシデントレスポンスチームが2022年上半期に38件のチケットをクローズし、平均修復時間は40.39日でした。また、MetaMaskは暗号技術上の懸念からeth_decryptおよびeth_getEncryptionPublicKey APIメソッドを非推奨としました。今月の主な開示は2件です。Halbornが「Demonic」(CVE-2022-32969)を発見し50,000ドルを獲得しました。これは、暗号化されていないドライブにシークレットリカバリーフレーズがプレーンテキストでキャッシュされる可能性があるディスク暗号化の脆弱性です。また、United Global Whitehat Security TeamがExtensionにおけるクリティカルなクリックジャッキングの欠陥に対して120,000ドルのバウンティを獲得しました。詳細は以下の通りですが、まず最初に…
注目のSTEMパイオニア:公開鍵暗号の共同発明者、Whitfield Diffie
Whitfield DiffieはMartin HellmanおよびRalph Merkleとともに、1976年11月に「暗号技術の新たな方向性(New Directions in Cryptography)」を発表し、事前共有秘密なしに安全な通信を可能にするDiffie-Hellman鍵交換プロトコルを導入しました。このプロトコルはTLS、SSH、そしてセルフカストディアルウォレットユーザーが日々利用する暗号化チャネルの基盤となっています。Diffieは2015年にACMチューリング賞を受賞し、2011年には全米発明家殿堂入りを果たしました。
クリックジャッキングの脆弱性でUGWSTが120,000ドルのバウンティを獲得
MetaMaskは、MetaMask Extensionにおけるクリティカルなクリックジャッキングの脆弱性を責任を持って開示したUnited Global Whitehat Security Team(UGWST)に120,000ドルのバウンティを授与しました。この攻撃は、悪意のあるウェブサイト上に透明なiframeとしてExtensionのUIを重ね表示し、ユーザーが気づかないうちにトランザクションを承認させたり、プライベートデータを漏洩させたりするものでした。パッチ適用前に悪用された事例は確認されていません。MetaMask Extensionバージョン10.14.6以降を使用しているユーザーは保護されています。
Halbornの「Demonic」開示がブラウザウォレットのディスク暗号化リスクを明らかに
Halbornのセキュリティ研究者がCVE-2022-32969(コードネーム「Demonic」)を開示しました。これは、インポート時に入力されたシークレットリカバリーフレーズがブラウザのセッション復元メカニズムによってプレーンテキストでディスクにキャッシュされる可能性がある脆弱性です。このリスクは3つの条件が揃った場合に発生します。ハードドライブが暗号化されていない、シークレットリカバリーフレーズが侵害されたまたは信頼できないデバイスでインポートされた、インポート中に「シークレットリカバリーフレーズを表示」チェックボックスが切り替えられた場合です。MetaMaskはExtensionバージョン10.11.3以降で緩和策を実装しました。MetaMask Mobileは影響を受けませんでした。Halbornはこの発見に対して50,000ドルを受け取りました。
MetaMaskのインシデントレスポンス、2022年上半期に40.39日のMTTRで38件のチケットをクローズ
MetaMaskコンピューターインシデントレスポンスチーム(CIRT)は、2022年上半期に38件のチケットをクローズしました。外部からの報告が大多数を占め、監査および内部ソースの合計の2倍以上に達しました。担当者別では、Extensionチームが最大のシェアを処理し、次いでセキュリティ重点(クロスプロダクト)の問題、Mobileと続きました。38件のチケットのうち、13件にCVSSスコアが付与されました。クリティカルが1件(クリックジャッキングバウンティの脆弱性)、ミディアムが9件、ローが3件です。外部報告者から提出されたチケットは1件あたり28.53日と最も早く解決されました。全体の平均修復時間は40.39日でした。
eth_decryptおよびeth_getEncryptionPublicKeyが暗号技術上の懸念から非推奨に
MetaMaskはeth_decryptおよびeth_getEncryptionPublicKey APIメソッドを非推奨としました。EIP-1024(現在は廃止)に従って構築されたこれらのメソッドは、署名と暗号化に異なる楕円曲線をまたいで同じ秘密鍵を再利用するものであり、追加の攻撃ベクターを生む可能性があります。既知の悪用事例は存在しませんが、この設計は引き続き推奨するには十分なセキュリティを持たないと判断されました。サードパーティの統合者が移行する時間を確保するため、メソッドは引き続き機能します。
Endoのimport.metaおよびrequire.resolveサポートが完了
Endoプロジェクトは、CompartmentsへのCompartmentsのimport.metaサポートをマージしました。これには、static-module-recordのBabelプラグインを調整し、すでに変換されたエクスポート定義の内部でもimport.metaノードが確実に訪問・変換されるようにする必要がありました。続いてcompartment-mapperにimport.meta.urlサポートを追加するPR(endojs/endo #1202)により、compartment-mapperのimportLocation機能にimport.meta.urlサポートが追加されました(Archivesでは利用不可)。また、require.resolve関数がCommonJS実装に追加され、デフォルトではエラーをスローしますが、ReadPowersを通じてカスタム実装を受け入れることができます。これらの変更により、計画されていたCJSサポートロードマップが完了しました。
LavaMoatがYarn 3サポートと明示的なポリシー拒否を追加
LavaMoatはallow-scripts向けにYarn 3サポートを提供し、保護されたプロジェクトの新規チェックアウト時のyarnセットアップを処理するプラグインを追加しました。2つ目のアップデートではpolicy-overrides.jsonに明示的なfalse値が導入され、プロジェクトが特定のendowmentsを拒否し、ポリシーマージ時のオブジェクトフィールドの過剰な公開を防止できるようになりました。
HackerOneバグバウンティプログラムが開始
MetaMaskは2022年6月にHackerOneでバグバウンティプログラムを開始し、MetaMask Extension GitHubリポジトリおよびMetaMask Mobile GitHubリポジトリを対象としています。
MetaMaskの2022年6月暗号資産セキュリティレポートでは、UGWSTに授与された120,000ドルのクリックジャッキングバウンティ、ブラウザウォレットに影響するHalbornの「Demonic」ディスク暗号化脆弱性の開示、および暗号技術上の懸念によるMetaMaskのeth_decryptおよびeth_getEncryptionPublicKeyの非推奨化について取り上げました。エコシステム全体での安全確保に関するさらなる脅威、トレンド、ヒントについては、MetaMask暗号資産セキュリティレポートのバックナンバーをご覧ください。