Schneider IGSS 远程缝隙分析

颁布功夫 2022-04-15

一、媒介


近期,J9集团官网ADLab在工业节造系统缝隙监测中发现Schneider颁布了交互式图形SCADA系统(Interactive Graphical SCADA System,简称IGSS)的高危缝隙布告和补丁,蕴含有缓冲区溢出和目录穿越等,NVD的评分高达9.8。ADLab钻研员第一功夫对其中的高危缝隙进行了具体分析和现尝试证,同时还发现了一个新的高危缝隙并协助厂商进行了建复。


二、缝隙根基信息



凭据Schneider的缝隙布告,这些缝隙的根基信息如下:



受影响的产品:V15.0.0.22020 and prior

存在缝隙

  • CVE-2022-24312,目录穿越
  • CVE-2022-24311,目录穿越
  • CVE-2022-24310,缓冲区溢出


受影响的产品:V15.0.0.22073 and prior

存在缝隙


  • CVE-2022-24324,缓冲区溢出



触发方式:网络
CVSS v3评分:  9.8

三、缝隙分析与验证


3.1 CVE-2022-24311(24312)分析


这两个缝隙存在于IGSS V15.0.0.22020 and prior版本,其缝霞述为:“存在对受限度目录蹊炯的不当限度,可导致通过在文件末尾增长或在数据服务器高低文中创建新文件来批改现有文件,当攻击者通过网络发送特定数据时,可能会导致远程代码执杏妆。


通过度析,我们发现这两个缝隙位于sub_49FF20函数,该函数的伪代码如下:


图片1.png


跟进sub_4A0C50函数,伪代码如下所示:


图片2.png



能够看出,该函数内部进行了一系列文件操作,但对传入该函数的参数没有做有效的安全查抄,因而能够被操控来向SCADA服务器写入肆意文件。


同理,跟进sub_4A0C50函数,伪代码如下所示:


图片3.png



能够看出,该函数的内部同样也没有对传入的参数进行安全查抄,因而也能够被操控来向SCADA服务器写入肆意文件。


凭据上述分析我们进行了验证,成功向SCADA服务器写入肆意内容的文件。


图片4.png


对于上述两个缝隙,Schneider官方颁布了补丁,其建复方式如下:


图片5.png


具体来讲,“Prepend file”和“Append file”分支在进入具体职能函数前挪用了额表的sub_4A16F0函数。该函数传入了参数 v6+72,此参数对应被操作文件的文件蹊炯。跟进该函数,其伪代码如下:


图片6.png


该函数对文件蹊炯进行了限度:(1)限度(v6+72)长度,大幼要满足<=0x100;(2)限度(v6+72)内容,不能有目录穿越的特点符。通过这种限度,补丁预防了恶意数据导致的跳转目录,把文件操作限度在当前目录下。


3.2 CVE-2022-24310分析


该缝隙存在于IGSS V15.0.0.22020 and prior版本,缝隙的描述为:“存在整数溢出,当攻击者发送多条精心筹备的新闻时,该缝隙可能会导致基于堆的缓冲区溢出,导致回绝服务并可能导致远程代码执杏妆。

通过度析,我们发现这个缝隙存在于sub_49FA30函数,该函数的伪代码如下:


图片7.png


从上图能够看出,该函数的重要逻辑是:首先,通过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服务器的堆粉碎。


图片8.png

对于该缝隙,Schneider官方颁布了补丁,其建复方式如下:


图片9.png


具体来讲,在进行realloc操作执行前,先判断*(a2+0xBA)的值是否在[0,0xF42]的区间领域内,从而预防整数溢出。


3.3 CVE-2022-24324分析


在对IGSS V15.0.0.22073 and prior的补丁分析中,ADLab钻研员还发现了一个新的缓存区溢露马脚。该缝隙能够远程无前提触发,ADLab实时汇报了厂商并协助厂商进行了建复,厂商对该缝隙的CVSS3评分为严沉。


图片11.png


Schneider已经颁布了新补丁来建复这个高危缝隙。有关补丁和更多的内容可在官方提供的布告中查问:

https://download.schneider-electric.com/files?p_enDocType=Security+and+Safety+Notice&p_File_Name=SEVD-2022-102-01_IGSS_Security_Notification.pdf&p_Doc_Ref=SEVD-2022-102-01


四、建复建议


经过ADLab钻研员的分析和验证,上述高危缝隙都能够通过网络进行无前提的远程触发,拥有很大的风险性。目前官方已经颁布了补丁,强烈建议使用IGGS的工业用户立即升级到最新版本:15.0.0.22074。


针对工业节造系统,CISA提供了如下的通用建议:

  • 尽量削减在公网露出工控设备或者系统;
  • 将节造系统网络和远程设备置于防火墙之后,并和办公网络隔离;
  • 当必要远程接见时,选取类似VPN的安全接见方式。


参考链接:

[1] SEVD-2022-102-01, IGSS Data Server (V15.0.0.22073 and prior)

https://download.schneider-electric.com/files?p_Doc_Ref=SEVD-2022-102-01 
[2] SEVD-2022-039-01, IGSS Data Server (V15.0.0.22020 and prior)
https://download.schneider-electric.com/files?p_Doc_Ref=SEVD-2022-039-01