Key

人気の KeePass パスワード マネージャーには、アプリケーションのメモリからマスター パスワードを抽出する脆弱性があり、デバイスを侵害する攻撃者は、データベースがロックされていてもパスワードを取得できます。

この問題は、「vdohney」として知られるセキュリティ研究者によって発見され、彼は、攻撃者が概念実証 (PoC) としてメモリから KeePass マスター パスワードを抽出できるようにする概念実証ツールを公開しました

パスワード マネージャーを使用すると、ユーザーはオンライン アカウントごとに一意のパスワードを作成し、その資格情報を検索しやすいデータベースまたはパスワード ボールトに保存できるため、パスワードをいちいち覚える必要がなくなります。ただし、このパスワード保管庫を適切に保護するには、ユーザーはロックを解除して保存されている資格情報にアクセスするために使用する 1 つのマスター パスワードを覚えておく必要があります。

このマスター パスワードは KeePass パスワード データベースを暗号化し、最初にパスワードを入力せずにデータベースを開いたり読み取ったりすることを防ぎます。ただし、マスター パスワードが侵害されると、攻撃者はデータベースに保存されているすべての認証情報にアクセスできます。

したがって、パスワード マネージャーを適切に保護するには、ユーザーがマスター パスワードを保護し、他の人と共有しないことが重要です。

CVE-2023-3278として追跡されている新しい KeePass の脆弱性により、KeePass ワークスペースがロックされているかどうか、あるいはプログラムがロックされているかどうかに関係なく、最初の 1 ~ 2 文字を除く KeePass マスター パスワードをクリアテキスト形式で回復することが可能になります。閉じています。

「KeePass Master Password Dumper は、KeePass のメモリからマスター パスワードをダンプするために使用される単純な概念実証ツールです。パスワードの最初の文字を除けば、ほとんどの場合、パスワードを平文で復元できます」と GitHub のセキュリティ研究者は警告していますエクスプロイトツールのページ。

「ターゲット システム上でのコードの実行は必要ありません。メモリ ダンプだけが必要です。メモリがどこから来たのかは関係ありません。プロセス ダンプ、スワップ ファイル (pagefile.sys)、休止状態ファイル (hiberfil.sys)、または RAM のいずれかです」システム全体のダンプワークスペースがロックされているかどうかは関係ありません。」

この欠陥は、このソフトウェアが「SecureTextBoxEx」という名前のカスタム パスワード入力ボックスを使用しており、ユーザーが入力した各文字の痕跡がメモリに残るために存在します。

「KeePass 2.X は、パスワード入力用にカスタム開発されたテキスト ボックスである SecureTextBoxEx を使用します。このテキスト ボックスは、マスター パスワードの入力に使用されるだけでなく、パスワード編集ボックスなど、KeePass の他の場所でも使用されます (そのため、攻撃は内容を復元するために使用されます)」と vdohney 氏は説明します。

この脆弱性は KeePass の最新バージョン 2.53.1 に影響を与えますが、このプログラムはオープンソースであるため、プロジェクト フォークが影響を受ける可能性があります。

パスワード ダンピング ツールの開発者によると、KeePass 1.X、KeePassXC、および Strongbox は CVE-2023-32784 の影響を受けないようです。

また、PoC は Windows でテストされましたが、問題は OS に固有のものではなく、KeePass がユーザー入力を処理する方法に問題があるため、このエクスプロイトはいくつかの変更を加えれば Linux および macOS でも機能するはずです。

パスワードダンパー
KeePass パスワードダンプツールの動作中
出典: vdohney

悪用しやすい

KeePass マスター パスワードを回復するにはメモリ ダンプを取得する必要があるため、CVE-2023-32784 の悪用にはターゲット マシンへの物理的アクセスまたはマルウェア感染が必要です。

ただし、情報を盗むマルウェアは、KeePass がコンピュータ上に存在するか、実行されているかをすぐに確認し、存在する場合は、プログラムのメモリをダンプして、メモリ ダンプから平文のパスワードをオフラインで取得するために、プログラムと KeePass データベースを攻撃者に送り返す可能性があります。

以下に示すように、テスト デバイスに KeePass をインストールし、マスター パスワード「password123」を使用して新しいデータベースを作成することで、vdohney の「keepass-password-dumper」ツールをテストしました。

テスト用 KeePass データベースの作成
テスト用 KeePass データベースの作成
ソース:

その後、KeePass ワークスペースをロックしました。これにより、マスター パスワードを再度入力しない限り、ワークスペースにアクセスできなくなります。

私たちのテストでは、Process Explorer を使用して KeePass プロジェクトのメモリをダンプできますが、正しく動作するにはミニダンプではなく完全なメモリ ダンプが必要です。プロセスのメモリをダンプするために昇格された特権は必要ありません。

Visual Studio を使用して vdohney のツールをコンパイルした後、メモリ ダンプに対して実行すると、最初の 2 文字だけが欠けているクリアテキスト パスワードの大部分がすぐに回復されました。

KeePass マスター パスワードの大部分を抽出する
KeePass マスター パスワードの大部分を抽出する
ソース:

これは完全なパスワードではありませんが、どの文字が欠落しているかを判断するのは非常に簡単です。

研究者はまた、過去に使用されたマスターパスワードがメモリに残る可能性があるため、侵害されたコンピュータで KeePass が実行されなくなった場合でも取得できる可能性があると警告しています。

修正は近日中に行われます

KeePass の開発者である Dominik Reichl はバグレポートを受け取り、2023 年 7 月中にバージョン 2.54 で CVE-2023-32784 の修正を公開すると約束しました。

ただし、Reichl 氏は、KeePass バージョン 2.54 は約 2 週間以内にユーザーにリリースされる可能性が高いため、6 月初旬までにリリースされるはずだと述べました。

Reichl 氏がセキュリティ上の欠陥と潜在的な緩和戦略についての考えを展開したディスカッションに基づいて、次期 KeePass バージョンの 2 つのセキュリティ強化について言及しています。

  1. テキスト ボックスのテキストを取得/設定するための直接 API 呼び出しを実行し、機密漏洩の可能性があるメモリ内での管理文字列の作成を回避します。
  2. ユーザーのマスター パスワードとほぼ同じ長さのランダムな文字を含むダミー フラグメントをプロセス メモリ内に作成し、実際のキーを難読化します。

Windows 用 KeePass 2.54 には両方の機能が追加されますが、macOS および Linux バージョンには 2 番目の拡張機能のみが追加されます。

開発者は、問題を軽減する新しいセキュリティ強化を備えたテスト バージョンをリリースしたため、不安定な動作を許容できる人は、 ここから入手できます。

PoC の作成者は、2 つのセキュリティ強化を適用すると攻撃を再現できなくなったことを確認したため、修正は有効であると考えられます。

新しいバージョンがリリースされた後でも、マスター パスワードはメモリ ファイルに保存されている場合があります。研究者は、このウイルスがシステムに潜んでいないことを 100% 安全にするには、システムのスワップ ファイルと休止状態ファイルを削除し、データの回復を防ぐために「データ上書き」モードを使用してハード ドライブをフォーマットし、新たに再インストールする必要があると警告しています。 OSのインストール。

ただし、ほとんどの場合、コンピューターを再起動し、スワップ ファイルと休止状態ファイルをクリアし、新しいバージョンがリリースされるまで KeePass を使用しないことが、当面の合理的な安全対策です。

それでも、最善の保護を得るために、信頼できないサイトからプログラムをダウンロードしないように細心の注意を払い、デバイスに感染して脅威アクターがデバイスや KeePass データベースにリモート アクセスできるようにするフィッシング攻撃に注意してください。