本申請提供一種WebShell檢測方法及裝置,該方法包括:在獲得目標腳本文件后,獲得所述目標腳本文件的信息熵;生成所述目標腳本文件的抽象語法樹AST;獲得所述AST中危險函數的占比值;對所述信息熵及所述危險函數的占比值進行加權求和,得到所述目標腳本文件的第一權值;在所述第一權值大于預設第一閾值的情況下,確定所述目標腳本文件為WebShell。由此可見,本申請技術方案可以對腳本文件進行語法分析,得到該腳本文件的信息熵及危險函數的占比值,之后通過信息熵及占比值來檢測該腳本文件是否為WebShell,對于未知的WebShell,仍可以識別出,因此提高了檢測的準確率。
【技術實現步驟摘要】
WebShell檢測方法及裝置
本申請實施例涉及信息安全
,特別涉及一種WebShell檢測方法及裝置。
技術介紹
WebShell是一種以asp、php、jsp或者cgi等網頁文件形式存在的命令執行環境,也可以將WebShell稱作一種網頁后門,它是黑客入侵網站服務器的腳本攻擊工具。目前,黑客在入侵了一個網站后,通常會將這些asp或php等后門文件與網站服務器Web目錄下正常的網頁文件混在一起,然后通過瀏覽器來訪問這些asp或php等后門文件,得到一個命令執行環境,以達到控制網站服務器的目的。因此,檢測WebShell對于保證網站安全十分重要。現有的WebShell檢測技術中,是通過檢測腳本文件中是否存在預先定義的攻擊特征,來判斷該腳本文件是否為WebShell,但是現有的WebShell檢測技術僅能識別已知的WebShell,對于未知的WebShell,則無法識別,導致檢測準確率較低。
技術實現思路
為了解決上述問題,本申請實施例提供一種WebShell檢測方法及裝置。具體地,本申請實施例是通過如下技術方案實現的:根據本申請實施例的第一方面,提供一種WebShell檢測方法,所述方法包括:在獲得目標腳本文件后,獲得所述目標腳本文件的信息熵;生成所述目標腳本文件的抽象語法樹AST;獲得所述AST中危險函數的占比值,其中,所述危險函數至少包括:用于代碼執行的函數表達式或函數語句塊、用于文件操作的函數表達式或函數語句塊,及用于系統調用的函數表達式及函數語句塊;對所述信息熵及所述危險函數的占比值進行加權求和,得到所述目標腳本文件的第一權值;在所述第一權值大于預設第一閾值的情況下,確定所述目標腳本文件為WebShell。本申請實施例中,所述生成所述目標腳本文件的抽象語法樹AST,包括:對所述目標腳本文件進行詞法分析和語法分析,得到包含所述目標腳本文件的完整信息的AST。本申請實施例中,所述生成所述目標腳本文件的抽象語法樹AST,包括:對所述目標腳本文件進行詞法分析和語法分析,得到包含所述目標腳本文件的完整信息的AST;使用預設的消除AST中冗余信息的算法,對所述包含所述目標腳本文件的完整信息的AST進行處理,得到消除冗余信息后的AST。本申請實施例中,所述方法還包括:在所述第一權值大于預設第二閾值且小于所述預設第一閾值的情況下,將所述目標腳本文件放入沙盤運行,得到所述目標腳本文件中所有函數的運行行為,其中,所述預設第一閾值大于所述預設第二閾值;根據預設的危險行為確定規則,確定所述運行行為中的危險行為,并計算所述危險行為的占比值;對所述第一權值及所述危險行為的占比值進行加權求和,得到所述目標腳本文件的第二權值;在所述第二權值大于所述預設第一閾值的情況下,確定所述目標腳本文件為WebShell。本申請實施例中,在所述獲得所述目標腳本文件的信息熵之前,還包括:判斷所述目標腳本文件中是否包含預設的攻擊特征;若所述目標腳本文件中包含預設的攻擊特征,則確定所述目標腳本文件為WebShell;若所述目標腳本文件中不包含預設的攻擊特征,則執行所述獲得所述目標腳本文件的信息熵的步驟。根據本申請實施例的第二方面,提供一種WebShell檢測裝置,所述裝置包括:信息熵獲得模塊,用于在獲得目標腳本文件后,獲得所述目標腳本文件的信息熵;AST生成模塊,用于生成所述目標腳本文件的抽象語法樹AST;危險函數占比值獲得模塊,用于獲得所述AST生成模塊生成的AST中危險函數的占比值,其中,所述危險函數至少包括:用于代碼執行的函數表達式或函數語句塊、用于文件操作的函數表達式或函數語句塊,及用于系統調用的函數表達式及函數語句塊;第一權值獲得模塊,用于對所述信息熵獲得模塊獲得的信息熵及所述危險函數占比值獲得模塊獲得的危險函數的占比值進行加權求和,得到所述目標腳本文件的第一權值;第一確定模塊,用于在所述第一權值獲得模塊獲得的第一權值大于預設第一閾值的情況下,確定所述目標腳本文件為WebShell。本申請實施例中,所述AST生成模塊,包括:第一AST生成子模塊,用于對所述目標腳本文件進行詞法分析和語法分析,得到包含所述目標腳本文件的完整信息的AST。本申請實施例中,所述AST生成模塊,包括:第二AST生成子模塊,用于對所述目標腳本文件進行詞法分析和語法分析,得到包含所述目標腳本文件的完整信息的AST;第三AST生成子模塊,用于使用預設的消除AST中冗余信息的算法,對所述第二AST生成子模塊生成的包含所述目標腳本文件的完整信息的AST進行處理,得到消除冗余信息后的AST。本申請實施例中,所述裝置還包括:運行行為獲得模塊,用于在所述第一權值獲得模塊獲得的第一權值大于預設第二閾值且小于所述預設第一閾值的情況下,將所述目標腳本文件放入沙盤運行,得到所述目標腳本文件中所有函數的運行行為,其中,所述預設第一閾值大于所述預設第二閾值;危險行為占比值獲得模塊,用于根據預設的危險行為確定規則,確定所述運行行為中的危險行為,并計算所述危險行為的占比值;第二權值獲得模塊,用于對所述第一權值獲得模塊獲得的第一權值及所述危險行為占比值獲得模塊獲得的危險行為的占比值進行加權求和,得到所述目標腳本文件的第二權值;第一確定模塊,用于在所述第二權值獲得模塊獲得的第二權值大于所述預設第一閾值的情況下,確定所述目標腳本文件為WebShell。本申請實施例中,所述裝置還包括:判斷模塊,用于在獲得目標腳本文件后,判斷所述目標腳本文件中是否包含預設的攻擊特征,并在判斷結果為否的情況下,觸發所述信息熵獲得模塊執行所述獲得所述目標腳本文件的信息熵的操作;第三確定模塊,用于在所述判斷模塊的判斷結果為是的情況下,確定所述目標腳本文件為WebShell。本申請實施例可以對腳本文件進行語法分析,得到該腳本文件的信息熵及危險函數的占比值,之后通過信息熵及占比值來檢測該腳本文件是否為WebShell,對于未知的WebShell,仍可以識別出,因此提高了檢測的準確率。應當理解的是,以上的一般描述和后文的細節描述僅是示例性的,并不能限制本申請實施例。附圖說明此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本申請實施例,并與說明書一起用于解釋本專利技術的原理。圖1是本申請根據一示例性實施例示出的一種WebShell檢測方法的流程圖;圖2是本申請根據一示例性實施例示出的另一種WebShell檢測方法的流程圖;圖3是本申請根據一示例性實施例示出的另一種WebShell檢測方法的流程圖;圖4是本申請根據一示例性實施例示出的一種WebShell檢測裝置的框圖;圖5是本申請根據一示例性實施例示出的另一種WebShell檢測裝置的框圖;圖6是本申請根據一示例性實施例示出的另一種WebShell檢測裝置的框圖;圖7是本申請根據一示例性實施例示出的另一種WebShell檢測裝置的框圖;圖8是本申請根據一示例性實施例示出的另一種WebShell檢測裝置的框圖;圖9為本申請根據一示例性實施例示出的一種WebShell檢測裝置所在網絡設備的一種硬件結構圖。具體實施方式這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例本文檔來自技高網...

