托管安装程序和 ISG 技术参考及疑难解答指南

注意

Windows Defender应用程序控制的某些功能仅在特定 Windows 版本上可用。 详细了解 应用程序控制功能可用性

启用托管安装程序和 Intelligent Security Graph (ISG) 日志记录事件

有关启用可选托管安装程序诊断事件的信息,请参阅 了解应用程序控制 事件。

使用 fsutil 查询托管安装程序的扩展属性 (MI)

使用 Windows Defender 应用程序控制 (WDAC) 且已启用托管安装程序 (MI) 的客户可以使用 fsutil.exe 来确定文件是否由托管安装程序进程创建。 此验证是通过使用 fsutil.exe 查询文件中的扩展属性 (CA) 并查找内核来完成的。SMARTLOCKER。ORIGINCLAIM EA。 然后,可以使用第一行输出中的数据来确定文件是否由托管安装程序创建。 例如,我们来看看名为 application.exe 的文件的 fsutil.exe 输出:

示例:

fsutil.exe file queryEA C:\Users\Temp\Downloads\application.exe

Extended Attributes (EA) information for file C:\Users\Temp\Downloads\application.exe:

Ea Buffer Offset: 410
Ea Name: $KERNEL.SMARTLOCKER.ORIGINCLAIM
Ea Value Length: 7e
0000: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................
0010: b2 ff 10 66 bc a8 47 c7 00 d9 56 9d 3d d4 20 2a ...f..G...V.=. *
0020: 63 a3 80 e2 d8 33 8e 77 e9 5c 8d b0 d5 a7 a3 11 c....3.w.\......
0030: 83 00 00 00 00 00 00 00 5c 00 00 00 43 00 3a 00 ........\...C.:.
0040: 5c 00 55 00 73 00 65 00 72 00 73 00 5c 00 6a 00 \.U.s.e.r.s.\.T.
0050: 6f 00 67 00 65 00 75 00 72 00 74 00 65 00 2e 00 e.m.p..\D.o.w.n...
0060: 52 00 45 00 44 00 4d 00 4f 00 4e 00 44 00 5c 00 l.o.a.d.\a.p.p.l.
0070: 44 00 6f 00 77 00 6e 00 6c 00 6f 00 61 00 64 i.c.a.t.i.o.n..e.x.e

从上面显示的输出中,找到标记为“0000:”的第一行数据,然后是 16 个双字符集。 每四个集构成一个名为 ULONG 的组。 第一个 ULONG 前面的两个字符集将始终为“01”,如下所示:

0000: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00

如果输出的第五个位置 (第二个 ULONG) 的开头有“00”,则表示 EA 与托管安装程序相关:

0000:01 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00

最后,第九个输出位置的两个字符集 (第三个 ULONG) 的开头指示文件是否由作为托管安装程序运行的进程创建。 值为“00”表示文件直接由托管安装程序进程写入,如果 WDAC 策略信任托管安装程序,则该文件将运行。

0000:01 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00

如果第三个 ULONG 的起始值为“02”,则表示“子级”。 “子级”在由托管安装程序安装的内容创建的任何文件上设置。 但是,该文件是在托管安装程序完成其工作 创建的。 因此,除非策略中有其他规则允许此文件,否则 不允许 此文件运行。

在极少数情况下,你可能会在此位置看到其他值,但如果策略信任托管安装程序,该值也会运行。

使用 fsutil 查询 Intelligent Security Graph (ISG) 的扩展属性

当根据 ISG 运行具有良好信誉的安装程序时,安装程序写入磁盘的文件将从安装程序继承信誉。 这些具有 ISG 继承信任的文件也将具有 KERNEL。SMARTLOCKER。如上文所述,为托管安装程序设置 ORIGINCLAIM EA。 可以通过在输出的第五个位置查找值“01”来标识 EA 是由 ISG 创建的, (fsutil 中的第二个 ULONG) 的开头:

0000:01 00 00 00 01 00 00 00 00 00 00 00 00 01 00 00 00

托管安装程序和 ISG 的更多故障排除步骤

托管安装程序和 ISG 都依赖于 AppLocker 来提供某些功能。 使用以下步骤确认 AppLocker 已正确配置并运行。

  1. 检查 AppLocker 服务是否正在运行。 在提升的 PowerShell 窗口中运行以下命令,并确认 appidsvc 和 AppLockerFltr 的状态显示为“正在运行”:

    sc.exe query appidsvc
        SERVICE_NAME: appidsvc
        TYPE               : 30  WIN32
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
    sc.exe query AppLockerFltr
        SERVICE_NAME: applockerfltr
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
    

    如果没有,请从提升的 PowerShell 窗口运行 appidtel start,然后再次检查。

  2. 对于托管安装程序,AppCache.dat 和其他 *检查。在 %windir%\System32\AppLocker 下创建的 AppLocker 文件。 应至少存在 “ 。为每个 EXE、DLL 和 MANAGEDINSTALLER 规则集合创建的 AppLocker“文件。 如果未看到这些文件已创建,请继续执行下一步,确认已正确应用 AppLocker 策略。

  3. 对于托管安装程序故障排除,检查 AppLocker 有效策略是正确的。 从提升的 PowerShell 窗口:

    Get-AppLockerPolicy -Effective -XML > $env:USERPROFILE\Desktop\AppLocker.xml
    

    然后打开创建的 XML 文件,并确认其中包含所需的规则。 具体而言,策略应为每个 EXE、DLL 和 MANAGEDINSTALLER RuleCollections 包含至少一个规则。 RuleCollections 可以设置为 AuditOnly 或 Enabled。 此外,EXE 和 DLL RuleCollections 必须包括 RuleCollectionExtensions 配置,如使用 Windows Defender 应用程序控制自动允许托管安装程序部署的应用中所示。