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

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

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

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

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

五、厂商缺乏安全意识

近年来发现每次Struts2漏洞爆发后,有良心的应用软件厂商都会应急推出更新补丁,而在补丁更新完成之后,厂商和用户都是一派皆大欢喜,奔走相告的景象,看我的应急多及时,服务多贴心!

作为一个学校业务系统的技术负责人,其实是这样的:

上文已经表述过,由于Struts2漏洞从公布到攻击利用的修复窗口期越来越小,Struts2框架的应用都是核心应用,在实际的生产环境中,补丁更新操作很难在攻击到达之前完成。

我们以Struts2 S2-045 RCE漏洞为例,漏洞从分析到POC的TimeLine以及某个高校业务系统厂商发布应急响应的TimeLine如下表所示:

厂商的应急响应发文如下:

【扫除漏洞,密切监控】避免Struts2 S2-045漏洞殃及“四海八荒”

3.7 9:30 获悉Struts2漏洞
3.7 10:00 启动最高安全预案
3.7 17:00发布临时补丁ver1
3.7 18:30 运维部发送安全升级提醒邮件
3.7 20:30补丁ver1测试通过
3.7 21:00更新临时补丁ver1
3.8 1:00完成近半受影响用户安全升级
3.8 3:00绝大多数受影响用户安全升级完毕
3.8 9:00测试最新官方补丁通过
3.8 9:30 官方补丁安全升级
3.8 18:00 安全升级工作基本完毕

经过一天的紧张工作,截至18:00,各受漏洞影响的用户现场已基本完成安全升级。此时,距发现漏洞33小时。
谈及这惊心动魄的33小时,服务部的主力之一黄工直言“不负用户嘱托,现在我想睡觉。”
让我们为专业、高效的苏迪紧急安全团队点个赞。

对比表格如下:


序号


S2-045漏洞趋势 时间线


某厂商应急响应工作 时间线


备注


时间点


状态


时间点


状态


1


3月6日22:00


漏洞披露


\


\


2


3月7日9:30


QQ群出现PoC


3月7日9:30


获悉S2漏洞


3


3月7日10:00


据悉漏洞在安恒发现已超过月余


3月7日10:00


启动最高应急预案


4


3月7日12:00


利用程序及批量化工具已泛滥


\


\


5


3月7

日13:00


国家计算机网络应急技术处理协调中心发布了预警:《关于Apache Struts2存在S2-045远程代码执行漏洞的安全公告》

教育部也紧急发布了《Struts 2 S2-045 Jakarta插件远程代码执行漏洞加固方法》,在无法获取或编译出官方补丁的情况下,使用文档中的加固方案来临时防御S2-045漏洞。


\


\


6


\


\


3月7日17:00


发布临时补丁ver1


7


\


\


3月7日 18:30


运维部发送安全升级提醒邮件


8


\


\


3月7日20:00


补丁ver1测试通过


9


\


\


3月7日21:00


更新临时补丁ver1


10


\


\


3月8日 1:00


完成近半受影响用户安全升级


……


……


……


……


……


14


\


\


3月8日18:00


安全升级工作基本完毕

 

从以上内容,我们不难看出从Struts 2 S2-045批量利用泛滥(12:00)到厂商临时补丁测试通过(20:00)

这期间已经有了8个小时的空白,这8个小时时间,攻击者在服务器上想部署什么样的后门都足够了。

另外从厂商的发文最后我们可以看到,他们在补丁更新完成,并没有去考虑这8个小时空白期可能造成的巨大危害,他们特么只想去睡觉,图1所示。

图1

像S2-045漏洞这种严重漏洞,补丁还没有来得及更新,漏洞利用工具已经猖獗了8个小时以上,Web站点早已经被攻破了,后门都种好了,你再去打上补丁,是为了避免其他人来种后门吗?

正如他们文末所言的那样,“安全无小事”,其实对于Struts 2框架的应用系统,更新完Struts 2补丁,安全工作才刚刚开始,

