警惕开源代码库中的安全隐患

鉴客
 鉴客
发布于 2012年03月27日
收藏 7

最近的一项研究发现,在调查的31个流行库(框架)的1261个版本中,超过三分之一存在已知的安全漏洞,大约四分之一的下载文件已经被污染。

该项研究由Aspect Security和Sonatype发起。Aspect Security是一家评估软件安全漏洞的公司,Sonatype主要提供中央资源库(Central Repository),托管了超过30万个库和开源组件,每年有超过40亿次请求。

Aspect公司的研究人员分析了在过去12个月内,从Central Repository中下载的31个流行的Java框架和安全库,并发现:

  • 所有的下载中,有1980万次下载的版本存在已知漏洞,占26%。
  • 下载次数最多的、存在已知漏洞的库是Google Web Toolkit(GWT)、Apache Xerces、Spring MVC和Struts 1.x。

研究发现,在开源代码库中发现的漏洞类型非常广泛,一些漏洞允许攻击者完全接管主机,一些可能会导致数据丢失或损坏,还有一些可能会向攻击者提供有用的信息。

研究人员称,安全性库比框架更有可能存在已知漏洞,现在的应用程序通常使用30个或更多的库,这可能危及到应用程序中80%的代码。在大多数情况下,漏洞的影响在很大程度上取决于应用程序如何使用这些库。

研究人员列出了一些广为流传的已知漏洞:

  • 在过去一年中,Spring被超过4.3万个组织下载了1800万次,但是去年的一个发现显示,Spring表达式语言中有一个新型的漏洞,攻击者可以通过HTTP参数提交来利用该漏洞,并获得敏感的系统数据、应用程序和用户cookies。
  • 2010年,谷歌的研究团队发现了Struts2中一个漏洞,该漏洞允许攻击者在所有基于Struts2的应用程序中执行任意代码。
  • Apache CXF(Web服务框架)在过去一年内被超过1.6万个组织下载了420万次,从2010年该框架中就存在两个大的漏洞(CVE-2010-2076和CVE 2012-0803),允许攻击者欺骗任何使用CXF的服务,下载任意的系统文件,并绕过验证。

研究人员称,目前开发者还没有好的方法来得知他们正使用的库中存在的已知漏洞,他们必须随时检查几十个邮件列表、博客、论坛,此外,开发团队也不太可能去寻找这些开源库中的漏洞,因为这需要大量的安全方面的经验,在分析这些库时自动化工具基本上用处不大。

Aspect公司CEO称,使用开源库也存在“依赖管理”的问题,开发者需要确定他们的项目中真正直接依赖的库。通常情况下,开发者会在一些非必需的功能中使用库,而这些库还可能依赖于其他库,显然这带来了大量过时的代码,增加了安全风险,同时增大了应用程序的规模。

要想避免或降低这些风险,就需要找出在项目中使用的库,确定哪些已经过时。Aspect公司建议尽量少使用库。

Via InfoWorld

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:警惕开源代码库中的安全隐患
加载中

最新评论(11

whaon
whaon
虽然...,但是还得用
jeffsui
jeffsui
开源和不开源都有安全隐患,但是你还得用。
就和牛奶安不安全,你照样喝一个道理。
除非自己养奶牛,或者自己写依赖类库.....
程序员乙
程序员乙
闭源的软件不能通过分析代码得知漏洞!
fir01
fir01
闭源的漏洞更多,知道了没法改
ringz
ringz
闭源的出了问题你也改不了,所以既没安全感,也不安全.
Liuxd
Liuxd
开源的是因为看到的人太多,所以不安全;
闭源的是因为自己看不到,所以没安全感。
Raymin
Raymin
看不到代码的软件,更不安全。
CheckStyle
CheckStyle
0Day的才有意义
hokim
hokim

引用来自“puras”的评论

还有“放心奶”么

没有
返回顶部
顶部