一種網絡攻擊串檢測方法及裝置與流程
2023-05-28 20:49:06 1

本發明實施例涉及網絡安全技術領域,具體涉及一種網絡攻擊串檢測方法及裝置。
背景技術:
隨著網際網路的快速發展,給人們的生活帶來了極大的便利,但同時也帶來了新的安全挑戰,當今的網絡安全問題已經不容忽視。早期的網絡大部分為c/s結構,給用戶提供信息服務。而今天大部分都實現了b/s結構,用戶打開網頁就可以購物,打開網站就可以購買股票、彩票甚至是捐助希望工程。當web應用越來越為豐富的同時,web伺服器以其蘊含的高價值數據、較大影響力逐漸成為主要攻擊目標。網絡安全事件頻繁發生,尤其是針對網絡入侵導致敏感數據洩漏或網頁篡改,造成了惡劣的社會輿論影響。
現有方法中針對網絡攻擊,主要採用字符串匹配算法,基於特定的規則,對網絡中傳輸的字符串進行匹配,在一定程度上避免了部分惡意的網絡攻擊。
在實現本發明實施例的過程中,發明人發現現有的方法基於特定規則進行字符串匹配,容易讓攻擊者發現匹配規律,造成網絡攻擊的漏報和誤報。
技術實現要素:
由於現有方法存在上述問題,本發明實施例提出一種網絡攻擊串檢測方法及裝置。
第一方面,本發明實施例提出一種網絡攻擊串檢測方法,包括:
獲取網絡字符串,對所述網絡字符串進行分詞處理,得到若干個分詞字符串;
將各分詞字符串分別輸入正常檢測模型,得到若干個對應的正常匹配值,並根據所述若干個對應的正常匹配值得到所述網絡字符串的正常檢測值;
將各分詞字符串分別輸入異常檢測模型,得到若干個對應的異常匹配值,並根據所述若干個對應的異常匹配值得到所述網絡字符串的異常檢測值;
若判斷獲知所述異常檢測值大於所述正常檢測值,則確定所述網絡字符串為網絡攻擊串。
可選地,所述將各分詞字符串分別輸入異常檢測模型,得到若干個對應的異常匹配值,並根據所述若干個對應的異常匹配值得到所述網絡字符串的異常檢測值,具體包括:
將各分詞字符串分別輸入異常檢測模型,得到若干個對應的異常匹配值;
若判斷獲知相鄰的分詞字符串均為所述異常檢測模型中的預設攻擊串,則對所述相鄰的分詞字符串對應的異常匹配值進行加權計算;
根據各分詞字符串對應的異常匹配值得到所述網絡字符串的異常檢測值。
可選地,所述方法還包括:
根據正常樣本數據構建所述正常檢測模型,並根據異常樣本數據構建所述異常檢測模型。
可選地,所述方法還包括:
若判斷獲知所述異常檢測值小於或等於所述正常檢測值,則確定所述網絡字符串為正常網絡串。
第二方面,本發明實施例還提出一種網絡攻擊串檢測裝置,包括:
字符串分詞模塊,用於獲取網絡字符串,對所述網絡字符串進行分詞處理,得到若干個分詞字符串;
正常檢測模塊,用於將各分詞字符串分別輸入正常檢測模型,得到若干個對應的正常匹配值,並根據所述若干個對應的正常匹配值得到所述網絡字符串的正常檢測值;
異常檢測模塊,用於將各分詞字符串分別輸入異常檢測模型,得到若干個對應的異常匹配值,並根據所述若干個對應的異常匹配值得到所述網絡字符串的異常檢測值;
攻擊串確定模塊,用於若判斷獲知所述異常檢測值大於所述正常檢測值,則確定所述網絡字符串為網絡攻擊串。
可選地,所述異常檢測模塊具體包括:
分詞字符串匹配單元,用於將各分詞字符串分別輸入異常檢測模型,得到若干個對應的異常匹配值;
匹配值加權單元,用於若判斷獲知相鄰的分詞字符串均為所述異常檢測模型中的預設攻擊串,則對所述相鄰的分詞字符串對應的異常匹配值進行加權計算;
異常檢測單元,用於根據各分詞字符串對應的異常匹配值得到所述網絡字符串的異常檢測值。
可選地,所述裝置還包括:
模型構建模塊,用於根據正常樣本數據構建所述正常檢測模型,並根據異常樣本數據構建所述異常檢測模型。
可選地,所述裝置還包括:
正常檢測模塊,用於若判斷獲知所述異常檢測值小於或等於所述正常檢測值,則確定所述網絡字符串為正常網絡串。
第三方面,本發明實施例還提出一種電子設備,包括:
至少一個處理器;以及
與所述處理器通信連接的至少一個存儲器,其中:
所述存儲器存儲有可被所述處理器執行的程序指令,所述處理器調用所述程序指令能夠執行上述方法。
第四方面,本發明實施例還提出一種非暫態計算機可讀存儲介質,所述非暫態計算機可讀存儲介質存儲電腦程式,所述電腦程式使所述計算機執行上述方法。
由上述技術方案可知,本發明實施例通過將分詞處理後的分詞字符串分別輸入正常檢測模型和異常檢測模型,得到正常檢測值和異常檢測值,並通過對比正常檢測值和異常檢測值確定網絡攻擊串,並不依賴單一的規則,使攻擊者無法發現匹配規律,大大提升了網絡攻擊檢測的效率和準確率。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些圖獲得其他的附圖。
圖1為本發明一實施例提供的一種網絡攻擊串檢測方法的流程示意圖;
圖2為本發明一實施例提供的一種網絡攻擊串檢測裝置的結構示意圖;
圖3為本發明一實施例提供的電子設備的邏輯框圖。
具體實施方式
下面結合附圖,對本發明的具體實施方式作進一步描述。以下實施例僅用於更加清楚地說明本發明的技術方案,而不能以此來限制本發明的保護範圍。
圖1示出了本實施例提供的一種網絡攻擊串檢測方法的流程示意圖,包括:
s101、獲取網絡字符串,對所述網絡字符串進行分詞處理,得到若干個分詞字符串。
其中,所述網絡字符串為伺服器或終端設備接收的網絡中傳輸的字符串。
所述分詞處理為將所述網絡字符串劃分為若干個子串的處理過程。舉例來說,所述網絡字符串為「abcdef」,則對「abcdef」進行分詞處理,可以得到「ab」、「bc」、「cd」、「de」和「ef」五個子串,即五個分詞字符串。
所述分詞字符串為對所述網絡字符串進行分詞處理後得到的子串。
具體地,可以將若干個分詞字符串存儲在一個詞彙列表中,該詞彙列表包括若干個元素,每個元素就是一個分詞字符串。
s102、將各分詞字符串分別輸入正常檢測模型,得到若干個對應的正常匹配值,並根據所述若干個對應的正常匹配值得到所述網絡字符串的正常檢測值。
其中,所述正常檢測模型為根據安全字符串樣本數據構建的用於檢測輸入的分詞字符串是否正常的模型。
所述正常匹配值為分詞字符串輸入正常檢測模型後,得到的匹配值。
所述正常檢測值為綜合考慮所有分詞字符串的正常匹配值後得到的綜合匹配值,即為所述網絡字符串為經過檢驗後安全的正常網絡串的檢測值。
s103、將各分詞字符串分別輸入異常檢測模型,得到若干個對應的異常匹配值,並根據所述若干個對應的異常匹配值得到所述網絡字符串的異常檢測值。
其中,所述異常檢測模型為根據攻擊字符串樣本數據構建的用於檢測輸入的分詞字符串是否異常的模型。
所述異常匹配值為分詞字符串輸入異常檢測模型後,得到的匹配值。
所述異常檢測值為綜合考慮所有分詞字符串的異常匹配值後得到的綜合匹配值,即為所述網絡字符串為網絡攻擊串的檢測值。
s104、若判斷獲知所述異常檢測值大於所述正常檢測值,則確定所述網絡字符串為網絡攻擊串。
舉例來說,若異常檢測值為25,正常檢測值為13,由於25大於13,因此可確定所述網絡字符串為網絡攻擊串,後續可對所述網絡攻擊串執行攔截和記錄等操作。
需要說明的是,步驟s102和s103相互獨立,其執行的先後順序無特定要求,也可以先執行s103,後執行s102。
本實施例通過將分詞處理後的分詞字符串分別輸入正常檢測模型和異常檢測模型,得到正常檢測值和異常檢測值,並通過對比正常檢測值和異常檢測值確定網絡攻擊串,並不依賴單一的規則,使攻擊者無法發現匹配規律,大大提升了網絡攻擊檢測的效率和準確率。
進一步地,在上述方法實施例的基礎上,s103具體包括:
s1031、將各分詞字符串分別輸入異常檢測模型,得到若干個對應的異常匹配值;
s1032、若判斷獲知相鄰的分詞字符串均為所述異常檢測模型中的預設攻擊串,則對所述相鄰的分詞字符串對應的異常匹配值進行加權計算;
s1033、根據各分詞字符串對應的異常匹配值得到所述網絡字符串的異常檢測值。
其中,所述相鄰的分詞字符串為依次對所述網絡字符串進行分詞處理後得到分詞字符串中,相鄰的分詞字符串。
所述預設攻擊串為異常檢測模型中預先設置的若干個已被確定有攻擊風險的字符串。
所述對所述相鄰的分詞字符串對應的異常匹配值進行加權計算,舉例來說,原來相鄰的分詞字符串的異常匹配值分別為3和5,由於是相鄰的預設攻擊串,因此加上權值1.5,則相鄰的分詞字符串的異常匹配值分別變為4.5和7.5。
本實施例先對網絡字符串使用分詞處理算法,構建一個詞彙列表,遍歷詞彙列表,在預設的正常檢測模型和異常檢測模型中進行匹配,如果匹配成功則獲取對應的匹配值。對於特定詞組進行連續性加權,保證特定詞組的出現獲得一個較高的得分,使網絡攻擊檢測拋棄基於規則的檢測方法,大大提升效率和準確率。
進一步地,在上述方法實施例的基礎上,所述方法還包括:
s105、根據正常樣本數據構建所述正常檢測模型,並根據異常樣本數據構建所述異常檢測模型。
其中,所述正常樣本數據為預先根據具體要求選擇的正常的樣本數據,所述異常樣本數據為預先根據具體要求選擇的異常的樣本數據。
通過選擇不同的樣本數據構建不同的檢測模型,使得攻擊者無法猜測具體的防攻擊規則,避免攻擊者發現匹配規律,能夠大大提升網絡攻擊檢測的效率和準確率。
進一步地,在上述方法實施例的基礎上,所述方法還包括:
s106、若判斷獲知所述異常檢測值小於或等於所述正常檢測值,則確定所述網絡字符串為正常網絡串。
其中,所述正常網絡串為經過檢驗後認定為安全的字符串。
通過確定正常網絡串,能夠使得網絡在攔截網絡攻擊串的同時,對經過檢驗後安全的正常網絡串進行放行,保證用戶接收數據的安全。
舉例來說,獲取的待檢測的網絡字符串為:
1and1=2unionselect1#
對上述網絡字符串的具體操作包括以下步驟:
a1、將上述網絡字符串進行分詞處理後,結果形成詞彙列表,詞彙列表具體為:
['num','and','num','=','num','union','select','num','#」]
其中,所有的數字用「num」替代,便於檢測。
a2、將詞彙列表中的所有分詞字符串輸入異常檢測模型abnormal模型進行查找,則上述網絡字符串「1and1=2unionselect1#」的異常檢測值v_abnormal為:
v_abnormal=v_abnormal(num,and,num)+v_abnormal(and,num,=)+v_abnormal(num,=,num)+v_abnormal(=,num,union)+v_abnormal(union,select,num)+v_abnormal(select,num,#)。
具體地,假設,在v_abnormal中,(=,num,union)和(union,select,num)和(select,num,#)是特定攻擊詞彙(預設攻擊串),則:
v_abnormal=v_abnormal(num,and,num)+v_abnormal(and,num,=)+v_abnormal(num,=,num)+x×(v_abnormal(=,num,union)+v_abnormal(union,select,num)+v_abnormal(select,num,#))
其中,x為特定計算的權值。
a3、同步驟a2,在正常檢測模型normal模型查找上述網絡字符串「1and1=2unionselect1#」後得到的正常檢測值v_normal為:
v_normal=v_normal(num,and,num)+v_normal(and,num,=)+v_normal(num,=,num)+v_normal(=,num,union)+v_normal(union,select,num)+v_normal(select,num,#)
正常檢測模型不會有特定攻擊詞彙,因此不會有乘以權值的項。
a4、v_normal和v_abnormal的值即可判斷最終結果,如果v_normal的值更大,則上述網絡字符串為正常網絡串;如果v_abnormal的值更大,則上述網絡字符串為網絡攻擊串。
需要說明的是,步驟a2和a3相互獨立,其執行的先後順序無特定要求,也可以先執行a3,後執行a2。
圖2示出了本實施例提供的一種網絡攻擊串檢測裝置的結構示意圖,所述裝置包括:字符串分詞模塊201、正常檢測模塊202、異常檢測模塊203和攻擊串確定模塊204,其中:
所述字符串分詞模塊201用於獲取網絡字符串,對所述網絡字符串進行分詞處理,得到若干個分詞字符串;
所述正常檢測模塊202用於將各分詞字符串分別輸入正常檢測模型,得到若干個對應的正常匹配值,並根據所述若干個對應的正常匹配值得到所述網絡字符串的正常檢測值;
所述異常檢測模塊203用於將各分詞字符串分別輸入異常檢測模型,得到若干個對應的異常匹配值,並根據所述若干個對應的異常匹配值得到所述網絡字符串的異常檢測值;
所述攻擊串確定模塊204用於若判斷獲知所述異常檢測值大於所述正常檢測值,則確定所述網絡字符串為網絡攻擊串。
具體地,所述字符串分詞模塊201獲取網絡字符串,對所述網絡字符串進行分詞處理,得到若干個分詞字符串;所述正常檢測模塊202將各分詞字符串分別輸入正常檢測模型,得到若干個對應的正常匹配值,並根據所述若干個對應的正常匹配值得到所述網絡字符串的正常檢測值;所述異常檢測模塊203將各分詞字符串分別輸入異常檢測模型,得到若干個對應的異常匹配值,並根據所述若干個對應的異常匹配值得到所述網絡字符串的異常檢測值;所述攻擊串確定模塊204若判斷獲知所述異常檢測值大於所述正常檢測值,則確定所述網絡字符串為網絡攻擊串。
本實施例通過將分詞處理後的分詞字符串分別輸入正常檢測模型和異常檢測模型,得到正常檢測值和異常檢測值,並通過對比正常檢測值和異常檢測值確定網絡攻擊串,並不依賴單一的規則,使攻擊者無法發現匹配規律,大大提升了網絡攻擊檢測的效率和準確率。
進一步地,在上述裝置實施例的基礎上,所述異常檢測模塊203具體包括:
分詞字符串匹配單元,用於將各分詞字符串分別輸入異常檢測模型,得到若干個對應的異常匹配值;
匹配值加權單元,用於若判斷獲知相鄰的分詞字符串均為所述異常檢測模型中的預設攻擊串,則對所述相鄰的分詞字符串對應的異常匹配值進行加權計算;
異常檢測單元,用於根據各分詞字符串對應的異常匹配值得到所述網絡字符串的異常檢測值。
進一步地,在上述裝置實施例的基礎上,所述裝置還包括:
模型構建模塊,用於根據正常樣本數據構建所述正常檢測模型,並根據異常樣本數據構建所述異常檢測模型。
進一步地,在上述裝置實施例的基礎上,所述裝置還包括:
正常檢測模塊,用於若判斷獲知所述異常檢測值小於或等於所述正常檢測值,則確定所述網絡字符串為正常網絡串。
本實施例所述的網絡攻擊串檢測裝置可以用於執行上述方法實施例,其原理和技術效果類似,此處不再贅述。
參照圖3,所述電子設備,包括:處理器(processor)301、存儲器(memory)302和總線303;
其中,
所述處理器301和存儲器302通過所述總線303完成相互間的通信;
所述處理器301用於調用所述存儲器302中的程序指令,以執行上述各方法實施例所提供的方法。
本實施例公開一種電腦程式產品,所述電腦程式產品包括存儲在非暫態計算機可讀存儲介質上的電腦程式,所述電腦程式包括程序指令,當所述程序指令被計算機執行時,計算機能夠執行上述各方法實施例所提供的方法。
本實施例提供一種非暫態計算機可讀存儲介質,所述非暫態計算機可讀存儲介質存儲計算機指令,所述計算機指令使所述計算機執行上述各方法實施例所提供的方法。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性的勞動的情況下,即可以理解並實施。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可藉助軟體加必需的通用硬體平臺的方式來實現,當然也可以通過硬體。基於這樣的理解,上述技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品可以存儲在計算機可讀存儲介質中,如rom/ram、磁碟、光碟等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行各個實施例或者實施例的某些部分所述的方法。
應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的精神和範圍。