韋 小 剛
(南瑞集團有限公司(國網(wǎng)電力科學研究院有限公司) 江蘇 南京 210003)
隨著移動信息化技術(shù)的廣泛應(yīng)用,移動終端的數(shù)量在快速增長,各類移動應(yīng)用層出不窮,為人們的生產(chǎn)、生活各方面提供了許多便利。但是,提供便利的同時,移動信息化也帶來了不少安全風險,如非法終端接入至內(nèi)網(wǎng)的風險,攻擊者利用合法終端對內(nèi)網(wǎng)系統(tǒng)開展網(wǎng)絡(luò)攻擊。網(wǎng)絡(luò)攻擊的形式多種多樣,有DoS攻擊及端口掃描攻擊,這種攻擊會導致服務(wù)拒絕響應(yīng)或者服務(wù)響應(yīng)延遲較大,在網(wǎng)絡(luò)數(shù)據(jù)傳輸上表現(xiàn)出來的是流量異常或流量過大。因此,通過對網(wǎng)絡(luò)流量的分析,開展入侵檢測及防御工作,可以有效管理網(wǎng)絡(luò)環(huán)境[1-2],對移動信息化業(yè)務(wù)的安全運行至關(guān)重要。
目前,接入到內(nèi)網(wǎng)的電力移動業(yè)務(wù)的流量及協(xié)議比較單一,這與網(wǎng)絡(luò)協(xié)議繁多、復雜的移動互聯(lián)網(wǎng)業(yè)務(wù)有本質(zhì)不同。針對這種情況,本文提出一種輕量級的入侵檢測與防御方法,基于網(wǎng)絡(luò)深度數(shù)據(jù)包檢測(network Deep Packet Inspection,nDPI)技術(shù)對網(wǎng)絡(luò)流量進行分析,識別網(wǎng)絡(luò)協(xié)議,分辨出接入到內(nèi)網(wǎng)的電力移動業(yè)務(wù)在運行時的異常網(wǎng)絡(luò)協(xié)議,在此基礎(chǔ)上,對有異常網(wǎng)絡(luò)協(xié)議的連接進行網(wǎng)絡(luò)重定向。下面對這套輕量級的入侵檢測與防御系統(tǒng)進行詳細的闡述。
本文設(shè)計的輕量級入侵檢測與防御系統(tǒng)主要由網(wǎng)絡(luò)流量捕獲模塊、協(xié)議識別引擎、響應(yīng)處置模塊組成,基本軟件流程圖如圖1所示。

圖1 輕量級入侵檢測及防御系統(tǒng)的基本軟件流程
網(wǎng)絡(luò)流量捕獲模塊是對終端接入網(wǎng)絡(luò)后產(chǎn)生的流量按照一定的規(guī)則進行捕獲;協(xié)議分析引擎是對捕獲到的網(wǎng)絡(luò)流量進行協(xié)議分析,根據(jù)既定的協(xié)議,可以分辨出業(yè)務(wù)運行過程中的異常協(xié)議,對于協(xié)議單一、流程簡單的業(yè)務(wù)來說,這種方式尤為有效;響應(yīng)處置模塊是針對有異常協(xié)議的網(wǎng)絡(luò)流量進行操作,根據(jù)認證結(jié)果決定是否允許終端入網(wǎng)。
系統(tǒng)的部署架構(gòu)如圖2所示。各類終端,如PC機、筆記本、平板電腦、手機等通過無線網(wǎng)絡(luò)(如運營商網(wǎng)絡(luò)或自建WIFI網(wǎng)絡(luò))訪問部署在內(nèi)網(wǎng)的應(yīng)用服務(wù)器,中間需要經(jīng)過接入路由器、應(yīng)用防火墻、接入交換機等多種網(wǎng)絡(luò)設(shè)備。由于無線網(wǎng)絡(luò)自身存在大量的安全隱患,為了保證內(nèi)網(wǎng)資源不被攻擊者破壞或嗅探,需要對終端訪問過程中經(jīng)過的網(wǎng)絡(luò)流量進行檢測,對檢測到的異常進行告警及處置。通過交換機的端口鏡像功能把進入應(yīng)用服務(wù)器的流量鏡像到入侵檢測與防御系統(tǒng)的一個空閑端口供入侵檢測與防御系統(tǒng)分析有無異常。
與一般的入侵防御系統(tǒng)串接在關(guān)鍵網(wǎng)絡(luò)路徑上不同的是,本文設(shè)計的入侵檢測與防御系統(tǒng)采取旁路工作,這樣不僅不影響終端訪問應(yīng)用服務(wù)器時的數(shù)據(jù)轉(zhuǎn)發(fā)性能,還能避免因為自身的軟件缺陷造成網(wǎng)絡(luò)節(jié)點故障,從而直接導致終端無法正常訪問應(yīng)用服務(wù)器。此外,認證服務(wù)器也是采取旁路工作,接在交換機上,跟入侵檢測與防御系統(tǒng)及終端保持網(wǎng)絡(luò)上貫通。

