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