著者:リサ & アロ
編集:リズ
今日のインターネット環境では、マルウェア、ウイルス、フィッシング攻撃などの脅威が次々と現れています。ウイルス対策ソフトウェア(例:AVG、Bitdefender、Kaspersky、Malwarebytesなどの国際的に有名な製品)をインストールすることで、悪意のあるプログラムからの防御やシステムの安全性を高めることができます。しかし、ウイルス対策ソフトウェアの役割は基本的な安全防護を提供することであり、リスクを減少させることはできても、絶対的な安全を保証することはできません。対抗は動的なプロセスであり、ウイルス対策ソフトウェアのインストールは安全性を高めるための第一歩に過ぎません。同時に、ウイルス対策ソフトウェア自体も誤検知を引き起こす可能性があり、追加のリスクをもたらします。
最近、ユーザーからのフィードバックでは、ウイルス対策ソフトウェアを使用した後、いくつかのブラウザ拡張機能(特に暗号通貨ウォレット拡張)が悪意のあるソフトウェアとして誤検知され、拡張のJavaScriptファイルが隔離または削除され、最終的に拡張ウォレットが損傷し、正常に使用できなくなることが報告されています。
Web3ユーザーにとって、この状況は特に深刻です。なぜなら暗号化ウォレット拡張は通常、秘密鍵を保存しているため、適切に対処しないとウォレットデータを失い、資産を回収できなくなる可能性があるからです。したがって、誤検知で隔離された拡張データを正しく復元する方法を理解することが非常に重要です。
どうやって対処するか?
ウイルス対策ソフトウェアの誤検知によりブラウザ拡張が損傷した場合は、以下の手順で復元することをお勧めします:
1. 隔離ゾーンからファイルを復元し、拡張機能をアンインストールしないでください。
特定のソフトウェアや拡張機能が機能しない場合は、まずウイルス対策ソフトウェアの「隔離区」(Quarantine)または「履歴」(History)を確認し、誤検知されたファイルを探します。隔離ファイルを削除しないでください。
ファイルが隔離ゾーンにまだある場合は、「復元」(Restore)を選択し、そのファイルまたは拡張機能を信頼リストに追加して、再度誤検知されないようにします。
ファイルが削除されている場合は、自動バックアップがあるか、データ復元ツールを使用して回復することを確認してください。
忘れないでください:拡張機能をアンインストールしないでください!たとえ拡張が損傷していても、ローカルには暗号化された秘密鍵関連ファイルが存在する可能性があり、復元の可能性があります。
2. ローカル拡張データのバックアップと検索
拡張データは通常ローカルディスクに保存されており、拡張が開けなくても関連データを見つけて復元することができます(拡張IDはMetaMaskを例にしています:nkbihfbeogaeaoehlefnkodbefgpgknn):
Windowsパスの参考:C:\Users\USER_NAME\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\nkbihfbeogaeaoehlefnkodbefgpgknn
Macパスの参考:
~/Library/Application Support/Google/Chrome/Default/Local Extension Settings/nkbihfbeogaeaoehlefnkodbefgpgknn
注意が必要なのは、Chromeが複数のアカウント構成を採用している場合、パスの中のDefaultはProfile 1/Profile 2に変わる可能性があるため、具体的なProfileディレクトリを確認し、実際の状況に応じてパスを調整する必要があります。問題が発生した際に備えて、対象拡張の完全なディレクトリをバックアップすることをお勧めします。
3. 粗暴な復元方法:ローカル拡張ディレクトリを上書きする
誤検知によって拡張が損傷した場合、最も直接的な方法は、新しいコンピューターまたは新しいブラウザ環境でバックアップした拡張データをローカルパスに直接上書きし、その後拡張機能を再度開くことです。
4. 高度な復元方法:手動で秘密鍵データを復号化
拡張がまだ開けない場合やデータが欠損している場合は、より高度な復元方法、すなわち秘密鍵データを手動で復号化して復元することを試みることができます。MetaMaskを例にすると:
コンピュータのローカルでMetaMask拡張IDを検索し、次のディレクトリを見つけます:C:\Users\[User]\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\nkbihfbeogaeaoehlefnkodbefgpgknn
このディレクトリにはldb/logファイルが含まれている可能性があり、これらのファイルには暗号化された秘密鍵データが保存されています。MetaMask公式のVault復号化ツール(https://metamask.github.io/vault-decryptor/)を使用して復号化できます。
復号化手順:MetaMask Vault復号化ツールを開く -> ldb/logファイル内の暗号化された内容をコピー -> 拡張本来のパスワードを使用して復号化 -> 秘密鍵を取得した後、ウォレットを再インポートします。
MetaMask拡張が特定のページ(例:chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html)を開ける場合は、以下のコードを実行して暗号化された秘密鍵データを取得してみてください:

次に、vaultデータをMetaMask Vault復号化ツールにコピーして復号化します。
5. カスタム復元ツールを作成
上記の方法でウォレットデータを復元できない場合は、ユーザー自身がスクリプトを作成し、ローカルデータベースファイルから拡張ストレージのデータを抽出して復号化することができます。ここではPhantomKeyRetrieverをテンプレートとして、異なるウォレット復元ツールの基本原理と実装について説明します:
ウォレットプラグインは通常、機密データをローカルシステムのデータベースまたはファイルに保存します。ブラウザ拡張ウォレット(Phantom、MetaMaskなど)は、ブラウザが提供するストレージAPIを利用して暗号化されたデータをブラウザのローカルストレージ領域に保存します。通常、これはLevelDBまたはIndexedDBなどのデータベースシステムです。ウォレットの種類に関係なく、重要な原則はデータが常に暗号化された形式で保存されることです。これにより、データがコピーされても、正しいパスワードがなければアクセスできません。
ほとんどの暗号化ウォレットは、多層の暗号化アーキテクチャを採用して安全性を高めています。まず、ユーザーの主パスワードが中間鍵(通常「暗号鍵」または「復号鍵」と呼ばれる)を暗号化するために使用されます。次に、この中間鍵が実際の秘密鍵または助記詞を暗号化するために使用されます。この設計により、ウォレットアプリのコードが改ざんされても、攻撃者はユーザーのパスワードを知っていなければ秘密鍵を取得できません。この多層設計により、ウォレットアプリはユーザーがログインした後にのみ中間鍵を復号化し、毎回操作のたびに主パスワードを再入力する必要がありません。
ウォレット復元ツールの作成プロセスは通常以下を含みます:
暗号化データを特定して抽出します(LevelDB/IndexedDBからデータを読み取ります)。
データ構造を分析し、暗号化された秘密鍵/助記詞を特定します。
ユーザーにウォレットパスワードを入力させ、KDF(PBKDF2またはScryptなど)を使用して復号鍵を計算します。
中間鍵を復号化し、その後秘密鍵/助記詞を復号化します。
このプロセスでは、ウォレットの暗号化スキームとデータストレージ形式を正確に理解する必要があります。これは通常、逆アセンブルやウォレットのオープンソースコードを分析することによって得られます。
PhantomKeyRetrieverツールに関して言えば、これはChromeブラウザデータからPhantomウォレットの助記詞または秘密鍵を抽出するために特別に設計されたスクリプトです。SlowMistは現在、このツールをGitHubでオープンソース化しています(https://github.com/slowmist/PhantomKeyRetriever)、その核心原理は以下の通りです:
Chrome LevelDBデータベースを読み取り、関連データを一時ディレクトリにコピーします。
データベースを遍歴し、Phantomウォレットが保存している暗号化された鍵とウォレットシード情報を探します。
ユーザーがPhantomパスワードを入力し、スクリプトがPBKDF2/Scryptを利用して復号鍵を計算します。
ウォレットの保管庫データを復号化し、BIP39助記詞またはBase58秘密鍵を抽出します。
この二重復号化プロセスでは、スクリプトはPBKDF2とScryptの2つの鍵派生関数をサポートし、NaClライブラリのSecretBoxを使用して安全に復号化します。最終的に、復号化後のデータのタイプに基づいて、スクリプトはBIP39標準の助記詞を生成するか、Base58エンコードされた秘密鍵を抽出します。
他の拡張ウォレットをサポートするブラウザ(Edge、Firefoxなど)も同様の原理であることに注意が必要です。ここでは詳しく説明しません。
どうやって予防するか?
誤検知のリスクを減らすために、ユーザーは以下の対策を講じることができます:
重要なファイルとブラウザ拡張データを定期的にバックアップし、誤検知が発生した場合に迅速に復元できるようにします。
ウイルス対策ソフトウェアに手動で信頼ルールを追加し、重要なソフトウェアや拡張機能(たとえばMetaMask)を手動で信頼リストに追加して、誤検知を防ぎます。
公式のチャネルからソフトウェアをダウンロードし、非公式または改変されたアプリケーションのインストールを避けることで、ウイルス対策ソフトウェアによる潜在的リスクとしてのマークを減らします。
まとめ
対抗は常に動的に変化しており、安全ポリシーも継続的に調整する必要があります。ウイルス対策ソフトウェアをインストールすることは重要ですが、最終的にはユーザー自身が自分の資産の最後の防衛線です。誤検知に遭遇した場合、ユーザーは冷静に対処し、重要なファイルを直接削除することを避け、適切な復元手段を採用する必要があります。正しい安全知識を習得することで、自分のデータの安全を真に守ることができます。
