國(guó)電南京自動(dòng)化股份有限公司 曾亞恒
隨著智能電網(wǎng)技術(shù)的飛速發(fā)展,站內(nèi)的網(wǎng)絡(luò)規(guī)模日趨龐大,智能變電站的網(wǎng)絡(luò)化提升了站內(nèi)運(yùn)維的便捷性,提供了站內(nèi)設(shè)備的數(shù)據(jù)共享,但同時(shí)也給變電站的運(yùn)行可靠性和安全性帶來(lái)了風(fēng)險(xiǎn),其中影響最為嚴(yán)重的就是網(wǎng)絡(luò)風(fēng)暴。網(wǎng)絡(luò)風(fēng)暴不僅會(huì)引起網(wǎng)絡(luò)癱瘓,系統(tǒng)大規(guī)模斷網(wǎng),還會(huì)嚴(yán)重沖擊站內(nèi)組網(wǎng)設(shè)備和繼電保護(hù)裝置,大量占用設(shè)備內(nèi)存資源,造成程序死機(jī)或重啟,使智能變電站的運(yùn)行存在安全隱患。因此,研究網(wǎng)絡(luò)風(fēng)暴產(chǎn)生的原因、測(cè)試智能變電站的抗風(fēng)暴能力就顯得極其重要。
交換機(jī)自環(huán)。由于管理疏忽或人為操作失誤,網(wǎng)絡(luò)交換機(jī)上網(wǎng)口之間出現(xiàn)了自環(huán),數(shù)據(jù)報(bào)文在網(wǎng)絡(luò)中被重復(fù)轉(zhuǎn)發(fā),造成網(wǎng)絡(luò)風(fēng)暴[1];組網(wǎng)設(shè)備損壞或二次設(shè)備程序缺陷。比如將數(shù)據(jù)報(bào)文寫(xiě)入緩沖區(qū),不間斷地發(fā)送出錯(cuò)的數(shù)據(jù)包,造成網(wǎng)絡(luò)癱瘓[1],出現(xiàn)了網(wǎng)絡(luò)風(fēng)暴;同一時(shí)刻出現(xiàn)多個(gè)故障點(diǎn)。
當(dāng)電力系統(tǒng)中由于某些原因發(fā)生多處故障點(diǎn)時(shí),多個(gè)繼電保護(hù)裝置接連動(dòng)作切除故障,網(wǎng)絡(luò)中傳送大量的信息,網(wǎng)絡(luò)設(shè)備和繼電保護(hù)裝置需要同時(shí)處理和轉(zhuǎn)發(fā)批量的數(shù)據(jù)報(bào)文,由于負(fù)荷較重造成網(wǎng)絡(luò)阻塞[2],可能引起網(wǎng)絡(luò)風(fēng)暴;站內(nèi)網(wǎng)絡(luò)被攻擊。
由于防火墻被攻破,導(dǎo)致站內(nèi)的網(wǎng)絡(luò)設(shè)備和二次設(shè)備受到網(wǎng)絡(luò)攻擊,常見(jiàn)的如拒絕服務(wù)攻擊、即常說(shuō)的DoS(Deny of Service),會(huì)導(dǎo)致對(duì)通訊設(shè)備正常使用或管理被無(wú)條件地中斷。
SYN Flood。利用TCP協(xié)議缺陷發(fā)送了大量偽造的TCP連接請(qǐng)求,使得被攻擊方資源耗盡,無(wú)法及時(shí)回應(yīng)或處理正常的服務(wù)請(qǐng)求。一個(gè)正常的TCP連接需三次握手,首先客戶端發(fā)送一個(gè)包含SYN標(biāo)志的數(shù)據(jù)包,其后服務(wù)器返回一個(gè)SYN/ACK的應(yīng)答包,表示客戶端的請(qǐng)求被接受,最后客戶端再返回一個(gè)確認(rèn)包ACK,這樣才完成TCP連接。在服務(wù)器端發(fā)送應(yīng)答包后,如客戶端不發(fā)出確認(rèn)服務(wù)器會(huì)等待到超時(shí),期間這些半連接狀態(tài)都保存在一個(gè)空間有限的緩存隊(duì)列中;如果大量的SYN包發(fā)到服務(wù)器端后沒(méi)有應(yīng)答,就會(huì)使服務(wù)器端的TCP資源迅速耗盡,導(dǎo)致正常的連接不能進(jìn)入,甚至?xí)?dǎo)致服務(wù)器的系統(tǒng)崩潰。
UDP攻擊。又稱UDP洪水攻擊或UDP淹沒(méi)攻擊(UDP Flood Attack),是導(dǎo)致基于主機(jī)的服務(wù)拒絕攻擊的一種。UDP是一種無(wú)連接的協(xié)議,而且它不需要用任何程序建立連接來(lái)傳輸數(shù)據(jù)。當(dāng)攻擊者隨機(jī)地向受害系統(tǒng)的端口發(fā)送UDP數(shù)據(jù)包時(shí),就可能發(fā)生了UDP淹沒(méi)攻擊。當(dāng)受害系統(tǒng)接收到一個(gè)UDP數(shù)據(jù)包時(shí),它會(huì)確定目的端口正在等待中的應(yīng)用程序。當(dāng)它發(fā)現(xiàn)該端口中并不存在正在等待的應(yīng)用程序,就會(huì)產(chǎn)生一個(gè)目的地址無(wú)法連接的ICMP數(shù)據(jù)包發(fā)送給該偽造的源地址。如果向受害者計(jì)算機(jī)端口發(fā)送了足夠多的UDP數(shù)據(jù)包時(shí),整個(gè)系統(tǒng)就會(huì)癱瘓。
ICMP Flood攻擊。ICMP泛洪(ICMP flood)是利用ICMP報(bào)文進(jìn)行攻擊的一種方法。如果攻擊者向目標(biāo)主機(jī)發(fā)送大量的ICMP ECHO報(bào)文,將產(chǎn)生ICMP泛洪,目標(biāo)主機(jī)會(huì)將大量的時(shí)間和資源用于處理ICMP ECHO報(bào)文,而無(wú)法處理正常的請(qǐng)求或響應(yīng),從而實(shí)現(xiàn)對(duì)目標(biāo)主機(jī)的攻擊;Smuff攻擊。發(fā)送偽裝的ICMP數(shù)據(jù)包,目的地址設(shè)為某個(gè)網(wǎng)絡(luò)的廣播地址,源地址設(shè)為要攻擊的目的主機(jī),使所有收到此ICMP數(shù)據(jù)包的主機(jī)都將對(duì)目的主機(jī)發(fā)出一個(gè)回應(yīng),使被攻擊主機(jī)在某一段時(shí)間內(nèi)收到成千上萬(wàn)的數(shù)據(jù)包。
Ping of death。這種攻擊通過(guò)發(fā)送大于65536字節(jié)的ICMP包使系統(tǒng)崩潰,通常不可能發(fā)送大于65536個(gè)字節(jié)的ICMP包,但可以把報(bào)文分割成片段,然后在目標(biāo)主機(jī)上重組,最終會(huì)導(dǎo)致被攻擊目標(biāo)緩沖區(qū)溢出,引起拒絕服務(wù)攻擊;ARP泛洪攻擊。也叫拒絕服務(wù)攻擊(Denial of Service),攻擊者向設(shè)備發(fā)送大量目的IP地址無(wú)法解析的偽造ARP請(qǐng)求報(bào)文或免費(fèi)報(bào)文,造成設(shè)備上的ARP表項(xiàng)溢出,無(wú)法緩存正常用戶的ARP表項(xiàng),從而影響正常的報(bào)文轉(zhuǎn)發(fā)。
經(jīng)過(guò)前文對(duì)智能變電站網(wǎng)絡(luò)風(fēng)暴產(chǎn)生原因和風(fēng)暴類型的分析,結(jié)合現(xiàn)有測(cè)試手段建立智能變電站網(wǎng)絡(luò)風(fēng)暴測(cè)試環(huán)境如圖1[3]。利用網(wǎng)絡(luò)性能測(cè)試儀IXIA發(fā)送自定義的風(fēng)暴類型和攻擊流量,包括單播、組播、廣播等報(bào)文類型,測(cè)試變電站組網(wǎng)設(shè)備的抗壓能力。設(shè)計(jì)測(cè)試用例時(shí)覆蓋不同的風(fēng)暴類型、不同的攻擊流量大?。?M~100Mbps)、不同的幀長(zhǎng)報(bào)文(64字節(jié)、512字節(jié)、1518字節(jié))。
圖1 變電站網(wǎng)絡(luò)風(fēng)暴測(cè)試系統(tǒng)結(jié)構(gòu)圖
SYN_Flood攻擊測(cè)試。保持裝置和IEC61850仿真客戶端正常通信,在原有網(wǎng)絡(luò)數(shù)據(jù)流量的基礎(chǔ)上使用網(wǎng)絡(luò)安全攻擊測(cè)試儀向裝置TCP/IP的102端口發(fā)起SYN Flood攻擊(SYN高流量攻擊),攻擊速率為1Mbps~(100Mbps-實(shí)測(cè)基礎(chǔ)流量),持續(xù)2分鐘;網(wǎng)絡(luò)攻擊持續(xù)過(guò)程中,模擬區(qū)內(nèi)外與訂閱SV報(bào)文相關(guān)的故障及與各訂閱GOOSE控制塊報(bào)文相關(guān)的故障,查看保護(hù)裝置動(dòng)作情況和通信情況;網(wǎng)絡(luò)攻擊結(jié)束后,檢查客戶端與裝置連接狀態(tài),若斷開(kāi)則進(jìn)行重連并使能報(bào)告控制塊,觀察保護(hù)動(dòng)作信號(hào)上送情況。
UDP_Flood攻擊測(cè)試。保持裝置和IEC61850仿真客戶端正常通信,在原有網(wǎng)絡(luò)數(shù)據(jù)流量的基礎(chǔ)上使用網(wǎng)絡(luò)安全攻擊測(cè)試儀向裝置UDP/IP的102端口發(fā)起UDP Flood攻擊(UDP高流量攻擊),攻擊速率為1Mbps~(100Mbps-實(shí)測(cè)基礎(chǔ)流量),持續(xù)2分鐘;ICMP_Flood攻擊測(cè)試。保持裝置和IEC61850仿真客戶端正常通信,在原有網(wǎng)絡(luò)數(shù)據(jù)流量的基礎(chǔ)上使用網(wǎng)絡(luò)安全攻擊測(cè)試儀向裝置IP發(fā)起ICMP Flood攻擊(多IP高流量的Ping攻擊),攻擊速率為1Mbps~(100Mbps-實(shí)測(cè)基礎(chǔ)流量),持續(xù)2分鐘。
Smurf攻擊測(cè)試。保持裝置和IEC61850仿真客戶端正常通信,在原有網(wǎng)絡(luò)數(shù)據(jù)流量的基礎(chǔ)上使用網(wǎng)絡(luò)安全攻擊測(cè)試儀向裝置IP發(fā)起Smurf攻擊(ECHO reply),攻擊速率為1Mbps~(100Mbps-實(shí)測(cè)基礎(chǔ)流量),持續(xù)2分鐘;ARP緩存攻擊測(cè)試。保持裝置和IEC61850仿真客戶端正常通信,在原有網(wǎng)絡(luò)數(shù)據(jù)流量的基礎(chǔ)上使用網(wǎng)絡(luò)安全攻擊測(cè)試儀向裝置發(fā)起ARP緩存攻擊,每次發(fā)送ARP應(yīng)答報(bào)文中IP地址及MAC地址均不相同,以填滿裝置ARP緩存列表空間,攻擊速率為1Mbps~(100Mbps-實(shí)測(cè)基礎(chǔ)流量),持續(xù)2分鐘。
TCP攻擊測(cè)試。保持裝置和IEC61850仿真客戶端正常通信,在原有網(wǎng)絡(luò)數(shù)據(jù)流量的基礎(chǔ)上使用網(wǎng)絡(luò)安全攻擊測(cè)試儀向裝置發(fā)起TCP攻擊,連續(xù)向裝置發(fā)送不同類型的TCP報(bào)文,如TCP分段重組報(bào)文、TCP關(guān)閉接收窗口報(bào)文或TCP類型無(wú)效報(bào)文等,攻擊速率為1Mbps~(100Mbps-實(shí)測(cè)基礎(chǔ)流量),持續(xù)2分鐘;Ping of death測(cè)試。保持裝置和IEC61850仿真客戶端正常通信,在原有網(wǎng)絡(luò)數(shù)據(jù)流量的基礎(chǔ)上使用網(wǎng)絡(luò)安全攻擊測(cè)試儀向裝置IP發(fā)起Ping of death攻擊(大于65535字節(jié)的ping ip數(shù)據(jù)包),攻擊速率為1Mbps~(100Mbps-實(shí)測(cè)基礎(chǔ)流量),持續(xù)2分鐘;異常COTP報(bào)文攻擊測(cè)試。在與裝置建立TCP連接后,將服務(wù)器響應(yīng)客戶端的報(bào)文方向發(fā)送給裝置,即向裝置發(fā)送CC類型的COTP報(bào)文給DUT,查看裝置是否出現(xiàn)異常。
異常MMS報(bào)文攻擊測(cè)試。修改正常的MMS服務(wù)請(qǐng)求報(bào)文的TPKT頭部中的長(zhǎng)度字段,使其與實(shí)際長(zhǎng)度不一致,發(fā)送給被測(cè)裝置,查看裝置是否出現(xiàn)異?,F(xiàn)象;修改正常的MMS服務(wù)請(qǐng)求報(bào)文的TPDU后附加一個(gè)長(zhǎng)的隨機(jī)字符串(保證TPDU長(zhǎng)度小于65531),發(fā)送給被測(cè)裝置,查看裝置是否出現(xiàn)異?,F(xiàn)象;修改正常的Initiate請(qǐng)求服務(wù)報(bào)文,將其參數(shù)置為空,發(fā)送給裝置,查看裝置是否出現(xiàn)異常現(xiàn)象;修改正常的MM服務(wù)請(qǐng)求報(bào)文,包括GetDataSetValues、GetNmaeList、Read、Write、GetNamedVariableListAttributes、GetVariableAccessAttributes以及Associate服務(wù),將其報(bào)文各字段(InvorkeID,ConfirmedRequest等)主體部分修改為空或一個(gè)大的隨機(jī)字符串(保證TPDU長(zhǎng)度小于65531字節(jié)),發(fā)送給被測(cè)裝置,查看裝置是否出現(xiàn)異常現(xiàn)象。
本文使用的網(wǎng)絡(luò)測(cè)試儀型號(hào)為IXIA,以Smurf攻擊測(cè)試舉例[4]。設(shè)置輸出口類型:確認(rèn)所連接口位置類型,進(jìn)行設(shè)置;設(shè)置輸出參數(shù):協(xié)議類型、IP地址、MAC地址、攻擊流量、字節(jié)數(shù)。確認(rèn)參數(shù)正確后,開(kāi)始Smurf測(cè)試。通過(guò)分析智能變電站網(wǎng)絡(luò)風(fēng)暴的產(chǎn)生原因,利用網(wǎng)絡(luò)性能測(cè)試儀進(jìn)行網(wǎng)絡(luò)風(fēng)暴測(cè)試用例的設(shè)計(jì)與開(kāi)發(fā),目前已成功應(yīng)用于變電站網(wǎng)絡(luò)壓力和網(wǎng)絡(luò)攻擊的測(cè)試驗(yàn)證工作中,在提高裝置性能和組網(wǎng)穩(wěn)定性方面發(fā)揮了重要作用。該測(cè)試系統(tǒng)的用例設(shè)計(jì)和測(cè)試方法對(duì)二次設(shè)備用例的設(shè)計(jì)具有較好的參考價(jià)值,測(cè)試智能變電站抵御各種類型網(wǎng)絡(luò)風(fēng)暴的能力,提高智能變電站運(yùn)行可靠性和安全性方面有非常重要的借鑒意義。