极客视点
极客时间编辑部
极客时间编辑部
113241 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/03:27
登录|注册

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
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
21
沉浸
阅读
分享
手机端
快捷键
回顶部