关键在于构建“可观测—可判定—可拦截—可溯源”闭环:需启用高级审核策略(如进程创建、对象访问)、部署Sysmon补全调用链、建模判定合法性、联动WDAC阻断,并打通进程/账户/网络/文件日志实现证据链自动关联。

要实现进程间非法调用的强制性审计追踪与联动防御,关键不是打开某个开关,而是构建“可观测—可判定—可拦截—可溯源”闭环。Windows 系统自带的审计能力(如对象访问审计、进程创建审计)默认不启用关键项,且原始日志缺乏上下文关联;单纯依赖事件ID 4688或ETW日志,容易漏掉DLL注入、远程线程、反射式加载等绕过手段。必须结合内核层监控、进程行为建模与策略联动,才能形成实战级防御。
启用并加固系统级进程审计基础
默认情况下,Windows 审计策略对进程创建(4688)、句柄操作(4656/4663)、DLL加载(4697/4698)等事件是关闭或低粒度的。需主动配置:
- 启用“审核进程跟踪”策略(Advanced Audit Policy > Detailed Tracking > Audit Process Creation),确保生成事件ID 4688,并勾选“包括命令行信息”(需组策略中开启
ProcessCreationIncludeCmdLine_Enabled注册表项) - 启用“审核对象访问”,配合SACL对关键系统目录(如
C:\Windows\System32、C:\Windows\Temp)设置句柄打开/映射审计,捕获异常DLL加载路径 - 禁用默认宽松的
SeAuditPrivilege分配,仅授予专用审计服务账户,防止攻击者伪造日志 - 将安全日志最大容量设为2GB以上,并启用日志自动归档,避免关键事件被覆盖
用ETW+Sysmon补全进程调用链与上下文
事件日志无法还原完整调用关系(如哪个进程通过CreateRemoteThread向lsass.exe注入),必须引入更细粒度的数据源:
- 部署Sysmon v14+,重点启用配置:
EventID 8(CreateRemoteThread)、EventID 10(ProcessAccess)、EventID 13(FileCreateStreamHash),并开启RuleGroup中的ImageLoad以捕获DLL加载详情 - 使用
logman或PowerShell启动ETW会话,采集Microsoft-Windows-Kernel-Process和Microsoft-Windows-DriverFrameworks-UserMode提供父进程完整性级别、会话ID、Token权限等元数据 - 通过
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4688} | ForEach-Object { $_.Properties[8].Value }提取命令行参数,再与Sysmon的ParentCommandLine字段比对,识别伪造父进程行为
构建调用合法性判定模型与实时阻断
审计日志只是记录,真正实现“强制性追踪与联动防御”,依赖规则引擎对调用行为做动态判定:
- 定义合法调用基线:例如,正常情况下
svchost.exe只应加载%SystemRoot%\System32\*.dll,且IntegrityLevel为High;若出现Medium级svchost加载非签名DLL或访问网络,则标记为高风险 - 用OpenArk内核审计模块监控
PspCallDriver、ObReferenceObjectByHandle等关键回调,发现未注册驱动调用或异常句柄复制即触发告警 - 集成Windows Defender Application Control(WDAC)策略,对已知恶意载荷哈希或无签名进程启动实施
Deny,并将阻断事件写入自定义通道供SIEM关联 - 利用PowerShell的
Register-CimIndication监听Win32_ProcessStartTrace,在进程创建瞬间调用Get-ProcessMitigation检查其DEP/ASLR状态,异常则自动Stop-Process并dump内存
实现跨工具证据链自动关联与响应
单点日志价值有限,必须打通进程、账户、网络、文件四类行为形成证据链:
- 用
Process Explorer导出可疑进程的完整句柄列表与DLL模块,结合handle.exe -p [PID]验证是否持有LSASS或Service Control Manager句柄 - 运行
PsLoggedOn -l与query session比对登录会话SID,再查whoami /groups输出,确认该进程是否以隐藏账户身份获得高权限令牌 - 将Sysmon的
EventID 3(NetworkConnect)与进程PID关联,定位C2通信源头;再用netstat -ano反查对应端口,确认是否由该进程独占绑定 - 配置SIEM(如Elastic SIEM)编写检测规则:当同一主机上
4688 + Sysmon 8 + 4624(登录)三类事件在5分钟内交叉出现,且涉及非交互式账户、异常时间、非标准路径,则自动触发隔离脚本(如Set-NetFirewallRule -Name "Block-Abnormal-Proc" -Enabled True)

















