询问***信息官关于应用程序安全的问题,很多人都会谈论在对自身产品的漏洞检查方面作出的努力。
然而在很多情况下,风险并不存在于内部开发人员所编写的代码中,而在外部开发人员提供的组件中,开源库或者第三方工具包。拿WebKit举例来说:很多公司知道浏览器(例如苹果的Safari或者谷歌的Chrome)都依赖于WebKit,还有很多其他应用程序也同样如此,例如Entourage 2008, Yahoo!Messenger和Macromedia的Contribute3等。
依赖于第三方代码的公司将安全交给其他开发人员的手中,惠普公司企业安全产品副总裁Barmak Meftah。
“公司通常不会考虑到第三方软件给他们带来的风险,以及使用开源软件作为其堆栈的一部分的风险,”Meftah表示,“他们假设供应商和开源开发人员在应用程序开发过程中进行了安全检查,而事实上,这种假设是错误的。”
为了保护其软件安全,企业必须弄清楚哪些代码组件构成了其代码库的一部分。***步是对开发使用的所有代码进行检查,漏洞管理公司Rapid7公司***安全官兼Metasploit公司总设计师HD Moore表示。
“即使开发团队非常精通于他们的工作,并清楚他们的产品的样子,可能也并不会注意到正在使用的后端库的情况,而这在代码审计过程中是需要涵盖近来的,”Moore表示。
在任何代码审计的开始,企业必须确定他们能够评估一个软件库,无论是开源还是闭源。如果软件库是由第三方开发人员提供的,那么公司必须专注于合同用语上,包括***步获得分析该软件的许可,惠普公司的Meftah表示。
“我们看到在承包条款方面,越来越多的软件开发商允许最终用户对软件做一些分析,”他表示。
一旦企业获得了分析软件的权利,开发人员和IT安全团队需要做一个应用程序评估,并检查软件中存在的漏洞,无论是通过静态分析还是通过监测开发商的支持论坛,或者通过跟踪软件修改的智能服务。
然后公司就可以作出明智的决定,是否修复软件漏洞,或者如果修复漏洞不实际的话,使用运行时分析产品来硬化应用程序,以防止任何对关键漏洞的利用。
“任何通过该组件的异常活动都将被跟踪,”Meftah表示,“只要你硬化了软件,你可以尽情的使用这个有漏洞的软件。”
很多公司存在的一个问题是,软件库的来源可能不是单一的供应商,Veracode公司的Wysopal表示。
“你接触的每一个第三方可能也有自己的第三方,”他表示,“所以负责这方面工作的员工应该去询问他们的第三方供应商,他们是如何处理应用程序安全的。”
这个所谓的嵌套第三方供应链问题可能会隐藏软件的真正的来源,从而使漏洞修复变得更加困难。
即使找到了某个软件库可能依赖的代码组件,企业仍然需要确定漏洞修复不会破坏应用程序本身。这个过程 是十分艰巨的,但是对于使用第三方组件的公司又是很必要的,Rapid7公司的Moore表示。
【编辑推荐】