Netwrix 1Secureは、データとアイデンティティ全体にわたる統合された可視性を提供します。14日間の無料トライアルでフルアクセス可能です。無料トライアルを開始

リソースセンター電子書籍

Windowsレジストリのセキュリティ強化と監視

Windowsレジストリのセキュリティ強化と監視

すべての Windows ホストは構成情報をレジストリに保存しており、攻撃者もそれを把握しています。持続化(persistence)の仕組み、認証情報の窃取を引き起こすトリガー、ファイルレス(fileless)マルウェアのペイロードはいずれも、ほとんどのセキュリティプログラムが厳密には監視していないレジストリ キーを経由します。キー レベルの権限を強化し、イベント ID 4657 に対する SACL の監査を設定し、Sysmon の RegistryEvent ルールを展開することで、レジストリを死角から検知対象へと変えることができます。

Windows レジストリは、コンピュータ内のほぼすべての情報 — 設定、アプリケーション、ユーザー、接続されたデバイス、その他の重要なマシン固有の設定を含むデータベースです。レジストリには、レジストリキーと値という2つの基本要素が含まれています。レジストリ値は、バイナリデータとしてさえ、さまざまな形式でデータを保存できます。Microsoft Windows オペレーティングシステムは、レジストリに保存された情報を常に参照しています。たとえば、インストールされたプログラムを開いたり、新しいソフトウェアをインストールしたり、現在のハードウェア構成を変更したりするために、Windows は特定のレジストリキーの値を確認する必要があります。

パフォーマンスを向上させたり、Windows を希望通りに動作させたりするために、Windows レジストリエディタ (regedit) を使用してレジストリキーの値を手動で変更できます。レジストリファイルは、マルウェアやプログラムまたはドライブのインストール中のエラーによっても変更される可能性があります。これらの望ましくない変更は、コンピュータのパフォーマンスを低下させる可能性が高く、さらには損傷を与える可能性があります。

この Windows レジストリチュートリアルでは、レジストリを変更し、望ましくない変更を修正する方法を説明します。レジストリを成功裏に管理するために必要なすべてのことを学びます。詳細については、チュートリアルの構造を参照してください。

  • HKEY_LOCAL_MACHINE (HKLM) ハイブまたは他のハイブ内のすべてのレジストリキーをリストし、レジストリキーを作成および削除するなどの基本的な管理タスクを実行する方法
  • アンインストールされたアプリケーションが残した可能性のあるキーのコピーを見つけて削除する方法を含む、Windowsレジストリの問題を修正する方法
  • レジストリファイルを安全な場所にエクスポートしてレジストリをバックアップする方法
  • さまざまなツールを使用してバックアップからレジストリを復元する方法

.reg のエクスポートについては、テキストエディターでファイルを開き、キーのパスと値が想定される状態と一致していることを確認してください。reg save で作成したバイナリの hive バックアップは、reg load でオフラインにマウントし、実際の復元を行う前に内容を確認します。重要なキーに対しては、毎週 reg export の操作をスケジュールし、出力結果をバージョン管理されたファイル共有またはバックアップリポジトリに、少なくとも 30 日間の保持期間で保存してください。

2025年、82%の侵入では、ディスク上に従来型のマルウェアファイルが残されなかったと、The CrowdStrike 2026 Global Threat Report は報告しています。では、その理由の中心にあるのが Windows レジストリです。

ランサムウェアはそこに永続化を確立し、認証キーを操作することで資格情報の窃取ツールが動作し、ファイルレスのペイロードはレジストリ値の中に完全に格納されるため、エンドポイントのツールが検知できる形でディスクに何も残りません。

レジストリをセキュリティ領域ではなくシステム管理上の課題として扱うセキュリティチームには、継続的な見落とし(盲点)が残ります。

このガイドでは、攻撃者がレジストリをどのように悪用するのか、どのキーを積極的に監視する必要があるのか、さらに、権限をどのように強化し、悪意のある変更がインシデントになる前にどう検知するかを説明します。

Windows レジストリとは何ですか?

Windows レジストリは、オペレーティング システム、インストール済みアプリケーション、ハードウェア ドライバー、ユーザー プロファイルの構成設定を保存する階層型データベースです。

Windows は通常の動作中、起動やログオンからアプリケーションの起動、システム ポリシーの適用に至るまで、継続的にレジストリを読み書きします。

