我为什么支持高校的业务系统放弃Apache Struts2框架(四)

月初听闻广东某高校(中山大学)发布通知:关于停止使用Apache Struts2开发框架的通知

鉴于S2漏洞较多、维护难度较大,为防范控制网络安全风险,经研究决定,新建信息化项目不得使用S2;

在用S2的信息系统(网站)应尽快转用其他更安全的MVC框架(如Spring MVC等);从即日起,使用S2的信息系统(网站)将仅限校园网内访问。

作为信息安全爱好者,个人对学校的决定是举双手支持的,Struts 2框架在安全方面似乎有着与生俱来的缺陷,与同类开源项目相比,它的问题是在是太多了。下面说一下我个人支持的原因:

四、官方的自暴自弃

目前不少人对Struts2框架存在这样的理解:“Struts 2是开源软件,源码公开,有了漏洞可以及时得到修复”。

开源软件的确有源代码公开,问题透明的优点,但是Strtus2框架近年来却走在非比寻常的道路上:

我们以S2-016远程代码执行漏洞为例,Struts 2官方发布的漏洞公告里面居然带了漏洞验证方法,如图1所示。根据这样的提示,专业的漏洞分析人员可以轻易的写出漏洞利用程序,大大缩短了漏洞从分析到利用的缓冲期,致使Struts 2框架使用者几乎没有时间去修复。应用系统的补丁还没有更新,攻击就已经到来。

图1

2013年Struts 2的安全漏洞问题,当时国内几乎所有互联网公司及大量银行、政府机构都受到了影响,导致大量数据泄漏。Struts 2漏洞的确可以做到问题透明公开,修复补丁公开,但是及时性很难保障。

再举一个Struts 2最近的“破罐子破摔”例子:S2-045远程代码执行漏洞
    2017年3月6日晚22点左右,官方发布S2-045安全公告,这次虽然没有公布漏洞细节或者利用方法,但是这次公告居然没有发布对应的更新补丁(只能自己获取代码。手工编译更新)。

