企业动态
行业资讯

开源软件安全:优势与挑战共存

 

       Snyk有一支安全研究团队专门从版本注释、GitHub和Apache问题跟踪系统等地方找寻开源代码库安全问题的线索。该团队发现问题会公布到Snyk的漏洞数据库中,在合适的时候提交到CVE列表里。

 

       但是,获取CVE编号的过程可能比较复杂,需要委员会认可CVE具体细节,还需要征得项目拥有者的同意。当前的CVE编号获取方式缺乏扩展性。

 

       另外,即便漏洞被发现并推出了补丁,使用该脆弱代码的公司企业也可能没注意到自己需要打补丁,或者找不出需要打补丁的所有实例。Equifax数据泄露事件就是该问题的明显案例。其所用 Apache Struts 开源组件的补丁早在数据泄露发生前2个月就推出了,且Equifax也注意到了有补丁可用,但依然没能及时打上补丁。

 

       还有一些公司因为兼容性问题、合规问题等原因而无法迁移到最新版本开源代码,仍在使用带漏洞的老版代码。这也是个问题。据Snyk称,仅16%的漏洞补丁是向后兼容其他版本的。

 

       查找并修复

 

       理想情况下,应用会在安全补丁可用的即刻就更新自身,无需任何人为干预。但实际上,这并非始终可行。

 

       公司企业需要能够在自身环境中找出所有开源代码的运行实例,持续更新该实例列表,让开发人员避开这些不安全的老旧代码库,并最终在新漏洞被发现时及时部署补丁。

 

       只有知道脆弱库在哪里,才能够将这些有漏洞的代码库从产品中移除。产品开发生命周期中越早移除漏洞,开发和维护成本就越低,过程也更轻松。

 

       很多公司会向Snyk、Black Duck 和Veracode之类的供应商寻求帮助。Skyscanner也这么做了。Snyk让Skyscanner看清了其哪些项目中用到了哪些包,这些包里含有哪些漏洞,这些漏洞是如何引入到Skyscanner的代码中的。而且,Snyk还会在开发人员编写代码的当时就标出漏洞,将问题扑灭在代码进入生产环境之前。

 

       在开发过程中集成开源漏洞扫描对大型企业来说尤其重要,因为大企业要跟踪其使用的所有代码是非常困难的。大多数公司都不清楚自己到底有多少个应用,这种情况是很恐怖的。

 

       Veracode进行漏洞扫描的时候,客户公司会上传其二进制代码,Veracode就将之与NVD进行对比。为帮助客户发现自身没有注意到的在用应用,Veracode还会扫描客户公司的边界,不是为了找出没暴露出来的内部应用,而是为了找出如果暴露出来会降低风险的应用。

 

       有些网络工具也可以帮公司企业找出内部运行的应用,但如果网络是分隔的,就会出现盲点。公司企业还可以在终端上安装代理以跟踪其上运行的应用。但只要不是全面部署了代理,盲点依然存在。单靠一种方法想要摸清企业环境中的应用情况是不可能的。这也是为什么应用清单梳理如此之难的原因所在。

 

       很明显,Equifax就深刻感受到了这一难题。去年10月,该公司前CEO在国会质询上称,Equifax的信息安全部门进行过漏洞扫描,但并未发现任何受该漏洞影响的 Apache Struts,该漏洞在Equifax网页应用中存在了太长时间。

 

       用工具扫描也得知道环境中到底有多少台服务器才有用。而且,即便扫描全面而准确,也会给公司企业带来沉重的管理负担。如果开发过程中没有融入安全检查,这些扫描就得持续进行,各种应用得不停地分别检查再检查,扫描再扫描。

 

       不仅开发人员会在应用更新过程中引入新的带漏洞的库,之前被认为安全的老库也会曝出新漏洞。软件不是像酒一样越久越醇,而是像牛奶一样一放就坏。

 

       开发人员很少会审查旧工程中用到的库,一般就是到开源项目页面下载下来,集成到自己的应用中,然后就再也不管它了。

 

 
版权所有:郑州三中网安科技有限公司 豫ICP备2020036495号-1    豫公网安备 41019702002241号 | 站点地图 | 人才招聘 | 联系我们