Facebook如何在一亿行代码中迅速找到缺陷?
极客时间编辑部
讲述:初明明大小:3.16M时长:03:27
尽管 Facebook 近期被不重视用户隐私保护等话题缠身,特别是其原本可以避免很多不必要的错误。但是,就其数十亿用户和支持其用户的庞大数据平台来说,想要在一亿行巨量代码库中发现每一个缺陷并不容易。
为了在巨量代码库中准确定位问题,Facebook 的工程师四年前就开始构建定制评估工具。这个工具不仅可以检查已知类型的错误,还可以在 30 分钟内扫描完整个代码库,帮助工程师在变更、修改或增加主要功能之前发现缺陷,并将缺陷扼杀在摇篮中。
该工具名为 Zoncolan,是一个“静态分析”工具,可以映射代码库的行为和功能,并通过不同路径中相互作用查找隐藏在各个分支中的潜在问题。在如此大规模代码库中使用人工手动审查无穷无尽的代码变更,并做代码审核是不切实际的。而静态级别分析就非常合适,因为它对不良架构和缺陷代码行为设定了“规则”,并自动扫描系统中这些类别的错误。一旦出现,马上抓住。理想情况下,该系统不仅可以标注潜在问题,还可以为工程师提供实时反馈帮助他们学会如何避免踏入陷阱。
静态分析工具本身并不会发现新的漏洞,只是根据被设定的规则来捕捉事物。 这些工具不仅可以不厌其烦的一次又一次捕获相同的错误,还可以根据这些缺陷深入挖掘出一个新的规则。
静态代码分析工具对于 Facebook 来说是独一无二的,这个工具被广泛应用于安全组以及应用开发中。又因为它是为了全面映射 Facebook 的特定代码库而量身定制的,所以,特别有效。之前 Facebook 在 3 月份被披露以明文形式存储数亿用户密码后,公司就对该漏洞设置了规则,让 Zoncolan 根据规则扫描潜在问题。
Zoncolan 采用了一种特别定制的方法来寻找安全漏洞,而不是常用的寻找各种设计和性能缺陷的静态分析方法。Zoncolan 通过关注可识别的数据流及设计模式,来减少静态分析误报。不过,Facebook 并不是唯一一家有自己定制开发代码检查工具的公司,谷歌也有自己的定制静态分析工具,评估该公司庞大的 20 亿行代码库。
企业危机响应咨询服务公司 TrustedSec 的首席执行官大卫·肯尼迪(David Kennedy)表示, 任何拥有良好软件开发生命周期的公司都有源代码分析器,以确保他们的产品在投入前扫清一切缺陷,大多数成熟的组织都使用静态代码分析器,因为它最有价值的地方就是可以识别缺陷,当然它并不涵盖所有内容。
肯尼迪指出,像 Zoncolan 这样的工具不会发现权限泄露问题,这导致了 Facebook 在 9 月份遭遇 3000 万账户数据泄露的问题。在过去几年中,那些与意外代码错误无关的基于用户隐私权的问题是 Facebook 最严重的问题之一。
据悉,Zoncolan 在未来有望开源,供其他组织使用。不过,Zoncolan 在 Facebook 代码中如此有效地捕获 Bug 是基于 Facebook 内部开发的,如果要在 Facebook 之外的环境中运行,还需要增强灵活性,适配更多环境。
以上就是今天的内容,希望对你有所帮助。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论