亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于前綴樹的工控入侵檢測算法

        2021-05-13 07:16:02林幼玲朱林全李揚(yáng)邢鑌陳彥如
        現(xiàn)代計(jì)算機(jī) 2021年8期
        關(guān)鍵詞:工控哈希內(nèi)存

        林幼玲,朱林全,李揚(yáng),邢鑌,4,陳彥如

        (1.四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065;2.重慶工業(yè)大數(shù)據(jù)創(chuàng)新中心有限公司,重慶400707;3.西南通信研究所保密通信重點(diǎn)實(shí)驗(yàn)室,成都610041;4.工業(yè)大數(shù)據(jù)應(yīng)用技術(shù)國家工程實(shí)驗(yàn)室,北京100043)

        0 引言

        隨著信息技術(shù)的發(fā)展及提高,傳統(tǒng)工業(yè)也逐漸向智能生產(chǎn)和智能工廠轉(zhuǎn)型,各種工業(yè)設(shè)備、傳感器等都成為了工業(yè)網(wǎng)絡(luò)中的一部分。這使得原本較為封閉的工業(yè)環(huán)境漸漸被打破,各種業(yè)務(wù)系統(tǒng)相互協(xié)作,數(shù)據(jù)在不同的系統(tǒng)、平臺間流動(dòng)。然而,由于工業(yè)網(wǎng)絡(luò)中的對象直接連接到不安全的互聯(lián)網(wǎng)上,設(shè)備很容易遭到攻擊者的入侵。工業(yè)控制系統(tǒng)作為基礎(chǔ)設(shè)施的重要組成部分,一旦遭受網(wǎng)絡(luò)攻擊,會(huì)造成財(cái)產(chǎn)損失、人員傷亡等嚴(yán)重后果。同時(shí),由于工業(yè)網(wǎng)絡(luò)中設(shè)備的資源和能量均有限,無法支持傳統(tǒng)或復(fù)雜的智能決策支持系統(tǒng)的運(yùn)行。因此,使用入侵檢測系統(tǒng)來檢測工業(yè)物聯(lián)網(wǎng)中工業(yè)控制系統(tǒng)的入侵是十分有必要的。

        入侵檢測系統(tǒng)主要用于檢查網(wǎng)絡(luò)的狀態(tài)和行為,當(dāng)檢測到入侵時(shí),會(huì)出發(fā)警報(bào)。入侵檢測系統(tǒng)主要有四種類型。第一種是基于簽名的入侵檢測系統(tǒng),它記錄了入侵檢測系統(tǒng)應(yīng)該檢測到的每種類型的攻擊的特征,當(dāng)可疑行為與特征相匹配時(shí),則被識別為入侵行為。這種方式可以高效地檢測入侵,具有較高的準(zhǔn)確率,但只能檢測已知的入侵。第二種是基于異常的入侵檢測系統(tǒng),其需要先收集系統(tǒng)正常行為的數(shù)據(jù),然后確定一個(gè)閾值,若可疑行為超過該閾值,則發(fā)出警報(bào)。該方式可以檢測未知攻擊,但計(jì)算量大,需要大量的內(nèi)存用于數(shù)據(jù)分析。第三種是基于異常和基于簽名的混合入侵檢測系統(tǒng),它結(jié)合了基于簽名的方式檢測效率高、準(zhǔn)確率高,以及基于異常的方式可以檢測未知入侵的優(yōu)點(diǎn)。第四種是基于規(guī)范的入侵檢測系統(tǒng),它指定通常的系統(tǒng)行為,并根據(jù)指定的行為驗(yàn)證當(dāng)前的行為。

        雖然基于簽名的入侵檢測方法具有較高的準(zhǔn)確率、較低的漏報(bào)率,但其需要較大的存儲空間用于存儲入侵的簽名,同時(shí),其匹配效率取決于使用的匹配算法。當(dāng)前已有不少的可用于工控系統(tǒng)的基于簽名的入侵檢測算法,如Suresh 等人提出的基于區(qū)塊鏈和單字符匹配的入侵檢測算法,程冬梅等人提出的基于規(guī)則匹配的分布式工控入侵檢測算法等。

        綜上,為了降低入侵簽名庫的存儲空間,提高入侵的檢測效率,本文提出了基于前綴樹的可用于工業(yè)控制系統(tǒng)的入侵檢測算法。

        1 理論基礎(chǔ)

        前綴樹的本質(zhì)是N 叉樹,也叫字典樹、查找樹或者鍵樹,其最典型的應(yīng)用是統(tǒng)計(jì)和排序字符串,因此常用于搜索引擎的詞頻統(tǒng)計(jì)。

        前綴樹的根節(jié)點(diǎn)不存儲字符信息,除根節(jié)點(diǎn)以外的每個(gè)節(jié)點(diǎn)都存儲一個(gè)字符的信息,而每一個(gè)節(jié)點(diǎn)都包含多個(gè)子節(jié)點(diǎn),從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)之間所代表的字符組成了一個(gè)字符串。如圖1 所示,從根節(jié)點(diǎn)開始,選擇最左邊的路徑“a”,然后選擇它的第二個(gè)孩子節(jié)點(diǎn)“d”,接著選擇它的第3 個(gè)孩子節(jié)點(diǎn)“d”,最終得到字符串“add”。從上圖我們可以看出,某一個(gè)節(jié)點(diǎn)的后代節(jié)點(diǎn)所代表的字符串都與該節(jié)點(diǎn)擁有著相同的前綴。例如‘e’節(jié)點(diǎn)的后代所表示的字符串為“l(fā)eaf”和“l(fā)eg”都有著相同的前綴“l(fā)e”。

        圖1 前綴樹

        前綴樹的具體實(shí)現(xiàn)方式有很多種,如數(shù)組、哈希表、位圖等。若用數(shù)組的方式來實(shí)現(xiàn),假設(shè)只存儲含有字母“a”-“z”的字符串,則可以在每個(gè)樹的節(jié)點(diǎn)中聲明一個(gè)長度為26 的數(shù)組來進(jìn)行存儲其子節(jié)點(diǎn)。若要判斷某個(gè)字符是否存在時(shí),則只需要通過其下標(biāo)進(jìn)行索引。若使用哈希表的方式進(jìn)行實(shí)現(xiàn),則每個(gè)樹的節(jié)點(diǎn)中包含了一個(gè)哈希表,而哈希表中則存儲了該節(jié)點(diǎn)所包含的子節(jié)點(diǎn)。使用數(shù)組的方式進(jìn)行實(shí)現(xiàn)可以十分高效地進(jìn)行查詢,但會(huì)造成空間浪費(fèi);而使用哈希表進(jìn)行實(shí)現(xiàn),則不會(huì)造成空間浪費(fèi),但查詢效率卻會(huì)有所下降。

        2 系統(tǒng)設(shè)計(jì)與算法實(shí)現(xiàn)

        2.1 系統(tǒng)設(shè)計(jì)

        本文所提出的工控入侵檢測系統(tǒng)主要是通過捕獲工控網(wǎng)絡(luò)中的網(wǎng)絡(luò)層數(shù)據(jù),通過對網(wǎng)絡(luò)層的數(shù)據(jù)進(jìn)行分析,以達(dá)到檢測入侵的目的。該系統(tǒng)的核心為入侵檢測,該系統(tǒng)中的入侵檢測功能主要包括四個(gè)模塊,第一個(gè)是報(bào)文捕獲模塊,該模塊主要負(fù)責(zé)獲取工控網(wǎng)絡(luò)中的網(wǎng)絡(luò)層數(shù)據(jù)。第二個(gè)是報(bào)文提取模塊,該模塊負(fù)責(zé)對捕獲的報(bào)文中的信息進(jìn)行提取,以用于入侵的檢測。第三個(gè)模塊是入侵檢測模塊,該模塊通過對前一個(gè)模塊獲得的信息進(jìn)行分析,以判斷該次行為是否為入侵行為。第四個(gè)模塊是響應(yīng)模塊,該模塊根據(jù)入侵檢測模塊的結(jié)果做出響應(yīng),若該次行為為正常行為,則不進(jìn)行任何操作;反之,若該次行為為入侵,則攔截該次請求并觸發(fā)警報(bào)。

        圖2 為該入侵檢測系統(tǒng)的結(jié)構(gòu)圖,該系統(tǒng)主要包括展示層、應(yīng)用層、數(shù)據(jù)管理層和入侵檢測層。入侵檢測層是該系統(tǒng)的核心,其能實(shí)時(shí)的檢測入侵。入侵檢測層通過其內(nèi)部預(yù)置的基于前綴樹構(gòu)建的入侵簽名庫,來實(shí)現(xiàn)入侵檢測的目的。數(shù)據(jù)管理層主要用于各種數(shù)據(jù)的存儲,包括入侵簽名、報(bào)警信息、系統(tǒng)狀態(tài)信息、系統(tǒng)日志記錄等。應(yīng)用層主要是為管理人員提供服務(wù),如為管理員提供簽名配置功能,包括增加、刪除、修改和查詢簽名;日志查詢或?qū)徲?jì)功能;入侵信息查詢功能等。展示層主要可視化地顯示系統(tǒng)狀態(tài)、報(bào)警日志、日志統(tǒng)計(jì)等信息。

        圖2 入侵檢測系統(tǒng)結(jié)構(gòu)圖

        2.2 入侵檢測算法

        由于需要判別的數(shù)據(jù)包括行為數(shù)據(jù)和內(nèi)容數(shù)據(jù),行為數(shù)據(jù)包括源IP 地址、源端口號、目的IP 地址、目的端口號、源端和目的端的設(shè)備地址、源端和目的端的功能代碼,而內(nèi)容數(shù)據(jù)則為數(shù)據(jù)包中的數(shù)據(jù)字段。因此本文中的入侵檢測采用布隆過濾器和前綴樹結(jié)合的方式來實(shí)現(xiàn)入侵檢測。布隆過濾器用于行為的檢測,而前綴樹則用于數(shù)據(jù)包中數(shù)據(jù)字段的檢測。布隆過濾器和前綴樹分別對對應(yīng)的數(shù)據(jù)進(jìn)行檢測,若某一部分?jǐn)?shù)據(jù)存在于對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,則認(rèn)為該次請求為入侵;反之,若兩部分的數(shù)據(jù)都不存在與對應(yīng)的數(shù)據(jù)結(jié)構(gòu)中,則認(rèn)為該次請求為正常行為。

        本系統(tǒng)中入侵檢測模塊中的核心檢測算法偽代碼如下所示:

        輸入:行為參數(shù),內(nèi)容參數(shù)

        輸出:是否為入侵?jǐn)?shù)據(jù)

        //判斷某個(gè)元素是否存在于布隆過濾器中

        Boolean contains(String value,BloomFilter bf){

        boolean res=true;

        //遍歷k 個(gè)哈希函數(shù)

        for(HashFun f:func){

        //判斷計(jì)算得到的位置上的值是否都為1

        res=res&&bits.get(f.hash(value);

        }

        return res;

        }

        //判斷某個(gè)元素是否存在于前綴樹中

        Boolean isExist(String value){

        TrieNode node=root;

        for(int i=0;i <value.length();i++){

        char cur=value.charAt(i);

        //判斷樹的當(dāng)前節(jié)點(diǎn)是否包含該字符

        if(node.containsKey(cur)){

        node=node.get(cur);

        }else{

        return false;

        }

        }

        //判斷當(dāng)前結(jié)點(diǎn)是否為葉子節(jié)點(diǎn)

        return node!=null&&node.isEnd();

        }

        //判斷是否為入侵

        Boolean isIntrusion(String value1,String value2){

        //value1 表示行為參數(shù)

        //value2 表示內(nèi)容參數(shù)

        boolean res1=contains(value1);

        boolean res2=isExist(value2);

        //如果res1 和res2 有一個(gè)為入侵?jǐn)?shù)據(jù),則為入侵

        if(res1||res2){

        return true;

        }

        else{

        return false;

        }

        }

        本文通過對已知的基于Modbus 協(xié)議的工控系統(tǒng)中的網(wǎng)絡(luò)層數(shù)據(jù)進(jìn)行分析,整理出了一系列的入侵特征數(shù)據(jù),并將這些數(shù)據(jù)存儲到前綴樹中,以此來構(gòu)建并初始化了工控入侵檢測的簽名數(shù)據(jù)庫。同樣地,出于對內(nèi)存的考慮,本文以入侵特征來構(gòu)建入侵檢測的簽名數(shù)據(jù)庫,而非以正常的行為特征作為檢測的依據(jù)。主要原因如下,正常行為特征可能遠(yuǎn)多于入侵行為特征,若以正常行為特征來構(gòu)建前綴樹的話,可能會(huì)導(dǎo)致前綴樹過大,從而占用過多的內(nèi)存空間。同時(shí),出于對內(nèi)存占用情況的考慮,本文中前綴樹節(jié)點(diǎn)的實(shí)現(xiàn)擬采用位圖的方式實(shí)現(xiàn)。位圖相較于數(shù)組的方式,能很大程度上降低內(nèi)存的開銷。而位圖相對于哈希表的方式,又能在一定程度上提高查詢效率。

        3 實(shí)驗(yàn)結(jié)果與分析

        該實(shí)驗(yàn)的數(shù)據(jù)集為密西西比州立大學(xué)關(guān)鍵基礎(chǔ)設(shè)施保護(hù)中心于2014 年發(fā)布的用于工控系統(tǒng)入侵檢測評估的數(shù)據(jù)集,該數(shù)據(jù)集中的數(shù)據(jù)是通過兩個(gè)數(shù)據(jù)采集系統(tǒng)獲得的,分別來自于天然氣管道數(shù)據(jù)采集系統(tǒng)和儲水箱數(shù)據(jù)采集系統(tǒng)。本文通過對天然氣管道的數(shù)據(jù)集進(jìn)行分析后,基于前綴樹構(gòu)建了入侵?jǐn)?shù)據(jù)的簽名特征庫,經(jīng)過多次的實(shí)驗(yàn)與優(yōu)化,在該數(shù)據(jù)集上,該入侵檢測算法的準(zhǔn)確率大約為92%。而檢測準(zhǔn)確率無法達(dá)到100%的原因主要是入侵簽名規(guī)則的提取不夠準(zhǔn)確,未能將所有的入侵簽名規(guī)則都總結(jié)出來。同時(shí),通過實(shí)驗(yàn)對比得到,基于位圖構(gòu)建的前綴樹相對于數(shù)組實(shí)現(xiàn)的前綴樹能在很大程度上節(jié)省內(nèi)存空間;而基于位圖構(gòu)建的前綴樹相較于基于哈希表構(gòu)建的前綴樹具有較高的檢測效率。

        4 結(jié)語

        本文提出了基于前綴樹的工控入侵檢測算法,首先對前綴樹的理論進(jìn)行了介紹,其次對本文中提出的入侵檢測系統(tǒng)和入侵算法進(jìn)行了詳細(xì)的描述,最后對該入侵算法進(jìn)行了多個(gè)維度的性能分析。該入侵檢測算法可以在一定的程度上降低內(nèi)存的使用率,且具有較高的查詢效率,可用于工控網(wǎng)絡(luò)系統(tǒng)中的入侵檢測,具有一定的實(shí)際意義。然而,基于前綴樹的入侵檢測中對內(nèi)存的使用仍無法達(dá)到最優(yōu),因此在接下來的工作中將從降低內(nèi)存占用入手,使得該入侵檢測算法具有更高的性能。

        猜你喜歡
        工控哈希內(nèi)存
        “春夏秋冬”的內(nèi)存
        工控速派 一個(gè)工控技術(shù)服務(wù)的江湖
        工控速?zèng)?一個(gè)工控技術(shù)服務(wù)的江湖
        熱點(diǎn)追蹤 工控安全低調(diào)而不失重要
        基于攻擊圖的工控系統(tǒng)脆弱性量化方法
        基于OpenCV與均值哈希算法的人臉相似識別系統(tǒng)
        基于維度分解的哈希多維快速流分類算法
        基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗(yàn)證算法
        一種基于Bigram二級哈希的中文索引結(jié)構(gòu)
        基于內(nèi)存的地理信息訪問技術(shù)
        大又大又粗又硬又爽少妇毛片| av永久天堂一区二区三区蜜桃| 麻豆国产精品伦理视频| 国产自拍av在线观看视频| 亚洲一区 日韩精品 中文字幕 | 国产乱xxⅹxx国语对白| 天天躁日日躁狠狠躁一区| 国产喷白浆精品一区二区豆腐| 久久伊人最新网址视频| 99久久伊人精品综合观看| 熟妇无码AV| 亚洲一区二区三区亚洲| 欧美性生交大片免费看app麻豆| 内射无码专区久久亚洲 | 人妻少妇久久精品一区二区| 国产乱人精品视频av麻豆网站| 国产av无码专区亚洲av毛网站| 国产高中生在线| 精品国产三级国产av| 亚洲av综合色区无码另类小说| 风韵饥渴少妇在线观看| 一本加勒比hezyo无码视频| 亚洲熟少妇一区二区三区| 精品国产精品国产偷麻豆| 亚洲妓女综合网99| 国产精品人人爱一区二区白浆| 99久久免费看精品国产一| 99亚洲男女激情在线观看| 狠狠躁狠狠躁东京热无码专区| 日韩一区二区中文字幕| 国产午夜免费高清久久影院| 曰本极品少妇videossexhd| 亚洲日韩精品AⅤ片无码富二代| 在线观看麻豆精品视频| 最近免费mv在线观看动漫| 啪啪视频一区二区三区入囗| 亚洲一本二区偷拍精品| 成人乱码一区二区三区av| 欧美在线不卡视频| 99视频偷拍视频一区二区三区| 日韩夜夜高潮夜夜爽无码|