劉家豪,楊 航,付志博
(1.南方電網數字電網研究院有限公司,廣東廣州 510663;2.中國南方電網有限責任公司,廣東廣州 510000)
網絡安全監測系統是維護用戶網絡環境、保證用戶信息安全的重要工具之一,通過結合網絡運行系統監測網絡用戶的操作行為,抵御網絡入侵者的攻擊,并診斷其入侵方式和入侵地點,發動相應的解決措施,并提醒相關工作人員進行操作。傳統的網絡安全監測系統通常采用訪問控制機制作為保證系統安全的手段,具有一定的嚴密性,但靈活性較差、效率較低,對于入侵式的網絡攻擊行為抵御能力較差,因此,如何提升網絡安全監測系統的實際應用效果是當前討論的熱門話題[1-2]。
Fuzzing 是一種挖掘軟件或者檢測漏洞的模糊測試,通過構造大量的畸形、非預期測試用例自動發送到目標系統,檢測系統是否存在運行故障或安全攻擊,并根據目標系統的返回信息明確故障類型或攻擊類型。因此,該文以Fuzzing 技術為基礎,設計了一種基于Fuzzing 測試的網絡安全監測系統,詳細介紹了監測器、數據采集器和報警器等系統硬件的結構和功能,明確了系統整體的工作流程和系統的監測算法,最后設計了對比實驗,與傳統的網絡安全監測系統進行對比,再次證明了該文設計系統的安全性和高效率性,更能滿足用戶對網絡安全的需求,維護網絡安全秩序的同時促進了網絡安全治理體系的進一步發展。
基于Fuzzing 測試的網絡安全監測算法實際上是一種自動迭新的算法,在整個算法的運行過程中,不斷生成Fuzzing 測試用例,監視目標范圍內是否存在攻擊行為[3]。
基于Fuzzing 測試的網絡安全監測系統的硬件主要包括監測器、數據處理器和報警器,分別實現系統的用戶網絡行為監測功能、海量數據處理功能以及危險報警功能,3 種硬件設備的具體結構如圖1所示。

圖1 系統硬件結構
監測器利用網絡的共享特性,通過網卡從互聯網上抓取數據包,從中獲取可能的入侵信息或敏感信息。監測器相當于系統的信息采集器,其監測部件采用多種方法融合的方式收集該主機內的應用信息,包括分析網絡數據、主機參數、監視用戶的網絡行為以及檢查主機的通信等功能,所采集的都是基于網絡形式的數據[4-5]。監測器結構如圖2 所示。

圖2 監測器結構
監測器結構包含內核級的包過濾器,當監測器抓取數據包后,通過包過濾器去除無意義數據,并將留下的數據包保存在數據緩沖區中,此外,監測器還擁有包驅動程序的接口,具有較好的兼容性,方便監測器與計算機技術相融和,提升監測抓取數據包和發送原始數據的能力,并為其他操作系統和驅動程序的安裝提供編程接口,便于技術人員對其進行升級和改造,使監測器具有豐富的應用功能,發揮更大的監測價值。
系統硬件區域的數據處理器用來處理監測器監測到的網絡內部交互數據,通過線程函數計算網絡緩沖區內通信數據包中的數據幀格式,判斷網絡數據的安全情況。數據處理器的工作流程為:將緩沖區指針指向采集到的網絡數據區內,并將線程函數的offset 設置為0,開始數據處理,在函數循環過程中,如果offset 的值不大于采集的數據幀長度,那么依次將offset 的值加1,一直運算到offset 的值大于采集的數據幀長度,查看offset 的值是否超過32,若超過32,代表此條網絡通信數據存在異常,立即終止此條網絡通信,觸發報警器并請求診斷。數據處理器在分析異常網絡時,先判斷網絡數據幀的格式,根據數據幀格式再判定網絡異常故障類型[6-7]。數據處理器如圖3 所示。

圖3 數據處理器
該文采用DHDK 數據處理器,此數據處理器具有高性能的數據識別能力,能避免出現網絡數據丟失的情況。數據處理器的處理速度為667.6 MHz,處理器的帶寬能力為170 萬,內部設有6 個VGA 接口。為了延長網絡安全監測系統的工作周期,處理器的電池為24 V-12 A 規模。DHDK 數據處理器具有8+256 GB 超大內存存儲空間,避免監測系統數據冗余降低系統的監測效率[8-9]。
當數據處理器將數據處理后,一旦發現網絡內部存在危險異常的通信數據,立即將網絡通信語句的ip 地址、產生時間等其他參數一同打包發送給計算機管理平臺,報警器發出報警信號,通知該網絡區域的網絡正常交互。報警器的工作原理是網絡安全監測系統接收到異常網絡數據反饋包,反饋包遠程發送額定頻率,驅動報警器響應。報警器主要由高靈敏度的傳感零件、信號接收器件以及顯示器等組成[10-11]。
在硬件設備的基礎上,引入Fuzzing 測試和其他算法,提升系統整體的分析計算能力和數據處理能力,基于Fuzzing測試的網絡安全監測工作流程如圖4所示。

