利用现有Graph API+Power Automate+Copilot Studio构建SOC分流管道,2周POC零新增工具费,告警处理时间从15分钟降至2分钟。
为什么我们没有买 SOC 平台
"必须建立 SOC"的压力通常假设你需要购买一个。但对我们这个规模的团队来说,这笔账根本算不过来:商业 SIEM 加 SOAR 平台会吃掉整个安全预算,光是集成就要六个月。
与此同时,我们已经在为微软的生态付费了:Entra ID 登录日志、Defender 端点事件、Purview 邮件流转——所有这些都可以通过 Graph API 访问,许可证账单里已经有了。问题不在数据,而在于没人有时间去看这些数据。
所以 POC 的核心问题变成了:AI 代理能在我们已经拥有的基础设施上做第一轮分诊吗?答案是肯定的,但有条件。
架构概述
三层,每层只做一件事:
数据层,Microsoft Graph API。 Graph 通过一个统一的认证 API 暴露了 Entra 登录日志、风险检测、Defender 告警和邮件安全事件。所有信号都从这里来。不需要数据湖、不需要日志传输管道——按需查询即可。
编排层,Power Automate。 每个 Flow 都遵循同样的模式:触发(新的风险检测、新的告警、定时扫描)→ 富化(从 Graph 拉取相关事件)→ 判断(规则优先,AI 其次)→ 执行(Teams 通知、工单、或自动响应)。
交互层,Copilot Studio。 代理的入口:分析师用自然语言提问,Copilot Studio 调用与自动触发器相同的 Graph 支持的 Flow。人类和自动化共用一条管道。
关键设计决策:规则优先于 AI。所有确定性事件——已知恶意 IP、不可能的旅行、已禁用账户的登录——都由普通的 Power Automate 条件处理。AI 层只看到通过规则筛选后需要人工判断的告警。这让第一版既快又便宜。
从 Entra ID Protection 的风险登录开始,用 Power Automate 的 HTTP 动作包装:
GET https://graph.microsoft.com/v1.0/identityProtection/riskySignIns?$filter=riskLevel eq 'high'&$top=50
Authorization: Bearer {token}
服务主体需要 IdentityRiskyUser.Read.All 和 SecurityEvents.Read.All——最小权限,仅此而已。我曾经因为偷懒申请了 ReadWrite 权限,结果花了一下午解释为什么这个 Flow 可以在不该操作用户的时候 remediation 用户。这里的最小权限是告警管道和攻击路径之间的分界线。
每条登录记录都要富化用户上下文——部门、最近位置、组成员身份。一条"异常位置"告警,在你知道用户是出差在外的销售人员之前毫无意义。
我们的分诊 Flow,按顺序执行:
过滤明显的噪声。 来自已知企业 VPN 出口 IP、你自己扫描器 IP、以及你已加入白名单的租户的登录记录。第一天就削减了约 40% 的量。
确定性事件自动上报。 从未见过的地理位置 + MFA 失败 + 有管理员角色的账户 → 立即通知相关人员。不需要 AI,不需要 AI 延迟。
灰区发送给 AI。 介于两者之间的所有事件,在到达人类之前先做摘要和风险评分。
对于灰区,prompt 接收富化后的登录 JSON,必须返回结构化输出:风险评分 1-10、类别、两句话的理由、建议操作。强制结构化输出是我们最重要的 prompt 改动——第一版返回的是聊天式的段落,没有任何自动化流程能够消费。
Copilot Studio 通过 Power Automate Topic 连接你的 Flow。我们暴露了三个:query-signins、query-alerts、investigate-user,每个都调用 Graph 支持的 Flow 并格式化结果。
我没有预料到的失败:分析师问代理一些 Graph 无法回答的问题,代理却自信地给出了答案。我添加了护栏——代理必须说明它查询了哪个数据源,并且不得对返回记录之外的内容进行推测。在 SOC 里,一个会幻觉的代理不是新鲜事,而是一个隐患。Grounding 指令花了三次迭代才完成。
坦诚节,因为这是供应商案例研究跳过的那部分:
速率限制。 Graph 的限流非常激进;逐条告警查询在几千条告警之后就撑不住了。我们改成了定时扫描加增量查询。要按明年预期的量来设计。
Token 成本悄悄上涨。 每条告警的完整登录 JSON 让处理时间增加了三倍;解决办法是把 payload 精简到 prompt 实际用到的 15 个字段。
信任建立得很慢。 分析师最初忽略了摘要;只有在它标记出一条规则遗漏的入侵模式之后,以及我们让它展示数据来源之后,才赢得了信任。
告警分诊时间:从每条告警约 15 分钟降到 2 分钟以内。
到达人类的量:应用噪声规则后下降了约 70%。
一个真实发现:某个服务账户的不可能旅行序列,Entra 风险评级为低,因为它没有交互式登录历史。代理把它浮现出来,是因为我们问了一个规则根本无法回答的问题。
这才是 AI 在 SOC 中的真正价值:不是模型比规则更聪明,而是你可以问规则从来没有被设计来回答的问题。
做这个需要 E5 许可证吗?
严格来说不需要。E3 提供核心日志和 Graph 访问;E5 增加风险检测和更丰富的 Defender 信号,这让 AI 层有用得多。先用 E3 起步,逐步升级。
这是 SIEM 的替代品吗?
不是——它是一个分诊和调查层。你仍然需要日志保留、合规报告和数字取证。把它当作分析师的助手,而不是平台。
Copilot Studio 能执行响应操作吗,比如禁用用户?
技术上可以,但我建议 v1 不要这么做。在你测量了一个月的准确率之前,保持代理只读;第一个自动操作应该是安全的(撤销会话),而不是破坏性的。
如何处理 AI 层的误报?
结构化输出包含一个置信度字段,我们每周跟踪每个类别的误报率。高误报类别会被降级回纯规则处理——代理需要自己赢得每个类别的信任。