更可悲的是漏洞的描述间接说明了漏洞的细节,于是在3月7日凌晨国内已经出现了S2-045的漏洞利用工具。
3月7日中午13点S2-045漏洞利用工具被广泛的传播。
此时国家计算机网络应急技术处理协调中心发布了预警:《关于Apache Struts2存在S2-045远程代码执行漏洞的安全公告》(公告URL:http://www.cnvd.org.cn/webinfo/show/4080)。
同时教育部也紧急发布了《Struts 2 S2-045 Jakarta插件远程代码执行漏洞加固方法》,在无法获取或编译出官方补丁的情况下,使用文档中的加固方案来临时防御S2-045漏洞。

在这种情况下,补丁还没有来得及更新,漏洞利用工具已经猖獗了12个小时以上,信息系统早已经被攻破了。

另一种无奈:

Struts 2漏洞爆发时,国内的安全爱好者和安全厂商一般会将问题提交到提交国家信息安全漏洞共享平台(China National Vulnerability Database,简称CNVD),

近两年来还可以将教育类(高校)的安全问题提交到教育行业漏洞报告平台(https://src.edu-info.edu.cn/)。根据漏洞的严重程度和影响范围,提交者最终会获得积分。

但是,由于Struts 2 RCE漏洞爆发时,存在相关的问题的系统太多,大大增加了平台审核人员的压力,为此漏洞报告平台一般会采取压低评分的方式,虽然等级是“严重”,而Rank评分只有1分,

而目前平台积分兑换为1分相当于人民币5-10元,无论是为了什么目的和收益,平台这样做其实极大的降低了安全爱好者的积极性,他们在发现某系统存在Struts 2漏洞时,多数会放弃不报。

这样的无奈之举却大大纵容了黑产从业者,他们利用自动化攻击工具大量植入后门,疯狂的窃取数据。

时间: 2024-10-07 04:15:25

我为什么支持高校的业务系统放弃Apache Struts2框架(四)的相关文章

我为什么支持高校的业务系统放弃Apache Struts2框架(二)

月初听闻广东某高校(中山大学)发布通知:关于停止使用Apache Struts2开发框架的通知 鉴于S2漏洞较多.维护难度较大,为防范控制网络安全风险,经研究决定,新建信息化项目不得使用S2: 在用S2的信息系统(网站)应尽快转用其他更安全的MVC框架(如Spring MVC等):从即日起,使用S2的信息系统(网站)将仅限校园网内访问. 作为信息安全爱好者,个人对学校的决定是举双手支持的,Struts 2框架在安全方面似乎有着与生俱来的缺陷,与同类开源项目相比,它的问题是在是太多了.下面说一下我

我为什么支持高校的业务系统放弃Apache Struts2框架(三)

月初听闻广东某高校(中山大学)发布通知:关于停止使用Apache Struts2开发框架的通知 鉴于S2漏洞较多.维护难度较大,为防范控制网络安全风险,经研究决定,新建信息化项目不得使用S2: 在用S2的信息系统(网站)应尽快转用其他更安全的MVC框架(如Spring MVC等):从即日起,使用S2的信息系统(网站)将仅限校园网内访问. 作为信息安全爱好者,个人对学校的决定是举双手支持的,Struts 2框架在安全方面似乎有着与生俱来的缺陷,与同类开源项目相比,它的问题是在是太多了.下面说一下我

我为什么支持高校的业务系统放弃Apache Struts2框架(一)

月初听闻广东某高校(中山大学)发布通知:关于停止使用Apache Struts2开发框架的通知 鉴于S2漏洞较多.维护难度较大,为防范控制网络安全风险,经研究决定,新建信息化项目不得使用S2: 在用S2的信息系统(网站)应尽快转用其他更安全的MVC框架(如Spring MVC等):从即日起,使用S2的信息系统(网站)将仅限校园网内访问. 作为信息安全爱好者,个人对学校的决定是举双手支持的,Struts 2框架在安全方面似乎有着与生俱来的缺陷,与同类开源项目相比,它的问题是在是太多了.下面说一下我

我为什么支持高校的信息系统放弃Apache Struts2框架(五)

月初听闻广东某高校(中山大学)发布通知:关于停止使用Apache Struts2开发框架的通知 鉴于S2漏洞较多.维护难度较大,为防范控制网络安全风险,经研究决定,新建信息化项目不得使用S2: 在用S2的信息系统(网站)应尽快转用其他更安全的MVC框架(如Spring MVC等):从即日起,使用S2的信息系统(网站)将仅限校园网内访问. 作为信息安全爱好者,个人对学校的决定是举双手支持的,Struts 2框架在安全方面似乎有着与生俱来的缺陷,与同类开源项目相比,它的问题是在是太多了.下面说一下我

基于Web高校宿舍选择系统的实现

为了讲解如何实现该选择系统,我讲从如下角度拆分解析整个系统的实现过程,带大家由浅入深的了解一个网站的功能是如何一步一步添加的 高校宿舍选择系统的实现:业务逻辑以及要求分析 高校宿舍选择系统的实现:逻辑分析与表的设计 高校宿舍选择系统的实现:单点登陆的设计与实现 高校宿舍选择系统的实现:模块拆分与功能结构设计 高校宿舍选择系统的实现:通用支持模块模 - 用户权限系统的设计与实现 高校宿舍选择系统的实现:通用支持模块模 - 文件系统的设计与实现 高校宿舍选择系统的实现:通用支持模块模 - 验证码功能

Atitit.业务系统的新特性 开发平台 新特性的来源总结

Atitit.业务系统的新特性 开发平台 新特性的来源总结 1.1. 语言新特性(java c# php js python lisp c++ oc swift ruby  go dart1 1.2. 流行lib.frmawork  新特性 jdk clr framework 新特性 (jq   Servlet2 1.3. Ide 新特性( eclipse vs netbea jetbrain2 1.4. Vm  新特性 clr  jvm(jvm好像没有独立的版本号,继承在jdk里面2 1.5.

业务系统-呼叫中心二次开发(已完结)

一. 批量筛号: 1.输入:案件批次号 输出:该批次的所有电话号码(非有效状态),进行批量筛号,将未知状态的号码标志为有效和无效. 2.Table: Call_Filter_Task     =(Id, Step, Status, BatchId,  CateGoryId, TaskType, TotalNum, Creator, CreateTime, RunBeginTime, RunEndTime) Call_Filter_Send_Batch    = (Id, Status, Filt

企业级业务系统开发实战

通过一个系列讲述一个真实企业的ERP系统开发全过程.其中包括需求分析.设计建模.开发.测试全生命周期过程,其中会详细讲方法论与技术实践.涉及到的方法包括敏捷软件开发.四色原型.领域驱动设计.业务架构.技术架构与具体的EF.WF.EasyUI等技术在项目中的使用. 领域驱动设计案例之领域层框架搭建 摘要: 根据前面对领域驱动设计概念以及一些最佳实践的理解,领域模型是系统最核心的部分,我们还是采用前面销售订单的例子,这个案例系统的核心构建就从领域层开始.领域层框架搭建主要完成两个任务:1.领域模型的

基于SSH的高校网上选课系统的质量属性的实现

我对于基于SSH的高校网上选课系统的质量属性的实现是从可用性.性能.安全性.可维护性.易用性五个方面进行的实现. 可用性方面: 实现方式:(1)当系统试图超出限制范围来进行课程查询或选课时必须进行错误检测并且抛出异常,中止进一步的错误操作,所采用的战术为错误(异常)检测, 此异常属于Action层,只捕获自定义应用异常,其他异常上抛.Struts2提供了异常拦截器,拦截器会将定义的异常捕获,记录日志,然后根据配置的异常的类型顺序跳转到相应的页面.(2)遵从J2EE的系统提供了可以使用的事务服务,