Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心电子书

Windows 注册表安全加固与监控

Windows 注册表安全加固与监控

每台 Windows 主机都会在注册表中存储其配置信息,而攻击者也对此了如指掌。持久化机制、凭证窃取触发器以及无文件(fileless)恶意软件载荷,都会通过某些大多数安全程序只会较为松散地监控的注册表键来实现。通过强化键级权限、为事件 ID 4657 配置 SACL 审计,并部署 Sysmon RegistryEvent 规则,可以将注册表从盲区转变为可检测的攻击面。

Windows 注册表是一个数据库,包含有关计算机几乎所有内容的信息——首选项、应用程序、用户、连接的设备以及其他重要的机器特定设置。注册表包含两个基本元素:注册表键和值。注册表值可以以各种格式存储数据,甚至可以作为二进制数据。Microsoft Windows 操作系统不断参考存储在注册表中的信息;例如,要打开已安装的程序、安装新软件或更改当前硬件配置,Windows 必须检查某些注册表键的值。

为了提高性能或使 Windows 按照您的意愿工作,您可以使用 Windows 注册表编辑器 (regedit) 手动更改注册表键值。您的注册表文件也可能会被恶意软件更改,或者在安装程序或驱动器时出现错误;这些不必要的更改可能会降低计算机的性能,甚至损坏计算机。

本 Windows 注册表教程解释了如何修改注册表并修复不必要的更改。您将学习成功管理注册表所需了解的所有内容。有关更多详细信息,请参见教程的结构:

  • 如何执行基本管理任务,例如列出 HKEY_LOCAL_MACHINE (HKLM) 哈希或其他哈希中的所有注册表项,以及创建和删除注册表项
  • 如何修复Windows注册表问题,包括如何查找和删除已卸载应用程序可能留下的密钥副本
  • 通过将注册表文件导出到安全位置来备份您的注册表的方法
  • 如何使用各种工具从备份中恢复注册表

对于 .reg 导出文件,请在文本编辑器中打开,并验证键路径和值是否与预期状态一致。对于使用 reg save 创建的二进制 hive 备份,请使用 reg load 离线挂载,并在执行现场恢复之前检查其内容。为关键键安排每周 reg export 操作,并将输出存储到带版本控制的文件共享或备份仓库中,保留时间至少 30 天。

根据 The CrowdStrike 2026 Global Threat Report 的数据,2025 年有 82% 的入侵未在磁盘上留下传统恶意软件文件,而 Windows 注册表正是关键原因。

勒索软件会在其中建立持久性,凭据窃取工具会操纵其认证密钥,而无文件载荷则被完全存储在注册表值中,使磁盘上不留任何可供终端工具检测的内容。

将注册表视为系统管理问题而非安全领域的安全团队,会长期存在持续性的盲区。

本指南将介绍攻击者如何利用注册表、哪些密钥需要进行主动监控,以及如何加固权限并在恶意变更演变为事件之前将其检测出来。

Windows 注册表是什么?

Windows 注册表是一个分层数据库,用于存储操作系统、已安装应用程序、硬件驱动程序以及用户配置文件的配置设置。

在正常运行期间,Windows 会在从启动和登录到应用程序启动以及系统策略强制执行的整个过程中持续读取和写入注册表。

注册表将数据组织为五个根键:

  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): 存储当前系统会话的硬件配置文件信息。

每个键都包含子键和值。一个值由三个部分组成:名称、数据类型(例如 REG_SZ 用于字符串,或 REG_DWORD 用于整数),以及值本身的数据。

操作系统会将注册表数据以二进制蜂巢(hive)文件的形式存储在磁盘上,其中 ntuser.dat 包含每个用户的 HKCU hive,以及位于 %SystemRoot%\System32\config 下的系统、软件和安全 hive。

攻击者如何利用 Windows 注册表

注册表为攻击者提供了三项高价值能力:用于在重启后保持持久性的存储位置、用于操纵凭据处理机制的机制,以及在不接触文件系统的情况下隐藏有效载荷的位置。

这些滥用模式中的每一种都针对特定的键路径(key path),安全团队可以对其进行监控和防御。

基于注册表的持久性机制

获取初始访问权限的攻击者经常会向 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)是否以受保护进程(protected process)形式运行;攻击者将 RunAsPPL 设置为 0 会剥离该保护,从而获得对凭据(credential material)的访问权限。

无文件恶意软件(fileless malware)和“利用现有环境”的技术(living-off-the-land)

无文件恶意软件(fileless malware)会将整个有效载荷存储在注册表值(registry values)中,因此磁盘上不会留下可执行文件供基于文件的检测工具查找。常见的技术是将 PowerShell 脚本编码为 REG_SZREG_BINARY 值,然后在启动时使用“Run”键或计划任务(scheduled task)对有效载荷进行解码并在内存中执行。

由于磁盘上没有文件,基于文件的杀毒软件和许多 EDR 工具会完全忽略最初的植入物(initial implant)。检测需要监控对敏感键的注册表写入事件,并将其与进程执行活动进行关联分析。

需要监控的关键 Windows 注册表键

并非每个注册表项都值得进行持续监控,但有一小部分注册表项会直接控制启动执行、凭据处理以及安全配置,因此一旦发生任何未授权的更改,都可能表明系统已遭入侵。以下键值组成了任何 Windows 安全方案的核心监控集合。

Netwrix Auditor 会记录混合 Microsoft 环境中访问和变更事件的“变更前/变更后”值。下载免费试用版

自动运行和启动键

位于 HKLM 和 HKCU 下的 Run 和 RunOnce 键,是 Windows 环境中主要的持久化(persistence)目标。Windows 会在每次启动和登录时执行 Run keys 中的所有值;RunOnce 键仅执行一次,然后自行删除,因此适用于分阶段投递有效载荷(payload)。请监控所有四个路径:

  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)活动。

