自动化代码审计的首个客户:Mozilla SOS项目中的zlib安全评估

本文详细介绍Trail of Bits公司为DARPA网络大挑战开发的网络推理系统(CRS)如何以20%的传统成本为Mozilla的SOS基金完成zlib库的自动化安全审计,展示了自动化代码审计在效率、覆盖范围和成本方面的突破性优势。

自动化代码审计的首个客户 - The Trail of Bits博客

Dan Guido
2016年10月4日
cyber-grand-challenge, press-release, static-analysis

上个月,我们为DARPA网络大挑战开发的网络推理系统(CRS)完成了一项突破性工作:在更短的时间内,以更低的成本,对远超人类能力的代码量进行了更详细的安全审计。

我们的CRS系统为Mozilla安全开源(SOS)基金审计了zlib压缩库。据我们所知,这是CRS系统首次完成付费的自动化安全审计,这标志着软件安全审计方式的重大转变,也是保护互联网核心基础设施的重要进展。

从无到有的选择

每年,公共机构、私营企业和非营利组织都要花费数万美元进行代码审计。在典型的两周审计周期中,安全专家收取高额费用,但其效果受到代码量、文档质量、代码组织方式以及人类固有局限性的制约——人会疲劳、会想着休假等。

人类每天有效分析复杂C代码的时间有限。此外,评估人员可能只精通某些类型的缺陷或C语言的某个子集,但要获得全面或近乎全面的知识非常困难——这需要15年以上的专业经验。这种知识水平对非营利组织来说难以承担,在1-2周的评估中也很难实现。

因此,让软件来执行审计更加合理。软件不会疲劳,能够同样轻松地审计陈旧的混淆代码和现代注释良好的代码,并且可以在每次更新后自动重新审计,确保修复正确且不会引入新错误。

Mozilla的SOS项目

8月份,作为其安全开源(SOS)基金的一部分,Mozilla委托我们对zlib开源压缩库进行安全评估。Zlib几乎被所有需要压缩或解压缩的软件包使用,您正在阅读本文的软件很可能就包含了zlib。

虽然zlib的代码库相对较小,但其中隐藏着大量复杂性。首先,由于编译器优化,机器上运行的代码可能与源代码不完全匹配。某些漏洞可能由于未定义行为的偶尔使用而间歇性出现,其他漏洞可能只在极端异常条件下触发。在像zlib这样经过充分检查的代码库中,剩下的漏洞可能过于微妙,人类在典型审计期间难以发现。

如果依靠人工审计来识别这些特别微妙的漏洞,Mozilla将不得不额外支付数千美元。但作为非营利组织,他们还有一系列其他项目需要审计和改进。

高覆盖率与低成本的优势

自动化使这次合作对Mozilla来说负担得起,对我们来说也切实可行。他们支付的价格仅为我们通常收费的20%。

我们的自动化评估将Trail of Bits的CRS系统与TrustInSoft的验证软件相结合,能够识别内存损坏漏洞、创建压力测试不同程序路径的输入,并识别未来可能导致错误的代码。

阅读我们提交给Mozilla的报告(详细介绍了我们的CRS系统如何与TrustinSoft验证程序配合,以人工审计成本的一小部分发现更多漏洞)

阅读Mozilla关于该报告的发布

对于致力于保护互联网核心基础设施的非营利组织来说,这是一个以传统成本的一小部分获得详细评估和高覆盖率的绝佳机会。

联系我们获取更多信息

如果您喜欢这篇文章,请分享至: Twitter | LinkedIn | GitHub | Mastodon | Hacker News


近期文章

  • 构建安全消息传递的挑战:对Bitchat安全辩论的细致分析
  • 使用Deptective调查您的依赖项
  • 做好准备,AIxCC评分轮正在进行中!
  • 使智能合约超越私钥风险的成熟方法
  • Go语言解析器中意想不到的安全隐患

© 2025 Trail of Bits.
使用Hugo和Mainroad主题生成。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计