从三份日志到风险事件链:把 DLP 告警变成可举证的调查结论
- 客户
- 某证券机构,需求来自其数据安全运营中心建设
- 阶段
- 原型验证
- 结果
- 三层数据模型与规则引擎跑通;规则、场景映射、打分算子全部配置化,改配置即生效无需改代码
- 涉及能力
- 日志治理风险建模规则引擎证据链回溯LLM 报告生成
阅读说明:这是一个原型/演示系统,用于验证方法与展示能力,尚未在客户生产环境部署。 客户名称与可识别的业务标识已全部隐去;文中的方法、结构与数字为真实记录。
背景
企业里负责数据安全运营的团队,每天面对的是几个互不相通的控制台:上网行为审计一个、邮件安全网关一个、终端 DLP 一个,有的还有即时通讯审计。
每个控制台都在产告警。告警很多,但没有一个能回答业务上真正的问题——这个员工最近到底有没有在往外带数据?
问题
告警是碎片,不是故事。 上网日志记录了访问,DLP 记录了文件操作,邮件网关记录了外发。三者各说各话,时间线对不上,字段口径不一致,人要在三个界面之间来回切换才能拼出一个大概。
单条告警的风险等级没有意义。 访问一个云盘是低风险,插一次 U 盘是低风险,发一封带附件的邮件是低风险。但同一个人在两小时内做完这三件事,且涉及同一批文件,那是另一回事。
结论无法举证。 即使人工拼出了判断,要向管理层或合规部门说明「为什么认为这是风险」,还得再回三个系统去捞证据。
原有方式为什么不行
常见做法是做一个统一日志平台,把三类日志汇总到一起,做搜索和统计报表。
这解决了「查得到」的问题,但没解决「看得懂」的问题——它把三个控制台变成了一个更大的控制台。分析师面对的仍然是原始记录,只是现在它们堆在同一张表里。
把日志聚合起来不等于把风险识别出来。 中间缺的是一层业务语义。
关键约束
- 原始日志必须 1:1 全量留存不裁剪——最终举证依赖原始记录,任何加工都不能破坏它
- 规则、场景、算子、文案全部配置化——安全场景变化快于发版速度
- 每个结论必须可逐级下钻回原始记录
- 需要覆盖多员工、多部门、跨月份的分析,不能只做单人单日
做法
一、三层数据模型
第一层 原始日志 上网行为 / 邮件网关 / 终端 DLP / IM 通讯
1:1 全量留存,不裁剪,可反查
↓
第二层 标准化事件 统一字段:事件时间 · 员工 · 部门 · 日志源 · 场景
· 子场景 · 动作 · 敏感类型 · 文件名 · 外发目标
· 风险分值 · 风险等级
↓
第三层 风险事件链 把时间接近、行为相关、对象相近的事件聚合成 Case
每条链可下钻至全部构成事件与原始记录
第二层是关键。 它把「日志」翻译成「事件」——原始日志描述的是系统动作(一次 HTTP 请求、一次文件写入),标准化事件描述的是业务行为(谁、在什么场景、对什么敏感数据、做了什么、风险多大)。
二、场景与子场景:把通道说清楚
内置七大风险场景——邮件外发、Web 访问、IM 通讯、云盘上传、远程控制、终端外设、打印输出——以及四十余个子场景,覆盖 U 盘拷贝、VPN 接入、堡垒机、各类远程控制工具、各类网盘服务。
场景映射规则全部配置化存储,支持精确、模糊、正则三种匹配方式。新增一个应用或通道不需要改代码。
三、可配置的打分引擎
风险分值不是拍脑袋,而是几类算子的组合:
- 敏感词典命中累加(可设单项权重与上限)
- 通道风险枚举查表
- 处置动作映射(放行 / 阻断 / 记录 / 投递 / 隔离)
- 时间窗口内同场景聚集异常检测
- 跨日志源共现关联加分
最后一类是三层模型真正发挥作用的地方——同一批文件在 Web 和终端 DLP 里同时出现,这个共现本身就是信号。
单事件分值封顶 100,按可配置阈值划分高中低三级,阈值可在线调整。
四、零硬编码
规则、枚举、界面文案、提示词全部存在数据库,代码只解释执行。改数据即生效,支持热重载。
这条约束在实现上有代价(很多东西不能写死会让代码复杂),但它决定了这个系统交付之后是否还能被运营团队自己维护。
五、LLM 只用在叙事层
大模型在这个系统里不做判断,只做三件事:
- 把一条风险事件链的构成写成可读的调查分析
- 生成面向管理层的周报摘要
- 支持自然语言问答
风险识别、打分、分级全部由确定性规则引擎完成。 模型不参与定级,因为定级结论要经得起追问,而且要能在没有模型的情况下复现——系统在未配置模型时走规则模板兜底,功能完整。
验证方式
原型基于三份真实日志样本(上网行为、终端 DLP、邮件网关)构建。为了验证多员工、跨部门、跨月份的分析能力,在保留真实样本的前提下,用可复现的合成数据扩展到 12 个部门、60 名员工、6 个月的规模。
必须说明:除三份真实样本外,规模化数据是合成的(固定随机种子,可复现)。合成数据能验证模型、规则引擎与聚合逻辑在规模下的正确性和性能,不能代表真实企业的行为分布。真实环境的风险基线必须用真实日志重新建立。
真实样本对应的风险事件链被固化为回归测试——输入固定,输出的 Case 集合必须固定。
结果
| 项 | 结果 |
|---|---|
| 数据模型 | 三层(原始日志 / 标准化事件 / 风险事件链)跑通,逐级可下钻 |
| 风险场景 | 7 大场景 + 40 余个子场景,映射规则全部配置化 |
| 打分引擎 | 5 类算子可自由组合,阈值在线可调 |
| 数据规模 | 12 部门 / 60 员工 / 6 个月 / 约 95 万事件 / 约 1.7 万风险事件链 |
| 硬编码 | 零——规则、枚举、文案、提示词全部在库 |
| 交付形态 | 高管驾驶舱、事件链中心、员工画像、部门风险报告、规则管理 |
经验与边界
一条可迁移的经验:安全运营的难点不在检测,在聚合。
单点检测能力(DLP、邮件网关、上网审计)市场上都很成熟,企业往往已经买齐了。真正缺的是把它们的输出翻译成同一种语言,再按业务逻辑聚合成可调查、可举证的对象。这一层几乎没有厂商愿意做,因为它高度依赖客户自己的组织结构、敏感数据定义和业务流程。
另一条:让模型远离定级。 风险等级是要写进报告、可能影响到人的结论,它必须由确定性规则产出、可复现、可解释。模型适合做的是把已经确定的结论讲清楚。
边界:
- 这是原型,不是生产系统。 规模化数据为合成,未在客户生产环境部署
- 敏感数据识别目前依赖词典与规则,尚未接入语义级的分类分级能力——这是与数据分类分级产品结合的自然接口
- 事件链聚合规则基于时间窗口与对象相似度,对刻意规避(长时间跨度、小批量分散)的检测能力有限
相关文章
在做类似的项目?
可以从一个真实业务场景开始,先判断值不值得做、数据是否具备条件、安全和权限问题在哪里,再决定是否进入 PoC。
预约 30 分钟交流