圖2 整體部署架構(gòu)
對網(wǎng)絡(luò)流量捕獲是開展流量監(jiān)測工作的前提[3-5],流量捕獲的方式很多,本文采用Linux系統(tǒng)上libpcap庫。libpcap(Packet Capture Library)即數(shù)據(jù)包捕獲函數(shù)庫,是Unix/Linux平臺下的網(wǎng)絡(luò)數(shù)據(jù)包捕獲函數(shù)庫,它是一個獨立于系統(tǒng)的用戶層包捕獲的API接口,為底層網(wǎng)絡(luò)監(jiān)測提供了一個可移植的框架,Linux上抓包工具tcpdump即基于libpcap開發(fā)而成。下面是本文對于libpcap的使用過程:
(1) 獲取網(wǎng)絡(luò)接口 確定入侵檢測與防御系統(tǒng)上需要監(jiān)聽的網(wǎng)絡(luò)接口,該接口可以指定或由libpcap自動選擇,具體函數(shù)為pcap_lookupdev()。
(2) 打開網(wǎng)絡(luò)接口 確定需要監(jiān)聽的網(wǎng)絡(luò)接口后,需要對該接口進行初始化,具體函數(shù)為pcap_open_live。
(3) 獲取數(shù)據(jù)包 打開網(wǎng)絡(luò)接口后就已經(jīng)開始監(jiān)聽,這是libpcap使用過程中的核心部分,可采用函數(shù)pcap_dispatch來完成獲取數(shù)據(jù)包的任務(wù)。
(4) 釋放網(wǎng)絡(luò)接口 這個功能是在操作完網(wǎng)絡(luò)接口后對接口進行釋放,具體函數(shù)為pcap_close。
捕獲網(wǎng)絡(luò)流量的目的是進行網(wǎng)絡(luò)協(xié)議識別,分辨出異常協(xié)議,便于后續(xù)響應(yīng)處置,本文基于nDPI技術(shù)實現(xiàn)網(wǎng)絡(luò)異常協(xié)議識別。nDPI是由ntop維護的一個openDPI[6-7]的擴展庫,從OpenDPI發(fā)展而來,解決了OpenDPI的諸多問題,并具備相當完善的應(yīng)用層協(xié)議識別功能[8-9],幾乎成為DPI領(lǐng)域的唯一之選。本次系統(tǒng)對nDPI源碼進行二次開發(fā),針對電力特定的業(yè)務(wù),增加可識別到的協(xié)議類型,對異常協(xié)議進行告警,并通知后續(xù)的響應(yīng)處置模塊對產(chǎn)生異常協(xié)議的連接及時處理,具體過程如下:
(1) 初始化協(xié)議識別引擎 調(diào)用ndpi_init_detection_module()初始化協(xié)議識別引擎的檢測模塊。
(2) 設(shè)置需要識別的協(xié)議 調(diào)用ndpi_protocol_detection_bitmask2()設(shè)置協(xié)議的掩碼,調(diào)用ndpi_load_protocols_file()加載協(xié)議文件,通過協(xié)議文件指定具體識別哪些協(xié)議。
(3) 識別協(xié)議 調(diào)用ndpi_detection_process_packet()可以獲得報文的具體信息,包括協(xié)議流、報文的詳細信息等數(shù)據(jù)。業(yè)務(wù)運行過程中,系統(tǒng)根據(jù)指定的協(xié)議進行協(xié)議匹配,無法完成匹配的則為異常協(xié)議。針對異常協(xié)議,可追溯到具體的終端,從而便于后續(xù)的響應(yīng)處理。
(4) 統(tǒng)計分析 系統(tǒng)對業(yè)務(wù)運行過程中識別到的協(xié)議進行統(tǒng)計,并對異常協(xié)議的處理進行可視化展示。
對于發(fā)起異常協(xié)議的終端(PC機、筆記本、平板電腦、手機等)的系統(tǒng)響應(yīng)處置如圖3所示。終端向應(yīng)用服務(wù)器發(fā)起訪問請求后,本文設(shè)計的入侵檢測與防御系統(tǒng)通過網(wǎng)絡(luò)流量捕獲模塊獲取到網(wǎng)絡(luò)上的流量并進行監(jiān)測。通過協(xié)議識別引擎檢測到異常協(xié)議后,追溯該異常協(xié)議所發(fā)起的終端,并向該終端發(fā)起網(wǎng)絡(luò)重定向報文,將終端的訪問重定向至認證服務(wù)器。認證服務(wù)器受到終端發(fā)起的請求后,則推送認證提示,只有通過認證的終端才被允許接入網(wǎng)絡(luò),認證通不過則被阻斷。

