定期执行系统安全基线扫描是发现非法驻留服务进程最可靠、最可持续的方式,聚焦服务状态与进程上下文,通过自动化任务、动态基线规则及联动响应机制实现闭环处置。

定期执行系统安全基线扫描,是发现非法驻留服务进程最可靠、最可持续的方式。它不依赖临时人工排查,而是把“该不该存在”变成可量化、可比对、可追溯的规则判断——比如一个本不该启动的服务突然出现在运行列表里,或某个进程悄悄注册为服务并设为自动启动,基线扫描会在下一次检查中立刻标红预警。
明确扫描范围:聚焦服务与进程两类关键对象
非法驻留往往藏在两个地方:一是伪装成合法服务长期存活(如命名为“svchost_update”却非微软签名);二是以普通进程形式拉起,但无父进程、无合法路径、CPU/内存异常占用。基线扫描必须覆盖:
- 服务状态:是否启用、启动类型(自动/手动/禁用)、服务路径、二进制文件签名状态、服务账户(是否为LocalSystem或高权限域账户)
- 进程上下文:进程名、PID、父PID、启动命令行、映像路径、数字签名验证结果、是否加载可疑DLL(如注入类模块)
配置自动化扫描任务:避免人为遗漏
手动运行一次PowerShell脚本或GUI工具只能看到“此刻”,而非法进程可能在重启后才激活,或按计划任务周期性唤醒。因此必须固化扫描动作:
- 在Windows环境,用Task Scheduler创建每日凌晨触发的任务,调用
Get-Service | Where-Object {$_.Status -eq 'Running'}和Get-Process | Where-Object {$_.Path -match '^C:\Windows\|C:\Program Files' -eq $false}等逻辑组合,并导出差异日志 - 使用FindAll这类专用工具时,启用其增量比对模式,每次扫描自动与上一轮快照对比,仅报告新增/变更项(如新注册的服务、路径异常的进程)
- 云环境中(如华为云Stack),直接启用SecMaster基线检查,选择“操作系统配置基线”遵从包,设定每24小时执行一次,它会自动识别未在白名单中的服务启动项
建立可判定的基线规则:让“非法”有据可依
没有标准,就无法判定“非法”。基线不是静态清单,而是动态策略:
- 维护一份授权服务白名单:只允许系统自带服务(如wuauserv、Dnscache)及业务必需服务(如SQL Server Agent)处于“自动”状态;其余一律设为“手动”或“禁用”
- 定义进程路径合规性规则:合法进程路径应落在
C:Windows、C:Program Files或已登记的业务安装目录;任何位于C:Temp、%AppData%Local或随机子目录下的.exe启动项,默认标记为高风险 - 启用签名强制校验:通过组策略启用“设备安装程序:禁止安装未签名驱动”和“系统:要求对可执行文件进行数字签名验证”,使无签名进程/服务无法静默启动
联动响应机制:从发现到处置闭环
扫描出问题只是第一步,关键在后续动作能否自动跟上:
- 扫描工具输出含风险等级(如“高危:未知服务注册为自动启动”)的JSON/HTML报告,自动推送至SIEM平台(如Azure Sentinel或华为云SecMaster告警中心)
- 配置自动化剧本(Playbook):当检测到新服务且路径不在白名单内时,自动执行
sc queryex [服务名]获取详细信息,并调用sc stop [服务名] && sc delete [服务名]临时清除,同时触发工单通知运维人员复核 - 将每次扫描结果存入时间序列数据库,绘制服务启停热力图——若某服务总在凌晨3点出现又消失,即使单次扫描未捕获,趋势分析也能暴露定时驻留行为

