レジストリはデータを 5 つのルート キーに整理します。

  1. HKEY_LOCAL_MACHINE (HKLM): このコンピューター上のすべてのユーザーで共有される、システム全体のハードウェアおよびソフトウェアの設定を保持します。
  2. HKEY_CURRENT_USER (HKCU): 現在ログインしているユーザーの構成を保存し、アプリケーションの設定(優先設定)やデスクトップ設定を含みます。
  3. HKEY_USERS (HKU): このマシン上のすべてのユーザーアカウントについて、読み込まれたプロファイルを含みます。新しいアカウントに使用される既定のプロファイルも含まれます。
  4. HKEY_CLASSES_ROOT (HKCR): ファイルの関連付けと COM オブジェクトの登録をマッピングし、HKLM と HKCU のデータを統合します。
  5. HKEY_CURRENT_CONFIG (HKCC): 現在のシステムセッションのハードウェアプロファイル情報を保存します。

各キーにはサブキーと値が含まれます。値は3つの要素で構成されます。つまり、名前、データ型(たとえば REG_SZ は文字列用、または REG_DWORD は整数用)、そしてデータそのものです。

オペレーティング システムは、レジストリ データをディスク上のバイナリ ハイブ ファイルとして保存し、ntuser.dat には各ユーザーの HKCU ハイブと、%SystemRoot%\System32\config 配下にあるシステム、ソフトウェア、およびセキュリティ ハイブが格納されています。

攻撃者が Windows レジストリを悪用する方法

レジストリは攻撃者に3つの高い価値をもたらす機能を提供します。再起動後も持続性を維持するための保存場所、資格情報の取り扱いを操作するための仕組み、そしてファイル システムに触れることなくペイロードを隠すための場所です。

これらの悪用パターンはいずれも、セキュリティ チームが監視して防御できる特定のキー パスを狙います。

レジストリ ベースの持続性メカニズム

初期アクセスを得た攻撃者は、再起動後も生き残るために autorun キーへ書き込むことがよくあります。最も狙われる場所は HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run で、すべてのユーザーに対してシステム起動時に登録された値を実行します。

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run は、現在のユーザーにスコープを限定した同様の仕組みを提供し、書き込みに管理者権限は不要です。正規のソフトウェアはインストール後にこれらのキーをほとんど変更しないため、セキュリティチームはこれらを永続化(persistence)の兆候として追跡します。

レジストリ操作による認証情報の窃取

Windows は、認証情報に関連する設定をレジストリキーに保存しており、攻撃者はそれを標的として認証情報を抽出します。HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest にある WDigest 認証プロトコルのキーは、Windows がメモリ内に平文の認証情報を保存するかどうかを制御します。

Windows 8.1 以降、Microsoft は既定値を変更し、WDigest はメモリ内に平文の認証情報を保存しなくなりましたが、UseLogonCredential を 1 に設定して再度有効化した攻撃者は、次のユーザーのログオン後にMimikatz のようなツールで平文パスワードを収集できます。

次の場所にある LSA Protection キー HKLM\SYSTEM\CurrentControlSet\Control\Lsa は、ローカル セキュリティ機関(Local Security Authority)が保護されたプロセスとして実行されるかどうかを決定します。攻撃者が RunAsPPL を 0 に設定すると、その保護が解除され、資格情報(credential material)にアクセスできるようになります。

ファイルレス マルウェア(fileless malware)とリビング・オフ・ザ・ランド(living-off-the-land)手法

ファイルレス マルウェア(fileless malware)は、そのペイロード全体をレジストリ値(registry values)の中に保存するため、ファイルベースの検知ツールが見つけられる実行可能ファイルがディスク上に残りません。よく使われる手法として、PowerShell スクリプトを REG_SZ または REG_BINARY 値としてエンコードし、その後 Run キーまたはスケジュール タスク(scheduled task)を使用して、起動時にメモリ上でペイロードをデコードして実行します。

ディスク上にファイルがないため、ファイルベースのアンチウイルスや多くの EDR ツールは初期のインプラント(initial implant)をまったく見落とします。検知には、機微なキーへのレジストリ書き込みイベントを監視し、それをプロセス実行のアクティビティと相関付ける必要があります。

監視すべき重要な Windows レジストリ キー

すべてのレジストリ キーが継続的な監視を必要とするわけではありませんが、起動の実行、資格情報の取り扱い、セキュリティ設定を直接制御する有限のキーが存在します。そのため、未承認の変更は侵入の可能性を示すサインになります。以下のキーは、あらゆる Windows セキュリティ プログラムにおける中核となる監視対象です。

