最近在 AI 安全领域,一个来自 Anthropic 的发现引起了不小的波澜。他们的 Mythos AI 安全模型,在一次常规的模型安全评估中,意外地识别出两种被广泛使用的加密算法中存在长期未被发现的弱点。这听起来像是一个纯粹的安全研究新闻,但如果你深入去想,会发现它揭示了一个远比“算法有漏洞”更值得深思的转变:我们过去依赖的、由人类专家主导的、基于形式化证明和数学逻辑的“绝对安全”体系,正在被一种新的、由数据驱动、模式识别能力更强的 AI 模型所审视和挑战。
这不仅仅是关于两个具体的加密算法。它更像是一个信号,标志着 AI 正在从一个“工具使用者”的角色,向“规则审视者”甚至“规则发现者”的角色演进。过去,我们设计加密算法、构建安全协议,然后由另一批专家去审计、去攻击、去证明其安全性。这个过程是线性的、离散的。而现在,一个经过海量代码、协议、攻击案例训练的 AI 模型,能够以一种近乎直觉的方式,在复杂的算法逻辑中嗅探到那些不符合“安全模式”的异常点。这种能力,对于长期依赖“已知弱点库”和“专家经验”的传统安全领域来说,是一种降维打击。
所以,这篇文章我们不打算深究那两个具体算法漏洞的技术细节(这需要专业的密码学背景和保密协议),而是想和你一起探讨几个更根本的问题:当 AI 开始发现人类专家都长期忽视的底层安全漏洞时,这意味着什么?我们该如何重新理解“安全评估”这件事?以及,作为开发者或技术决策者,面对这种新的“AI 安全审计”能力,我们的工作流和认知需要做出哪些调整?
1. 从“规则执行者”到“模式审视者”:AI 安全模型的角色跃迁
要理解 Mythos 这类 AI 安全模型的价值,首先要跳出“它找到了一个漏洞”的单一事件视角。我们需要看到它背后代表的能力范式转移。
1.1 传统安全审计的“已知世界”困境
传统的软件安全审计,无论是人工代码审计还是自动化扫描工具,其核心逻辑都建立在“已知模式”之上。
- 人工审计:依赖安全专家的经验。专家们脑子里有一个庞大的“漏洞模式库”,比如缓冲区溢出、SQL注入、逻辑缺陷的常见写法。他们像经验丰富的侦探,在代码的“犯罪现场”寻找熟悉的“作案手法”。但问题是,人的精力有限,面对数百万行代码,难免有疏漏。更重要的是,对于像加密算法这样高度抽象、数学逻辑严密的领域,人类专家需要极其深厚的专业背景,且审计过程耗时极长。
- 自动化扫描(SAST/DAST):本质上是将专家经验固化成了规则引擎。工具里预置了成千上万条漏洞特征规则(签名),在代码或运行环境中进行匹配。它的优势是快、可重复,但劣势同样明显:它只能发现规则库里已有的漏洞类型。对于一种全新的、从未被记录过的攻击手法或逻辑缺陷,这类工具是盲目的。这就是所谓的“已知的未知”。
这两种方式共同构成了我们过去几十年的安全防线,但它们都存在一个天花板:人类认知的边界,就是安全能力的边界。我们只能防御我们想象得到的攻击。
1.2 AI 安全模型的“关联与推理”能力
以 Mythos 为代表的 AI 安全模型,其工作方式有本质不同。它不是简单地匹配规则,而是通过在海量数据(包括安全代码、漏洞代码、攻击案例、学术论文、协议文档)上进行训练,学习到了一个关于“什么是安全的代码/逻辑模式”以及“什么是不安全的异常模式”的复杂、高维的“感觉”。
你可以把它想象成一个拥有近乎无限记忆力和关联能力的超级安全专家。它可能并不完全理解某个加密算法背后深奥的数论原理,但它能从成千上万个算法实现中,“感觉”到某一段逻辑结构、某一种运算顺序、某一种状态转换,与历史上导致过问题的模式存在统计学上的相似性。
这种“感觉”体现在几个方面:
- 跨上下文关联:它能将一段加密算法中的特定操作,与一个网络协议中曾出现过的时序攻击模式关联起来,即使这两个领域在传统安全分类中毫不相干。
- 异常模式嗅探:在看似严谨的数学推导或代码逻辑中,它能识别出那些极其细微的、不符合“常规安全实践”的异常点。这些点可能过于复杂,以至于人类审查者会下意识地认为“专家这么写肯定有道理”而忽略。
- 概率性洞察:它给出的往往不是“这里百分百有漏洞”的断言,而是“此处存在高风险异常模式”的预警。这需要人类专家进行二次研判,但极大地缩小了排查范围,将人类的注意力直接引导至最可疑的区域。
Mythos 发现长期未知的加密算法弱点,正是这种“模式审视”能力的直接体现。它跳出了人类专家基于现有知识构建的审计框架,从一个全新的、数据驱动的视角重新审视了这些被视为基石的算法。
2. 解密“发现漏洞”的背后:AI 安全审计的可能工作流
虽然我们无法得知 Mythos 内部的具体架构,但结合当前 AI 在代码分析领域的前沿实践,我们可以推测其发现此类漏洞的可能路径。这对于我们理解如何将类似能力应用到自身项目中至关重要。
2.1 输入与预处理:给 AI “喂”什么?
AI 模型不是魔法,它的输出质量严重依赖输入。要让 AI 分析加密算法这类复杂目标,输入绝不是简单的源代码文本。
多模态输入:
- 源代码:算法本身的实现(C, C++, Rust, Go 等)。
- 形式化描述:算法的数学定义、伪代码、标准文档(如 NIST 的 FIPS 出版物)。这帮助 AI 理解算法的“理想模型”。
- 历史漏洞数据库:如 CVE 数据库中所有与加密相关的漏洞描述、补丁代码。这是“不安全模式”的负样本。
- 正确实现案例:广泛接受且经过长时间验证的、不同语言的开源实现(如 OpenSSL, Libsodium)。这是“安全模式”的正样本。
- 学术论文与攻击论文:关于密码分析、侧信道攻击、相关攻击的论文文本。这提供了攻击者的思维模式和已知的攻击向量。
代码表征学习:简单的文本 Token 不足以让 AI 理解程序语义。模型很可能会将代码转换为更丰富的中间表示(IR),如抽象语法树(AST)、控制流图(CFG)、数据流图(DFG)。这样,模型“看到”的是代码的结构化逻辑关系,而不仅仅是单词序列。
2.2 核心分析阶段:AI 如何“思考”?
在获得高质量的代码和知识表示后,模型会启动多层次的推理分析。
模式匹配与偏差检测:模型会将目标算法与它学到的“安全算法模式库”进行对比。它会检查:
- 结构一致性:算法的整体框架(密钥扩展、加密轮函数、最终输出)是否符合同类安全算法的常见结构?
- 操作序列安全性:特定的数学运算(模加、异或、S盒替换、移位)的顺序和组合,是否与历史上导致弱点(如差分攻击、线性攻击)的模式相似?
- 常量使用:算法中使用的魔数(Magic Numbers)、初始向量、偏移常量,其选择是否“看起来随机且无害”?某些常量可能在数学上存在隐蔽的弱点。
符号执行与状态空间探索(模拟):更高级的模型可能会集成或模拟符号执行的思想。它不会真正运行代码,而是在逻辑上推理:“如果输入是这个范围的值,经过这一系列操作,内部状态可能会进入哪种‘脆弱’的配置?”它可以快速探索大量可能的执行路径,寻找那些导致密钥信息泄漏或加密强度降低的“边缘情况”。
跨领域知识融合:这是 AI 的强项。模型可能会联想到:“这个算法在某一轮中使用的混淆策略,与某个网络协议中因时间差导致信息泄漏的缺陷,在抽象逻辑上很像。” 这种联想是人类专家很难建立的,因为他们的知识通常是垂直分层的。
2.3 输出与验证:从“预警”到“确认”
AI 模型的输出通常是一个报告,包含:
- 高风险代码位置:指向具体的函数、行号。
- 可疑模式描述:例如,“此处的非线性变换与 [某个已知脆弱算法] 的弱化版本结构相似,可能易受相关密钥攻击。”
- 置信度分数:模型对自身判断的把握程度。
- 潜在影响评估:如果这是漏洞,可能导致信息泄露、密钥恢复还是完全破解?
至关重要的一步是:人类专家验证。AI 在这里扮演的是“超级辅助”或“线索提供者”的角色。安全专家需要根据 AI 提供的线索,运用其密码学专业知识,进行深入的理论分析和构造性验证(例如,尝试编写概念验证代码来利用该弱点)。Mythos 的发现最终被确认,必然经历了这一严谨的专家验证环节。
3. 对开发者与企业的启示:如何拥抱 AI 增强的安全实践
Mythos 的事件不是一个孤立的技术新闻,它是一个强烈的信号,预示着 AI 将在软件开发生命周期(SDLC)的安全环节扮演越来越核心的角色。我们不能等待 AI 来审计我们的产品,而应主动将这种能力融入现有流程。
3.1 重塑安全左移:AI 作为“实时代码审查员”
“安全左移”要求我们在编码阶段就考虑安全问题。现在,我们可以将 AI 安全模型集成到 IDE 或 CI/CD 管道中。
- 本地 IDE 插件:开发者在编写代码,尤其是涉及加密、身份验证、权限检查等敏感逻辑时,AI 插件可以实时分析代码片段,给出安全建议。例如,当开发者使用一个不安全的随机数生成器或实现一个自定义的哈希函数时,AI 可以立即弹出警告,并推荐标准库的安全替代方案。
- 提交前检查(Pre-commit Hook):在代码提交到版本库之前,自动触发 AI 安全扫描。这可以捕获那些在 IDE 中因上下文不足而未能发现的、更复杂的逻辑漏洞或架构缺陷。
- CI/CD 管道集成:在持续集成服务器上,对每次 Pull Request 的代码变更运行深度 AI 安全扫描。这可以作为传统 SAST 工具的有力补充,专注于发现那些基于规则的工具无法捕捉的新型、复杂漏洞。
操作建议:可以开始评估市面上基于 AI 的代码安全分析工具(例如一些专注于漏洞发现的 AI 平台),选择一款与团队技术栈和开发流程匹配的工具,先在一个非核心项目上进行试点,熟悉其告警模式、误报率和集成方式。
3.2 第三方依赖审计:从“信任”到“验证”
现代软件严重依赖开源库和第三方 SDK,其中不乏加密通信库、数据序列化库等核心安全组件。传统的软件成分分析(SCA)工具主要检查已知漏洞(CVE)。AI 可以做得更多。
- 深度代码行为分析:对于关键依赖(如加密库),AI 可以对其源代码进行“白盒”分析,评估其实现质量,寻找潜在的、未公开的弱点,即使该库目前没有任何公开的 CVE。
- 许可与合规风险嗅探:AI 可以分析依赖库的代码风格、注释、甚至隐藏的 API 调用,辅助判断其是否存在许可证污染、恶意代码植入或合规风险。
操作建议:在引入一个新的、尤其是承担安全功能的第三方库时,除了检查其 CVE 记录和社区活跃度,可以将其源代码提交给 AI 安全分析服务(如果可用)进行一次深度扫描,作为额外的风险评估环节。
3.3 架构与设计评审:挑战“经验主义”假设
在系统设计阶段,我们常常基于“最佳实践”和“经验”做出安全决策。AI 可以作为一个客观的挑战者。
- 协议与流程验证:将系统架构图、API 设计文档、关键业务流程描述输入给经过训练的 AI 模型。AI 可以基于其学习的海量攻击案例,质疑某些设计选择:“这个自定义的会话管理流程,与历史上被突破的 [某类] 单点登录漏洞,在状态同步机制上存在相似性,建议参考 OAuth 2.0 或 OpenID Connect 标准。”
- 威胁建模辅助:在威胁建模会议上,AI 可以作为“虚拟攻击者”,根据系统设计自动生成一份潜在攻击面列表和攻击路径,激发团队的讨论,弥补人类思维的盲点。
操作建议:在重要的系统重构或新项目启动阶段,尝试将设计文档进行“AI 安全评审”。可以将文档的核心部分转化为结构化的描述,使用大语言模型进行问答式挑战,例如提问:“如果攻击者控制了中间网络,这个设计中的哪些环节可能被利用?”
4. 冷静看待:AI 安全模型的局限与我们的应对
在拥抱 AI 带来的安全能力跃升时,我们必须保持清醒,认识到其当前的局限性,并建立正确的使用预期。
4.1 当前的主要局限
- “黑盒”与可解释性:最先进的 AI 模型往往是复杂的“黑盒”。它可能告诉你“这里高危”,但无法像人类专家一样,清晰地用数学语言或逻辑链解释“为什么高危,以及攻击的具体步骤是什么”。这给后续的修复和验证带来了困难。
- 误报与漏报:AI 基于概率工作,必然存在误报(将安全代码判为危险)和漏报(未能发现真实漏洞)。过高的误报会消耗团队精力,产生“狼来了”效应;漏报则直接带来风险。
- 数据依赖与偏见:模型的能力受限于其训练数据。如果训练数据中缺乏某种特定类型漏洞的案例(例如,某种全新的侧信道攻击),模型就可能无法识别它。同时,数据中的偏见也可能导致模型对某些语言或框架的代码过于苛刻或宽松。
- 成本与效率:对大型代码库进行深度的 AI 分析是计算密集型的,需要时间和金钱成本。它可能不适合对每一次微小提交都进行全量分析。
4.2 构建“人机协同”的新安全范式
面对局限,正确的策略不是放弃,而是构建一个“人机协同”的混合工作流,让 AI 和人类专家各自发挥所长。
- AI 作为“雷达”与“过滤器”:让 AI 负责最擅长的部分——快速、不知疲倦地扫描海量代码和数据,从噪声中筛选出可疑的“信号点”(潜在漏洞)。它像一部高性能雷达,监控整个“代码海洋”。
- 人类作为“指挥官”与“鉴定师”:人类专家则负责最高价值的决策——研判 AI 标记的“信号点”的真实性、严重性和可利用性。他们运用深厚的领域知识、创造力和逻辑推理,对 AI 的发现进行验证、深入分析和优先级排序。他们是最终的决策者。
- 迭代反馈闭环:人类专家对 AI 判断的确认(真阳性)或否定(假阳性),应该形成一个反馈闭环,用于持续优化和微调 AI 模型,降低其误报和漏报率。这是一个相互学习、共同进化的过程。
未来的安全团队,可能由少数顶尖的安全专家(负责战略、深度分析和最终裁决)和强大的 AI 辅助工具(负责战术执行、全面扫描和初步分析)组成。专家的价值不再体现在重复性的漏洞查找上,而是体现在对复杂问题的定性、对 AI 输出的研判、以及对整体安全架构的把握上。
Anthropic 的 Mythos 发现加密算法弱点,是一个具有里程碑意义的事件。它不是一个终点,而是一个清晰的起点,指向一个由 AI 深度参与、甚至重新定义规则的安全未来。对于我们而言,重要的不是恐慌或惊叹,而是开始思考:如何将这种新的“模式审视”能力,转化为我们日常开发、设计和运维中实实在在的风险控制力。从今天起,在评估一个安全方案时,或许我们可以多问一句:“如果让一个顶尖的 AI 安全模型来审计这个设计,它最可能质疑哪一点?” 这个问题本身,就是迈向下一代安全实践的第一步。