比如:你需要检查系统的核心配置有没有被更改、核心数据有没有被越界请求、操作系统的用户情况、远程工具SSH的文件水印比对(检查SSH后门)、限制远程登录的IP范围、检查系统用户状态等等。

长期的工作还需要监控日志,监控流量,分析有没有隐蔽的后门,窃取数据的行为等等。

由于厂商缺乏安全意识,不能保证更新补丁后的业务系统是否被入侵,是否已经留有后门,学校发布“从即日起,使用S2的信息系统(网站)将仅限校园网内访问”这样的通知也是无奈之举,

做最坏的打算,即使将来因信息系统被篡改,影响也只在校内可控的访问范围之内。

另外,还是以“反共黑客”为例,他们能够保证每三天发布一个篡改的目标网站,并不是激情入侵,随机选择的。而是有一个过程,这个过程可能持续几天或更长时间。

攻击者手中持续拥有一批事前已经得手并埋下后门的网站(甚至可能通过购买来获取网站后门)。

对于上文提到软件厂商的用户而言,S2-045那么好利用,只需要一个合适的价钱,你们应用系统的后门就会流通起来……

时间: 2024-11-07 20:09:22

我为什么支持高校的信息系统放弃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框架在安全方面似乎有着与生俱来的缺陷,与同类开源项目相比,它的问题是在是太多了.下面说一下我

Apache Kafka系列(五) Kafka Connect及FileConnector示例

Apache Kafka系列(一) 起步 Apache Kafka系列(二) 命令行工具(CLI) Apache Kafka系列(三) Java API使用 Apache Kafka系列(四) 多线程Consumer方案 Apache Kafka系列(五) Kafka Connect及FileConnector示例 一. Kafka Connect简介 Kafka是一个使用越来越广的消息系统,尤其是在大数据开发中(实时数据处理和分析).为何集成其他系统和解耦应用,经常使用Producer来发送消

Apache Mina框架实践

1.为什么要用Apache Mina框架 ApacheMina Server 是一个网络通信应用框架,Mina 可以帮助我们快速开发高性能.高扩展性的网络通信应用,Mina 提供了事件驱动.异步(Mina 的异步IO 默认使用的是JAVANIO 作为底层支持)操作的编程模型. 2.ApacheMina框架使用 Mina的执行流程: > IoService:这个接口在一个线程上负责套接字的建立,拥有自己的Selector,监听是否有连接被建立. > IoProcessor:这个接口在另一个线程上

关于停止使用Apache Struts2开发框架的通知

原文链接: http://www.cnblogs.com/yxnchinahlj/p/7770509.html 各有关单位: Apache Struts2(以下简称"S2")是一种开源的.基于MVC架构的Java Web应用开发框架. S2自从2007年面世以来被国内外广泛使用,但也因屡次被披露存在高风险漏洞而闻名.采用S2的信息系统(网站)已成为境内外黑客重点攻击对象,因未及时修补漏洞而被攻击的安全事件屡屡发生. 鉴于S2漏洞较多.维护难度较大,为防范控制网络安全风险,经研究决定,新

java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFil

项目启动时报错:java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2的jar包版本号为2.1.8,所以类名是没有错误的,而jar包确实加入进去了.jar包加入的方式是通过user library. 问题解决的办法是:将jar包拷贝到WEB-INF下lib文件夹目录,重新启动tomcat问题解决. ================

Tomcat启动报错[org.apache.struts2.dispatcher.Dispatcher]Dispatcher initialization failed

Tomcat启动报错: [org.apache.struts2.dispatcher.Dispatcher]Dispatcher initialization failed Unable to load configuration. - bean - jar:file:/E:/SoftwareDevelopment/Software/Eclipse4.3/eclipse-jee-kepler-SR1-win32-x86_64/Workspace/.metadata/.plugins/org.ec