从安全头条到代码补丁:用 AWS Continuum 与 AWS WAF 构建安全事件雷达

从安全头条到代码补丁:用 AWS Continuum 与 AWS WAF 构建安全事件雷达

💡 原文中文,约10400字,阅读约需25分钟。
📝

内容提要

Security Radar 是一个开源示例,每10分钟采集公开安全情报,由代码去重并判定真实性与严重度,仅对高危事件定位到具体代码文件行,提交 AWS Continuum 验证可利用性并生成补丁 PR/MR。补丁上线前用 AWS WAF 和 DNS Firewall 观察模式缓解,拦截与合并均需人工确认。

🔎

延伸解读

真实性判定:代码而非模型

文章强调,事件真实性与严重度完全由代码计算,大模型不参与。独立来源计数用并查集合并同一组织、链接原文、引用同推文或标题相似度≥0.85的来源,转载不抬高可信度。真实性分V1–V4,漏洞类需官方确认才到V3,Web3事件还会查链上交易回执。严重度P0要求影响规则成立且72小时内首现或升级。这种设计让判定可审计、可复现,避免模型幻觉影响安全决策。

大模型输出必须逐句可校验

雷达唯一调用大模型的地方是写P0/P1分析卡和每日简报,规则严格:只能使用给定证据,每句至少引用一个条目ID,且句中不得出现被引原文没有的数字、版本号、日期、金额或地址。代码逐句校验,无引用、引用不存在条目或数字无出处都会被标为未证实。这提示读者,在安全场景使用生成式AI时,应把模型定位为“带引用的写作者”,而非判定者,并保留人工阅读判断的环节。

缓解不等于修复,先观察后拦截

补丁上线前,雷达用AWS WAF托管规则和DNS Firewall在边缘缓解,但只改自己创建的资源,且一律先设观察模式。WAF按“最具体优先”生成计划,只有变更日志点名CVE的规则才应用,CWE档只给建议;切换Block需人工执行脚本。DNS Firewall只采用防篡改写法的域名,常用域名在永不拦截清单。文章还提醒核查规则组是否被整组设为Count或版本过旧,避免“以为防住了”。

部署前需注意的区域与能力限制

示例固定部署在ap-northeast-1和us-east-1,AWS Continuum for code vulnerabilities目前仅在美国东部(弗吉尼亚北部)和美国西部(俄勒冈)提供,其他区域(包括中国区域)需先确认服务可用性。部分能力如Continuum code scanning仍处预览,API可能变化,应使用非生产账号。Continuum资源无CloudFormation类型,清理需运行脚本;Inspector的ScanSbom只判语言包,PHP、Node.js运行时版本依赖雷达自己的产品登记表

❓

Q&A

Security Radar 是什么?它主要解决什么问题?

Security Radar 是一个开源示例(GitHub: aws-samples/sample-security-radar),它每 10 分钟从二十余个公开情报源采集安全事件,由代码判定真实性与紧急度,把与你的代码相关的事件精确定位到文件和行,再交给 AWS Continuum 证实可利用并以 Pull Request / Merge Request 交付补丁;在补丁上线之前,它先用 AWS WAF 与 Amazon Route 53 Resolver DNS Firewall 在边缘做缓解。它补的是从安全头条到代码补丁之间的空白:回答“外面刚发生了什么”、“它和我有没有关系”、“什么时候值得花钱扫”等问题。

Security Radar 如何判断一条安全事件的真实性和严重程度?

真实性和严重度全部由代码判定,大模型不参与。真实性方面:用并查集合并同一组织、链接原文、引用同一条推文或标题相似度≥0.85的来源,每组只算一个独立来源;来源分 T1(官方、厂商、可复现 PoC)、T2(知名媒体、研究机构、聚合库)、T3(社区与快讯),按规则计算 V1–V4 等级。严重度方面:P0 必须同时满足影响规则成立(如已确认被利用且达到 V3,或报道被利用且达到 V2;Web3 损失≥100万美元且达到 V2)和在 72 小时内首次出现或升级。

Security Radar 中的大模型具体负责什么?如何防止它编造内容?