凭据和身份验证密钥

需要持续监控三个键,以检测凭据窃取的准备行为:

  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 中继攻击更容易实施。为进行正确的加固(hardening),应将该值设置为 5,并符合 CIS 和 Microsoft 等基线要求。

安全策略和 UAC 键

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 用于保存 UAC 配置值。对 EnableLUA, ConsentPromptBehaviorAdmin 或 PromptOnSecureDesktop 的修改会减少或消除 UAC 提示,从而实现静默的权限提升。

HKLM\SOFTWARE\Policies\Microsoft\Windows Defender 控制 Windows Defender 的行为。攻击者会在此键下写入 DisableAntiSpywareDisableRealtimeMonitoring ,以禁用端点防护。

远程访问和服务键

HKLM\SYSTEM\CurrentControlSet\Services 存储每个已安装的 Windows 服务的配置,包括启动类型和可执行文件路径。攻击者会修改服务二进制文件路径或启动类型,以便在 LocalSystem 帐户下加载恶意代码,这种技术称为服务劫持(service hijacking)。

HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\fDenyTSConnections 控制远程桌面是否接受传入连接。将值从 1 更改为 0 表示未经授权启用 RDP——这是许多勒索软件剧本中常见的 横向移动(lateral movement) 技术。

如何强化 Windows 注册表安全性

注册表加固能够在攻击者到来之前先缩小攻击面。下面的四项控制措施针对主要被利用路径:对敏感键的未授权写入、对注册表的远程访问、缺少安全基线,以及审计覆盖不足。

限制注册表权限

注册表项包含访问控制列表(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\RemoteRegistry ,并通过 Group Policy 强制执行该设置,防止本地管理员重新启用。

应用安全模板和 CIS Benchmark

Microsoft Security Compliance Toolkit 提供包含注册表加固设置的基础组策略对象(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)的成功与失败审核,然后通过 regedit.exe: 为每个敏感键配置 SACL:右键单击该键,选择 Permissions(权限),点击 Advanced(高级),打开 Auditing(审核)选项卡,并添加要审核的访问类型对应的主体(principal)(Set Value, Create Subkey, Delete)。

如需在不为每个键单独配置 SACL 的情况下获得更广的覆盖范围,可部署 Sysmon,并使用 RegistryEvent 规则生成 Event IDs:12(创建或删除键)、13(设置值)以及 14(重命名键或值),且不依赖 Windows 原生审核。

如何监控 Windows 注册表更改

有效的注册表监控采用两层方式:一方面利用原生 Windows 事件日志,并结合 Sysmon 来获得更全面的覆盖;另一方面将两类数据源都导入 SIEM 进行关联分析。每一层都会弥补其他层尚未覆盖的空白。

Windows 事件日志与 SACL 审核

事件 ID 4657 为 Windows 内置的注册表变更监控提供了基础。该事件会捕获计算机名称、主体用户、进程名称、键路径、值名称、旧数据和新数据,从而为分析人员提供每次变更的完整“变更前/变更后”记录。

先在优先级最高的键上配置 SACL(Run 键、 WDigestLsa、 Windows Defender 策略),然后使用 Windows 事件转发(Windows Event Forwarding)或日志代理将安全日志事件转发到中央 SIEM 或日志管理平台。

基于 Sysmon 的注册表监控

Sysmon 在无需在各个键上配置 SACL 的情况下,扩展了原生 Windows 注册表审计。将 RegistryEvent 条目添加到 Sysmon 配置 XML 中,以指定要监控的键路径和值名称。

事件 ID 13 用于捕获注册表值写入,并包含进程名称、进程 ID、目标键路径以及新的值数据;事件 ID 12 涵盖键创建和删除事件。

将 Sysmon 注册表事件中的 Image 字段与已知“良好”的进程列表进行关联,以识别意外的写入者,例如 PowerShell cmd.exe、mshta.exe 这些 会触及自动运行或凭据键。

用于注册表告警的 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 注册表

在进行任何配置更改之前先创建注册表备份,可为安全与运维团队提供在以下情况下可靠的恢复路径:如果更改导致不稳定,或攻击者修改了需要还原的键值。下面的三种方法涵盖按键级导出、系统状态快照以及备份验证。

导出与导入注册表键

在修改任何注册表键之前,请将相关的键或子键导出为备份。在 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+ 类注册数据库一起捕获所有注册表 hives。

验证与测试注册表备份

备份的价值完全取决于能否成功从中进行恢复。因此,在真实事故中依赖该备份之前,请先将备份恢复到非生产机器或虚拟机上,以测试备份的完整性。

使用 Netwrix 在规模化环境中维护注册表安全性

注册表安全是 Windows 终端防护的基础。攻击者用于持久化、凭据访问和规避防御的“键”是有限的、已有充分文档说明,并且可以使用本指南所涵盖的原生工具进行监控。

持续应用权限控制、SACL 审计、Sysmon RegistryEvent 规则以及 SIEM 关联分析,可以在攻击升级之前覆盖大多数基于注册表的攻击路径。

挑战在于:随着配置逐渐偏离基线、并且新的终端加入环境,如何在规模化条件下持续保持覆盖范围;这也是集中式审计平台在安全技术栈中应当占据一席之地的原因。

Netwrix Auditor 可在混合 Windows 环境中为注册表变更事件提供变更前与变更后的审计记录。 Netwrix Change Tracker 持续验证端点配置是否符合 CIS Benchmarks,在攻击者利用之前捕捉配置偏离(drift)。

请求演示 了解 Netwrix 如何帮助你监控注册表变更、发现未授权的修改,并在 Windows 环境中保持审计覆盖。

常见问题

分享到