阅读更多

10顶
0踩

开源软件

原创新闻 警惕开源代码库中的安全隐患

2012-03-27 14:50 by 副主编 wangguo 评论(11) 有6498人浏览
最近的一项研究发现,在调查的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
  • 大小: 25.4 KB
10
0
评论 共 11 条 请登录后发表评论
11 楼 grandboy 2012-04-12 09:07
因噎废食确实没有必要,杞人忧天有时还有点必要,但也不需要考虑过多,未知的"天"就没有必要"忧"了。
10 楼 fancyleeo 2012-03-30 11:53
典型的因噎废食,杞人忧天。
9 楼 simen_net 2012-03-28 22:25
坑爹的GWT居然排第一,有几个人在用?不知到这个排名怎样计算出来的。
8 楼 yjandx3543 2012-03-28 21:20
司徒正美 写道
不开源的东西隐患更多。。。。

++1
7 楼 wiki_more 2012-03-28 16:26
司徒正美 写道
不开源的东西隐患更多。。。。

+1
6 楼 grandboy 2012-03-28 16:08
哪里都有安全隐患,都应该警惕
5 楼 quansia 2012-03-28 10:59
开源的东西就是要经常维护代码啊 要不就用收费的 人家帮你维护 比如。net 这是正常现象
4 楼 司徒正美 2012-03-28 09:57
不开源的东西隐患更多。。。。
3 楼 fjjiaboming 2012-03-28 09:04
幸好,没有用到所谓提高"开发"效率的表达式语言,如OGNL...
2 楼 fjjiaboming 2012-03-28 09:02
让我担心起来了...
1 楼 mengyancui 2012-03-27 19:25
坑爹咧,都是常用框架!   

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 关于Spring属性编辑器详解

     Spring为一般的属性类型提供了默认的编辑器,BeanWrapperImpl是Spring框架中重要的类,它负责对注入的Bean进行包装化的管理,常见属性类型对应的编辑器即在该类中通过以下代码定义:  private void ...

  • Spring属性编辑器详解

    1、常见的属性的注入:int,string,list,... (2)spring内置了一些属性编辑器,也可以自定义属性编辑器 3、如果自定义属性编辑器 (1)继承propertyEditorSupport (2)重写setAsText 方法 (3)使用 setVal...

  • java制作的属性编辑器_详解Spring自定义属性编辑器

    Spring 自定义属性编辑器Spring DI注入的时候可以把普通属性注入进来,但是像Date类型的就无法被识别。这时可以通过Spring的属性编辑器把配置文件中的字符串转化成相应的对象进行注入。Spring有自带的属性编辑器,...

  • 【Spring源码】6. Spring扩展自定义属性编辑器保姆级教程

    Spring扩展自定义属性编辑器保姆级教程 8 【Spring源码】7. 如何添加自定义的BeanFactoryPostProcessor 9 【Spring源码】8. 捋下invokeBeanFactoryPostProcessors()主要处理流程 10 【Spring源码】9. 超级重要的...

  • Spring之属性编辑器源码解析

    示例 定义Bean @Data public class Person { private String name; private Integer age; ... private String sex;...定义Spring配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:/...

  • 【Spring源码】22. 属性填充populateBean()详解

    当needsDepCheck为true时,会进行行依赖检查,判断filteredPds是否为空,如果为空会对其进行赋值,最终通过调用checkDependencies()检查pd的setter()方法需要赋值时,pvs中有没有满足pd需求的属性值可供其赋值。...

  • 详解spring自定义属性编辑器

    spring自定义属性编辑器详解

  • SpringMVC自定义属性编辑器详解及实例

    SpringMVC自定义属性编辑器详解及实例 自定义springMVC的属性编辑器主要有两种方式,一种是使用@InitBinder标签在运行期注册一个属性编辑器,这种编辑器只在当前Controller里面有效;还有一种是实现自己的 ...

  • Spring注解详解

    一、Spring注解驱动开发入门 spring在2.5版本引入了注解配置的支持,同时从Spring 3版本开始,Spring JavaConfig项目提供的许多特性成为核心Spring框架的一部分。因此,可以使用Java而不是XML文件来定义应用程序类...

  • Spring框架详解New

    Spring框架详解New1. Spring框架概述2. Spring框架特点3. Spring框架优缺点3.1 Spring框架优点3.2 Spring框架缺点4. Spring框架设计模式5. Spring IoC5.1 Spring IoC概念5.2 Spring BeanFactory5.3 Spring ...

  • Spring源码探究之属性编辑器(PropertyEditorSupport)

    Spring源码探究之属性编辑器(PropertyEditorSupport) 概述 Spring容器在启动时会通过加载配置文件或者配置类的方式将定义的每个javaBean解析成BeanDefinition类型的对象,而javabean对象的属性被解析储存在Bean...

  • 【Spring】详解Spring全家桶

    Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。有人亲切的称之为:Spring 全家桶。 很多研发人员把spring看作心目中最好的java...

  • Spring之PropertyEditorRegistrySupport的讲解与使用

    提供对默认属性编辑器和自定义属性编辑器的管理;该类主要作为BeanWrapperImpl基类。 BeanWrapperImpl继承了PropertyEditorRegistrySupport类,所以是有必要弄明白PropertyEditorRegistrySupport是怎么玩的。

  • Spring属性编辑器

    1. 自定义属性编辑器类editors.DateProperyEditor,继承PropertyEditorSupport 2. 将自定义的属性编辑器类通过IOC容器进行注册(注入到Spring的一个类中) Org.springframework.beans.factory.config....

  • Spring源码之bean的属性填充populateBean方法解读

    目录前言 前言 这篇文章是 IOC 容器初始化启动时,抽象...阅读本篇文章,同时可以参考阅读 spring源码之getBean(获取 bean)方法解读(二) 和 spring aop代理对象的产生(一) 这两篇文章的 doCreateBean() 方法 ...

  • 后端开发是一个涉及广泛技术和工具的领域.docx

    后端开发是一个涉及广泛技术和工具的领域,这些资源对于构建健壮、可扩展和高效的Web应用程序至关重要。以下是对后端开发资源的简要介绍: 首先,掌握一门或多门编程语言是后端开发的基础。Java、Python和Node.js是其中最受欢迎的几种。Java以其跨平台性和丰富的库而著名,Python则因其简洁的语法和广泛的应用领域而备受欢迎。Node.js则通过其基于JavaScript的单线程异步I/O模型,为Web开发提供了高性能的解决方案。 其次,数据库技术是后端开发中不可或缺的一部分。关系型数据库(如MySQL、PostgreSQL)和非关系型数据库(如MongoDB、Redis)各有其特点和应用场景。关系型数据库适合存储结构化数据,而非关系型数据库则更适合处理大量非结构化数据。 此外,Web开发框架也是后端开发的重要资源。例如,Express是一个基于Node.js的Web应用开发框架,它提供了丰富的API和中间件支持,使得开发人员能够快速地构建Web应用程序。Django则是一个用Python编写的Web应用框架,它采用了MVC的软件设计模式,使得代码结构更加清晰和易于维护。

  • 华为数字化转型实践28个精华问答glkm.pptx

    华为数字化转型实践28个精华问答glkm.pptx

  • 新员工入职培训全流程资料包gl.zip

    新员工入职培训全流程资料包(100+个文件) 1入职流程指引 万科新职员入职通知书 万科新职员入职引导手册 新进员工跟进管理表 新员工入职报到工作单(文职) 新员工入职报到流程 新员工入职流程表 新员工入职手续办理流程(工厂 新员工入职手续清单 新员工入职须知 新员工入职训流程 新员工入职引导表(导师用) 2 入职工具表格 3 培训方案计划 4培训管理流程 5培训教材课件 6 培训效果检测 7 员工管理制度 8 劳动合同协议 9 新员工培训PPT模板(28套)

  • 三菱PLC通讯程序实例

    FX5U PLC作为主、从站的通讯方式程序实例,以及包含详细说明文件...

  • 技术需求报告-集行波测距与故障录波功能于一体的电网综合故障分析系统.docx

    技术需求报告-集行波测距与故障录波功能于一体的电网综合故障分析系统.docx

Global site tag (gtag.js) - Google Analytics