【技術保護點】
一種WebShell檢測方法,其特征在于,所述方法包括:在獲得目標腳本文件后,獲得所述目標腳本文件的信息熵;生成所述目標腳本文件的抽象語法樹AST;獲得所述AST中危險函數的占比值,其中,所述危險函數至少包括:用于代碼執行的函數表達式或函數語句塊、用于文件操作的函數表達式或函數語句塊,及用于系統調用的函數表達式及函數語句塊;對所述信息熵及所述危險函數的占比值進行加權求和,得到所述目標腳本文件的第一權值;在所述第一權值大于預設第一閾值的情況下,確定所述目標腳本文件為WebShell。
【技術特征摘要】
1.一種WebShell檢測方法,其特征在于,所述方法包括:在獲得目標腳本文件后,獲得所述目標腳本文件的信息熵;生成所述目標腳本文件的抽象語法樹AST;獲得所述AST中危險函數的占比值,其中,所述危險函數至少包括:用于代碼執行的函數表達式或函數語句塊、用于文件操作的函數表達式或函數語句塊,及用于系統調用的函數表達式及函數語句塊;對所述信息熵及所述危險函數的占比值進行加權求和,得到所述目標腳本文件的第一權值;在所述第一權值大于預設第一閾值的情況下,確定所述目標腳本文件為WebShell。2.根據權利要求1所述的方法,其特征在于,所述生成所述目標腳本文件的抽象語法樹AST,包括:對所述目標腳本文件進行詞法分析和語法分析,得到包含所述目標腳本文件的完整信息的AST。3.根據權利要求1所述的方法,其特征在于,所述生成所述目標腳本文件的抽象語法樹AST,包括:對所述目標腳本文件進行詞法分析和語法分析,得到包含所述目標腳本文件的完整信息的AST;使用預設的消除AST中冗余信息的算法,對所述包含所述目標腳本文件的完整信息的AST進行處理,得到消除冗余信息后的AST。4.根據權利要求1所述的方法,其特征在于,所述方法還包括:在所述第一權值大于預設第二閾值且小于所述預設第一閾值的情況下,將所述目標腳本文件放入沙盤運行,得到所述目標腳本文件中所有函數的運行行為,其中,所述預設第一閾值大于所述預設第二閾值;根據預設的危險行為確定規則,確定所述運行行為中的危險行為,并計算所述危險行為的占比值;對所述第一權值及所述危險行為的占比值進行加權求和,得到所述目標腳本文件的第二權值;在所述第二權值大于所述預設第一閾值的情況下,確定所述目標腳本文件為WebShell。5.根據權利要求1所述的方法,其特征在于,在所述獲得所述目標腳本文件的信息熵之前,還包括:判斷所述目標腳本文件中是否包含預設的攻擊特征;若所述目標腳本文件中包含預設的攻擊特征,則確定所述目標腳本文件為WebShell;若所述目標腳本文件中不包含預設的攻擊特征,則執行所述獲得所述目標腳本文件的信息熵的步驟。6.一種WebShell檢測裝置,其特征在于,所述裝置包括:信息熵獲得模塊,用于在獲得目標腳本文件后,獲得所述目標腳本文件的信息熵;AST生成模塊,用于生成所述目標腳本文件的抽象語法樹AST;危險函數占比值獲得模塊,用于獲得所述A...
【專利技術屬性】
技術研發人員:陳文忠,
申請(專利權)人:杭州迪普科技股份有限公司,
類型:發明
國別省市:浙江,33
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。