介绍 Code Audit:发现隐藏在源代码中的复杂漏洞
介绍 Code Audit:发现隐藏在源代码中的复杂漏洞
TL;DR:Aikido Code Audit 填补了SAST和渗透测试之间的空白,通过推理您的静态代码库,在多步骤、依赖意图的漏洞上线前将其暴露出来。
上周,Anthropic发布了Claude Fable 5,这是其Mythos级模型的公开版本,能够发现并串联零日漏洞。Fable 5自带护栏,可以屏蔽网络安全查询,并回退到一个功能更有限的模型,因此公开版本不会为您执行这些攻击。
至少,初衷是这样。
但似乎有1个或多个组织成功破解了Fable 5,导致Anthropic在美国政府的压力下撤回了该模型。问题是,你无法把精灵塞回瓶子里。无论是通过越狱还是开源,攻击者都将获得越来越强大的模型。
方向已经确定。曾经需要数小时或数天人力才能跨应用程序发现和串联漏洞的技能和时间,正在被一个代理在无需人类付出如此长时间努力的情况下完成。这一点对于现有静态代码分析引擎无法覆盖的基于逻辑的漏洞尤为突出。这类漏洞不遵循可预测的模式,因此静态分析无法匹配。
但防御者可以通过使用相同的代理模型,在漏洞进入生产环境之前分析并捕获代码库中的安全缺陷,从而保持领先。这正是我们构建Aikido Code Audit的原因。
Code Audit 实际做什么
Code Audit 不是要取代您的SAST引擎(该引擎在开发时擅长发现基于规则的安全漏洞),也不是要取代渗透测试。它介于两者之间,作用于您的静态代码,具备渗透测试级别的推理能力。
在重大发布前或主要功能上线后,使用 Code Audit。它能够跨文件和模块追踪引用,揭示多步骤问题——其中没有单一行代码是漏洞本身。每个发现都会附带根因、基于代码的证据,以及一个 AutoFix,让您可以立即生成一个 PR 来解决问题。
在实践中,效果如下:
一个跨三个文件的多步骤 IDOR(不安全的直接对象引用)链,基于模式的扫描器永远无法将其关联起来,因为没有单独一行触发规则。Code Audit 追踪引用,在上下文中跟踪缺失的授权检查,并揭示完整的利用路径。
同样的概念适用于其他基于逻辑的漏洞,例如从源代码中识别出 ReDoS(正则表达式拒绝服务)模式而无需实际利用,或者一个仅管理员可访问的路由,因为没有人拥有有效凭据而从未在实时渗透测试中触发。我相信您能想到其他例子。
.jpg)
由于 Code Audit 基于您的源代码工作,因此您不需要活跃的暂存环境或创建身份凭据。只需连接您的代码库并启动审计。只要代码存在于源码中,就在审计范围内:多个仓库、特性标记路径、未部署的变更以及实时测试无法安全触及的管理员路由。
它不局限于您的Web应用
Code Audit 通过静态源码进行推理,而不是探测实时环境,因此不受 SAST 规则覆盖范围或代码运行平台的限制。
这意味着您可以测试:
- 移动应用,没有可访问的 URL,也很难在实时构建中轻松执行代码路径。
- 智能合约,您绝对不想对已部署且锁定真实价值的合约进行利用尝试。
- 遗留代码库,使用 SAST 覆盖薄弱的语言。
基准测试
根据我们的内部测试和早期用户反馈,Code Audit 大约覆盖了完整渗透测试所能发现的 70-80% 的问题,成本大约是后者的十分之一。早期用户平均在每个代码库中发现约 25 个安全问题(中位数),没有一次审计返回零问题。

但发现问题的数量次于时机的重要性。在上线前发现漏洞仅需一次代码变更,此时开发人员仍对上下文有充分了解。而在代码进入生产环境后才发现,往往需要一次修复周期,并将开发人员从其他项目中抽调来解决。Code Audit 将发现时机提前到代码发布前,此时负责该代码的开发人员仍掌握完整上下文,修复也更为直接。
如何开始
从您的 Aikido 账户中,选择菜单中的 Code Audit,然后点击 Create Audit。接下来,您选择一个或多个仓库,Aikido 会估算所需的积分成本。向账户充值积分,然后启动审计。设置仅需几分钟,根据您的代码库大小和复杂度,审计最快只需 5 分钟。