郭俊斌
【摘 要】目前,在整個電力調(diào)度數(shù)據(jù)網(wǎng)接入網(wǎng)的三層結(jié)構(gòu)當(dāng)中,核心層和匯聚層由于安全級別較高,相應(yīng)的安全監(jiān)測防護(hù)系統(tǒng)建設(shè)已經(jīng)較為完善,而分布于最底層的廣大接入層調(diào)度廠站,由于各類原因目前始終未能具備普遍的自我網(wǎng)絡(luò)安全防護(hù)能力。為提高接入層廠站對自身調(diào)度數(shù)據(jù)網(wǎng)絡(luò)的故障診斷能力和異常行為自我判斷能力,本文提出了一種網(wǎng)絡(luò)監(jiān)測裝置的設(shè)計方案。
【關(guān)鍵詞】電力調(diào)度數(shù)據(jù)網(wǎng);廠站側(cè);網(wǎng)絡(luò)監(jiān)測裝置;設(shè)計;開發(fā)
1工程應(yīng)用需求分析
根據(jù)調(diào)度控制系統(tǒng)數(shù)據(jù)傳輸規(guī)范,不同類型的調(diào)度業(yè)務(wù)數(shù)據(jù)的流向應(yīng)當(dāng)是確定的,即包含了調(diào)度信息的數(shù)據(jù)報文的發(fā)送源地址和接收目的地址都應(yīng)當(dāng)是合法且對應(yīng)的調(diào)度終端或主站前置機的IP地址。而非法的通信行為必定會產(chǎn)生包含非法IP地址的數(shù)據(jù)報文,這類報文的檢測對于廠站排查非法通信異常具有重要的參考價值。例如目前常見的資源消耗型DoS網(wǎng)絡(luò)攻擊通常采取持續(xù)不斷地向主站SCADA服務(wù)器或數(shù)據(jù)中心發(fā)送無用的大體積數(shù)據(jù)包的做法,引起短時間內(nèi)數(shù)據(jù)量的急劇升高;若某條數(shù)據(jù)傳輸隧道發(fā)生故障,則該條鏈路上的數(shù)據(jù)量會迅速降至一個極低的數(shù)值甚至歸零。因此廠站需要通過監(jiān)測數(shù)據(jù)量來初步判斷是否發(fā)生網(wǎng)絡(luò)異常。通過以上分析,將解決的問題歸納為:獲取廠站側(cè)調(diào)度數(shù)據(jù)網(wǎng)各節(jié)點的流量信息,并根據(jù)異常流量的特征判斷是否有網(wǎng)絡(luò)故障或異常行為的發(fā)生。
2電力調(diào)度數(shù)據(jù)網(wǎng)廠站側(cè)網(wǎng)絡(luò)監(jiān)測裝置設(shè)計與開發(fā)
2.1監(jiān)測裝置部署位置的選擇
根據(jù)調(diào)度數(shù)據(jù)在廠站局域網(wǎng)內(nèi)的傳輸流程,可以將調(diào)度數(shù)據(jù)在廠站局域網(wǎng)內(nèi)流經(jīng)的各個物理設(shè)備網(wǎng)絡(luò)端口的工作狀況總結(jié)如下:(1)RTU大多僅具備一路以太網(wǎng)通信物理端口,用于接收和發(fā)送調(diào)度業(yè)務(wù)數(shù)據(jù)幀;(2)交換機具有多個物理端口,與承接不同調(diào)度業(yè)務(wù)的RTU相連接,明文狀態(tài)下的遙控、遙測、遙信等信息在交換機處匯集并被轉(zhuǎn)發(fā);(3)縱向加密認(rèn)證裝置的上行鏈路物理端口與路由器相連,輸出加密過后的調(diào)度數(shù)據(jù)報文。下行鏈路端口與交換機連接,輸出解密之后的調(diào)度數(shù)據(jù)報文;為實現(xiàn)廠站網(wǎng)絡(luò)安全事件的快速處置能力及響應(yīng)效率,滿足廠站自身安全監(jiān)視管理的要求,對于省調(diào)直調(diào)廠站,網(wǎng)絡(luò)監(jiān)測裝置最合理的試驗性部署位置應(yīng)當(dāng)是安全Ⅰ區(qū)交換機處,裝置連接至交換機的鏡像端口。
2.2網(wǎng)絡(luò)監(jiān)測程序設(shè)計
2.2.1操作系統(tǒng)移植
通常情況下,向嵌入式硬件設(shè)備中移植Linux操作系統(tǒng)需要經(jīng)過交叉編譯、Boot Loader移植、內(nèi)核移植和文件系統(tǒng)移植等步驟。由于本次使用的Raspberry-Pi3B型嵌入式計算機屬于商業(yè)化產(chǎn)品,其底層Boot Loader以及BCM2837處理器的相關(guān)核心數(shù)據(jù)并不開源,因而無法按照通常的做法進(jìn)行操作系統(tǒng)的移植。在Linux的眾多發(fā)行版當(dāng)中,UbuntuMATE專門針對使用ARMv7及其以上芯片架構(gòu)的嵌入式計算機開發(fā)了相應(yīng)的操作系統(tǒng)UbuntuMATE16.04.2。本次將使用其安裝鏡像ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img進(jìn)行操作系統(tǒng)移植。通過讀卡器將micro SDHC連接至一臺Windows操作系統(tǒng)環(huán)境下的臺式計算機當(dāng)中,在該臺式機上安裝并運行開源軟件Win32DiskImager。在其運行界面中的映像文件路徑欄中輸入預(yù)先下載好的Linux操作系統(tǒng)鏡像文件ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img的路徑,寫入設(shè)備選擇Micro SDHC卡,維持軟件其他的默認(rèn)設(shè)置,點擊“寫入”即可開始將映像文件寫入Micro SDHC卡。寫入過程結(jié)束后,將Micro SDHC卡接回主板中并上電運行,按照系統(tǒng)的提示完成后續(xù)的相關(guān)配置,操作系統(tǒng)移植完畢。
2.2.2旁路監(jiān)聽方法
由于嗅探器安裝在監(jiān)測裝置當(dāng)中,而監(jiān)測裝置即使與交換機建立了網(wǎng)絡(luò)連接,但因其本身并不參與調(diào)度,端口上沒有任何調(diào)度數(shù)據(jù)流過,故而嗅探器也無法進(jìn)行調(diào)度數(shù)據(jù)幀的抓取和解析,流量監(jiān)測更無從談起。因此必須設(shè)置某種方式,在不影響到調(diào)度業(yè)務(wù)正常進(jìn)行的前提下,使得調(diào)度數(shù)據(jù)流過監(jiān)測裝置的端口。旁路監(jiān)聽是一種在小型局域網(wǎng)當(dāng)中較為常見的網(wǎng)絡(luò)監(jiān)測方法,將端口鏡像技術(shù)和網(wǎng)絡(luò)嗅探器相結(jié)合,形成一條獨立于正常數(shù)據(jù)傳輸路徑的監(jiān)聽專用“旁路”。為了實現(xiàn)對整個局域網(wǎng)的監(jiān)測,通常這一“旁路”僅連通監(jiān)測專用主機和局域網(wǎng)內(nèi)的一臺交換機。
2.2.3端點狀態(tài)描述機制
由于“節(jié)點”這一術(shù)語通常用于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)研究,自本節(jié)開始,在論述與數(shù)據(jù)幀監(jiān)聽和分析相關(guān)的研究內(nèi)容時將使用TCP術(shù)語“端點”一詞,描述由一個IP地址和一個TCP端口號形成的組合。依照調(diào)度機制的設(shè)定,通常情況下接入層廠站內(nèi)的一臺調(diào)度終端設(shè)備僅被分配一個固定的IP地址并且僅使用某一個特定的端口號收發(fā)數(shù)據(jù),而在調(diào)度主站的前置系統(tǒng)當(dāng)中同樣如此。因此,在調(diào)度廠站內(nèi),對一臺調(diào)度終端設(shè)備而言,“節(jié)點”與“端點”是同等概念。
2.2.4數(shù)據(jù)鏈路狀態(tài)檢測模塊
在進(jìn)行數(shù)據(jù)流量監(jiān)測之前,首先需要檢測調(diào)度數(shù)據(jù)網(wǎng)內(nèi)的端點與調(diào)度主站的端點之間的數(shù)據(jù)鏈路的通斷狀態(tài)。監(jiān)測裝置對各調(diào)度終端、安全交換機、縱向加密裝置、路由器和調(diào)度主站前置機進(jìn)行Ping通測試,根據(jù)測試結(jié)果以及通信鏈路的結(jié)構(gòu)推斷出當(dāng)前廠站調(diào)度數(shù)據(jù)網(wǎng)內(nèi)是否存在數(shù)據(jù)鏈路中斷的情況。
2.2.5數(shù)據(jù)幀監(jiān)聽模塊
監(jiān)聽模塊的主要功能是針對廠站調(diào)度數(shù)據(jù)網(wǎng)內(nèi)每一個需要被監(jiān)聽的端點進(jìn)行持續(xù)一段時間的監(jiān)聽,并在監(jiān)聽過程結(jié)束后生成監(jiān)聽結(jié)果報告,這一報告將交由監(jiān)聽結(jié)果分析模塊進(jìn)行處理。(1)監(jiān)聽模塊開始運行后,首先初始化監(jiān)聽計時器,該計時器用于控制單次監(jiān)聽過程的最大許可時長;(2)監(jiān)聽模塊讀取當(dāng)前監(jiān)聽隊列中處于隊首位置的端點的IPv4地址,并將該端點的狀態(tài)變更為正在監(jiān)聽狀態(tài);(3)設(shè)置報文過濾規(guī)則和監(jiān)聽終止條件。過濾規(guī)則為濾除所有與當(dāng)前正在被監(jiān)聽的端點無關(guān)的報文,這里的“無關(guān)”指報文的源IPv4地址與目的IPv4地址均與當(dāng)前正在被監(jiān)聽的端點的IPv4地址不同,而監(jiān)聽終止條件則設(shè)置為已經(jīng)監(jiān)聽到了一定數(shù)量的與被監(jiān)聽端點相關(guān)的報文;(4)監(jiān)聽過程正式開始后,Tcpdump軟件將完成報文的監(jiān)聽和解析工作,并在每次報文內(nèi)容解析完畢后自動判斷監(jiān)聽終止條件是否已經(jīng)滿足。
2.2.6監(jiān)聽結(jié)果分析模塊
(1)分析模塊的程序(以下簡稱分析程序)開始運行后,首先讀取ipv4_addr_list文件中第一個端點的IPv4地址號并查看其所處狀態(tài)是否為“結(jié)果分析態(tài)”。若是,則進(jìn)行第(2)步,否則對文件中的下一個端點重新開始本步驟;(2)分析程序按照該端點的地址號,訪問存儲在指定目錄下的該端點相應(yīng)的監(jiān)聽結(jié)果記錄;(3)監(jiān)聽結(jié)果記錄成功讀取后,分析程序鑒別這份記錄中出現(xiàn)的所有其他通信端點的IPv4地址,并分別統(tǒng)計這些端點在與該端點通信時雙向數(shù)據(jù)流上的總數(shù)據(jù)量與總持續(xù)時長。(4)分析程序?qū)⑸弦徊剿玫降姆治鼋Y(jié)果以固定書寫格式輸出至一個新的文本文件當(dāng)中,供用戶通過上位監(jiān)測界面進(jìn)行調(diào)取查看;(5)在ipv4_addr_list中將該端點的狀態(tài)變更為“監(jiān)聽就緒態(tài)”并對下一個端點重新開始步驟(1)。
3結(jié)束語
本次設(shè)計的網(wǎng)絡(luò)監(jiān)測裝置無論在功能上還是在穩(wěn)定性上還有較大的改善和提升的空間。下一步的優(yōu)化工作需要優(yōu)先解決的是將數(shù)據(jù)幀監(jiān)聽模塊的單進(jìn)程工作方式升級為多進(jìn)程工作方式,這樣做可以直接省去監(jiān)聽優(yōu)先級的額外設(shè)計,同時大大縮短所有端點完成監(jiān)聽的時間。
參考文獻(xiàn):
[1]王政軍,董曉梅,俞小怡.基于旁路監(jiān)聽的數(shù)字資源評估系統(tǒng)的設(shè)計與實現(xiàn)[J].圖書情報工作,2015,59(09):52-57.
(作者單位:國網(wǎng)湖南水電公司東江水電廠沙田電站)