攻击指标安装脚本
配置 IoA 部署的 EDR 排除项
为确保攻击指标 (IoA) 部署成功,您必须与端点安全软件协调配合。由于部署使用了由计划任务触发的 PowerShell 脚本,因此某些端点检测和响应 (EDR) 工具可能会将该活动标记为可疑。
如要授权脚本,请执行以下操作:
-
生成脚本签名:识别特定版本部署脚本的唯一文件哈希。
-
打开 PowerShell。
-
使用 Register-TenableIOA.ps1 脚本运行以下命令:
复制.\Register-TenableIOA.ps1 -GetSignatureToWhitelist -
复制输出中显示的 SHA256 文件哈希:
-
-
在 EDR 中对哈希进行授权:
-
登录 EDR 配置界面。
-
导航至“排除项”或“允许列表”部分。
-
添加您在步骤 1 中复制的 SHA256 哈希。
-
保存更改并等待片刻,让策略传播到端点。
-
-
完成部署:运行 IoA 安装脚本。
运行 IoA 安装脚本
如要运行 IoA 脚本,请执行以下操作:
-
以管理员身份打开 PowerShell,导航至脚本目录,调整执行策略,然后运行脚本:
复制.\Register-TenableIOA.ps1 -
输入与配置相关的参数:
参数 描述 GPODisplayName GPO 的显示名称,用于创建用来注册事件侦听器的任务。默认值:Tenable.ad。 TemporaryFolderLocation 部署期间用于存储 GPO 备份的临时文件夹。默认值:%TEMP%\Tenable.ad\。 DomainControllerAddress 部署目标域控制器的 FQDN 或 IP 地址。如果脚本从并非域控制器的服务器或工作站运行,请指定此项。如果未指定此项,系统会从本地计算机检索域信息。 DomainControllerOU 包含域控制器的组织单位的标识名。如果您的 DC 已从默认 OU 移出,请指定此项。示例:OU=Domain Controllers,DC=ROOT,DC=DOMAIN。 TenableServiceAccount Tenable Identity Exposure 使用的服务帐户名称,该帐户需要明确的权限才能读取组策略对象。 卸载 卸载事件侦听器和 WMI 活动脚本使用者,以终止事件日志收集进程。默认值:false。 ConfigurationFileLocation 将用于更新 GPO 配置的文件的路径。 目标 此注册脚本所针对的域控制器的逗号分隔列表。示例:DC-ROOT1,DC-ROOT2。此参数为可选项。
提示:如果您使用该列表,请确保列表中包含 PDCE;否则,IoA 部署将失败。
CleaningGPODisplayName GPO 的显示名称,用于创建用来删除事件侦听器和 WMI 活动脚本使用者的清除任务。默认值:Tenable.ad cleaning。 EventLogsFileWriteFrequency 非 PDCE 域控制器在 DFSR 模式下生成事件日志文件的频率(以秒为单位)。默认值:15 秒。最大值:300 秒(5 分钟)。可选参数。 SmbShareLocation 在 PDCE 上以“专用 SMB 共享”模式运行时,SMB 共享位置的磁盘路径(绝对)。此文件夹由 Tenable Identity Exposure 管理。默认路径:C:\Tenable\IdentityExposure\IOALogs。可选参数。 UseXmlEventRender 为侦听器启用基于旧版 XML 的事件呈现。与基于值的呈现器相比,此方法速度更慢,但更稳定。默认处于禁用状态。 OutputCertificate 允许在当前目录中输出 Tenable 证书(在需要将其列入 EDR/AV 的允许列表时非常有用)。此参数为可选项。 GetSignatureToWhitelist 允许显示已部署 listenerLauncher.ps1 脚本的哈希,从而在部署之前将其列入 EDR/AV 的允许列表。 TimerInMinutes 设置 IoA 部署开始之前的延迟时间(以分钟为单位)。在安装期间使用此定时器,从而在部署开始之前暂停进程。
维护 IoA 证书有效性
为确保攻击指标 (IoA) 部署保持活跃且安全的状态,您必须定期重新部署最新版本的 IoA 脚本。此进程允许 Tenable Identity Exposure 在当前版本到期之前安装更新版的 Tenable 代码签名证书。
组策略对象
下载并运行攻击指标 (IoA) 安装文件后,IoA 脚本会在 Active Directory (AD) 数据库中创建一个默认命名为 Tenable.ad 的新组策略对象 (GPO)。系统仅将 Tenable Identity Exposure GPO 链接到包含所有域控制器 (DC) 的域控制器组织单位 (OU)。新策略会使用 GPO 机制在所有 DC 之间自动复制。
GPO 包含所有 DC 在本地执行以收集相关数据的 PowerShell 脚本,如下所示:
-
该脚本使用 Windows EvtSubscribe API 在每个域控制器上配置一个事件日志监听器。该脚本通过提交请求和由 EvtSubscribe 触发的针对每个匹配事件日志的回调,为 TenableADEventsListenerConfiguration.json 中指定的每个必要事件日志通道进行订阅。
-
事件侦听器接收事件日志并对其进行缓冲,然后定期将其刷新到网络共享区中名为 SYSVOL 的文件。每个 DC 都刷新到单个 SYSVOL 文件,该文件存储收集的事件并将其复制到其他域控制器。
-
侦听器执行行为:侦听器由计划任务触发,其行为因部署版本而异:
-
本地:
-
v. 3.93 之前的版本:侦听器通过命令启动。
-
从 3.93 版开始:侦听器从 Tenable 签名的 PowerShell 脚本运行,并且 GPO 将 Tenable 证书添加为受信任的发布者。确保未将脚本执行策略设置为“已限制”。
-
-
SaaS(从 3.102 版开始):侦听器从 Tenable 签名的 PowerShell 脚本运行,并且 Tenable 证书已列为受信任的发布者。确保未将脚本执行策略设置为“已限制”。
-
重要说明:请勿编辑 Tenable Identity Exposure IOA GPO,其由侦听器自动管理。
-
该脚本还创建了一个 WMI 使用者,通过在 DC 重新启动时重新注册事件订阅者来确保此机制持续存在。每次 DC 重新启动时,WMI 都会通知使用者,以允许使用者再次注册事件监听器。
-
此时,分布式文件系统 (DFS) 复制开始并在域控制器之间自动同步文件。Tenable Identity Exposure 的平台监听传入的 DFS 复制流量,并使用此数据收集事件、运行安全分析,然后生成 IoA 警报。
-
专用 SMB 共享:
-
事件侦听器会捕获事件日志、对其进行缓冲并定期将其写入文件(存储在托管在 PDCe 上的专用 SMB 共享中)中。Tenable Identity Exposure 通过事件侦听器自动维护并保护此 SMB 共享。每个域控制器都会将数据写入位于 PDCe SMB 上的专用 SMB 共享中的单个文件中。
-
Tenable Identity Exposure 的平台会侦听此专用共享上的 SMB 更新,以收集事件数据、执行安全分析并生成 IoA 警报。
-
本地数据检索
Windows 事件日志记录操作系统及其应用程序中发生的所有事件。事件日志依赖于 Windows 中集成的组件框架。
Tenable Identity Exposure IoA 事件日志侦听器使用 EvtSubscribe API,仅以插入字符串的形式收集从事件日志中提取的有用的事件日志数据段。Tenable Identity Exposure 将这些插入字符串写入 SYSVOL 文件夹中存储的文件中,并通过 DFS 引擎进行复制。这样,Tenable Identity Exposure 就可以从事件日志收集正确数量的安全数据,以运行安全分析和检测攻击。
IoA 脚本摘要
下表概述了 Tenable Identity Exposure 脚本部署。
| 步骤 | 描述 | 涉及的组件 | 技术操作 |
|---|---|---|---|
| 1 | 注册 Tenable Identity Exposure的 IoA 部署 | GPO 管理 |
创建 Tenable.ad(默认名称)GPO 并将其链接到域控制器 OU。 |
| 2 | 在 DC 上启动 Tenable Identity Exposure 的 IoA 部署 | DC 本地系统 | 每个 DC 都会检测要应用的新 GPO,具体取决于 AD 复制和组策略刷新间隔。 |
| 3 | 控制高级日志记录策略状态 | DC 本地系统 | 系统通过设置注册表项 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\SCENoApplyLegacyAuditPolicy 来激活高级日志记录策略。 |
| 4 | 更新本地日志记录策略 | DC 本地系统 | 根据要检测的 IoA,Tenable Identity Exposure 会动态生成并激活特定审核策略。此策略不会停用任何现有的日志记录策略,而仅会在必要时加以丰富。如果检测到冲突,GPO 安装脚本将停止并显示消息“Tenable Identity Exposure 需要审核策略 ‘...’,但当前 AD 配置阻止其使用。” |
| 5 | 注册事件监听器和 WMI 生产者 | DC 本地系统 | 系统注册并执行 GPO 中包含的脚本。此脚本运行 PowerShell 进程以使用 EvtSubscribe API 订阅事件日志,并出于持久性目的创建 ActiveScriptEventConsumer 实例。Tenable Identity Exposure 使用这些对象接收和存储事件日志内容。 |
| 6 | 收集事件日志消息 | DC 本地系统 |
|
| 7 | 将文件复制到声明的 DC SYSVOL 文件夹 | Active Directory | AD 使用 DFS 跨域复制文件,特别是在已声明的 DC 中。Tenable Identity Exposure 平台获取每个文件的通知并读取其内容。 |
| 8 | 覆盖这些文件 | Active Directory | 每个 DC 都会自动且连续地将定期缓冲的事件写入同一个文件中。 |
另请参阅

