亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于模糊測試的GOOSE協(xié)議解析漏洞挖掘方法

        2022-04-26 09:17:56劉林彬苗泉強(qiáng)李俊娥
        中國電力 2022年4期
        關(guān)鍵詞:測試用例字段測控

        劉林彬,苗泉強(qiáng),李俊娥

        (1. 空天信息安全與可信計(jì)算教育部重點(diǎn)實(shí)驗(yàn)室(武漢大學(xué) 國家網(wǎng)絡(luò)安全學(xué)院),湖北 武漢 430072;2. 光電對抗測試評估技術(shù)重點(diǎn)實(shí)驗(yàn)室,河南 洛陽 471000)

        0 引言

        電網(wǎng)形態(tài)正在向以新能源為主體的新型電力系統(tǒng)演進(jìn)。新能源大規(guī)模并網(wǎng)、億萬級智能化終端設(shè)備大量接入,使系統(tǒng)對通信技術(shù)的依賴程度日趨增強(qiáng),廣泛分布的新能源場站也為攻擊者入侵電力系統(tǒng)提供了更多途徑。新型電力系統(tǒng)以數(shù)據(jù)為核心生產(chǎn)要素,實(shí)現(xiàn)源網(wǎng)荷儲(chǔ)各環(huán)節(jié)數(shù)據(jù)融合,其中發(fā)電側(cè)要達(dá)到“全面可觀、精確可測、高度可控”的目標(biāo)。光伏、儲(chǔ)能等分布式能源系統(tǒng)和風(fēng)電場等新能源場站依據(jù)IEC 61850系列標(biāo)準(zhǔn)建設(shè)站內(nèi)監(jiān)控系統(tǒng)[1-3],實(shí)現(xiàn)大量終端設(shè)備的狀態(tài)監(jiān)測、遙控和數(shù)據(jù)測量。

        IEC 61850標(biāo)準(zhǔn)使不同廠家的智能電子設(shè)備(intelligent electric device,IED)之間實(shí)現(xiàn)互相操作和信息共享,其中面向通用對象變電站事件(generic object-oriented substation event,GOOSE)協(xié)議主要用于間隔層和過程層多個(gè)IED間實(shí)時(shí)信息的可靠傳遞,包括開關(guān)位置、跳合閘命令、告警信息、間隔互鎖等[4]。由于使用組播通信且沒有加密、認(rèn)證等安全措施,攻擊者可以輕易篡改或偽造GOOSE報(bào)文,使IED誤動(dòng)、拒動(dòng)或拒絕服務(wù),對繼電保護(hù)、間隔層邏輯互鎖等環(huán)節(jié)造成嚴(yán)重安全威脅[5-8]。在智能變電站實(shí)驗(yàn)室環(huán)境下的實(shí)際測試也顯示,畸形報(bào)文攻擊很容易造成嵌入式終端拒絕服務(wù)。目前DL/T 860.10—2006等一致性測試標(biāo)準(zhǔn)主要檢測IED是否符合通信標(biāo)準(zhǔn),而沒有測試IED對畸形報(bào)文的處理能力[9]。因此研究終端上線前的安全性測試方法,挖掘其GOOSE協(xié)議解析程序可能存在的漏洞,對于新能源場站的安全運(yùn)行是十分必要的。

        模糊測試是一種基于缺陷注入的自動(dòng)化漏洞挖掘技術(shù)[10],通過構(gòu)造畸形的輸入數(shù)據(jù)使得被測目標(biāo)發(fā)生異常,從而發(fā)現(xiàn)被測試目標(biāo)存在的安全問題。針對傳統(tǒng)網(wǎng)絡(luò)協(xié)議的模糊測試研究目前已經(jīng)比較成熟,出現(xiàn)了Peach、Sulley和Spike等成熟的模糊測試框架。然而,由于工控協(xié)議種類繁多,不同廠商對協(xié)議有不同的實(shí)現(xiàn)方式[11],且工控設(shè)備多為嵌入式終端,計(jì)算和存儲(chǔ)能力較弱,傳統(tǒng)網(wǎng)絡(luò)協(xié)議的模糊測試方法無法直接適用于工控協(xié)議。

        針對工控協(xié)議的模糊測試研究也取得了一定的成果。Wurldtech公司提出BlackPeer框架支持對 Modbus TCP協(xié)議棧的模糊測試[12],ProFuzz專門針對Profinet協(xié)議族進(jìn)行測試[13],Devarajan在Sulley基礎(chǔ)上實(shí)現(xiàn)了對間控制中心通信協(xié)議(intercontrol center communications protocol,ICCP)、Modbus、分布式網(wǎng)絡(luò)協(xié)議 3(distributed network protocol 3,DNP3)等工控協(xié)議的模糊測試[14],文獻(xiàn)[15-17]基于Peach實(shí)現(xiàn)了Modbus TCP和S7協(xié)議模糊測試系統(tǒng),文獻(xiàn)[18]考慮工控協(xié)議字段依賴性特點(diǎn)提出一種跨字段的制造報(bào)文規(guī)范(manufacturing message specification,MMS)協(xié)議模糊測試方法,文獻(xiàn)[19-20]分別提出了針對工控系統(tǒng)和工控協(xié)議的通用漏洞挖掘框架。同時(shí),國內(nèi)外也出現(xiàn)了一些商用平臺(tái)支持工控協(xié)議的模糊測試。國內(nèi),威努特公司自研的工控漏洞挖掘平臺(tái)[21]可對Modbus、IEC 104、IEC 61850等工控協(xié)議進(jìn)行模糊測試。國外,美國Mu Dynamic公司開發(fā)的測試組件Mu[22]支持 Modbus TCP、DNP3和 IEC 61850等常見工控協(xié)議。然而,上述研究成果部分基于現(xiàn)有模糊測試框架進(jìn)行改進(jìn),缺乏對工控協(xié)議的針對性設(shè)計(jì),或是未充分考慮嵌入式終端計(jì)算和存儲(chǔ)能力的限制;此外,上述研究中的模糊測試異常監(jiān)測方法大多需要傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)的支持,無法適用于GOOSE和采樣值(sampled value,SV)這類不使用TCP/IP的工控協(xié)議。目前針對GOOSE協(xié)議的模糊測試研究較少,威努特的工控漏洞挖掘平臺(tái)雖然支持GOOSE協(xié)議的測試,但僅針對協(xié)議的范式語法,測試深度不夠,挖掘的漏洞類型也相對有限。

        因此,本文基于模糊測試提出GOOSE協(xié)議解析漏洞挖掘方法,在對GOOSE報(bào)文格式進(jìn)行深入解析的基礎(chǔ)上,給出基于報(bào)文字段類型、ASN.1編碼方式和比特翻轉(zhuǎn)的報(bào)文變異策略,以及針對嵌入式終端和GOOSE協(xié)議傳輸機(jī)制的異常監(jiān)測方法,并在智能變電站實(shí)驗(yàn)室環(huán)境中進(jìn)行了測試,驗(yàn)證了本文所提方法的有效性,并提出相應(yīng)的防范建議。

        1 GOOSE報(bào)文變異方法

        模糊測試的測試用例產(chǎn)生方式可以分為生成和變異兩大類。本文采用變異方式構(gòu)造測試用例,通過捕獲網(wǎng)絡(luò)中正常通信的GOOSE報(bào)文,根據(jù)變異策略修改報(bào)文中的數(shù)據(jù)值, 來構(gòu)造測試用例。

        1.1 GOOSE協(xié)議報(bào)文結(jié)構(gòu)、TLV介紹

        與其他大多數(shù)工控協(xié)議相比,GOOSE協(xié)議的特殊之處在于,GOOSE報(bào)文直接封裝到以太網(wǎng)介質(zhì)訪問控制(medium access control,MAC)幀中傳輸,沒有使用TCP/IP協(xié)議。GOOSE報(bào)文的封裝方式如圖1所示,其中應(yīng)用協(xié)議數(shù)據(jù)單元(application protocol data unit,APDU)包括可視化字符串類型、32位無符號(hào)整型、復(fù)合類型和其他類型字段。

        圖1 GOOSE報(bào)文的封裝方式Fig. 1 GOOSE message encapsulation mode

        GOOSE報(bào)文的APDU使用ASN.1編碼。ASN.1中基本編碼規(guī)則的格式是標(biāo)識(shí)-長度-值(tag-lengthvalue,TLV)三元組[23],其中Tag、Length和Value都是8位組,Value可根據(jù)需要再次構(gòu)造為一個(gè)三元組,Value的類型在Tag中標(biāo)識(shí),Value包含的8位組個(gè)數(shù)在Length中定義。APDU域中各個(gè)字段的TLV格式詳見圖1,每個(gè)字段都有一個(gè)固定的Tag。

        1.2 GOOSE報(bào)文變異策略

        基于變異的測試用例構(gòu)造方法,通?;谡5妮斎霐?shù)據(jù)(如網(wǎng)絡(luò)數(shù)據(jù)包),依據(jù)一定的漏洞知識(shí)來變異其中的部分?jǐn)?shù)據(jù)來構(gòu)造測試用例。本文分別基于GOOSE報(bào)文字段類型、ASN.1編碼方式和比特翻轉(zhuǎn)設(shè)計(jì)變異策略。

        1.2.1 基于 GOOSE 報(bào)文字段類型的變異策略

        為了不破壞以太網(wǎng)幀的基本結(jié)構(gòu),確保報(bào)文在以太網(wǎng)中正常傳輸,報(bào)文變異主要在APDU域內(nèi)。根據(jù)傳統(tǒng)網(wǎng)絡(luò)協(xié)議中常見的漏洞類型(緩存區(qū)溢出漏洞、整數(shù)漏洞和格式化字符串漏洞等)和GOOSE報(bào)文的特點(diǎn),本文提出的基于GOOSE報(bào)文字段類型的變異策略包括數(shù)值變異策略、字符串變異策略和allData字段變異策略。

        (1)數(shù)值變異策略。數(shù)值變異策略針對整數(shù)漏洞,具體包括整數(shù)溢出、符號(hào)錯(cuò)誤和截?cái)噱e(cuò)誤。利用整數(shù)漏洞,攻擊者可以實(shí)施諸如拒絕服務(wù)等攻擊行為。對于報(bào)文中的整型字段,重點(diǎn)用整數(shù)邊界值對其進(jìn)行變異,另外考慮到變異的隨機(jī)性,隨機(jī)數(shù)也應(yīng)作為變異選項(xiàng)。數(shù)值變異策略如表1所示。

        表1 數(shù)值變異策略Table 1 Numerical mutation strategy

        (2)字符串變異策略。對于字符串類型字段,本文采用了幾種常見且容易觸發(fā)漏洞的變異方式,其中超長字符串容易觸發(fā)堆溢出漏洞,插入特殊字符容易使終端在解析非預(yù)期字符時(shí)出現(xiàn)異常,包含格式化字符串的輸入可能會(huì)導(dǎo)致應(yīng)用進(jìn)程崩潰。另外,在單一GOOSE報(bào)文中,只使用了一種G O O S E服務(wù),報(bào)文中的G o I D、gocbRef、dataSet等字段值在變電站配置描述文件(substation configuration description,SCD)中定義,該文件描述了所有IED的通信參數(shù)配置信息。因此,必須對在SCD文件中定義了而未在當(dāng)前報(bào)文字段中使用的正常值進(jìn)行測試。字符串變異策略如表2所示。

        表2 字符串變異策略Table 2 String mutation strategy

        (3)allData字段變異策略。allData字段是GOOSE協(xié)議中定義的復(fù)合數(shù)據(jù)類型字段,數(shù)據(jù)集中數(shù)據(jù)成員類型可以是整形、字符串和布爾量等,并且可以嵌套復(fù)合數(shù)據(jù),數(shù)據(jù)集成員的個(gè)數(shù)在numDatSetEntries字段中表示。正常情況下,allData字段的嵌套層數(shù)是有限的,構(gòu)造多層嵌套的allData數(shù)據(jù)集成員,可以測試終端的解析能力。另外,刪除或增加一定數(shù)量的數(shù)據(jù)集成員,使成員個(gè)數(shù)與numDatSetEntries值不一致,將可能導(dǎo)致終端錯(cuò)誤解析allData字段以外的其他數(shù)據(jù)或者丟失部分?jǐn)?shù)據(jù)集成員,引起解析異常。allData字段變異策略如表3所示。

        表3 allData字段變異策略Table 3 Mutation strategy of allData field

        1.2.2 基于 ASN.1編碼方式的變異策略

        ASN.1編碼方式使得應(yīng)用層的數(shù)據(jù)具有統(tǒng)一的表示方法,基于ASN.1編碼方式的變異策略,可以測試終端能否處理非正常編碼數(shù)據(jù)。Tag值變異,可能導(dǎo)致解析字段值的時(shí)候按照錯(cuò)誤的類型進(jìn)行解析,而Length值變異,使得在解析字段值的時(shí)候,可能將下一個(gè)TLV的部分?jǐn)?shù)據(jù)作為本字段的數(shù)據(jù)進(jìn)行解析,或者只解析部分Value數(shù)據(jù)?;贏SN.1編碼的變異策略如表4所示。

        表4 基于ASN.1編碼方式的變異策略Table 4 Mutation strategy based on ASN.1 encoding

        1.2.3 基于比特翻轉(zhuǎn)的變異策略

        比特翻轉(zhuǎn)是指數(shù)據(jù)中的一個(gè)或多個(gè)比特發(fā)生位翻轉(zhuǎn)如1變?yōu)?或0變?yōu)?,這種現(xiàn)象在中央處理器(CPU)工作不穩(wěn)定或者通信信道受到干擾的情況下容易發(fā)生。發(fā)生比特翻轉(zhuǎn)后的數(shù)據(jù),具有觸發(fā)未知漏洞的可能性?;诒忍胤D(zhuǎn)的變異策略如表5所示,每個(gè)變異規(guī)則按“bitflip 翻轉(zhuǎn)量/步長”的形式表示。

        表5 基于比特翻轉(zhuǎn)的變異策略Table 5 Mutation strategy based on bit flip

        1.3 GOOSE測試用例構(gòu)造方法

        GOOSE測試用例利用1.2節(jié)提出的變異策略對解析后的GOOSE報(bào)文字段進(jìn)行變異后產(chǎn)生。本文設(shè)計(jì)了單字段變異和多字段組合變異2種方法來構(gòu)造GOOSE測試用例。

        (2)多字段組合變異。根據(jù)GOOSE協(xié)議規(guī)約中字段間的關(guān)聯(lián)關(guān)系確定多字段組合方式,如GOOSE接收機(jī)制中接收GOOSE報(bào)文后,關(guān)聯(lián)檢查goID、gocbRef、dataSet和confRev等參數(shù)是否匹配,根據(jù)stNum和sqNum關(guān)聯(lián)比較,判斷接收的報(bào)文是重傳報(bào)文還是變位報(bào)文;版本配置號(hào)字段confRev表示數(shù)據(jù)集引用名字段dataSet配置改變次數(shù);當(dāng)dataSet字段為NULL時(shí),ndsCom字段值應(yīng)為TRUE,表示此控制塊需要進(jìn)一步配置。基于此可確定的多字段組合至少包括(goID,gocbRef,dataSet,confRev)(stNum,sqNum)(confRev,dataSet)和(dataSet,ndsCom)。

        多字段組合變異在單字段變異之后進(jìn)行,首先排除單字段變異導(dǎo)致目標(biāo)設(shè)備異常帶來的影響。因此,在多字段組合變異之前,使用集合記錄所有引起目標(biāo)設(shè)備異常的測試用例所采用的變異操作。每個(gè)多字段組合包含個(gè) 字段,對于字段,其單字段變異所使用的變異操作集合為。在多字段組合變異中,可使用的變異操作集合為多字段組合的變異操作集合為,對每個(gè)多字段組合,逐一使用組合變異操作進(jìn)行變異,每次組合變異產(chǎn)生一個(gè)測試用例。

        2 電網(wǎng)嵌入式終端異常監(jiān)測方法

        傳統(tǒng)網(wǎng)絡(luò)協(xié)議模糊測試中常用的異常檢測手段主要有基于返回信息的異常分析、第三方調(diào)試器監(jiān)控和日志記錄跟蹤3種方法[11]。但由于GOOSE協(xié)議是訂閱發(fā)布式,非請求應(yīng)答式,故不會(huì)有返回信息。另外,在電網(wǎng)嵌入式終端上安裝第三方調(diào)試程序并不可行,且由于計(jì)算和存儲(chǔ)等能力受限,難以對嵌入式終端的異常狀態(tài)進(jìn)行日志記錄與審計(jì)。為此,本文提出基于GOOSE心跳報(bào)文和系統(tǒng)運(yùn)行信息的異常監(jiān)測方法,利用GOOSE協(xié)議的傳輸機(jī)制和終端在運(yùn)行過程中的可觀測的狀態(tài)信息進(jìn)行異常監(jiān)測,而無須在終端上安裝額外的監(jiān)測程序。

        2.1 基于心跳報(bào)文的異常監(jiān)測方法

        GOOSE協(xié)議使用一種時(shí)間逐漸加長的重傳機(jī)制來保證通信可靠性。報(bào)文發(fā)送過程中變位報(bào)文和心跳報(bào)文結(jié)合,傳輸機(jī)制如圖2所示。當(dāng)新的事件發(fā)生,先發(fā)送第一幀報(bào)文,再發(fā)送兩次重傳報(bào)文,此時(shí)的最短重傳時(shí)間為T1,隨后重傳時(shí)間T2、T3逐漸加長,分別以T2和T3的間隔重傳一次報(bào)文,最后重傳時(shí)間增至最大值T0,傳輸達(dá)到穩(wěn)態(tài)。穩(wěn)態(tài)情況下持續(xù)重傳報(bào)文,直到新事件發(fā)生。GOOSE告警機(jī)制規(guī)定:在2倍允許生存時(shí)間內(nèi)(一般為4T0)沒有收到下一幀重傳報(bào)文,則判斷通信中斷。在實(shí)際的智能變電站中T0通常取3 s或5 s,根據(jù)此機(jī)制,當(dāng)4T0時(shí)間內(nèi)沒有接收到被測終端的心跳報(bào)文時(shí),則判斷被測終端發(fā)生異常導(dǎo)致通信中斷。

        圖2 GOOSE傳輸機(jī)制Fig. 2 GOOSE transmission mechanism

        2.2 基于系統(tǒng)運(yùn)行信息的異常監(jiān)測方法

        基于心跳報(bào)文的異常監(jiān)測方法適用于被測終端發(fā)生如宕機(jī)等嚴(yán)重異?,F(xiàn)象。實(shí)際中,還存在其他異?,F(xiàn)象,如通信模塊異常、進(jìn)程中斷等,這些情況下終端的心跳報(bào)文依然正常,此時(shí)則需要依據(jù)下列系統(tǒng)運(yùn)行信息進(jìn)行輔助監(jiān)測。

        (1)數(shù)據(jù)采集與監(jiān)控系統(tǒng)(supervisory control and data acquisition,SCADA)后臺(tái)告警信息。位于智能變電站站控層的SCADA系統(tǒng)對現(xiàn)場的運(yùn)行設(shè)備進(jìn)行監(jiān)視和控制,并提供各類信號(hào)報(bào)警功能。

        (2)設(shè)備操作面板告警信息。智能變電站中測控裝置等設(shè)備通常配置了一塊操作面板,提供設(shè)備操作、設(shè)備狀態(tài)信息查看和異常告警等功能。

        (3)設(shè)備指示燈告警。變電站所有設(shè)備都具有“運(yùn)行”和“告警”等指示燈,可用于異常判斷。

        3 GOOSE協(xié)議解析漏洞挖掘系統(tǒng)架構(gòu)與測試流程

        3.1 系統(tǒng)架構(gòu)

        GOOSE協(xié)議解析漏洞挖掘系統(tǒng)架構(gòu)如圖3所示,包含的主要功能模塊如下。

        圖3 GOOSE協(xié)議解析漏洞挖掘系統(tǒng)架構(gòu)Fig. 3 Architecture of GOOSE protocol parsing vulnerabilities mining system

        (1)報(bào)文捕獲模塊:捕獲過程層網(wǎng)絡(luò)中被測終端接收的GOOSE報(bào)文,以.pcap格式存儲(chǔ),作為報(bào)文樣本構(gòu)造模塊的輸入。

        (2)報(bào)文樣本構(gòu)造模塊:解析存儲(chǔ)的GOOSE報(bào)文字段值,根據(jù)GOOSE協(xié)議規(guī)范構(gòu)造報(bào)文樣本。

        (3)報(bào)文變異模塊:包含3個(gè)變異器,每個(gè)變異器都有對外接口,以供測試用例構(gòu)造模塊調(diào)用。

        (4)測試用例構(gòu)造模塊:利用報(bào)文變異模塊提供的接口對報(bào)文樣本進(jìn)行單字段和多字段變異,構(gòu)造測試用例集合,以1 s的間隔發(fā)送至被測終端,同時(shí)維護(hù)一個(gè)暫存已發(fā)送測試用例的報(bào)文隊(duì)列。

        (5)異常監(jiān)測模塊:結(jié)合心跳報(bào)文和系統(tǒng)運(yùn)行信息監(jiān)測被測終端異常情況,若模塊監(jiān)測到心跳報(bào)文異常,自動(dòng)存儲(chǔ)引起異常的測試用例,若終端面板或者監(jiān)控后臺(tái)顯示異常,則需手動(dòng)存儲(chǔ)。存儲(chǔ)引起異常的測試用例之前,以10 s的間隔重新發(fā)送隊(duì)列中的報(bào)文,若被測終端再次發(fā)生異常,則準(zhǔn)確定位到引起異常的測試用例。

        3.2 測試流程

        使用本文所提出的GOOSE協(xié)議解析漏洞挖掘方法進(jìn)行實(shí)驗(yàn)測試的流程如圖4所示。

        圖4 測試流程Fig. 4 Flowchart of test

        (1)測試準(zhǔn)備階段,分析SCD文件,確定被測終端發(fā)布和訂閱的GOOSE服務(wù),將被測終端訂閱的GOOSE報(bào)文作為樣本報(bào)文,發(fā)布的GOOSE報(bào)文作為心跳報(bào)文,利用網(wǎng)絡(luò)捕包工具分析樣本報(bào)文的組播MAC地址和心跳報(bào)文的源MAC地址。

        (2)測試執(zhí)行階段,使用本文設(shè)計(jì)的模糊測試系統(tǒng)根據(jù)步驟(1)中記錄的樣本報(bào)文組播MAC地址捕獲樣本報(bào)文,執(zhí)行模糊測試,系統(tǒng)自動(dòng)完成樣本報(bào)文的解析和變異,構(gòu)造測試用例發(fā)送至待測終端,系統(tǒng)自身維護(hù)一個(gè)30個(gè)報(bào)文的序列,利用第2節(jié)所提出的異常監(jiān)測方法監(jiān)測被測終端的運(yùn)行情況。

        (3)異常處理階段,若發(fā)現(xiàn)被測終端出現(xiàn)異常,則重新發(fā)送當(dāng)前已發(fā)送報(bào)文序列,觀測設(shè)備是否再次發(fā)生異常,并記錄再次引起異常的測試用例,以便進(jìn)行詳細(xì)分析。

        4 實(shí)驗(yàn)與分析

        4.1 實(shí)驗(yàn)環(huán)境

        為驗(yàn)證本文所提出模糊測試方法能否有效挖掘電網(wǎng)嵌入式終端在解析GOOSE協(xié)議時(shí)存在的漏洞,及系統(tǒng)架構(gòu)與測試流程的合理性,本文實(shí)現(xiàn)了圖3所示模糊測試系統(tǒng),并按照3.2節(jié)的測試流程,在依據(jù)IEC 61850“三層兩網(wǎng)”結(jié)構(gòu)建設(shè)的智能變電站實(shí)驗(yàn)室環(huán)境中進(jìn)行了測試。如圖5所示的實(shí)驗(yàn)拓?fù)浣Y(jié)構(gòu)中,監(jiān)控主機(jī)運(yùn)行SCADA系統(tǒng),可監(jiān)控各個(gè)設(shè)備的運(yùn)行狀態(tài),并向間隔層測控裝置下發(fā)MMS控制命令報(bào)文控制刀閘動(dòng)作。位于間隔層的測控裝置接收MMS控制命令報(bào)文,并向過程層智能終端發(fā)送GOOSE控制命令。位于過程層的智能終端執(zhí)行控制命令,直接控制刀閘,并向測控裝置上送刀閘的狀態(tài)信息。模糊測試主機(jī)通過光電轉(zhuǎn)換器接入過程層交換機(jī)的鏡像端口。本實(shí)驗(yàn)選擇測控裝置和智能終端作為模糊測試目標(biāo),它們代表了GOOSE通信中兩類最重要的終端。

        圖5 實(shí)驗(yàn)系統(tǒng)拓?fù)銯ig. 5 Topology of experiment system

        經(jīng)過查詢SCD文件,該測控裝置和智能終端之間GOOSE服務(wù)的“發(fā)布-訂閱”關(guān)系如圖6所示。其中,智能終端訂閱了測控裝置發(fā)布的GOOSE 0 x1053服務(wù),測控裝置訂閱了智能終端發(fā)布的 GOOSE 0 x104 E 服務(wù)。

        圖6 智能終端和測控裝置“發(fā)布-訂閱”關(guān)系Fig. 6“Publish-subscribe” diagram of intelligent terminal and measurement and control equipment

        4.2 測試結(jié)果

        對測控裝置和智能終端的測試結(jié)果如表6所示,本次測試共發(fā)送GOOSE測試用例18895個(gè),每種類型變異策略所對應(yīng)的測試用例數(shù)量統(tǒng)計(jì)如表7所示,測試共耗時(shí)將近6 h。

        表6 測控裝置和智能終端的模糊測試結(jié)果Table 6 Fuzzing results of measurement and control equipment and intelligent terminal

        表7 測試用例數(shù)量Table 7 The number of test cases

        (1)測控裝置測試結(jié)果。對測控裝置進(jìn)行模糊測試時(shí),觀察到監(jiān)控后臺(tái)和測控裝置操作面板上出現(xiàn)“GOOSE網(wǎng)中斷”告警,如圖7和圖8所示。此時(shí),監(jiān)控后臺(tái)下發(fā)刀閘開合指令后顯示“執(zhí)行失敗”,但刀閘狀態(tài)已發(fā)生預(yù)期變化。若手動(dòng)開合刀閘,不能在監(jiān)控后臺(tái)觀測到刀閘狀態(tài)變化。測控裝置重啟后,功能恢復(fù)正常。

        圖7 監(jiān)控后臺(tái)“GOOSE網(wǎng)中斷”告警信號(hào)Fig. 7“GOOSE network interruption” alarm signals of the monitoring system

        圖8 操作面板“GOOSE網(wǎng)中斷”告警信號(hào)Fig. 8“GOOSE network interruption” alarm signals of operation panel

        (2)智能終端測試結(jié)果。對智能終端進(jìn)行模糊測試時(shí),觀察到監(jiān)控后臺(tái)出現(xiàn)“GOOSE網(wǎng)中斷”告警,如圖7所示,智能終端面板上“運(yùn)行燈”滅,“告警燈”亮,其他指示燈均顯示異常,如圖9所示。此時(shí),監(jiān)控后臺(tái)下發(fā)刀閘開合指令后顯示“執(zhí)行失敗”,刀閘狀態(tài)未發(fā)生預(yù)期變化。若手動(dòng)進(jìn)行刀閘開合,可以在監(jiān)控后臺(tái)觀測到刀閘狀態(tài)變化。智能終端重啟后,功能恢復(fù)正常。

        圖9 智能終端指示燈異常Fig. 9 Abnormal indicator light of intelligent terminal

        4.3 結(jié)果分析

        分析測試結(jié)果之前,需要了解變電站綜合自動(dòng)化系統(tǒng)中的遙控功能,一次遙控操作如圖10所示。

        圖10 遙控流程Fig. 10 Flowchart of remote control

        4.3.1 測控裝置測試結(jié)果分析

        本文對測控裝置進(jìn)行模糊測試時(shí)使用的樣本報(bào)文為 GOOSE 0 x104 E,此報(bào)文由智能終端發(fā)送給測控裝置,用于上送刀閘變位信息。經(jīng)調(diào)研,該測控裝置采用模塊化設(shè)計(jì),此業(yè)務(wù)報(bào)文由智能開入模塊接收并處理。畸形報(bào)文導(dǎo)致智能開入模塊發(fā)生異常,使得測控裝置不能正確接收智能終端上送的刀閘變位信息,而監(jiān)控后臺(tái)此時(shí)接收到的仍然是遙控命令執(zhí)行前的狀態(tài)信息,因此在將變位信息與遙控命令作對比時(shí)判斷為“執(zhí)行失敗”。但由于測控裝置的其他功能模塊工作正常,監(jiān)控后臺(tái)下發(fā)的遙控執(zhí)行命令被正常處理,刀閘狀態(tài)發(fā)生變化。實(shí)際運(yùn)行中,若測控裝置受到此類畸形報(bào)文攻擊,監(jiān)控后臺(tái)將不能正常觀測一次設(shè)備的正確狀態(tài),影響運(yùn)維人員的判斷和操作,并且此故障狀態(tài)僅能通過重啟測控裝置解除,可能造成更大的損失。

        圖11 a)為本次測試使用的樣本報(bào)文中all-Data數(shù)據(jù)集字段,包含24個(gè)數(shù)據(jù),數(shù)據(jù)類型包括bit-string(位串)和utc-time(UTC時(shí)間)。在本次測試中,發(fā)現(xiàn)引起測控裝置異常的畸形報(bào)文總共有3個(gè),分別由allData數(shù)據(jù)集中第17、21、23個(gè)數(shù)據(jù)變異而來,均為bi-string類型。圖11 b)為樣本報(bào)文的allData數(shù)據(jù)集字段第23個(gè)數(shù)據(jù)發(fā)生變異得到的畸形報(bào)文。具體為該數(shù)據(jù)第一個(gè)字節(jié)的最低一位比特發(fā)生翻轉(zhuǎn),由原本的“x84”變異為“x85”。在GOOSE協(xié)議規(guī)范中,allData數(shù)據(jù)集中的數(shù)據(jù)使用ASN.1編碼為TLV的格式,發(fā)生變異的字節(jié)“x84”為bit-string類型字段的標(biāo)識(shí),而變異后的“x85”為integer類型(整型)字段的標(biāo)識(shí)。測控裝置的智能開入模塊在處理此畸形報(bào)文時(shí)將原本的bit-string類型的數(shù)據(jù)解析為integer類型,而模塊內(nèi)缺乏相應(yīng)的異常數(shù)據(jù)處理機(jī)制,因此發(fā)生異常。

        圖11 測控裝置模糊測試的GOOSE報(bào)文的allData字段Fig. 11 AllData field of GOOSE message used for fuzzing of measurement and control equipment

        4.3.2 智能終端測試結(jié)果分析

        本文對智能終端進(jìn)行模糊測試時(shí)使用的樣本報(bào)文為 GOOSE 0 x1 053,次報(bào)文由測控裝置發(fā)送給智能終端,攜帶遙控執(zhí)行命令。經(jīng)調(diào)研,該智能終端同樣使用模塊化設(shè)計(jì),此業(yè)務(wù)報(bào)文由開出模塊接收并處理?;螆?bào)文導(dǎo)致開出模塊發(fā)生異常后,智能終端不能正確處理測控裝置下發(fā)的遙控執(zhí)行命令,因此刀閘狀態(tài)未發(fā)生預(yù)期變化。此時(shí),刀閘狀態(tài)和遙控命令的預(yù)期狀態(tài)不一致,監(jiān)控后臺(tái)判斷為“執(zhí)行失敗”。但由于智能終端的其他模塊工作正常,手動(dòng)改變刀閘狀態(tài)后,刀閘狀態(tài)信息可以正常上送,監(jiān)控后臺(tái)可以觀測到刀閘狀態(tài)變化。實(shí)際運(yùn)行中,若智能終端受到此類畸形報(bào)文攻擊,一次設(shè)備將不能執(zhí)行監(jiān)控后臺(tái)的控制命令,且此故障狀態(tài)僅能通過重啟智能終端解除,可能造成更大的損失。

        圖12為對智能終端進(jìn)行模糊測試時(shí)使用的樣本報(bào)文,該報(bào)文為測控裝置向智能終端發(fā)送的攜帶遙控執(zhí)行命令的GOOSE報(bào)文。引起智能終端異常的畸形報(bào)文由goID字段變異產(chǎn)生,畸形報(bào)文如圖13所示。具體變異為goID字段第2個(gè)字節(jié)的最高兩位比特同時(shí)發(fā)生翻轉(zhuǎn),由原本的“x17”變異為“xd7”。在GOOSE協(xié)議規(guī)范中,報(bào)文的每個(gè)字段經(jīng)ASN.1編碼為TLV的格式,發(fā)生變異的字節(jié)為g o I D字段T L V的Length部分,該字節(jié)代表goID字段內(nèi)容的字節(jié)數(shù)。智能終端的開出模塊在解析此畸形報(bào)文的goID字段時(shí),按照錯(cuò)誤的長度“xd7”進(jìn)行解析,即將goID字段的后續(xù)字段解析為goID字段的內(nèi)容,解析發(fā)生錯(cuò)誤導(dǎo)致智能終端發(fā)生異常。

        圖12 智能終端模糊測試使用的GOOSE樣本報(bào)文Fig. 12 GOOSE sample message used for fuzzing of intelligent terminal

        圖13 引起智能終端異常的GOOSE測試用例Fig. 13 GOOSE test case causing abnormality of intelligent terminal

        4.4 畸形報(bào)文攻擊防范建議

        防范上述畸形報(bào)文攻擊可從終端生產(chǎn)廠家和系統(tǒng)運(yùn)維2個(gè)方面著手。

        對終端生產(chǎn)廠家來說,應(yīng)加強(qiáng)出廠前安全測試并做好漏洞修補(bǔ),特別是對業(yè)務(wù)相關(guān)的模塊進(jìn)行改進(jìn)。一方面,需嚴(yán)格按照IEC 61850一致性測試標(biāo)準(zhǔn),對接收GOOSE報(bào)文中stNum和sqNum進(jìn)行檢查,并結(jié)合SCD文件中對通信業(yè)務(wù)的定義,檢查接收報(bào)文的各個(gè)字段是否符合SCD文件中的配置,確保終端能直接丟棄不符合規(guī)范的報(bào)文。另一方面,利用本文提出的畸形報(bào)文構(gòu)造方法對終端進(jìn)行否定測試,對發(fā)現(xiàn)的問題通過改進(jìn)程序予以解決,保證終端在解析畸形報(bào)文時(shí)具有錯(cuò)誤處理措施,以彌補(bǔ)一致性測試缺少對數(shù)值越界、格式化字符串、編碼異常和比特翻轉(zhuǎn)等類型畸形數(shù)據(jù)測試的缺陷。

        對系統(tǒng)運(yùn)維單位來說,可在系統(tǒng)中部署額外的報(bào)文檢測裝置進(jìn)行畸形報(bào)文檢測和過濾。智能變電站中,一個(gè)通信環(huán)境中的電力業(yè)務(wù)往往是固定的,檢測裝置可通過學(xué)習(xí)當(dāng)前環(huán)境中的通信報(bào)文,記錄報(bào)文中的參數(shù)和報(bào)文攜帶的數(shù)據(jù)量、數(shù)據(jù)類型等特征,實(shí)現(xiàn)對畸形報(bào)文的判別和過濾。

        5 結(jié)論

        深入挖掘電網(wǎng)嵌入式終端可能存在的安全漏洞,分析漏洞產(chǎn)生的原因,及時(shí)提出整改建議,既可以幫助廠家在終端上線前進(jìn)行漏洞修補(bǔ),也可以指導(dǎo)新能源場站安全防護(hù)措施的部署。

        本文針對現(xiàn)有工控協(xié)議模糊測試方法無法適用于GOOSE協(xié)議和未考慮到嵌入式終端系統(tǒng)特點(diǎn)的問題,提出了基于模糊測試的GOOSE協(xié)議解析漏洞挖掘方法。通過深入分析GOOSE協(xié)議格式、字段類型和編碼方法,提出了3種變異策略,能較為全面地發(fā)現(xiàn)GOOSE協(xié)議解析過程中可能存在的漏洞;考慮電網(wǎng)嵌入式終端計(jì)算和存儲(chǔ)能力的限制,提出了兩種異常監(jiān)測方法,可從多個(gè)角度對模糊測試過程中嵌入式終端發(fā)生的異常情況進(jìn)行監(jiān)測;為了便于本文方法的實(shí)施,論文給出了系統(tǒng)架構(gòu)和測試流程;在智能變電站實(shí)驗(yàn)室環(huán)境中,對某廠家智能終端和測控裝置進(jìn)行了實(shí)驗(yàn)測試,成功發(fā)現(xiàn)2個(gè)未公開安全漏洞,驗(yàn)證了本方法的有效性。

        本文方法可用于新能源場站和智能變電站嵌入式終端的GOOSE協(xié)議解析漏洞挖掘,對標(biāo)準(zhǔn)(IEC 61850)中的MMS協(xié)議和SV協(xié)議漏洞挖掘也具有參考意義;實(shí)驗(yàn)測試發(fā)現(xiàn)的2個(gè)GOOSE協(xié)議解析漏洞及其防范建議,可直接作為終端整改和運(yùn)行防護(hù)的依據(jù)。后續(xù)將對更多類型的終端進(jìn)行測試,提出具有針對性的安全防護(hù)方案,以保障新能源場站和智能變電站的安全運(yùn)行,滿足新型電力系統(tǒng)對發(fā)電側(cè)數(shù)據(jù)的“可觀、可測、可控”需求。

        猜你喜歡
        測試用例字段測控
        圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
        基于SmartUnit的安全通信系統(tǒng)單元測試用例自動(dòng)生成
        《測控電路》實(shí)踐教學(xué)改革探討
        電子測試(2018年22期)2018-12-19 05:12:58
        基于混合遺傳算法的回歸測試用例集最小化研究
        基于現(xiàn)代測控技術(shù)及其應(yīng)用分析
        向著新航程進(jìn)發(fā)——遠(yuǎn)望7號(hào)測控船首航記錄
        太空探索(2016年12期)2016-07-18 11:13:43
        基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
        基于USB2.0協(xié)議的通用測控通信接口設(shè)計(jì)
        CNMARC304字段和314字段責(zé)任附注方式解析
        無正題名文獻(xiàn)著錄方法評述
        97久久国产精品成人观看| 亚洲欧洲精品成人久久曰影片 | 日本一卡二卡3卡四卡免费观影2022| 久久久久久国产精品无码超碰动画| 国产精品一区高清在线观看| 亚洲高清一区二区三区视频| 人妖一区二区三区视频| 又粗又黄又猛又爽大片免费| 婷婷五月综合激情| 2020最新国产激情| 日韩av一区二区三区高清| 成人免费无遮挡在线播放| 无码aⅴ在线观看| 国产成人AV乱码免费观看| 草逼视频免费观看网站| 精品国产一区二区三区av性色| 无码人妻精品一区二区三区66| 精品999无码在线观看| 国产精品人妻熟女男人的天堂| 精品国产av色一区二区深夜久久| 国产亚洲日韩欧美一区二区三区| 人妻精品一区二区免费| 在线国产激情视频观看| 亚洲av综合永久无码精品天堂| 亚洲国产成人91| 日韩在线精品视频免费| 亚洲精品国产一二三区| 无码精品a∨在线观看| 乱人伦中文字幕在线不卡网站| 粉色蜜桃视频完整版免费观看在线| 日本边添边摸边做边爱喷水 | 日韩一区二区三区无码影院| 国产精品天天狠天天看| 超级少妇一区二区三区| 19款日产奇骏车怎么样| 亚洲综合久久精品无码色欲| 亚洲av无码专区在线亚| 精品人妻av中文字幕乱| 国产亚洲精品a片久久久| 无码中文字幕加勒比一本二本| 爱情岛永久地址www成人|