Facebook,拥有数十亿用户规模的超级大厂,代码总行数高达一亿行。

Bug,可能藏在一亿行代码中的每一行里,而且Facebook的工程师们还一直在添加新的代码进去,这要是出了什么问题,影响超多用户,要怎么在浩如烟海的代码里定位问题?

靠大案牍术么?

不,靠Zoncolan,静态分析工具,能在30分钟内扫描完整个代码库,及时发现bug的所在,检测内部的安全漏洞。

不少人都在Twitter上称赞这款工具,有人觉得这款工具非常有趣,还能让大家更有干劲;

还有人觉得自动搜索代码找错误这一点,实在是太迷人了。

甚至有Facebook黑都觉得,虽然不喜欢这公司,但他们的安全和工程团队的确令人尊重。

Zoncolan

Zoncolan是Facebook内部复杂的代码检查系统中的一种工具,用静态分析的方法自动检查Facebook内部的代码,映射代码库的表现和功能,检测潜在的安全威胁,让安全工程师的工作规模化。

有了Zoncolan,代码检查的速度大大提高了。手动检查可能需要经年累月的时间,但靠Zoncolan,从冷启动开始,只要不到30分钟的时间,就能检查完Facebook长达一亿行的整个代码库。

自从开始应用以来,Zoncolan已经找出了数千个潜在的安全问题。

Zoncolan设置了关于不良架构或代码的“规则”,并自动扫描系统中的这些类错误。除了标注下这些问题之外,Zoncolan还能将问题实时反馈给工程师,让它们规避掉此类问题。

Facebook安全工程经理Pieter Hooimeijer介绍说,每当工程师提交代码到代码库的时候,Zoncolan就会在后台运行,找出来的问题直接告诉这位提交代码的工程师,或者提交到值班的安全工程师那里。

按照Facebook工程师们的提交频率,Zoncolan每天运行数千次,仅仅2018年一年,它就发现了1500个问题。

隐私泄露问题无法万无一失

不过,有了这类找bug和安全漏洞的工具存在,Facebook也不能保证万无一失。

去年,Facebook就因黑客攻击,导致3000万用户包括手机号码、邮箱地址等用户信息泄露。咨询公司TrustedSec的CEO David Kennedy说,Zoncolan这类静态分析工具,无法发现这种数据泄露问题。

不过,也并非所有的隐私问题Zoncolan都无法解决。

今年3月,Facebook被爆出有6亿用户密码被以明文方式存储,超过2万名员工都可以看到这些密码。此事发生之后,Facebook把这类漏洞的规则提交到了Zoncolan上,因此,Zoncolan也可以扫描代码库中类似的状况,也确实找到了一些问题。

将会开源

最后,Zoncolan这么好的东西,能不能拿出来和大家一起分享呢?

Facebook安全工程经理Pieter Hooimeijer说,他们希望能推出开源的版本。不过,鉴于开源版本可不仅仅只用适配Facebook内部环境就好了,所以还需要增强灵活性,适配更多环境。

此前,Facebook已经针对Python推出了一个名为Pyre的代码检查器,虽然能力范围并不像Zoncolan一样强大,但这基本上就是Facebook准备开源的一个范例了。Hooimeijer说,这个基本上就是Python版的Zoncolan。

Pyre开源地址:https://github.com/facebook/pyre-check

参考链接:https://www.wired.com/story/facebook-zoncolan-static-analysis-tool/

声明:本文来自量子位,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。