差距真正出现的地方
凌晨 2:14,域控制器上的注册表值发生了翻转。/etc/ssh/sshd_config 中的某个文件被追加了一行。区域办公室交换机上的防火墙 ACL 采用了新的允许规则。以上都不会触发 SIEM 告警。它们都不会破坏任何东西。它们也不会出现在漏洞扫描中,因为扫描器是昨天运行的,下次要等到下周才会再运行。
差距已经打开。攻击者会在你之前先读到它,因为他们正寻找的正是这些——微小的偏差、未被记录的修改、以及无人负责的漂移。
这就是为什么 file integrity monitoring 作为事后补救并不管用。拉取事件日志并 grep 查找 4663,相当于带延迟地看比赛转播。你不是在主动按下去,而是在被动反应。偏差必须在 I/O 层一发生的那一刻就被检测出来,并且要与真正可信的基线进行对照。
在内核层的“press”
Windows 上的 Gen 7 Agent 会在高度 388790 处向 Filter Manager 注册一个 minifilter 驱动。每一次文件 I/O 操作(创建、写入、删除、重命名、属性变更)都会经过过滤器栈;然后该驱动会将与跟踪模板匹配的事件记录到内存缓冲区中。该代理每 100 毫秒轮询一次缓冲区。不会对文件加锁,不会修改 I/O,也无需重启即可启用。
这就是“press”。你不需要等日志刷新(flush)。你不需要以五分钟的间隔轮询文件系统,并祈祷中间没有发生任何事情。你是直接挂接在 I/O 路径本身上,实时读取每一次触达,并与您定义的“形状”进行对比。
在 Linux 上,Gen 7 Agent 使用 Sysdig 来捕获相同深度的信息:文件完整性变化以及这些变化背后的用户身份。是谁做的更改——不只是发生了什么改变。因为“有人修改了 /etc/pam.d/sshd”只是一半的告警;“服务账号 svc-backup 于 02:14 在维护窗口之外的会话中修改了 /etc/pam.d/sshd”则是一个可以做出决策的结论。
无需安装代理(Agentless)的覆盖范围负责其余部分。通过 SSH 监控网络设备;通过端口 445 的远程注册表监控 Windows 主机;通过 Shell 监控 Linux 和 Unix;通过 PowerCLI 监控 ESXi 和 vCenter;通过提供商 API 监控云平台。整个后端一条基线(baseline),而不是用九种不同的工具在九个不同位置各自监视。
闭环
缺乏上下文的实时检测,就像一个中场对每个从身边跑过的球员都犯规。二十分钟后你只剩十人,替补席还在大喊。
任何真实环境中的大多数变更都是合法的。会进行补丁更新。管理员会做管理员该做的事。定时任务会触及文件。对所有这些都亮起的 FIM tool 只是噪音;噪音会被忽略,而被忽略又比什么都没有更糟——这样你就拥有了一个工具,却对覆盖范围产生了错误的判断。
Change Tracker 会将每一次检测到的变更与“应该发生的事情”进行核对与对齐。Sync Service 从 ServiceNow、BMC Remedy、Cherwell、ManageEngine、ChangeGear、OpenText SMAX 和 Samanage 中拉取已批准的变更请求。每个 RFC 都会转为 Planned Change,包含计划窗口(scheduled window)、配置项(configuration item),以及在 ServiceNow 中还包含 AssignedTo 字段。这样就能按“应当由谁来进行变更”而不仅仅是“发生在何时”来匹配事件。检测到的事件会根据 Planned Change 的规则集进行评估并分类。
计划中。已确认。已过滤。
未计划。已暴露。已调查。
这就是闭环。知道哪些“运行”是诱饵,哪些才是实际威胁,并且只投入到真正重要的那些上。
当没有工单、当该变更没有匹配的 RFC 且没有记录的正当理由时,Change Tracker 可以自动把事件重新上报到 ServiceNow ,并将其路由到该配置项的负责人。未经授权的变更会生成用于解决问题的工单。逼抢不只是赢下球,它会直接发动反击。
基线就是阵型
没有阵型的四后卫就只是四个人站在场地上。没有基线的检测也是同样的道理。你如果没有定义“正常”,就无法暴露偏差。
基线配置(Baseline Configuration) 功能会以教练对待战术布置的方式来处理这一点。选择一个源设备:你的黄金镜像(gold image)或经过加固的参考构建(hardened reference build)。采集其状态:文件完整性(File integrity)、已安装的软件、正在运行的进程、服务及其状态、本地账户、开放端口,以及 Windows 上的注册表键。基线会成为阵型(formation),组内的其他所有设备都要以它为标准进行对照测量。偏移(drift)会以例外(exception)的形式出现。例外会被审查。被批准的偏移将被提升为新的基线。未获批准的偏移则会被修复(remediated)。
这正是 NERC 在谈到已授权的基线配置(authorized baseline configurations)以及 35 天变更监控时所要求的内容。它也是 PCI DSS 要求 11.5 在讨论变更检测机制(change detection mechanisms)时所需要的。它还是 CIS Control 4 在谈到企业资产的安全配置(secure configuration)时所要的。各个框架用不同的说法描述同一件事:定义形态(define the shape)、保持形态(hold the shape)、暴露偏差(surface the deviation)。Change Tracker 正是围绕这一完整闭环构建的,并提供 250+ 份预制的合规报告,将基线映射到审计员在 3 月将要询问的任意框架。
没有记录,就不会有任何变动
仪表盘是绿色的。工单在可控范围内。团队也很从容。
那就是比赛中最危险的时刻。
在你的环境中的某处,刚刚发生了变化。问题不在于你的工具最终是否会注意到。问题在于,从出现漏洞的那一刻到你的检测真正触发的那一刻,攻击者完成了多少次传递(行动)。
更早发起压迫。就在变化发生的点上读懂局势。定义形态、保持形态,并确保在没有记录的情况下任何事都不会移动。
这就是工作。 这就是标准。 这就是你守住属于自己的方式。
分享到
了解更多
关于作者
Dan Piazza
产品管理经理
Dan Piazza 是 Netwrix 的产品管理经理,负责多种 Endpoint、DSPM 和 Directory 产品。他自 2013 年起从事技术岗位工作,热衷于网络安全、数据保护、自动化和代码。在担任现职之前,他在一家数据存储软件公司担任产品经理和系统工程师,管理并落地了软件与硬件的 B2B 解决方案。