本發明涉及網絡安全技術領域,尤其涉及一種識別報文所屬組件的方法和計算設備。
背景技術:
隨著網絡通信技術的迅速發展、所承載信息的日益豐富,互聯網已成為人類社會重要的基礎設施,越來越多的企業或者個人通過網絡服務器以及服務器的各種組件向用戶提供網絡內容和服務。
網絡服務器的各種組件在給人們的生活帶來各種方便的同時,也給網絡安全管理帶來一些嚴峻的問題,例如組件可能攜帶安全漏洞、病毒、木馬等,造成用戶隱私泄露、網絡安全隱患。因此對組件進行識別十分關鍵。
通常地,可以通過識別報文來確定其所屬組件,但目前這一過程主要由人工完成,需要由識別人員從報文中提取有效的關鍵字段,再借助搜索引擎判斷組件類型、所屬公司和型號,由于報文種類繁多,復雜度較高,整個過程耗費極大的人力和時間。
因此,迫切需要一種更先進的識別報文所屬組件的方案。
技術實現要素:
為此,本發明提供一種識別報文所屬組件的方案,以力圖解決或者至少緩解上面存在的至少一個問題。
根據本發明的一個方面,提供了一種識別報文所屬組件的方法,適于在計算設備中執行,該方法包括步驟:從待識別報文中提取至少一個關鍵字段;對于所提取的一個關鍵字段,利用搜索引擎查詢該關鍵字段,以得到多個包含有該關鍵字段的報文、以及返回該報文的ip地址;分別獲取查詢到的每個ip地址指向的網絡內容的截圖;根據所獲取的多個網絡內容的截圖來判斷該關鍵字段是否有效;對于基于有效的關鍵字段而獲取的每個網絡內容截圖,計算查詢到的、指向該網絡內容的ip地址返回的報文與待識別報文的相似度;選取其中相似度最高的報文所對應的網絡內容的截圖,根據該截圖,采用預先建立的深度學習模型來獲取待識別報文的組件信息;以及根據該組件信息確定待識別報文所屬的組件。
根據本發明的另一方面,提供了一種計算設備,包括:一個或多個處理器;存儲器;以及一個或多個程序,其中一個或多個程序存儲在存儲器中并被配置為由一個或多個處理器執行,一個或多個程序包括用于執行根據本發明的識別報文所屬組件的方法中的任一方法的指令。
根據本發明的還有一個方面,提供了一種存儲程序的可讀存儲介質,程序包括指令,該指令當由計算設備執行時,使得計算設備執行根據本發明的識別報文所屬組件的方法中的任一方法。
根據本發明的識別報文所屬組件的方案,通過獲取其報文包含有從待識別報文中提取的關鍵字段的多個報文,并利用深度學習模型來獲取待識別報文的組件信息,最后根據組件信息確定組件,實現了報文所屬組件的自動化識別,極大地節省了人力和時間成本。
其中,還根據返回所獲取的報文的多個ip地址指向的網絡內容的截圖來判斷關鍵字段是否有效,從而避免了利用無效關鍵字段進行識別的冗余流程,提高了識別效率。
附圖說明
為了實現上述以及相關目的,本文結合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護的主題的范圍內。通過結合附圖閱讀下面的詳細描述,本公開的上述以及其它目的、特征和優勢將變得更加明顯。遍及本公開,相同的附圖標記通常指代相同的部件或元素。
圖1示出了根據本發明的一個示例性實施方式的計算設備100的結構框圖;
圖2示出了根據本發明的一個示例性實施方式的識別報文所屬組件的方法200的流程圖;以及
圖3示出了根據本發明一個示例性實施方式的網絡空間搜索引擎的查詢結果的頁面截圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
圖1示出了根據本發明一個示例性實施例的計算設備100的結構框圖。該計算設備100可以實現為服務器,例如文件服務器、數據庫服務器、應用程序服務器和網絡服務器等,也可以實現為包括桌面計算機和筆記本計算機配置的個人計算機。此外,計算設備100還可以實現為小尺寸便攜(或者移動)電子設備的一部分,這些電子設備可以是諸如蜂窩電話、個人數字助理(pda)、個人媒體播放器設備、無線網絡瀏覽設備、個人頭戴設備、應用專用設備、或者可以包括上面任何功能的混合設備。
在基本的配置102中,計算設備100典型地包括系統存儲器106和一個或者多個處理器104。存儲器總線108可以用于在處理器104和系統存儲器106之間的通信。
取決于期望的配置,處理器104可以是任何類型的處理,包括但不限于:微處理器((μp)、微控制器(μc)、數字信息處理器(dsp)或者它們的任何組合。處理器104可以包括諸如一級高速緩存110和二級高速緩存112之類的一個或者多個級別的高速緩存、處理器核心114和寄存器116。示例的處理器核心114可以包括運算邏輯單元(alu)、浮點數單元(fpu)、數字信號處理核心(dsp核心)或者它們的任何組合。示例的存儲器控制器118可以與處理器104一起使用,或者在一些實現中,存儲器控制器218可以是處理器104的一個內部部分。
取決于期望的配置,系統存儲器106可以是任意類型的存儲器,包括但不限于:易失性存儲器(諸如ram)、非易失性存儲器(諸如rom、閃存等)或者它們的任何組合。系統存儲器106可以包括操作系統120、一個或者多個程序122以及程序數據124。在一些實施方式中,程序122可以被配置為在操作系統上由一個或者多個處理器104利用程序數據124執行指令。
計算設備100還可以包括有助于從各種接口設備(例如,輸出設備142、外設接口144和通信設備146)到基本配置102經由總線/接口控制器130的通信的接口總線140。示例的輸出設備142包括圖形處理單元148和音頻處理單元150。它們可以被配置為有助于經由一個或者多個a/v端口152與諸如顯示器或者揚聲器之類的各種外部設備進行通信。示例外設接口144可以包括串行接口控制器154和并行接口控制器156,它們可以被配置為有助于經由一個或者多個i/o端口158和諸如輸入設備(例如,鍵盤、鼠標、筆、語音輸入設備、觸摸輸入設備)或者其他外設(例如打印機、掃描儀等)之類的外部設備進行通信。示例的通信設備146可以包括網絡控制器160,其可以被布置為便于經由一個或者多個通信端口164與一個或者多個其他計算設備162通過網絡通信鏈路的通信。
網絡通信鏈路可以是通信介質的一個示例。通信介質通常可以體現為在諸如載波或者其他傳輸機制之類的調制數據信號中的計算機可讀指令、數據結構、程序模塊,并且可以包括任何信息遞送介質。“調制數據信號”可以這樣的信號,它的數據集中的一個或者多個或者它的改變可以在信號中編碼信息的方式進行。作為非限制性的示例,通信介質可以包括諸如有線網絡或者專線網絡之類的有線介質,以及諸如聲音、射頻(rf)、微波、紅外(ir)或者其它無線介質在內的各種無線介質。這里使用的術語計算機可讀介質可以包括存儲介質和通信介質二者。
其中,計算設備100的一個或多個程序122包括用于執行根據本發明的識別報文所屬組件的方法中任一方法的指令。根據本發明的識別報文所屬組件的方法,通過獲取其報文包含有從待識別報文中提取的關鍵字段的多個報文,并利用深度學習模型來獲取待識別報文的組件信息,最后根據組件信息確定組件,實現了報文所屬組件的自動化識別,極大地節省了人力和時間成本。
圖2示出了根據本發明一個示例性實施方式的識別報文所屬組件的方法200的流程圖。識別報文所屬組件的方法200適于在計算設備100中執行,并始于步驟s210。
在步驟s210中,從待識別報文中提取至少一個關鍵字段。具體地,可以根據預置的關鍵字集合,在待識別的報文中通過字符串匹配得到至少一個關鍵字段。例如,待識別的報文可以如下:
預置的關鍵字集合可以為server:|www-authenticate:basicrealm=|location=|<title>,那么根據該關鍵字集合,最后得到的關鍵字段為www-authenticate:basicrealm="camera_authenticate1"。
通常地,提取到的關鍵字段為多個,那么接著對于所提取的其中一個關鍵字段,在步驟s220中,利用搜索引擎查詢該關鍵字段,以得到多個包含有該關鍵字段的報文、以及返回該報文的ip地址。
這里的搜索引擎可以是諸如zoomeye和shadon之類的網絡空間搜索引擎,多個可以是諸如5個之類的固定數目。圖3示出了根據本發明一個示例性實施方式的網絡空間搜索引擎的查詢結果的頁面截圖,在如圖3所示的實施例中,在網絡空間搜索引擎zoomeye中以serverapache為搜索詞進行查詢,返回的查詢結果包括多個包含有serverapache的報文、以及返回該報文的ip地址。可以在其中隨機抽取更新時間較新的固定數目個報文和返回該報文的ip地址,以進行后續處理。
在步驟s230中,分別獲取查詢到的每個ip地址指向的網絡內容的截圖。具體地,經由瀏覽器訪問每個查詢到的ip地址,并將顯示在瀏覽器上的網絡內容截圖。
獲取截圖之后,在步驟s240中,根據所獲取的多個網絡內容的截圖來判斷該關鍵字段是否有效。具體地,對于所獲取的多個網絡內容的截圖,判斷其中每兩個網絡內容的截圖是否相似,例如,所獲取的多個網絡內容的截圖為截圖1~3,則分別判斷其中截圖1和截圖2、截圖1和截圖3、截圖2和截圖3是否相似。
根據本發明的一個實施例,可以使用sift算法來判斷兩個截圖是否相似。具體地,可以使用sift算法分別提取兩個截圖的sift特征,通過對兩個截圖的sift特征進行匹配,來判斷兩個截圖是否相似。其中,可以通過特征匹配對數量是否超過預定的相似比例來確定兩個截圖是否相似。
對每兩個網絡內容的截圖進行相似判斷后,可以得到多個判斷結果。若所得到的多個判斷結果中不相似的數目沒有超過預定比例,則確定該關鍵字段有效,若多個判斷結果中不相似的數目超過預定比例確定該關鍵字段無效。例如,所獲取的多個網絡內容的截圖為截圖1~3,截圖1和截圖2、截圖1和截圖3、截圖2和截圖3的判斷結果分別為不相似、不相似、相似,其中不相似的數目占比為2/3,超過了預定比例1/2,因此確定對應的關鍵字段無效。這樣,就避免了利用無效關鍵字段進行識別的冗余流程,提高了識別效率。
可以理解地,網絡內容截圖是否相似可以反映其對應的報文是否相似,因此當查詢某個關鍵字段得到的多個報文多數都相似時,那么可以認為包含該關鍵字段的所有報文存在一定規律,那么待識別報文也自然與這些報文相似,因此通過這些報文提取出的組件信息可以認為是待識別報文的組件信息。
而當查詢某個關鍵字段得到的多個報文彼此之間多數都不相似時,可以認為包含該關鍵字段的報文不存在規律,無法通過這些報文提取出具有典型性的、通用的組件信息,因而可以認為該關鍵字段無效。
在確定一個關鍵字段無效之后,還需要繼續對所提取的其他的無效字段重復上述查詢、獲取、判斷該關鍵字段是否有效的步驟,直至確定某個關鍵字段有效、或者全部關鍵字段無效為止。若全部關鍵字段均為無效,則可以認為該待識別報文為無法識別的報文,不再對其進行識別。
若確定一個關鍵字段有效,則在步驟s250中,對于基于該有效的關鍵字段而獲取的每個包含有該關鍵字段的報文,均計算該報文與待識別報文的相似差值。
具體地,可以刪除兩個報文所包含的時間信息,再利用levenshtein算法計算兩個報文之間的相似差值。
假設,待識別報文如下:
http/1.1505httpversionnotsupported\nserver:hphttpserver;hphpofficejetprox551dwprinter-cv037a;serialnumber:cn584kj0c2;built:frijan09,201502:58:26pm{bzp1cn1502ar}
將其刪除時間信息后如下:
http/1.1505httpversionnotsupported\nserver:hphttpserver;hphpofficejetprox551dwprinter-cv037a;serialnumber:cn584kj0c2;built:{bzp1cn1502ar}
又假設,查詢到的報文如下:
http/1.1505httpversionnotsupported\nserver:hphttpserver;hphpofficejetprox476dwmfp-cn461a;serialnumber:cn45kik01v;built:tuenov24,201503:37:44pm{lwp1cn1548ar}
將其刪除時間信息后如下:
http/1.1505httpversionnotsupported\nserver:hphttpserver;hphpofficejetprox476dwmfp-cn461a;serialnumber:cn45kik01v;built:{lwp1cn1548ar}
最后,利用levenshtein算法計算得到的兩個報文之間的相似差值為26,即待識別報文變換到查詢到的報文所需要修改的字數。
在步驟s260中,選取其中相似差值最小的預定數目個報文(即與待識別報文最相似的報文),并根據這些報文采用預先建立的深度學習模型來獲取待識別報文的組件信息。這樣,可以進一步提高最后識別出的組件的準確度。
具體地,可將所選取的預定數目個報文輸入至該深度學習神經網絡中,以得到其輸出的組件信息。其中,深度學習模型為深度學習神經網絡,根據本發明的一個實施例,可以通過tensorflow框架構建深度學習神經網絡,根據輸入信息的情況,將深度學習神經網絡的層數設置為5~9層,每一層均為卷積層,每一層的具體參數在訓練過程中需要調整。在每一層卷積層計算結束后,利用elu函數作為激活函數,將最后一層卷積層激活后接入全連接層,并輸入到softmax函數進行處理,從而構建出第一深度學習神經網絡和第二深度學習神經網絡。在后續訓練過程中,將softmax函數的預測結果和真實的標簽值作為輸入,利用cross-entropy算法計算對應的loss值,將loss值輸入到momentum優化方法計算梯度,并更新深度學習神經網絡的模型參數。另外,可以采用屬于相同組件的預定數目個不同報文和共同的組件信息作為樣本對該深度學習神經網絡進行訓練。
例如,一個待識別報文如下:
提取出的有效的關鍵字段如下:
<title>bitnami:opensource.simplified</title>
在網絡空間搜索引擎查詢到的相似差值最小的3個報文如下:
將這3個報文輸入深度學習模型后,可以得到輸出的組件信息為:bitnami。得到組件信息之后,最后在步驟s270中,可以根據該組件信息確定待識別報文所屬的組件。例如,得到的組件信息為tomcat,根據該領域的常識性經驗,可以判斷組件為apache。還可以利用諸如google、baidu之類的搜索引擎搜索tomcat,從而根據返回的搜索結果確定組件。
應當理解,這里描述的各種技術可結合硬件或軟件,或者它們的組合一起實現。從而,本發明的方法和設備,或者本發明的方法和設備的某些方面或部分可采取嵌入有形媒介,例如軟盤、cd-rom、硬盤驅動器或者其它任意機器可讀的存儲介質中的程序代碼(即指令)的形式,其中當程序被載入諸如計算機之類的機器,并被該機器執行時,該機器變成實踐本發明的設備。
在程序代碼在可編程計算機上執行的情況下,計算設備一般包括處理器、處理器可讀的存儲介質(包括易失性和非易失性存儲器和/或存儲元件),至少一個輸入裝置,和至少一個輸出裝置。其中,存儲器被配置用于存儲程序代碼;處理器被配置用于根據該存儲器中存儲的該程序代碼中的指令,執行本發明的各種方法。
以示例而非限制的方式,計算機可讀介質包括計算機存儲介質和通信介質。計算機可讀介質包括計算機存儲介質和通信介質。計算機存儲介質存儲諸如計算機可讀指令、數據結構、程序模塊或其它數據等信息。通信介質一般以諸如載波或其它傳輸機制等已調制數據信號來體現計算機可讀指令、數據結構、程序模塊或其它數據,并且包括任何信息傳遞介質。以上的任一種的組合也包括在計算機可讀介質的范圍之內。
應當理解,為了精簡本公開并幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發明要求比在每個權利要求中所明確記載的特征更多特征。更確切地說,如下面的權利要求書所反映的那樣,發明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權利要求書由此明確地并入該具體實施方式,其中每個權利要求本身都作為本發明的單獨實施例。
本領域那些技術人員應當理解在本文所公開的示例中的設備的模塊或單元或組件可以布置在如該實施例中所描述的設備中,或者可替換地可以定位在與該示例中的設備不同的一個或多個設備中。前述示例中的模塊可以組合為一個模塊或者此外可以分成多個子模塊。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發明的范圍之內并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
此外,所述實施例中的一些在此被描述成可以由計算機系統的處理器或者由執行所述功能的其它裝置實施的方法或方法元素的組合。因此,具有用于實施所述方法或方法元素的必要指令的處理器形成用于實施該方法或方法元素的裝置。此外,裝置實施例的在此所述的元素是如下裝置的例子:該裝置用于實施由為了實施該發明的目的的元素所執行的功能。
如在此所使用的那樣,除非另行規定,使用序數詞“第一”、“第二”、“第三”等等來描述普通對象僅僅表示涉及類似對象的不同實例,并且并不意圖暗示這樣被描述的對象必須具有時間上、空間上、排序方面或者以任意其它方式的給定順序。
盡管根據有限數量的實施例描述了本發明,但是受益于上面的描述,本技術領域內的技術人員明白,在由此描述的本發明的范圍內,可以設想其它實施例。此外,應當注意,本說明書中使用的語言主要是為了可讀性和教導的目的而選擇的,而不是為了解釋或者限定本發明的主題而選擇的。因此,在不偏離所附權利要求書的范圍和精神的情況下,對于本技術領域的普通技術人員來說許多修改和變更都是顯而易見的。對于本發明的范圍,對本發明所做的公開是說明性的,而非限制性的,本發明的范圍由所附權利要求書限定。