馬 強,殷順堯,羊依銀
(中國電子科技網(wǎng)絡(luò)信息安全有限公司,四川 成都 610207)
工業(yè)控制系統(tǒng)廣泛應(yīng)用于石油、電力、交通、國防等關(guān)系到國家和社會穩(wěn)定、經(jīng)濟正常運行的重要領(lǐng)域。智能制造背景下的“工業(yè)互聯(lián)網(wǎng)”、“工業(yè)4.0”、“中國制造2025”等技術(shù)革命,推動著工業(yè)朝著數(shù)字化、網(wǎng)絡(luò)化、開放化、集成化的工業(yè)互聯(lián)方向發(fā)展。高度網(wǎng)絡(luò)化、開放協(xié)議和異構(gòu)組件互聯(lián),帶來了更多的攻擊路徑和攻擊方式,使得網(wǎng)絡(luò)安全問題直接延伸到工業(yè)控制系統(tǒng)中,工控系統(tǒng)面臨更加復(fù)雜的信息安全威脅。
傳統(tǒng)的工業(yè)控制系統(tǒng)網(wǎng)絡(luò)安全解決方案中采用防火墻、IDS、IPS、安全網(wǎng)關(guān)等安全設(shè)備進行被動防護。主動感知預(yù)警技術(shù)的應(yīng)用,豐富了工業(yè)控制系統(tǒng)網(wǎng)絡(luò)安全防護體系。目前國內(nèi)外涌現(xiàn)出一些強大的聯(lián)網(wǎng)工控系統(tǒng)網(wǎng)絡(luò)搜索引擎,如Shodan[1]、Zoomeye[2]、ICS Radar[3]等,能夠發(fā)現(xiàn)互聯(lián)網(wǎng)空間里的工業(yè)控制系統(tǒng)資產(chǎn),但對工業(yè)控制系統(tǒng)的監(jiān)測能力仍然有限。主要表現(xiàn)在:(1)工控系統(tǒng)協(xié)議廣度不夠:協(xié)議支持?jǐn)?shù)量、指紋識別廣度有限,導(dǎo)致一些接入互聯(lián)網(wǎng)的工控系統(tǒng)無法被探知;(2)工控系統(tǒng)探測準(zhǔn)確度不夠:部分工控系統(tǒng)僅記錄簡單的應(yīng)答報文,且部分應(yīng)答報文是錯誤碼;(3)工控系統(tǒng)分析深度不夠:工控系統(tǒng)掃描應(yīng)答報文未進行深度分析,無法對一些特定應(yīng)用進行支撐,如設(shè)備存活性、區(qū)域設(shè)備關(guān)聯(lián)性、潛在應(yīng)用領(lǐng)域等。
聯(lián)網(wǎng)工業(yè)控制系統(tǒng)主動感知預(yù)警技術(shù)研究,首先從分析工業(yè)通信協(xié)議入手,編寫協(xié)議專用掃描探測腳本,提取工控指紋特征,創(chuàng)建工控指紋庫。其次利用快速掃描機制發(fā)現(xiàn)互聯(lián)網(wǎng)空間里的工業(yè)控制系統(tǒng),識別相應(yīng)的系統(tǒng)或設(shè)備種類、型號、操作系統(tǒng)、固件版本等信息,同時深度挖掘系統(tǒng)或設(shè)備開放的其他服務(wù)。最后融合CNVD、CNNVD、CVE及中國網(wǎng)安自主工控安全漏洞庫,分析聯(lián)網(wǎng)工控系統(tǒng)或設(shè)備存在的漏洞情況,對聯(lián)網(wǎng)工控系統(tǒng)進行威脅預(yù)警。
工業(yè)通信協(xié)議種類繁多,不同行業(yè)、不同領(lǐng)域通信協(xié)議差別很大,有的是公有協(xié)議,如:Modbus、IEC60870-5-104等;有的是私有協(xié)議,如:Siemens S7,GE SRTP等。針對公有協(xié)議分析可以參照IEC、GB或HB等協(xié)議標(biāo)準(zhǔn)解析,難度系數(shù)低、準(zhǔn)確度高;而對于私有協(xié)議分析,則需要利用硬件設(shè)備或模擬軟件,搭建工控系統(tǒng)仿真運行環(huán)境,通過抓包工具捕獲數(shù)據(jù)包,對通信報文采用盲識別、協(xié)議逆向等方法進行分析,難度系數(shù)高、準(zhǔn)確度低。本文以Modbus/TCP[4]為例,分析公有協(xié)議的分析方法。
Modbus/TCP是Modbus協(xié)議的網(wǎng)絡(luò)通信標(biāo)準(zhǔn),屬于OSI模型中第七層的應(yīng)用層協(xié)議。RFC1700規(guī)定了用于自動化信息傳輸?shù)腗odbus協(xié)議端口為502,是工業(yè)自動化公司唯一所擁有的常用端口號。Modbus在TCP/IP以太網(wǎng)上傳輸,支持EthernetⅡ和802.3兩種幀格式,如圖1所示,Modbus/TCP數(shù)據(jù)幀包含MBAP報文頭、功能碼和數(shù)據(jù)三部分。
圖1 Modbus/TCP協(xié)議幀格式
MBAP報文頭由TI(傳輸標(biāo)識)、PI(協(xié)議標(biāo)識)、LEN(長度)、UI(單元標(biāo)識)四部分組成,共占7 B?;赥CP/IP協(xié)議的客戶端與服務(wù)器端通信過程中,由客戶端生成相應(yīng)MBAP報文頭信息,服務(wù)器端在應(yīng)答過程中,除LEN重新生成外,其他部分MBAP報文頭復(fù)制客戶端生成值。功能碼(FUNC)分為公共功能碼、用戶定義功能碼、保留功能碼三類,占1 B。
以常用功能碼43(0x2b)讀取設(shè)備標(biāo)識信息為例,對Modbus/TCP報文交互以及協(xié)議分析過程進行詳細說明,如圖2所示。
圖2 Modbus/TCP 讀設(shè)備標(biāo)識應(yīng)用層報文交互解析
通過wireshark抓包工具,捕獲Modbus/TCP讀設(shè)備標(biāo)識應(yīng)用層交互報文,如圖3所示。通過分析可以讀出設(shè)備廠商為:Rockwell Automation Allen-Bradley,產(chǎn)品代碼:180,版本:08.0B。
圖3 Modbus/TCP讀設(shè)備標(biāo)識應(yīng)答報文
在深度分析Modbus/TCP協(xié)議的基礎(chǔ)上,開發(fā)Modbus/TCP協(xié)議專用掃描探測腳本,為互聯(lián)網(wǎng)空間工控系統(tǒng)探測提供方法支撐。該掃描探測腳本中主要包括:客戶端與服務(wù)端的TCP連接、資產(chǎn)請求、業(yè)務(wù)交互、數(shù)據(jù)解析、特征信息提取、TCP關(guān)閉等。
當(dāng)前網(wǎng)絡(luò)搜索引擎存在一些問題,如:采集到的原始報文數(shù)據(jù)不全面,報文解析不徹底,部分資產(chǎn)被遺漏;新探測到的資產(chǎn)無法正常識別廠商等關(guān)鍵資產(chǎn)數(shù)據(jù);能夠識別的資產(chǎn)數(shù)量偏少,識別成功率偏低。通過創(chuàng)建工控系統(tǒng)指紋庫,維護指紋庫字典,利用模糊匹配技術(shù),可以提高資產(chǎn)的識別速度及廣度,能夠獲取到廠商、型號、版本等重要資產(chǎn)數(shù)據(jù),具備靈活性強、易于擴展等特性,解決了聯(lián)網(wǎng)工控系統(tǒng)識別成功率低的問題。
工控系統(tǒng)指紋庫在構(gòu)建過程中,部分公有協(xié)議可以通過向目標(biāo)設(shè)備發(fā)送特定的請求報文,對設(shè)備應(yīng)答信息進行解析,從而得到工控設(shè)備的全面資產(chǎn)信息數(shù)據(jù)。常用工業(yè)通信協(xié)議中通過發(fā)送請求包讀取指紋的方式主要包括:Modbus/TCP、MMS、Ethernet/IP、FINS等,如表1所示。部分公有協(xié)議如IEC60870-5-104、DNP3.0等,則無法通過報文交互的方式獲取相關(guān)設(shè)備廠商、軟件版本等信息,該類工控資產(chǎn)則無法識別廠商、軟件版本,但是協(xié)議本身也是一種指紋特征。
工控系統(tǒng)指紋庫通過對工控通信協(xié)議的交互報文深度分析,封裝工控系統(tǒng)基礎(chǔ)數(shù)據(jù),抽象出設(shè)備的特征參數(shù)值,以類型、廠商名稱、設(shè)備型號作為關(guān)鍵字,設(shè)備特征字符串作為特征值,建立指紋庫。該指紋庫涵蓋工業(yè)控制設(shè)備、系統(tǒng)主機及服務(wù)器、應(yīng)用軟件、智能設(shè)備、網(wǎng)絡(luò)設(shè)備等,如表2所示。
表1 標(biāo)準(zhǔn)協(xié)議請求命令及應(yīng)答信息
表2 工控系統(tǒng)指紋庫對照表
圖4 聯(lián)網(wǎng)工業(yè)控制系統(tǒng)快速掃描機制
目前流行的網(wǎng)絡(luò)掃描工具如Nmap、Zmap、Masscan[5]等,都可以對整個互聯(lián)網(wǎng)空間工控設(shè)備資產(chǎn)情況進行探測。其中Nmap可以發(fā)現(xiàn)存活主機、開發(fā)端口、支持多端口、多網(wǎng)段對目標(biāo)域的掃描,還能進一步識別出端口服務(wù)類型、版本、操作系統(tǒng)等,不僅可以用于掃描TCP協(xié)議端口,也可以用于掃描UDP協(xié)議端口;Masscan在專用硬件網(wǎng)卡設(shè)備及網(wǎng)絡(luò)條件滿足的情況下,可以在3 min內(nèi)掃描全部IPv4地址空間,是目前最快的TCP協(xié)議端口掃描工具,可以用于掃描TCP協(xié)議端口,但是無法掃描UDP協(xié)議端口;Zmap是掃描速度僅次于Masscan的掃描工具,在滿足最大掃描能力的前提條件下,可以在44 min內(nèi)掃描完IPv4地址空間,既可以掃描TCP協(xié)議端口,也可以掃描UDP協(xié)議端口。
針對以上三種常用掃描工具的特點,聯(lián)網(wǎng)工業(yè)控制系統(tǒng)主動感知技術(shù)采用端口存活掃描、資產(chǎn)識別掃描相結(jié)合的快速掃描機制,如圖4所示。首先利用Masscan對IPv4地址空間內(nèi)TCP協(xié)議端口進行探測,利用Zmap對IPv4地址空間內(nèi)UDP協(xié)議端口進行探測,并將相關(guān)探測結(jié)果匯總到端口存活結(jié)果地址庫,完成端口存活性掃描。其次利用Nmap對端口存活性結(jié)果進行資產(chǎn)識別性掃描,同時結(jié)合工控系統(tǒng)指紋庫,發(fā)現(xiàn)目標(biāo)設(shè)備的設(shè)備類型、版本、型號、工控應(yīng)用協(xié)議等信息。
Masscan掃描TCP協(xié)議端口過程中,采用了無狀態(tài)掃描技術(shù),僅發(fā)送了TCP/IP三步握手中SYN包,當(dāng)對端端口存在ACK應(yīng)答時,掃描端才會發(fā)送RST包,主動結(jié)束該連接。當(dāng)以較高發(fā)包率進行掃描探測時,需要考慮組網(wǎng)網(wǎng)絡(luò)設(shè)備的性能,如有防火墻、路由器,則需要考慮防火墻中新建連接數(shù)、并發(fā)連接數(shù)的限制、路由器中內(nèi)存大小等因素。Zmap掃描UDP協(xié)議端口時,需要該端口服務(wù)有應(yīng)答,才能發(fā)現(xiàn)該端口。針對工控系統(tǒng),采用UDP協(xié)議的工控協(xié)議數(shù)量不多,主要包括BACNet、DDP、HART-IP、FFHSE等,在進行工控協(xié)議端口掃描時,需要發(fā)送對應(yīng)工控協(xié)議相關(guān)請求報文探測。
聯(lián)網(wǎng)工業(yè)控制系統(tǒng)經(jīng)過資產(chǎn)識別掃描之后,部分設(shè)備的廠商、產(chǎn)品、版本、協(xié)議、端口、服務(wù)等信息都已經(jīng)被探測出來。從網(wǎng)絡(luò)安全的角度上看,分析當(dāng)前資產(chǎn)中存在的安全漏洞,根據(jù)漏洞的存在狀況、漏洞的危險等級對聯(lián)網(wǎng)工控系統(tǒng)進行威脅預(yù)警,指導(dǎo)政府監(jiān)管部門做好漏洞安全防范具有積極的意義。
目前CNVD、CNNVD是權(quán)威的國家信息安全漏洞共享平臺、國家信息安全漏洞庫,CVE是國際著名的安全漏洞庫,公開的工業(yè)控制系統(tǒng)安全漏洞可以從以上平臺中獲取,如圖5所示。中國電子科技網(wǎng)絡(luò)信息安全有限公司工控安全事業(yè)部是專業(yè)從事工業(yè)控制系統(tǒng)網(wǎng)絡(luò)信息安全的技術(shù)團隊,目前已擁有自主挖掘工控漏洞200多個,且多為零DAY漏洞,融合CNVD、CNNVD、CVE等權(quán)威漏洞庫,形成了聯(lián)網(wǎng)工控系統(tǒng)的專用漏洞庫。
圖5 CNVD上發(fā)布的工控漏洞示例圖
根據(jù)在工控系統(tǒng)漏洞利用過程中所用到的無損檢測方法,采用積極的、非破壞性的辦法來檢驗系統(tǒng)是否存在工控漏洞。在此基礎(chǔ)之上構(gòu)成相應(yīng)的漏洞匹配規(guī)則,形成一套標(biāo)準(zhǔn)的工控系統(tǒng)漏洞檢驗方法,由程序自動進行系統(tǒng)漏洞掃描的分析工作。最終完成對聯(lián)網(wǎng)工控資產(chǎn)的漏洞關(guān)聯(lián)匹配,實現(xiàn)對聯(lián)網(wǎng)工業(yè)控制系統(tǒng)的主動預(yù)警。
為了更加準(zhǔn)確地統(tǒng)計行政區(qū)域內(nèi)聯(lián)網(wǎng)資產(chǎn)情況及安全漏洞威脅情況,引入了IP定位庫來實現(xiàn)對聯(lián)網(wǎng)工業(yè)控制系統(tǒng)的準(zhǔn)確定位。國內(nèi)區(qū)域定位精度支持區(qū)縣級,國外區(qū)域定位精度可支持到市。IP定位的引入,有力地支撐了政府監(jiān)管部門對區(qū)域內(nèi)工業(yè)控制系統(tǒng)安全漏洞情況進行宏觀把握。
通過對聯(lián)網(wǎng)工控系統(tǒng)主動感知預(yù)警技術(shù)研究,實現(xiàn)了對掃描探測腳本的插件式擴充,工控指紋庫、漏洞庫的批量導(dǎo)入,IP定位庫的自動更新、人工校正,自動生成主動感知報表,自動推送威脅報警,為實現(xiàn)國家層面的聯(lián)網(wǎng)工業(yè)控制系統(tǒng)威脅感知預(yù)警平臺提供了強有力的技術(shù)支撐。但是,聯(lián)網(wǎng)工業(yè)控制系統(tǒng)主動感知預(yù)警技術(shù)依賴于專用工控協(xié)議探測腳本的準(zhǔn)確度,尤其是工控私有協(xié)議存在解析識別不能完全覆蓋的風(fēng)險,會存在一定的聯(lián)網(wǎng)工控系統(tǒng)資產(chǎn)及威脅漏報情況。加強對私有協(xié)議研究成果的互通互用,或通過社會力量、第三方共享平臺,實現(xiàn)對私有協(xié)議掃描探測腳本的不斷完善、擴充,快速提升聯(lián)網(wǎng)工控系統(tǒng)的主動感知預(yù)警能力。
[1] Industrial control systems[DB/OL].https://www.shodan.io/explore/category/industrial-control-systems.
[2] 通過ZoomEye搜索世界各地工業(yè)控制系統(tǒng)[DB/OL].https://www.zoomeye.org/topic?id=ics_project.
[3] 工業(yè)互聯(lián)網(wǎng)雷達[DB/OL].https://radar.winicssec.com/html/map/china_map.html.
[4] GB/T 19582.3-2008 基于Modbus協(xié)議的工業(yè)自動化網(wǎng)絡(luò)規(guī)范 第3部分:Modbus協(xié)議在TCP/IP上的實現(xiàn)指南[S]. 北京:中國標(biāo)準(zhǔn)出版社,2008.
[5] 冉世偉. 基于Masscan漏洞掃描技術(shù)的研究[D]. 天津:南開大學(xué),2016.