使用Databricks上的专业代理扩展安全警报分类
Databricks构建了17个基于来源的专业AI代理,自动处理低严重性安全警报,实现了比手动高/中优先级警报高10倍的真实阳性率,并在30天内节省了超过6,500分析师小时。
安全团队面临的一个常见难题是:低严重性的安全警报因数量庞大且噪声过高,往往被搁置不处理。Databricks的安全团队也不例外,但他们决定改变这一现状。他们构建了一套基于AI代理的自动分类系统,专门针对低严重性警报进行精准分流。
最初,他们采用了一个简单的方案:将所有警报数据放入一个提示中,让基础模型决定是否升级。结果升级率高达50%,这实际上是另一种形式的噪声,而非有效的分类。问题在于缺乏上下文——每个警报源都有独特的假阳性模式和行为基线,单一模型无法区分。于是,他们转向了专用代理架构。
团队构建了17个源特定的分类代理,每个代理针对一个具体的检测源(如端点安全、云活动日志等)进行调优。这些代理在Databricks的Spark Structured Streaming上实时运行。处理流程分为几个关键环节:
- 确定性过滤:通过程序化规则匹配警报标题和上下文,压制已知良性信号(例如受信任的IAM角色执行常规操作),这部分处理了30%到95%的警报量,完全不依赖LLM调用。
- 上下文丰富:在LLM介入之前,代理会提取受影响实体的近期警报历史,并可以调用共享的威胁情报代理来查询IP或域名的背景信息。
- 专用提示函数:每个警报类型映射到特定的提示函数,例如对S3异常访问使用IAM侦察评估指令,对权限提升使用角色假设模式判断。如果无匹配,则使用通用回退提示。
- 共享工具:当需要额外上下文时,代理可以调用工具获取原始云审计日志、跨源关联警报或身份提供商标历史。LLM根据证据的模糊性决定是否及何时调用这些工具。
- LLM推理与决策:模型分析证据包,输出结构化的处理决定(升级、监控或关闭),并附上支持性分析。
成本管理方面,系统设定了三重控制:首先,确定性过滤防止良性警报到达LLM;其次,批次成本追踪器在达到设定上限时自动停止处理;第三,每日警报上限限制总成本。此外,每个警报内还有按类别划分的工具调用预算,防止无限的上下文查询循环。
每个代理的决策都会被MLflow记录,包括输入、中间步骤和最终输出。当分析师审查升级的工单时,他们的确认或否决成为评估基准。这些标注数据构成标准数据集,用于评估未来的提示变更。团队计划使用Databricks Review App进一步扩展覆盖范围,包括非升级警报的标注。
在30天的运行中,系统处理了超过18,000个警报,升级率仅为3.2%。被升级的低严重性警报的真阳性率比传统高/中优先级警报高出约10倍。中位分类时间为10.5秒,节省了超过6,500分析师小时。值得注意的发现包括:将某个警报源的假阳性率从72%降至3.4%,识别出22个可疑域名,并捕获了一个用户下载并使用破解软件的案例。
团队总结的经验包括:LLM在高熵安全数据(如哈希值、随机域名)上容易产生幻觉,因此应仅用于推理,具体值通过工具调用从权威源获取;上下文是性能提升的关键,添加历史警报数据和行为模式大幅提高了准确性;应尽可能自动化可预测的部分,让LLM只处理不确定性高的环节。整个系统完全基于Databricks平台,利用Spark Structured Streaming实现实时数据摄入,Delta表进行持久化,MLflow Tracing进行端到端追踪,以及Review App供分析师标注。