脸书Zoncolan调试平台可在30分钟内侦测超过1亿行程序

脸书(Facebook)近日对外披露该公司已研发多年的Zoncolan调试平台,它是以静动分析自动检查大量的程序代码以找出潜在的bug、安全漏洞或是隐私漏洞,并已可在30分钟内,检查超过1亿行的Hack程序代码。

 

根据脸书工程团队的说明,他们是在多年以前启动了Zoncolan项目,当时他们手动审核以前的安全漏洞,包括bug报告、根本原因与相对应的修补程序,同时漏洞挖掘奖励项目也带来有用的信息,通过数百份的报告来判断哪些类别的问题适合静态分析,并设计出Zoncolan系统来侦测它们。

Zoncolan使用了抽象解释(abstract interpretation)技术来关注程序代码中由用户控制的输入,它在分析程序代码时,构建了可代表程序代码中的函数行为,以及这些函数如何交互的数据结构,再形成每个函数行为的摘要,而且只纪录了与潜在危险信息流有关的属性。

Zoncolan会关注自信息源头到信息目的地的信息流,据此创建规则,每个规则都代表某种形态的潜在安全漏洞,当Zoncolan发现有信息流符合其中之一的规则时,就会提出警告,并附上信息流的完整描述。

以上述方法即可在不到30分钟内扫描上亿行的程序,若要以人力检测规模如此庞大的程序代码,通常是经年累月才能完成。

脸书表示,尽管Zoncolan平台无法逮到所有的问题,但却能发现类别上的问题,可缩短安全工程师检查程序代码的时间,也通过规则来避免类似的问题再度发生,而且所有的规则都纪录在案,方便未来进行教育或变更。

脸书已打造一个广泛的基础设施来执行Zoncolan,它平均每天可评估数千项的程序变动,去年Zoncolan协助识别超过1,100个被列为重要或更严重的安全问题,以要求程序代码作者或安全工程师立即采取行动。

目前Zoncolan平台主要应用在脸书所开发的Hack程序语言上,未来脸书除了计划将它扩大到其它脸书所使用的程序语言之外,也打算以Zoncolan的核心元素来打造一个开源工具,让脸书以外的工程师,也能享受该平台所带来的便利。