为开源程序代码安全把关,GitHub推Security Lab计划

GitHub在今日的Universe大会中,发布了GitHub Security Lab计划,欲集结众多企业投入提升开源程序代码安全性的工作,同时也免费发布程序代码语义分析引擎CodeQL,让社群开发者能更快速地寻找开源软件的漏洞程序代码,另外,还公开激活了GitHub通报数据库,作为平台上公共的通报数据库。

GitHub提到,维护全球开源软件安全的工作并不容易,主要面临三大问题,分别是庞大的规模、人才短缺以及协作上的障碍。规模的阻碍来自大量的程序代码,GitHub举例,光是JavaScript生态系统统,就存在超过一百万个开源组件,更别说所有开发语言的总和,而且开发人员与信息安全专业人员数量相比约为500比1,而且这些安全专业的人才传播于各家公司,难以良好的协作。

创立GitHub Security Lab的目的,是要集结全球安全研究社群,共同维护开放源码的安全,GitHub本身已经开始投入大量的资源,探索和回应开源项目中的漏洞,到目前为止已经发现了100多个CVEs。目前参与计划的企业包含了F5、Google、英特尔、微软、摩根大通和Mozilla等14家企业,他们将共同投入资源以发现并修复开源软件中的漏洞。

为了强化安全研究社群的能力,GitHub免费开放社群,在开源程序代码使用程序代码分析引擎CodeQL。CodeQL提供一种方便的程序代码查询方法,可以像是查询数据库一样查询程序代码,研究人员可以编写查询语法搜索造成漏洞的程序代码,一次解决相同类型的漏洞。

另外,GitHub平台也提供了安全通报功能,维护人员现在可以和安全研究人员,私下修复安全漏洞,并且也可以直接在GitHub上申请CVE,并设置有关于漏洞的结构化消息,而当漏洞修补人员准备好发布安全通报时,则GitHub会对所有影响的项目发送警示。

除了发送漏洞通知之外,GitHub进一步提供自动更新拉取请求,以更积极的做法帮助开发人员处理新发现的漏洞。GitHub会为新漏洞创建自动安全性更新的拉取请求,以更新受漏洞影响的相依项目。自动化安全更新功能目前已经正式发布,会自动为激活安全警示功能的存储库打开这项功能。

GitHub提供公共安全通报数据库,维护者可以创建通报数据,并将其整理对应到GitHub相依关系图关注的组件。用户可以在浏览器直接浏览这些CVE记录,或使用安全通报API以程序访问这些数据。

为了预防开发者因为将令牌或是凭证写死在项目中,并推送到GitHub公开存储库所导致的安全性问题,GitHub现在会扫描20多个云计算供应商的令牌格式,当在项目中发现对应的数据时,GitHub会通知云计算供应商,由他们采取行动,通常会先撤销该令牌并通知受影响用户。