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

资源中心博客

理解 LSA 保护

理解 LSA 保护

Mar 17, 2023

保护运行中的 Windows 服务器以及 Windows 10 至关重要,尤其是在当今日益复杂的威胁环境下。通常,这些系统会成为攻击中首批被攻破的机器,攻击者会利用攻击链中最薄弱的一环——用户。通过欺骗手段和社会工程学,威胁行为者能够获得对这些机器的访问权限,随后试图横向移动并提升其权限。因此,加强端点和服务器安全可以显著降低您遭受安全漏洞/泄露的风险。

你可以采取的服务器加固措施之一,是保护 Local Security Authority (LSA)。LSA 控制并管理内存中的用户权限信息、密码哈希以及其他重要信息片段。攻击者工具(例如 mimikatz )依赖访问这些内容来抓取密码哈希或明文密码。启用 LSA Protection 会将 Windows 配置为以更安全的方式控制内存中存储的信息——具体来说,是防止未受保护的进程访问这些数据。

什么是受保护的进程?

当进程符合本文 Microsoft documentation 中描述的标准时,就会被视为受保护。概括来说,如果进程具有来自 Microsoft 的已验证签名,并且遵循 Microsoft Security Development Lifecycle (SDL) ,则该进程会被视为受保护。若不满足这两个条件,进程将无法访问 LSA 在内存中使用的内容。

如何启用 LSA Protection

由于 LSA Protection 由注册表控制,因此你可以使用 Group Policy 在所有设备上轻松启用它:只需将 RunAsPPL 的值设置为 1。此设置可在注册表中的 SYSTEMCurrentControlSetControlLsa 处找到。

LSA Protection

以下代码可作为 .reg 文件使用,将此值设置为 1:

      *Code Block*

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa]

"RunAsPPL"=dword:00000001

*Code Block*
      

检查您的设置

要验证每台服务器是否已受到保护,可以转到上面提到的注册表部分,并确认该值已设置为 1。

不过,为了让这项工作更轻松一些,我在下面提供了一个 PowerShell 脚本,可让您在远程查询特定机器的值(前提是存在正确的访问权限)。只需将 [SAMPLEHOST] 替换为该机器的主机名即可。此代码将返回 0、1,或返回一个异常,指示不存在 RunAsPPL 属性。除非返回 1,否则说明在目标计算机上未启用该设置。

      *Code Block*

invoke-command -Computer [SAMPLEHOST] {Get-itempropertyvalue -Path "HKLM:SYSTEMCurrentControlSetControlLsa" -Name RunAsPPL}

*Code Block*
      

分享到

了解更多

关于作者

Asset Not Found

Kevin Joyce

产品管理总监

Netwrix 产品管理总监。Kevin 对网络安全充满热情,尤其致力于理解攻击者为利用组织环境所采用的策略与技术。凭借八年的产品管理经验,并专注于 Active Directory 和 Windows 安全,他将这种热情投入到帮助构建解决方案中,助力组织保护其身份、基础设施和数据。