引用格式:宗學軍,隋一凡,王國剛,等.基于生成對抗網(wǎng)絡的工控協(xié)議模糊測試研究[J].網(wǎng)絡安全與數(shù)據(jù)治理,2024,43(7):13-20.
引言
工業(yè)控制系統(tǒng)已廣泛應用于能源、市政、水利、鐵路、石油石化等各個控制領域,是工業(yè)穩(wěn)定運行不可或缺的重要組成部分。工業(yè)控制協(xié)議(Industrial Control Protocols,ICPs)是工業(yè)控制系統(tǒng)(Industrial Control System,ICS)中傳遞信息的通道,其安全性關系到整個系統(tǒng)的安全穩(wěn)定運行。隨著工業(yè)4.0[1]時代的到來,ICS中的設備也開始接入互聯(lián)網(wǎng)。IT技術在提高生產(chǎn)力和帶來便利性的同時,也給ICS行業(yè)帶來了許多新的威脅。早期的工業(yè)控制系統(tǒng)處于物理隔離的狀態(tài),生產(chǎn)環(huán)境相對封閉。因此,在ICPs設計之初,更多地考慮協(xié)議的實時性、高效性和便利性,而沒有考慮相關的網(wǎng)絡安全風險,忽略了網(wǎng)絡通信的基本安全屬性。然而,隨著工業(yè)控制系統(tǒng)大量使用基于IP的控制協(xié)議,或將傳統(tǒng)的基于串行的協(xié)議遷移到TCP/IP的應用層,工業(yè)控制系統(tǒng)開始暴露于互聯(lián)網(wǎng)。2010年的Stuxnet[2]、2014年的DrongFly[3]及其演變標志著工業(yè)控制協(xié)議已經(jīng)是黑客主要的攻擊對象之一。因此,需要對工業(yè)控制協(xié)議展開漏洞挖掘研究確保其安全性,挖掘潛在漏洞并及時修復,確保工業(yè)控制系統(tǒng)的安全運行。近幾年國內(nèi)外的一系列研究表明,模糊測試能夠作為挖掘ICPs潛在威脅的有效手段。相較于其他漏洞挖掘方法如靜態(tài)分析、動態(tài)分析、滲透測試,模糊測試具備自動化、高覆蓋、成本低等優(yōu)點。模糊測試最早由Milter[4]于20世紀90年代提出,起初應用于軟件測試領域,后廣泛應用于網(wǎng)絡安全領域,通過模糊測試可以找到的一些漏洞類型,包括跨站點腳本、緩沖區(qū)溢出和拒絕服務等漏洞。模糊測試流程通過向目標提供非預期輸入并監(jiān)視異常結果來發(fā)現(xiàn)漏洞,模糊測試工作主要由測試用例生成、測試用例運行、目標程序監(jiān)測、異常分析(如圖1所示)四個階段組成,模糊測試的核心在于測試用例的構建?,F(xiàn)有面向ICPs的模糊測試工具大部分都依賴于協(xié)議語法語義,根據(jù)協(xié)議規(guī)范來指導測試用例的生成,比如以Peach[5]、AFL[6]、Sulley[7]為首的模糊器等,通過預設格式生成測試用例。然而大多數(shù)ICPs協(xié)議都是不公開的專有協(xié)議,而想了解協(xié)議的語法和語義就需要對ICPs通信的數(shù)據(jù)流跟蹤和逆向分析,這種方式耗時費力且需要大量資源。隨著神經(jīng)網(wǎng)絡被應用于處理工控過程的復雜流量[8-9],以及生成滿足要求的模糊測試輸入,逐漸擺脫對協(xié)議規(guī)范的依賴。為了構建高效的測試用例,賴英旭等[10]使用循環(huán)神經(jīng)網(wǎng)絡(RNN)學習協(xié)議規(guī)范,提出了反樣本的測試用例生成方法,并對Modbus/TCP做了實驗,提高測試用例的接受率;趙輝等[11]提出了一種稱為SeqFuzzer的模糊測試框架,該框架采用長短期記憶網(wǎng)絡LSTM作為Seq2Seq的編碼器和解碼器,能夠處理有狀態(tài)的時間特征,并對EhterCAT協(xié)議進行了測試,發(fā)現(xiàn)了幾個漏洞;寧博偉等[12]基于無監(jiān)督學習和深度神經(jīng)網(wǎng)絡,將模糊測試與協(xié)議逆向工程結合,使用投票專家算法推斷協(xié)議邊界,結合具有注意力機制的雙向長短期記憶網(wǎng)絡提取格式和語義特征;其中尤其以結合生成對抗網(wǎng)絡(GAN)的模糊測試表現(xiàn)最為出色,由于生成對抗網(wǎng)絡在圖像生成領域中出色的學習能力,且生成器和鑒別器的組成結構,讓胡志成等[13]使用RNN、LSTM作為生成對抗網(wǎng)絡的生成器,卷積神經(jīng)網(wǎng)絡(CNN)作為鑒別器,提出了一種自動化智能模糊測試框架GANFuzz。此外,與GAN相關的優(yōu)化方法如SeqGAN等[14]也與ICPs模糊測試結合。目前大多數(shù)研究工作傾向于將神經(jīng)網(wǎng)絡與模糊測試結合,構建改進的模糊測試框架,然而上述方法太過于依賴單一神經(jīng)網(wǎng)絡,缺少對工控協(xié)議的特殊考慮和針對性的功能設計,缺少多種工控協(xié)議的能力。本文提出一種將改進的生成對抗網(wǎng)絡WGAN-GP(Wasserstein Generative Adversarial Network with Gradient Penalty)應用于模糊測試用例生成的方法,結合統(tǒng)計語言概率模型N-gram修正訓練結果,在上述基礎上設計了面向多種ICPs的通用模糊測試框架GPFuzz。實驗表明,該框架在多個評價指標上優(yōu)于其他方法,為工業(yè)控制系統(tǒng)提供一種高效、通用的安全性評估方法,提升系統(tǒng)整體的安全性。
本文詳細內(nèi)容請下載:
http://ihrv.cn/resource/share/2000006086
作者信息:
宗學軍1,2,隋一凡1,2,王國剛1,2,寧博偉2,3,何戡1,2,連蓮1,2,孫逸菲1,2
(1.沈陽化工大學信息工程學院,遼寧沈陽110142;
2.遼寧省石油化工行業(yè)信息安全重點實驗室,遼寧沈陽110142;
3.沈陽工業(yè)大學人工智能學院,遼寧沈陽110870)