Netwrix Auditor は、ハイブリッド Microsoft 環境全体でのアクセスおよび変更イベントの「変更前/変更後」の値を記録します。無料トライアルをダウンロード

オートランおよびスタートアップ キー

HKLM と HKCU の両方配下にある Run および RunOnce キーは、Windows 環境における主要な持続化(persistence)ターゲットを表します。Windows は Run keys を毎回の起動およびログオン時にすべて実行します。RunOnce キーは一度だけ実行され、その後自分自身を削除するため、段階的なペイロード配信に適しています。次の 4 つのパスをすべて監視してください:

  1. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  2. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
  3. HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  4. HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

既知のソフトウェア展開ウィンドウ以外でこれらのキーが変更される場合、無許可の持続化(persistence)アクティビティを示す可能性があります。

認証情報(クレデンシャル)と認証用キー

認証情報の窃取に向けた準備を検知するには、3つのキーを継続的に監視する必要があります。:

  1. HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\UseLogonCredential: 値 0 は安全なデフォルトです。1 に変更すると、攻撃者がメモリ内での平文の認証情報(クレデンシャル)保存を再度有効化したことを示します。
  2. HKLM\SYSTEM\CurrentControlSet\Control\Lsa\RunAsPPL: 値が 1 または 2 の場合、ローカル セキュリティ機関(Local Security Authority)が保護されたプロセスとして実行されていることを確認します。0 に減らすと、その保護を剥がそうとする試みを示します。
  3. HKLM\SYSTEM\CurrentControlSet\Control\Lsa\LmCompatibilityLevel: NTLM 認証の強度を制御します。3 未満の値は、不安全なダウングレードを示しており、パス・ザ・ハッシュ(pass-the-hash)や NTLM リレー攻撃を容易にします。適切なハードニングのためには、CIS や Microsoft などのベースラインに合わせて値を 5 に設定してください。

セキュリティ ポリシーおよび UAC キー

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System には UAC の構成値が格納されます。EnableLUA, ConsentPromptBehaviorAdmin または PromptOnSecureDesktop を変更すると、UAC のプロンプトが減少または完全に無効化され、サイレントな権限昇格が可能になります。

HKLM\SOFTWARE\Policies\Microsoft\Windows Defender は Windows Defender の動作を制御します。攻撃者はこのキーの下で DisableAntiSpyware または DisableRealtimeMonitoring に書き込んで、エンドポイント保護を無効化します。

リモートアクセスおよびサービスキー

HKLM\SYSTEM\CurrentControlSet\Services は、起動タイプや実行可能ファイルのパスなど、インストール済みのすべての Windows サービスの構成を保存します。攻撃者はサービスのバイナリパスまたは起動タイプを変更して、LocalSystem アカウントの下で悪意のあるコードを読み込ませます。これはサービスハイジャック(service hijacking)として知られる手法です。

HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\fDenyTSConnections は、リモートデスクトップが着信接続を受け付けるかどうかを制御します。1 から 0 への変更は、無許可の RDP 有効化を示しており、 ラテラルムーブメント として多くのランサムウェアのプレイブックに登場する一般的な手法です。

Windows のレジストリ セキュリティを強化する方法

レジストリの強化は、攻撃者が到達する前に攻撃対象領域を減らします。以下の4つの対策は、主な悪用経路に対応しています。つまり、機密キーへの不正な書き込み、レジストリへのリモートアクセス、セキュリティ基線の欠落、そして監査(監視)範囲の不足です。

レジストリ権限を制限する

レジストリ キーには、どのユーザーやプロセスが読み取り・書き込み・削除できるかを決める Access Control Lists(ACL)があります。ほとんどの HKLM キーの既定の権限では、書き込みには管理者権限が必要です。しかし、多くの HKCU キーでは、認証済みのユーザーであれば誰でも変更できるようになっています。

regedit.exe」または PowerShell の Get-AclSet-Acl の cmdlet を使用して、機密キーの権限を監査し、より厳格にします。SYSTEM アカウントおよび特定のサービス アカウントに対する書き込みアクセスを制限し、Users グループから書き込み権限を削除したうえで、principle of least privilege を適用し、各アカウントがその機能に必要なレジストリ アクセスだけを保持するようにしてください。

リモート レジストリ サービスを無効にする