圖4 網絡安全監測系統軟件流程
當基于Fuzzing 測試的網絡安全監測系統開始工作時,首先初始化系統參數,鏈接局域網,沿著局域網鏈接其他相關網絡,監測器開始監測該網絡范圍內的用戶行為、系統參數及其他用戶信息,自動獲取用戶的運行數據,并對采集數據進行過濾處理,將可能存在異常的數據存儲在緩沖區。數據處理器對緩存數據進行分析、計算,判斷用戶行為是否存在異常,若存在攻擊行為,將根據數據類型和數據來源確定網絡攻擊類型和攻擊地址,報警器發出危險警報,當危險行為停止時,系統將繼續進行監視[12-14]。
其具體算法如下所示:
1)選擇Fuzzing 測試目標和輸入
在對目標算法進行選擇時,可以通過考察目標算法已經計算出來的攻擊行為,或者收集網站已經收集好的網絡攻擊行為作為基礎識別。然后,根據具體的數據,選擇多個算法共享的數據庫,兼容性較高,便于采用多種算法進行篩選,并采用Fuzzing 模糊測試的輸入用例。
2)生成Fuzzing 測試用例
確定了輸入向量以后,開始生成測試用例,由于目標的應用算法不同,測試用例的生成方式和數量也不相同,生成用例數量的計算方式如式(1)所示:

其中,n表示生成用例的數量;f表示生成用例的相對概率;N表示生成用例的種類數量;e表示數量計算常數。
3)執行測試用例
測試用例的執行和生成測試同時進行,執行過程主要是啟動目標算法,發送測試用例到目標監測主機,并采用自動化方式完成執行測試用例。
4)監測異常
監測異常是基于Fuzzing 測試的網絡安全監測算法的重要一步,其監測公式如式(2)所示:
式中,H表示檢測結果值,當H大于1 時,表示該行為異常,反之則表示無異常情況;g表示所用執行測試用例的數量;j表示目標行為的穩定性程度;c表示該行為在數據庫中出現的概率。
除此之外,算法的監測必須實時進行,一旦發生監測中斷,Fuzzing 測試會向目標主機發送大量不受控制的測試用例進行無意義的測試,導致主機負荷運行從而崩潰,若不及時調整,算法將會持續進行[15-16]。
5)確定可利用性
算法的可利用性主要通過人工采用其他測試方式進行檢測,目的在于保證算法的準確性,且由于不同檢測算法的異常標準存在一定差別,對于某些異常數據,需要判斷該異常數據是否被利用。
為精準評估該文設計的基于Fuzzing 測試的網絡安全監測系統的實際應用性能,設置相應的實驗環境對其進行性能檢驗,將該文設計的基于Fuzzing測試的網絡安全監測系統與傳統的網絡安全監測系統的工作效率和安全性進行對比實驗。
針對網絡安全監測系統工作環境的復雜性,對其實驗環境進行不斷篩選,由此獲得較為準確的實驗結果,具體的實驗操作如下:
1)根據系統安裝準則,在相同的兩個主機上安裝不同的安全監控系統,保證主機運行參數一致,確保系統的運行處于監控范圍內,同時調控系統狀態,使系統與目標主機有效工作。
2)模擬網絡攻擊,對兩臺主機進行相同次數、種類、時間、地點的網絡攻擊,并對模擬的網絡攻擊進行編號,確保實驗參數的一致性。
3)統計兩個系統有效識別攻擊的數量和編號,記錄系統運行的時間,并將結果數據錄入相應數據庫,進行多次實驗,確保實驗結果的可靠性。
為進一步提升兩種安全監測系統的整體對比效果,需設計相應的實驗參數進行對比,實驗參數如表1 所示。

表1 實驗參數
根據上述實驗參數在相同的實驗環境下進行對比實驗,對比兩種網絡安全監測系統的工作效率和安全性,得到的實驗結果如圖5 所示。

圖5 網絡安全監測系統工作效率對比圖
從圖5 可以看出,在相同時間內,該文設計基于Fuzzing 測試的網絡安全監測系統工作效率較高、安全性較好,而傳統的網絡安全監測系統的工作效率較低、安全性較差。監測結果負荷量如表2 所示。

表2 監測結果負荷量
綜上所述,該文系統的監測能力優于傳統監測系統。造成這種情況的原因在于,該文設計的系統以Fuzzing 技術為基礎,采用多種核心算法,并配合監測器、數據處理器等硬件設備,提升對用戶行為的監視能力,且能夠對海量的用戶數據進行精確處理,使其在相同的工作時間內,能夠準確識別并處理更多的網絡攻擊,且對于相同數量的網絡攻擊用時更加短暫。而傳統的網絡安全監測系統,依靠靈活性較差的訪問控制機制識別和處理網絡攻擊,其對用戶網絡數據的抓取能力較差,易漏過危險行為,且采用的分析技術不夠成熟,不能對數據進行快速且準確的分析,導致整體的工作效率較低,安全性較差。
該文從硬件設計和軟件設計兩方面全面地設計了基于Fuzzing 測試的網絡安全監測系統,根據工作效率、安全性兩個重要指標,與傳統的網絡安全監測系統進行對比實驗,通過對實驗結果的分析,證明該文設計的基于Fuzzing 測試的網絡安全監測系統具有較高的工作效率和安全性,能適應未來網絡時代的發展,滿足用戶對網絡的安全需求。但面對層出不窮的網絡攻擊,網絡安全監測系統還需不斷地更新和完善,才能確保網絡環境不被破壞,進一步保證用戶的信息安全。