圖3 響應(yīng)處置流程示意圖
設(shè)置協(xié)議文件時,可指定具體的網(wǎng)絡(luò)協(xié)議及端口,也可指定協(xié)議中包含的IP地址,甚至是可指定具體的網(wǎng)站名,系統(tǒng)可以采用字符串匹配的方式識別出相應(yīng)協(xié)議。圖4為系統(tǒng)檢測后的統(tǒng)計分析結(jié)果之一,其中HTTP和ICMP為協(xié)議文件中指定的協(xié)議,13.9%是協(xié)議文件中未指定的協(xié)議,進一步分析后,最終有13.5%的流量被系統(tǒng)認為協(xié)議異常,將會進行后續(xù)的響應(yīng)處置。在實際的電力業(yè)務(wù)運行過程中,協(xié)議類型單一,通過本文設(shè)計的系統(tǒng)比較容易區(qū)分出與業(yè)務(wù)無關(guān)的其他協(xié)議,承載這些無關(guān)協(xié)議的流量將會被網(wǎng)絡(luò)重定向,以便進一步檢查終端使用人員是否有攻擊行為。

圖4 初步統(tǒng)計分析結(jié)果
本文考慮到現(xiàn)有入侵檢測系統(tǒng)及防御系統(tǒng)實施部署的復雜性,面向電力業(yè)務(wù)的實際運行特點,對入侵檢測及防御功能合二為一,提出了一種輕量級的入侵檢測與防御系統(tǒng)的設(shè)計、實現(xiàn)方案,并給出了運行測試結(jié)果,系統(tǒng)經(jīng)過權(quán)威檢測機構(gòu)檢測誤報率及漏報率均為0%,現(xiàn)場試點過程中的運行穩(wěn)定。本系統(tǒng)的設(shè)計與實現(xiàn)對網(wǎng)絡(luò)流量監(jiān)測、協(xié)議分析及異常終端的響應(yīng)處置等都有較高的參考價值。