1.一種webshell檢測方法,其特征在于,所述方法應用于服務器,包括:
從網(wǎng)頁代碼中提取出有效代碼;
基于所述有效代碼生成對應的抽象語法樹;
基于所述抽象語法樹對所述有效代碼進行歸一化計算,并根據(jù)歸一化計算結(jié)果修改所述抽象語法樹;
基于修改后的抽象語法樹生成歸一化后的有效代碼;
調(diào)用檢測模塊對所述歸一化后的有效代碼進行webshell檢測。
2.根據(jù)權利要求1所述的方法,其特征在于,所述歸一化計算包括:變量替換、函數(shù)預計算、操作符預計算。
3.根據(jù)權利要求1所述的方法,其特征在于,所述從網(wǎng)頁代碼中提取出有效代碼,包括:
從網(wǎng)頁代碼中提取出后端代碼作為有效代碼。
4.根據(jù)權利要求1所述的方法,其特征在于,所述基于所述抽象語法樹對所述有效代碼進行歸一化計算,包括:
從葉子節(jié)點開始,基于所述抽象語法樹對所述有效代碼進行歸一化計算。
5.根據(jù)權利要求1所述的方法,其特征在于,檢測模塊對所述歸一化后的有效代碼進行webshell檢測,包括:
將所述歸一化后的有效代碼與預設的特征規(guī)則庫進行匹配;
當所述歸一化后的有效代碼匹配所述特征規(guī)則庫時,確定所述網(wǎng)頁文件中存在webshell。
6.一種webshell檢測裝置,其特征在于,所述裝置應用于服務器,包括:
提取單元,用于從網(wǎng)頁代碼中提取出作為有效代碼;
樹生成單元,用于基于所述有效代碼生成對應的抽象語法樹;
歸一化計算單元,用于基于所述抽象語法樹對所述有效代碼進行歸一化計算,并根據(jù)歸一化計算結(jié)果修改所述抽象語法樹;
代碼生成單元,用于基于修改后的抽象語法樹生成歸一化后的有效代碼;
調(diào)用單元,用于調(diào)用檢測模塊對所述歸一化后的有效代碼進行webshell檢測。
7.根據(jù)權利要求6所述的裝置,其特征在于,所述歸一化計算包括:變量替換、函數(shù)預計算、操作符預計算。
8.根據(jù)權利要求6所述的裝置,其特征在于,所述提取單元具體用于從網(wǎng)頁代碼中提取出后端代碼作為有效代碼。
9.根據(jù)權利要求6所述的裝置,其特征在于,所述歸一化計算單元具體用于從葉子節(jié)點開始,基于所述抽象語法樹對所述有效代碼進行歸一化計算,并根據(jù)歸一化計算結(jié)果修改所述抽象語法樹。
10.根據(jù)權利要求6所述的裝置,其特征在于,檢測模塊對所述歸一化后的有效代碼進行webshell檢測,包括:
將所述歸一化后的有效代碼與預設的特征規(guī)則庫進行匹配;
當所述歸一化后的有效代碼匹配所述特征規(guī)則庫時,確定所述網(wǎng)頁文件中存在webshell。