Modbus網關漏洞(CVE-2021-4161)分析
發布時間 2022-01-17一、漏洞概述
近期,啟明星辰ADLab在工業控制漏洞監控中發現工控廠商Moxa的Modbus網關存在高危漏洞(CVE-2021-4161),ICS-CERT的評分高達9.8。針對該高危漏洞,ADLab研究員第一時間進行了詳細分析和驗證。
1.1 基本信息
根據ICS-CERT的漏洞公告,該漏洞基本信息如下:
受影響的設備:
MGate MB3180/MB3280/MB3480 Series Protocol Gateways
受影響的版本:
MGate MB3180 Series: Firmware Version 2.2 or lower
MGate MB3280 Series: Firmware Version 4.1 or lower
MGate MB3480 Series: Firmware Version 3.2 or lower
漏洞可利用性:遠程、低復雜度
CVSS v3評分:9.8
1.2 漏洞描述
根據ICS-CERT漏洞公告的描述,該漏洞類型屬于敏感信息明文傳輸。受影響設備的固件存在漏洞,攻擊者可以通過嗅探網絡流量來竊取和解密設備登錄憑據的詳細信息,從而獲得對目標設備http web server的admin權限。
圖1 ICS-CERT Advisory中對漏洞的描述
該漏洞的CVSS3特征為(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)。如圖2所示,ICS-CERT認為該漏洞可遠程利用,同時對完整性(Integrity)和可用性(Availability)的影響均為“High”。
圖2 ICS-CERT 對CVE-2021-4161 CVSS(3.0)評分
從前面的漏洞描述可知,該漏洞是一個不安全的憑據傳輸導致憑據泄露的漏洞。那么,為何ICS-CERT認為這樣一個漏洞其對完整性和可用性的影響為“High”呢。帶著這個疑惑,我們在MGate MB3180設備上對該漏洞進行了分析和驗證。
二、漏洞分析
根據ICS-CERT對漏洞的描述,我們一開始猜測該系列設備的web登錄采用了Basic認證。Basic認證是低性能設備web server所常用的方法,其幾乎沒有安全性,直接通過base64解碼登錄流量的認證信息即可獲得用戶名密碼。
按照上述思路,我們對MB3180的登錄流量進行了分析,如圖3所示。MB3180的Web認證并沒有采用Basic認證方式。
圖3 MB3180 Web登錄POST請求
繼續對登錄請求進行分析,發現請求中的表單數據包含了“account”、“password”等字段信息。如圖4所示:
圖4 MB3180 Web登錄POST請求表單數據(用戶名admin,密碼1234567)
觀察表單中的數據可知,account和password沒有常見哈希運算的特征。多次登錄的表單數據如下所示:
表 1 使用不同用戶名密碼登錄的POST表單部分數據記錄
從上表數據還可以發現如下特征:
account和password和輸入長度是相關的;
account和password和FakeChallenge是相關的。
后續對登錄頁面的源碼分析找到了上述特征。在登錄頁的js代碼中,setInfo函數負責生成登錄信息并以表單方式提交,如下所示:
圖5 MB3180的setInfo函數
顯然,登錄數據的安全性取決于函數SetSHA256,其代碼如下所示:
圖6 MB3180的SetSHA256函數
分析SetSHA256函數的邏輯可知,該函數并沒有真正實現SHA256的功能,而是使用了異或方式來處理輸入數據。具體來講,SetSHA256函數的返回值是xor(m,n)之后的結果,而m來源于account/password,n則來源于FakeChallenge。顯而易見,在FakeChallenge被泄露的前提下,account/password是可還原的。
至此,該漏洞的原理就基本清晰了。MB3180在處理登錄頁面的用戶名和密碼加密時,未正確實現SHA256的運算,同時web server默認使用http協議。因此,在可嗅探到該設備登錄的http報文時,便可通過解密表單數據來得到登錄的用戶名和密碼。
三、漏洞驗證
根據上述漏洞分析結果,我們編寫了解密腳本對該漏洞進行了驗證。為簡化驗證過程,我們直接使用Wireshark抓取了登錄MB3180 Web Server的http流量,然后編寫腳本對該流量進行分析并解密。
在抓包過程中,我們進行了兩次登錄,用戶名均為admin,密碼則使用了一個錯誤的密碼(admin)和一個正確的密碼(moxa)。
圖7 使用admin\admin登錄的表單數據
圖8 使用admin\moxa登錄的表單數據
驗證結果如圖9所示,可從登錄流量解密得到用戶名和密碼信息:
圖9 解密腳本驗證
四、漏洞危害
在工業控制環境中,有大量的設備并不具備TCP/IP協議棧,要把這些設備接入基于IT技術的數字化網絡就需要借助協議轉換網關來完成。MGate MB系列Modbus網關設備的功能即是把RS485類的工業設備接入到TCP/IP網絡。這類網關設備漏洞的危害通常不僅僅影響該設備自身,更直接影響其背后支撐的現場設備。因此,NVD對該漏洞給出了兩種CVSS3評分,如下所示。
圖10 NVD和ICS-CERT評分區別
其中,NVD基于NIST的視角給出了7.5分,而ICS-CERT基于工業視角給出了9.8高分。這兩種評分的差別就在于:從IT角度看,該漏洞不能修改該設備的底層數據,也不能使設備停止運行,因此不影響該設備的完整性和可用性;但從工業角度看,通過該漏洞獲得管理員賬號后可以修改網關的配置,進而使得該設備支撐的工業控制業務發生變更甚至是停止,所以影響了工業控制業務的完整性和可用性。
可見,同樣類型的網絡安全漏洞,其在工業控制系統領域的影響和危害通常要高于傳統IT業務領域。因此,在處理工業控制系統網絡安全漏洞時,需要考慮到工控業務環境的特殊性,結合對工控業務的影響來綜合評判漏洞的危害才能更加客觀真實的反映漏洞的影響力。
五、修復建議
目前,官方未發布該漏洞的修復補丁,但提供了漏洞緩解建議:
建議將受影響設備的Web Server訪問的協議設置為https,避免明文傳輸表單數據;
建議參照Moxa SecurityHardening Guide for MGate MB3000 Series中的方式部署設備。
此外,針對工業控制系統,CISA提供了如下的通用建議:
盡量減少在公網暴露工控設備或者系統;
將控制系統網絡和遠程設備置于防火墻之后,并和辦公網絡隔離;
當需要遠程訪問時,采用類型VPN的安全訪問方式。