更多安全资讯和分析文章请关注启明星辰ADLab微信公众号及官方网站(adlab.venustech.com.cn)
01
前言
02
漏洞基本信息
根据Schneider的漏洞公告,这些漏洞的基本信息如下:
存在漏洞
-
CVE-2022-24312,目录穿越 -
CVE-2022-24311,目录穿越 -
CVE-2022-24310,缓冲区溢出
存在漏洞
-
CVE-2022-24324,缓冲区溢出
03
漏洞分析与验证
3.1 CVE-2022-24311(24312)分析
这两个漏洞存在于IGSS V15.0.0.22020 and prior版本,其漏洞描述为:“存在对受限制目录路径名的不当限制,可导致通过在文件末尾添加或在数据服务器上下文中创建新文件来修改现有文件,当攻击者通过网络发送特定数据时,可能会导致远程代码执行”。
通过分析,我们发现这两个漏洞位于sub_49FF20函数,该函数的伪代码如下:
跟进sub_4A0C50函数,伪代码如下所示:
可以看出,该函数内部进行了一系列文件操作,但对传入该函数的参数没有做有效的安全检查,因此可以被操控来向SCADA服务器写入任意文件。
同理,跟进sub_4A0C50函数,伪代码如下所示:
可以看出,该函数的内部同样也没有对传入的参数进行安全检查,因此也可以被操控来向SCADA服务器写入任意文件。
根据上述分析我们进行了验证,成功向SCADA服务器写入任意内容的文件。
对于上述两个漏洞,Schneider官方发布了补丁,其修复方式如下:
具体来讲,“Prepend file”和“Append file”分支在进入具体功能函数前调用了额外的sub_4A16F0函数。该函数传入了参数 v6+72,此参数对应被操作文件的文件路径名。跟进该函数,其伪代码如下:
该函数对文件路径名进行了限制:(1)限制(v6+72)长度,大小要满足<=0x100;(2)限制(v6+72)内容,不能有目录穿越的特征符。通过这种限制,补丁防止了恶意数据导致的跳转目录,把文件操作限制在当前目录下。
3.2 CVE-2022-24310分析
该漏洞存在于IGSS V15.0.0.22020 and prior版本,漏洞的描述为:“存在整数溢出,当攻击者发送多条精心准备的消息时,该漏洞可能会导致基于堆的缓冲区溢出,导致拒绝服务并可能导致远程代码执行”。
通过分析,我们发现这个漏洞存在于sub_49FA30函数,该函数的伪代码如下:
从上图可以看出,该函数的主要逻辑是:首先,通过realloc给*(this+48)的堆增加*(a1+0xBA)数值的大小;然后,使用memcpy向(*(v5 +52)+*(v5 + 48))赋值*(a2+0xBA)长度的(a2+190)缓冲区内容,即填充realloc新分配出的内存空间。
经过分析,我们发现:在*(a2+ 0xBA)+*(this + 52)的加法操作中,两个操作数均为无符号类型,且*(a2+0xBA)可控。因此,通过控制*(a2+0xBA)的值,可使得*(a2 + 0xBA)+*(this + 52)产生整数上溢,从而导致realloc新申请内存的容量小于后续memcpy的参数*(a2+0xBA),后续执行memcpy内存拷贝操作时就会触发堆溢出。
根据上述分析我们进行了验证,成功触发了SCADA服务器的堆破坏。
对于该漏洞,Schneider官方发布了补丁,其修复方式如下:
具体来讲,在进行realloc操作执行前,先判断*(a2+0xBA)的值是否在[0,0xF42]的区间范围内,从而避免整数溢出。
3.3 CVE-2022-24324分析
在对IGSS V15.0.0.22073 and prior的补丁分析中,ADLab研究员还发现了一个新的缓存区溢出漏洞。该漏洞可以远程无条件触发,ADLab及时报告了厂商并协助厂商进行了修复,厂商对该漏洞的CVSS3评分为严重。
Schneider已经发布了新补丁来修复这个高危漏洞。相关补丁和更多的内容可在官方提供的公告中查询:
04
修复建议
经过ADLab研究员的分析和验证,上述高危漏洞都可以通过网络进行无条件的远程触发,具有很大的危害性。目前官方已经发布了补丁,强烈建议使用IGGS的工业用户立即升级到最新版本:15.0.0.22074。
针对工业控制系统,CISA提供了如下的通用建议:
-
尽量减少在公网暴露工控设备或者系统; -
将控制系统网络和远程设备置于防火墙之后,并和办公网络隔离; -
当需要远程访问时,采用类似VPN的安全访问方式。
参考链接:
启明星辰积极防御实验室(ADLab)
ADLab成立于1999年,是中国安全行业最早成立的攻防技术研究实验室之一,微软MAPP计划核心成员,“黑雀攻击”概念首推者。截止目前,ADLab已通过CVE累计发布安全漏洞近1100个,通过 CNVD/CNNVD累计发布安全漏洞2000余个,持续保持国际网络安全领域一流水准。实验室研究方向涵盖操作系统与应用系统安全研究、移动智能终端安全研究、物联网智能设备安全研究、Web安全研究、工控系统安全研究、云安全研究。研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。
原文始发于微信公众号(ADLab):Schneider IGSS 远程漏洞分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论