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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我为什么支持高校的信息系统放弃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那么好利用,只需要一个合适的价钱,你们应用系统的后门就会流通起来……

 

 

 

 













以上是关于我为什么支持高校的信息系统放弃Apache Struts2框架的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

PHP基于MVC模式下的高校公选课管理信息系统源码分享

基于php036高校教室预约查询系统

Java+JSP基于ssm高校学生比赛活动信息系统