加拿大阿尔伯塔省使用 Claude Code 做安全审查,20 小时扫描 4.66 亿行代码,原本需 6.5 年
- 加拿大阿尔伯塔省技术与创新部自 2025 年起用 Claude Code(搭配 Claude Opus 与 Claude Sonnet 模型)审查政府系统安全。
- 约 50 个智能体自主并行工作,20 小时内扫描了 4.66 亿行代码,覆盖该省 27 个部门、约 1,280 个应用、3,400 个代码仓库。
- 团队估算,同等规模的传统人工审查原本需要约 6.5 年。
- Claude Code 不只能定位漏洞,还能生成修复、编写测试、甚至用现代语言重写过时系统,一个有 25 年历史、原本手工开发耗时 5 个月的 Java 补贴系统,重建只用了 4 到 5 天。
- 团队还搭了持续运行的红队 / 蓝队安全审查智能体,每次对每个应用核查约 95 项安全控制;阿尔伯塔已发布技术白皮书供其他政府参考。
谁在用 AI 查政府系统的安全
加拿大阿尔伯塔省技术与创新部,从 2025 年开始用 Claude Code(搭配 Claude Opus 与 Claude Sonnet 两个模型)给省政府系统做安全审查:找漏洞、修漏洞,还顺手搭了一套能一直跑的安全审查工具。
这堆代码有多老、多乱
阿尔伯塔省技术与创新部替全省 27 个部门维护系统,从社会服务到公共安全,再到山火应急,全都靠它。这背后是约 1,280 个应用、3,400 个代码仓库。
其中大部分从来没做过系统性的安全审查。多年攒下的技术债,包括不安全的代码、没修的 bug、过时的软件,粗算下来价值数十亿美元。而这些系统里存的,正是税务记录、政府采购数据、社会服务案卷这类最敏感的信息。
怎么从 4.66 亿行代码里挑出问题
约 50 个智能体自主并行工作,分头去扫每一个代码仓库,找的不只是安全漏洞,还有底层基础设施和部署流程的薄弱环节、以及技术文档的缺口。
整个扫描分两段:先让规则引擎快速过一遍,把符合已知可疑模式的代码标记出来;再让 Claude 逐条复核这些标记,对每一处问题都指出它在哪个文件、第几行,方便开发者直接去核对。信息就这样一级级被过滤、精炼下来。
这里的规则引擎(rules engine),是一套预先写好的机械匹配规则:代码只要长成某个样子就被挑出来,它只管标记,不管判断真假。
就像机场安检先过金属探测门。门响了不代表一定有问题,只是先把人拦下来,真假交给后面更精细的检查确认。规则引擎负责「让门响」,Claude 负责后面那道「精细检查」,还告诉你该翻哪个包。
这一遍扫描覆盖了阿尔伯塔拥有的每一个代码仓库,还挖出了传统自动化扫描工具漏掉的问题。20 小时跑完,团队估算换成传统人工审查,这种规模的活儿大概要 6.5 年。
挑出来的问题,AI 接着修
挑出问题只是上半场。扫描发现漏洞的地方,Claude Code 往往能直接把补丁写出来:生成修复、跑测试、完成构建。
遇到系统缺少自动化测试、没法确认补丁安全的情况,Claude 会先把测试补上;遇到代码太旧、太复杂、原地打补丁不划算的,就干脆用更现代、更好维护的语言重写一遍。整个过程都和部门的工程师一起做:任何一个补丁上线前,都要经工程师人工审核批准。
先补测试
或整段重写
审核批准上线
最能看出差距的是一个补贴项目门户。它 25 年前用 Java 手写而成,当年建起来花了整整 5 个月。这次用现代语言重写,最短只要 4 到 5 天。
Java 手写的补贴项目门户,最初从零建起来的耗时。
同一个系统用现代语言重写一遍所需的最短时间。
扫完不算完:红队蓝队全天候盯着
系统扫完、补丁打上,还不算结束。阿尔伯塔的网络安全团队还搭了一组专门的 Claude 审查智能体,让它们在开发全过程里一直跑,把安全审查从一次性的专项排查,做成日常开发里的常态把关。
红队智能体像攻击者一样从外部探测系统,摸清一个漏洞可能被怎么利用;蓝队智能体随后对照国际安全标准评估防御,并写出精确到文件的修复方案。两支队伍配合,让每个应用每一轮都过约 95 项安全控制。
扮演攻击者,从外部主动尝试突破系统,摸清一个漏洞会被怎么利用。
对照国际安全标准检查防御是否到位,并写出该改哪个文件的具体修复方案。
每跑一轮,每个应用都要对照约 95 项安全控制(security control)逐条核查。这 95 项,是从国际安全标准里拆出来的一条条具体检查,比如密码是否加密存储、用户输入有没有做校验,合起来就是一份 95 条的安全体检清单,每一轮都得从头过一遍。
除了红蓝两队,还有智能体专门检查代码质量,以及公众看到的文字是否清楚。这一整套审查智能体,都是基于 Claude Agent SDK 搭起来的。
这套经验能复制给别的政府
阿尔伯塔没打算把这套经验捂在自己手里。它已经把整个过程写成一批技术白皮书,公开供其他省、州、联邦政府参考,因为技术债和安全漏洞这些麻烦,全世界的政府系统里都有。
下一步,阿尔伯塔计划让 AI 智能体不只改代码,还能和工程师一起从零构建全新的软件和工具。比如某个部门有 185 个还在生产环境里跑的老旧应用,维护贵、更新难,团队打算用 Claude Code 把它们摸清楚、整合成 16 个基于现代语言的可复用应用。
老旧应用还在生产环境里跑,维护成本高、难更新。
基于现代语言、可复用的现代应用。
与此同时,阿尔伯塔还通过「阿尔伯塔 AI Academy」培训政府员工和普通公众怎么用 AI,从写提示词到交付企业级应用都教。
数字说话
把全篇最有冲击力的一组数字放在一起看:同样一件事,两个时间尺度。
用 AI 找出并修复系统里的漏洞,我们用几个小时就完成了传统做法要花好几年才能做完的事。Nate Glubish,阿尔伯塔省技术与创新部部长