大模型只用于为 P0/P1 事件写分析卡(what / so-what / now-what)和每日简报,以及判断疑似重复事件(仅提示、不自动合并)。为防止编造,规则要求:只能使用给定证据,每句话至少引用一个条目 ID;句中不得出现被引条目里没有的数字、版本号、日期、金额或地址。代码会逐句校验:无引用记为 no_citation,引用不存在的条目记为 unknown_citation,数字找不到记为 ungrounded_number,未通过校验的句子会被标为未证实。

Security Radar 如何把安全事件关联到我的代码,并触发 AWS Continuum 修复?

当事件通过资格判定后,Respond 工位会:1)在登记的目标仓库里,把受影响的产品和版本对到具体的文件:行(如 Dockerfile:1、composer.json:7);2)通过 AWS Security Agent 发起代码评审,取回 finding 和修复 diff;3)以 OCSF 2002 格式向 AWS Continuum 提交精确到行的 finding,并把已校验的分析卡写入 Continuum 的知识上下文;4)读取 Continuum 的验证结论(如 EXPLOITABLE)、issue、可利用性证据和补丁,回写到事件页。每个仓库只进入一个 Continuum 环境,代码来源可以是 Amazon S3、GitHub 或 GitLab。

在补丁上线前,Security Radar 如何用 AWS WAF 和 DNS Firewall 做缓解?

Mitigate 工位是纯确定性代码,不调用大模型。原则:只针对已定位且确认受影响的目标;只改雷达自己创建的资源;缓解不等于修复。AWS WAF:解析 AWS Managed Rules 变更日志,按“最具体优先”生成计划——cve 档(变更日志点名该 CVE 的规则组、规则和最低版本)应用到雷达自己的 web ACL,规则覆盖为 Count;product 档(产品级规则组)同样处理;cwe 档只给建议,从不应用。切换到 Block 需人工用 scripts/promote.py 完成,雷达从不自己删除规则。DNS Firewall:只采用证据里防篡改写法的域名,加上 5 个 AWS 托管威胁域名列表,全部设为 ALERT,人确认后再晋升为 BLOCK;常用域名在永不拦截清单里。

部署 Security Radar 需要哪些前置条件?成本大概多少?

前置条件:一个非生产的 AWS 账号;账号已开通 AWS Continuum;ap-northeast-1 可用 AWS Security Agent;Amazon Bedrock 已开通 Anthropic Claude Sonnet 与 Haiku 的模型访问;已在 ap-northeast-1 和 us-east-1 执行 CDK bootstrap;本地已安装 uv、Node.js ≥ 22、AWS CLI v2。部署时需显式设置 AWS_PROFILE,并用 STAGE=demo ./scripts/deploy-all.sh 部署三个 CDK 栈,再用 verify.sh 验收。成本:主要成本是 AWS Continuum 代码扫描(按推理单位计费);快路缓解部分约每月 10–15 美元(web ACL 每月 5 美元 + 每条规则 1 美元;ScanSbom 每次 0.03 美元;DNS Firewall 每百万次查询 0.60 美元);其他服务按用量计费,单套部署很小。

使用 Security Radar 有哪些主要限制和注意事项?

主要限制:Region 固定(雷达与 AWS Security Agent 在 ap-northeast-1,AWS Continuum 与 WAF 演示栈在 us-east-1,且 AWS Continuum for code vulnerabilities 目前只在 us-east-1 和 us-west-2 提供);部分能力处于预览阶段(AWS Security Agent 的代码评审能力现为 Continuum code scanning,API 与行为可能变化);Continuum 资源没有 CloudFormation 类型,清理需运行脚本;每个环境最多 10 个仓库;Inspector 的 ScanSbom 只判语言包,不判断 PHP、Node.js 等运行时版本;WAF 只覆盖有专属规则的 CVE,CWE 档只给建议,所有规则都不会被自动切换为 Block;大模型数字校验只检查两位以上或含小数点的数字;演示用访问门(HTTP Basic Auth)生产环境应换成 Amazon Cognito 或 AWS IAM Identity Center;示例仓库含故意的漏洞代码,不要部署;X(Twitter)源默认关闭。

🏷️

标签

➡️

继续阅读