リモート レジストリ サービスにより、Windows ホスト上のレジストリに対してネットワーク経由で読み取りおよび書き込みを行えます。

リモート レジストリの管理が不要なすべてのエンドポイントでこのサービスを無効にし、サーバーでは、ホストベースのファイアウォール ルールにより、特定の管理アカウントと送信元 IP アドレスに限定してください。

スタートアップの種類を Disabled に設定し、HKLM\SYSTEM\CurrentControlSet\Services\RemoteRegistryGroup Policy によって設定を適用して、ローカル管理者による再有効化を防いでください。

セキュリティ テンプレートと CIS Benchmarks を適用する

Microsoft Security Compliance Toolkit は、レジストリの強化(hardening)設定を含むベースラインのグループ ポリシー オブジェクト(Group Policy Objects)を提供します。Windows Server および Windows 10/11 用です。

該当するベースラインをダウンロードし、Policy Analyzer ツールで現在のレジストリ状態と比較したうえで、エンドポイント間の一貫性を維持するために、レジストリを直接編集するのではなく、グループ ポリシー(Group Policy)を通じて設定を適用してください。

Windows 用の CIS Benchmark では、安全な構成のためのレジストリ値が指定されています。CIS-CAT Pro Assessor を使用して準拠状況を測定し、ギャップを特定してください。どちらのベースラインも、UAC 設定、NTLM 制限レベル、および PowerShell の実行ポリシーをカバーしています。

レジストリの監査を設定する

オブジェクト アクセス監査(object access auditing)が有効になっていると、Windows はイベント ID 4657 を生成し、システム アクセス制御リスト(System Access Control List: SACL)が対象キーをカバーします。

ローカル セキュリティ ポリシー(Local Security Policy)の下で、オブジェクト アクセス(Object Access)に対する成功および失敗の監査を有効にしてから、各機密キーに対して SACL を regedit.exe: 経由で設定します。キーを右クリックし、Permissions を選択して Advanced をクリックし、Auditing タブを開き、監査するアクセスの種類(Set Value, Create Subkey, Delete)を持つ principal を追加します。

キーごとの SACL 設定を行わずに、より幅広くカバーするには、RegistryEvent のルールで Event IDs 12(キーの作成または削除)、13(値の設定)、14(キーまたは値の名前変更)を生成するように Sysmon を展開します。これは Windows のネイティブ監査とは独立して動作します。

Windows レジストリの変更を監視する方法

効果的なレジストリ監視では、ネイティブの Windows イベント ログに Sysmon を組み合わせてより広い範囲をカバーし、その両方のソースを SIEM に投入して相関付け(コリレーション)します。各レイヤーは、他のレイヤーが開けてしまうギャップを埋めます。

Windows イベント ログと SACL の監査

イベント ID 4657 は、Windows に組み込まれたレジストリ変更監視の基盤を提供します。このイベントは、コンピューター名、対象ユーザー、プロセス名、キー パス、値の名前、旧データ、新データを取得し、分析担当者が各変更について変化前と変化後の完全な記録を把握できるようにします。

優先度の最も高いキーから先に SACL を設定します(Run キー、 WDigestLsa、 Windows Defender ポリシー)。その後、Windows イベント フォワーディング(Windows Event Forwarding)またはログ エージェントを使用して、セキュリティ ログ イベントを中央の SIEM またはログ管理プラットフォームに転送します。

Sysmon ベースのレジストリ監視

Sysmon は、個々のキーに対する SACL の設定を不要にしながら、Windows の標準レジストリ監査を拡張します。監視対象のキー パスと値の名前を指定するには、Sysmon の設定 XML に RegistryEvent のエントリを追加してください。

イベント ID 13 はレジストリの値の書き込みを取得し、プロセス名、プロセス ID、対象キー パス、新しい値データを含みます。イベント ID 12 は、キーの作成および削除イベントを対象とします。

Sysmon のレジストリ イベントにある Image フィールドを、既知の良好なプロセス一覧と関連付けて、予期しない書き込み主体(writer)を特定します。たとえば PowerShell cmd.exe、 または mshta.exe などです。 これらは 自動実行(autorun)や資格情報キーに触れる可能性があります。

レジストリ アラート向けの SIEM 相関ルール

