劉家豪,楊 航,付志博
(1.南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司,廣東廣州 510663;2.中國南方電網(wǎng)有限責(zé)任公司,廣東廣州 510000)
網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)是維護(hù)用戶網(wǎng)絡(luò)環(huán)境、保證用戶信息安全的重要工具之一,通過結(jié)合網(wǎng)絡(luò)運行系統(tǒng)監(jiān)測網(wǎng)絡(luò)用戶的操作行為,抵御網(wǎng)絡(luò)入侵者的攻擊,并診斷其入侵方式和入侵地點,發(fā)動相應(yīng)的解決措施,并提醒相關(guān)工作人員進(jìn)行操作。傳統(tǒng)的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)通常采用訪問控制機制作為保證系統(tǒng)安全的手段,具有一定的嚴(yán)密性,但靈活性較差、效率較低,對于入侵式的網(wǎng)絡(luò)攻擊行為抵御能力較差,因此,如何提升網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)的實際應(yīng)用效果是當(dāng)前討論的熱門話題[1-2]。
Fuzzing 是一種挖掘軟件或者檢測漏洞的模糊測試,通過構(gòu)造大量的畸形、非預(yù)期測試用例自動發(fā)送到目標(biāo)系統(tǒng),檢測系統(tǒng)是否存在運行故障或安全攻擊,并根據(jù)目標(biāo)系統(tǒng)的返回信息明確故障類型或攻擊類型。因此,該文以Fuzzing 技術(shù)為基礎(chǔ),設(shè)計了一種基于Fuzzing 測試的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng),詳細(xì)介紹了監(jiān)測器、數(shù)據(jù)采集器和報警器等系統(tǒng)硬件的結(jié)構(gòu)和功能,明確了系統(tǒng)整體的工作流程和系統(tǒng)的監(jiān)測算法,最后設(shè)計了對比實驗,與傳統(tǒng)的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)進(jìn)行對比,再次證明了該文設(shè)計系統(tǒng)的安全性和高效率性,更能滿足用戶對網(wǎng)絡(luò)安全的需求,維護(hù)網(wǎng)絡(luò)安全秩序的同時促進(jìn)了網(wǎng)絡(luò)安全治理體系的進(jìn)一步發(fā)展。
基于Fuzzing 測試的網(wǎng)絡(luò)安全監(jiān)測算法實際上是一種自動迭新的算法,在整個算法的運行過程中,不斷生成Fuzzing 測試用例,監(jiān)視目標(biāo)范圍內(nèi)是否存在攻擊行為[3]。
基于Fuzzing 測試的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)的硬件主要包括監(jiān)測器、數(shù)據(jù)處理器和報警器,分別實現(xiàn)系統(tǒng)的用戶網(wǎng)絡(luò)行為監(jiān)測功能、海量數(shù)據(jù)處理功能以及危險報警功能,3 種硬件設(shè)備的具體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)
監(jiān)測器利用網(wǎng)絡(luò)的共享特性,通過網(wǎng)卡從互聯(lián)網(wǎng)上抓取數(shù)據(jù)包,從中獲取可能的入侵信息或敏感信息。監(jiān)測器相當(dāng)于系統(tǒng)的信息采集器,其監(jiān)測部件采用多種方法融合的方式收集該主機內(nèi)的應(yīng)用信息,包括分析網(wǎng)絡(luò)數(shù)據(jù)、主機參數(shù)、監(jiān)視用戶的網(wǎng)絡(luò)行為以及檢查主機的通信等功能,所采集的都是基于網(wǎng)絡(luò)形式的數(shù)據(jù)[4-5]。監(jiān)測器結(jié)構(gòu)如圖2 所示。
圖2 監(jiān)測器結(jié)構(gòu)
監(jiān)測器結(jié)構(gòu)包含內(nèi)核級的包過濾器,當(dāng)監(jiān)測器抓取數(shù)據(jù)包后,通過包過濾器去除無意義數(shù)據(jù),并將留下的數(shù)據(jù)包保存在數(shù)據(jù)緩沖區(qū)中,此外,監(jiān)測器還擁有包驅(qū)動程序的接口,具有較好的兼容性,方便監(jiān)測器與計算機技術(shù)相融和,提升監(jiān)測抓取數(shù)據(jù)包和發(fā)送原始數(shù)據(jù)的能力,并為其他操作系統(tǒng)和驅(qū)動程序的安裝提供編程接口,便于技術(shù)人員對其進(jìn)行升級和改造,使監(jiān)測器具有豐富的應(yīng)用功能,發(fā)揮更大的監(jiān)測價值。
系統(tǒng)硬件區(qū)域的數(shù)據(jù)處理器用來處理監(jiān)測器監(jiān)測到的網(wǎng)絡(luò)內(nèi)部交互數(shù)據(jù),通過線程函數(shù)計算網(wǎng)絡(luò)緩沖區(qū)內(nèi)通信數(shù)據(jù)包中的數(shù)據(jù)幀格式,判斷網(wǎng)絡(luò)數(shù)據(jù)的安全情況。數(shù)據(jù)處理器的工作流程為:將緩沖區(qū)指針指向采集到的網(wǎng)絡(luò)數(shù)據(jù)區(qū)內(nèi),并將線程函數(shù)的offset 設(shè)置為0,開始數(shù)據(jù)處理,在函數(shù)循環(huán)過程中,如果offset 的值不大于采集的數(shù)據(jù)幀長度,那么依次將offset 的值加1,一直運算到offset 的值大于采集的數(shù)據(jù)幀長度,查看offset 的值是否超過32,若超過32,代表此條網(wǎng)絡(luò)通信數(shù)據(jù)存在異常,立即終止此條網(wǎng)絡(luò)通信,觸發(fā)報警器并請求診斷。數(shù)據(jù)處理器在分析異常網(wǎng)絡(luò)時,先判斷網(wǎng)絡(luò)數(shù)據(jù)幀的格式,根據(jù)數(shù)據(jù)幀格式再判定網(wǎng)絡(luò)異常故障類型[6-7]。數(shù)據(jù)處理器如圖3 所示。
圖3 數(shù)據(jù)處理器
該文采用DHDK 數(shù)據(jù)處理器,此數(shù)據(jù)處理器具有高性能的數(shù)據(jù)識別能力,能避免出現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)丟失的情況。數(shù)據(jù)處理器的處理速度為667.6 MHz,處理器的帶寬能力為170 萬,內(nèi)部設(shè)有6 個VGA 接口。為了延長網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)的工作周期,處理器的電池為24 V-12 A 規(guī)模。DHDK 數(shù)據(jù)處理器具有8+256 GB 超大內(nèi)存存儲空間,避免監(jiān)測系統(tǒng)數(shù)據(jù)冗余降低系統(tǒng)的監(jiān)測效率[8-9]。
當(dāng)數(shù)據(jù)處理器將數(shù)據(jù)處理后,一旦發(fā)現(xiàn)網(wǎng)絡(luò)內(nèi)部存在危險異常的通信數(shù)據(jù),立即將網(wǎng)絡(luò)通信語句的ip 地址、產(chǎn)生時間等其他參數(shù)一同打包發(fā)送給計算機管理平臺,報警器發(fā)出報警信號,通知該網(wǎng)絡(luò)區(qū)域的網(wǎng)絡(luò)正常交互。報警器的工作原理是網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)接收到異常網(wǎng)絡(luò)數(shù)據(jù)反饋包,反饋包遠(yuǎn)程發(fā)送額定頻率,驅(qū)動報警器響應(yīng)。報警器主要由高靈敏度的傳感零件、信號接收器件以及顯示器等組成[10-11]。
在硬件設(shè)備的基礎(chǔ)上,引入Fuzzing 測試和其他算法,提升系統(tǒng)整體的分析計算能力和數(shù)據(jù)處理能力,基于Fuzzing測試的網(wǎng)絡(luò)安全監(jiān)測工作流程如圖4所示。
圖4 網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)軟件流程
當(dāng)基于Fuzzing 測試的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)開始工作時,首先初始化系統(tǒng)參數(shù),鏈接局域網(wǎng),沿著局域網(wǎng)鏈接其他相關(guān)網(wǎng)絡(luò),監(jiān)測器開始監(jiān)測該網(wǎng)絡(luò)范圍內(nèi)的用戶行為、系統(tǒng)參數(shù)及其他用戶信息,自動獲取用戶的運行數(shù)據(jù),并對采集數(shù)據(jù)進(jìn)行過濾處理,將可能存在異常的數(shù)據(jù)存儲在緩沖區(qū)。數(shù)據(jù)處理器對緩存數(shù)據(jù)進(jìn)行分析、計算,判斷用戶行為是否存在異常,若存在攻擊行為,將根據(jù)數(shù)據(jù)類型和數(shù)據(jù)來源確定網(wǎng)絡(luò)攻擊類型和攻擊地址,報警器發(fā)出危險警報,當(dāng)危險行為停止時,系統(tǒng)將繼續(xù)進(jìn)行監(jiān)視[12-14]。
其具體算法如下所示:
1)選擇Fuzzing 測試目標(biāo)和輸入
在對目標(biāo)算法進(jìn)行選擇時,可以通過考察目標(biāo)算法已經(jīng)計算出來的攻擊行為,或者收集網(wǎng)站已經(jīng)收集好的網(wǎng)絡(luò)攻擊行為作為基礎(chǔ)識別。然后,根據(jù)具體的數(shù)據(jù),選擇多個算法共享的數(shù)據(jù)庫,兼容性較高,便于采用多種算法進(jìn)行篩選,并采用Fuzzing 模糊測試的輸入用例。
2)生成Fuzzing 測試用例
確定了輸入向量以后,開始生成測試用例,由于目標(biāo)的應(yīng)用算法不同,測試用例的生成方式和數(shù)量也不相同,生成用例數(shù)量的計算方式如式(1)所示:
其中,n表示生成用例的數(shù)量;f表示生成用例的相對概率;N表示生成用例的種類數(shù)量;e表示數(shù)量計算常數(shù)。
3)執(zhí)行測試用例
測試用例的執(zhí)行和生成測試同時進(jìn)行,執(zhí)行過程主要是啟動目標(biāo)算法,發(fā)送測試用例到目標(biāo)監(jiān)測主機,并采用自動化方式完成執(zhí)行測試用例。
4)監(jiān)測異常
監(jiān)測異常是基于Fuzzing 測試的網(wǎng)絡(luò)安全監(jiān)測算法的重要一步,其監(jiān)測公式如式(2)所示:
式中,H表示檢測結(jié)果值,當(dāng)H大于1 時,表示該行為異常,反之則表示無異常情況;g表示所用執(zhí)行測試用例的數(shù)量;j表示目標(biāo)行為的穩(wěn)定性程度;c表示該行為在數(shù)據(jù)庫中出現(xiàn)的概率。
除此之外,算法的監(jiān)測必須實時進(jìn)行,一旦發(fā)生監(jiān)測中斷,F(xiàn)uzzing 測試會向目標(biāo)主機發(fā)送大量不受控制的測試用例進(jìn)行無意義的測試,導(dǎo)致主機負(fù)荷運行從而崩潰,若不及時調(diào)整,算法將會持續(xù)進(jìn)行[15-16]。
5)確定可利用性
算法的可利用性主要通過人工采用其他測試方式進(jìn)行檢測,目的在于保證算法的準(zhǔn)確性,且由于不同檢測算法的異常標(biāo)準(zhǔn)存在一定差別,對于某些異常數(shù)據(jù),需要判斷該異常數(shù)據(jù)是否被利用。
為精準(zhǔn)評估該文設(shè)計的基于Fuzzing 測試的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)的實際應(yīng)用性能,設(shè)置相應(yīng)的實驗環(huán)境對其進(jìn)行性能檢驗,將該文設(shè)計的基于Fuzzing測試的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)與傳統(tǒng)的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)的工作效率和安全性進(jìn)行對比實驗。
針對網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)工作環(huán)境的復(fù)雜性,對其實驗環(huán)境進(jìn)行不斷篩選,由此獲得較為準(zhǔn)確的實驗結(jié)果,具體的實驗操作如下:
1)根據(jù)系統(tǒng)安裝準(zhǔn)則,在相同的兩個主機上安裝不同的安全監(jiān)控系統(tǒng),保證主機運行參數(shù)一致,確保系統(tǒng)的運行處于監(jiān)控范圍內(nèi),同時調(diào)控系統(tǒng)狀態(tài),使系統(tǒng)與目標(biāo)主機有效工作。
2)模擬網(wǎng)絡(luò)攻擊,對兩臺主機進(jìn)行相同次數(shù)、種類、時間、地點的網(wǎng)絡(luò)攻擊,并對模擬的網(wǎng)絡(luò)攻擊進(jìn)行編號,確保實驗參數(shù)的一致性。
3)統(tǒng)計兩個系統(tǒng)有效識別攻擊的數(shù)量和編號,記錄系統(tǒng)運行的時間,并將結(jié)果數(shù)據(jù)錄入相應(yīng)數(shù)據(jù)庫,進(jìn)行多次實驗,確保實驗結(jié)果的可靠性。
為進(jìn)一步提升兩種安全監(jiān)測系統(tǒng)的整體對比效果,需設(shè)計相應(yīng)的實驗參數(shù)進(jìn)行對比,實驗參數(shù)如表1 所示。
表1 實驗參數(shù)
根據(jù)上述實驗參數(shù)在相同的實驗環(huán)境下進(jìn)行對比實驗,對比兩種網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)的工作效率和安全性,得到的實驗結(jié)果如圖5 所示。
圖5 網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)工作效率對比圖
從圖5 可以看出,在相同時間內(nèi),該文設(shè)計基于Fuzzing 測試的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)工作效率較高、安全性較好,而傳統(tǒng)的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)的工作效率較低、安全性較差。監(jiān)測結(jié)果負(fù)荷量如表2 所示。
表2 監(jiān)測結(jié)果負(fù)荷量
綜上所述,該文系統(tǒng)的監(jiān)測能力優(yōu)于傳統(tǒng)監(jiān)測系統(tǒng)。造成這種情況的原因在于,該文設(shè)計的系統(tǒng)以Fuzzing 技術(shù)為基礎(chǔ),采用多種核心算法,并配合監(jiān)測器、數(shù)據(jù)處理器等硬件設(shè)備,提升對用戶行為的監(jiān)視能力,且能夠?qū)A康挠脩魯?shù)據(jù)進(jìn)行精確處理,使其在相同的工作時間內(nèi),能夠準(zhǔn)確識別并處理更多的網(wǎng)絡(luò)攻擊,且對于相同數(shù)量的網(wǎng)絡(luò)攻擊用時更加短暫。而傳統(tǒng)的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng),依靠靈活性較差的訪問控制機制識別和處理網(wǎng)絡(luò)攻擊,其對用戶網(wǎng)絡(luò)數(shù)據(jù)的抓取能力較差,易漏過危險行為,且采用的分析技術(shù)不夠成熟,不能對數(shù)據(jù)進(jìn)行快速且準(zhǔn)確的分析,導(dǎo)致整體的工作效率較低,安全性較差。
該文從硬件設(shè)計和軟件設(shè)計兩方面全面地設(shè)計了基于Fuzzing 測試的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng),根據(jù)工作效率、安全性兩個重要指標(biāo),與傳統(tǒng)的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)進(jìn)行對比實驗,通過對實驗結(jié)果的分析,證明該文設(shè)計的基于Fuzzing 測試的網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)具有較高的工作效率和安全性,能適應(yīng)未來網(wǎng)絡(luò)時代的發(fā)展,滿足用戶對網(wǎng)絡(luò)的安全需求。但面對層出不窮的網(wǎng)絡(luò)攻擊,網(wǎng)絡(luò)安全監(jiān)測系統(tǒng)還需不斷地更新和完善,才能確保網(wǎng)絡(luò)環(huán)境不被破壞,進(jìn)一步保證用戶的信息安全。