効果的なレジストリ監視には、ノイズを抑えつつ高い確度の指標を浮かび上がらせる SIEM 相関ルールが必要です。以下のパターンに対するルールを優先してください:

  1. 既知のソフトウェア インストーラ以外のプロセスによる Run または RunOnce キーへの書き込みmsiexec.exe, setup.exe, ccmsetup.exe
  2. 次の項目の変更:HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\UseLogonCredential 0 から 1
  3. 次へのいかなる書き込み: HKLM\SOFTWARE\Policies\Microsoft\Windows Defender ポリシー キー
  4. 次の下でのサービス バイナリ パスの変更: HKLM\SYSTEM\CurrentControlSet\Services(予定されたメンテナンス期間外)

各アラートに対応する MITRE ATT&CK 識別子(実行キーの永続化は T1547.001、一般的なレジストリ改ざんは T1112)をタグ付けして、トリアージを加速し、脅威インテリジェンスの相関付けを支援します。

Netwrix Auditor は、Windows レジストリ イベントおよびハイブリッド Microsoft 環境全体において、「誰が」「いつ」「どこから」「何を」変更したのかを可視化します。無料トライアルをダウンロードしてください。

Windows レジストリのバックアップと復元方法

構成変更を行う前にレジストリのバックアップを取得しておくと、変更によって不安定さが生じた場合や、攻撃者が復元が必要なキーを変更した場合でも、セキュリティおよび運用チームが確実に復旧できる経路を確保できます。以下の3つの方法では、キー単位のエクスポート、システム状態のスナップショット、およびバックアップの検証を扱います。

レジストリ キーのエクスポートとインポート

レジストリ キーを変更する前に、該当するキーまたはサブキーをバックアップとしてエクスポートしてください。regedit.exe で、そのキーを右クリックし、[Export(エクスポート)] を選択して、生成された .reg ファイルをシステム ドライブ外の場所に保存します。

コマンドラインからエクスポートするには:

エクスポートしたキーは次で復元します:

重要なシステム hives(SYSTEM、SOFTWARE、SECURITY)には、reg save reg restore を、昇格した権限で使用してバイナリの hive ファイルを扱ってください。これらは .reg のテキスト書き出しよりも、大容量またはバイナリデータをより確実に処理できます。

レジストリ バックアップのためのシステムの復元と VSS

Windows のシステムの復元は、復元ポイントの一部としてレジストリの状態をキャプチャし、レジストリの変更によってシステムの不安定さが発生した場合にロールバックの選択肢を提供します。コントロール パネルからシステム ドライブで「システム保護」を有効にし、複数の復元ポイントを保持するためにディスク容量を少なくとも 10 GB 割り当てるよう構成してください。

Volume Shadow Copy Service(VSS)スナップショットもレジストリ hive ファイルを保持し、スナップショット アクセス ツールを通じてきめ細かな復旧を可能にします。Windows Server では、Windows Server バックアップを構成して「システム状態(System State)」を含めてください。システム状態には、ブート ファイルや COM+ クラス登録データベースと並んで、すべてのレジストリ hive が含まれてキャプチャされます。

レジストリ バックアップの検証とテスト

バックアップの価値は、それからの復元が成功するかどうかに完全に左右されます。そのため、実際のインシデントでバックアップを頼りにする前に、非本番のマシンまたは仮想マシンへ復元してバックアップの整合性をテストしてください。

Netwrix でスケール規模のレジストリセキュリティを維持

レジストリのセキュリティは、Windows のエンドポイント防御の土台です。攻撃者が永続化、資格情報へのアクセス、防御回避に頼るキーは数が限られており、よく文書化されていて、このガイドで取り上げるネイティブのツールで監視できます。

権限コントロール、SACL の監査、Sysmon の RegistryEvent ルール、そして SIEM の相関分析を一貫して適用することで、レジストリに基づく攻撃経路の大半を、被害が拡大する前にカバーできます。

課題は、構成がドリフトし、新しいエンドポイントが環境に追加される状況でも、そのカバレッジを大規模に維持し続けることです。そして、その役割を担うのが集中型の監査プラットフォームであり、セキュリティスタックの中で重要な位置を占めます。

Netwrix Auditor ハイブリッドな Windows 環境全体におけるレジストリ変更イベントの「変更前/変更後」の監査記録を提供します。 Netwrix Change Tracker エンドポイントの構成を CIS Benchmarks に対して継続的に検証し、攻撃者が悪用する前にドリフトを見つけ出します。

デモを依頼する Netwrix がどのようにレジストリの変更を監視し、不正な変更を検出し、Windows 環境全体で監査のカバレッジを維持できるかをご覧ください。

よくある質問

共有する