CN108985061B - 一种基于模型融合的webshell检测方法 - Google Patents

一种基于模型融合的webshell检测方法 Download PDF

Info

Publication number
CN108985061B
CN108985061B CN201810734942.0A CN201810734942A CN108985061B CN 108985061 B CN108985061 B CN 108985061B CN 201810734942 A CN201810734942 A CN 201810734942A CN 108985061 B CN108985061 B CN 108985061B
Authority
CN
China
Prior art keywords
model
webshell
detection
code
fusion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810734942.0A
Other languages
English (en)
Other versions
CN108985061A (zh
Inventor
文伟平
李孟霖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
Original Assignee
Peking University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University filed Critical Peking University
Priority to CN201810734942.0A priority Critical patent/CN108985061B/zh
Publication of CN108985061A publication Critical patent/CN108985061A/zh
Application granted granted Critical
Publication of CN108985061B publication Critical patent/CN108985061B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公布了一种基于模型融合的webshell检测方法,通过建立多个webshell检测模型并进行模型融合,再利用融合后得到的新模型进行webshell检测,识别是否是webshell;包括:训练基于静态特征的webshell检测模型和基于神经网络的webshell检测模型,通过支持向量机生成svmShell模型,通过神经网络生成nnShell模型;抽取训练数据集中数据的抽象语法树,将抽象语法树进行剪枝,作为长短时记忆网络的输入,生成lstmShell模型;将得到模型进行融合;对待测代码进行webshell检测。本发明方法能够提高检测效果,提高检测webshell的准确率,降低误报率。

Description

一种基于模型融合的webshell检测方法
技术领域
本发明涉及信息安全技术,尤其涉及一种基于模型融合的webshell检测方法,通过对多个检测模型进行融合,利用融合后的新模型检测webshell,能够获取更好的检测效果。
背景技术
随着越来越多的用户接入互联网,基于B/S架构的网站越来越多,与此同时,网络中存在一些恶意程序的编写者和散布者,他们通过传播在服务器上运行的远程调用代码,来获取非法利益,诸如窃取用户敏感信息或是控制服务器做一些违法的事情。这些给服务提供商或者服务使用者双方都造成了潜在的隐患。因此,一种检测webshell的装置的势在必行。
现有的webshell检测技术包括基于静态信息的检测和动态检测,主要集中在三个方面:
其一,基于静态特征的检测,使用代码的静态特征如代码长度、代码中可执行函数的数量等对webshell进行检测,这种人工特征检测方法的缺点是不能完全挖掘代码的信息,也就是不能完全核定当前特征的代码就一定是存在webshell的代码;
其二,使用神经网络基于代码语义检测:将代码转换为抽象语法树,对产生之后的抽象语法树进行检测,此方法的缺陷在于需要对抽象语法树进行剪枝,以使特征能作为神经网络的输入;这种方法也是基于静态信息的检测。与上一种人工特征检测方法相比较,基于神经网络的检测系统在设计上鲁棒性比较差;
其三,使用动态执行进行检测:将代码放入一个隔离的环境运行,隔离的环境包括且不限于是一个干净的可重置的机器,或者是一台运行于客户服务器上的虚拟机,这种检测方法的劣势主要是对服务器性能的影响或者是可能的用户信息泄露。
其中以上方法的一和二是基于静态信息的检测,三是动态检测。
发明内容
为了克服现有静态信息检测的不足,本发明提供了一种基于模型融合的webshell检测方法,通过融合多个webshell检测模型,利用融合后的新模型检测webshell,可以增强检测效果。
本发明提供的技术方案如下:
一种基于模型融合的webshell检测方法,通过融合多个webshell检测模型,再利用融合后的新模型检测webshell,以提高检测效果;包括如下步骤:
1)训练基于静态特征的webshell检测模型和基于神经网络的webshell检测模型;执行如下操作:
11)对训练数据,获取代码的静态信息,作为输入特征;
12)通过支持向量机svm和神经网络nn,对输入的特征进行预测,采用监督学习的方法,生成输入特征到检测结果的映射;经过模型预测/运算之后得出概率值,代表当前检测对象是恶意webshell的概率;
13)生成两个模型,分别为:通过支持向量机生成svmShell模型,通过神经网络生成nnShell模型;
2)抽取训练数据集中数据的抽象语法树,将抽象语法树进行剪枝,作为lstm(LongShort-Term Memory,长短时记忆网络)的输入,此阶段生成lstmShell模型;
3)使用机器学习模型融合的方法对以上模型进行融合;执行如下操作:
对步骤1得到的svmShell模型、nnShell模型、步骤2得到的lstmShell模型进行融合;。
融合方法具体是:针对单个模型输出的概率值,将模型的预测概率通过加权平均进行计算,得到最终的预测概率。具体通过式1进行加权平均计算:
Figure BDA0001721182010000021
其中,n表示模型的个数,weighti表示模型i的权重,Pi表示模型i的预测概率值。这一步主要确定每个模型的相对权重,可自行设定,各模型的相对权重之和为1。
通过上述步骤得到训练好的webshell检测模型;
4)对待测代码进行webshell检测;执行如下操作:
41)获取待测代码的静态信息;抽取待测代码的抽象语法树;
42)将步骤41)的静态信息、抽象语法树作为输入特征,输入到训练好的webshell检测模型进行预测,识别得到待测代码是否是webshell。
如果最终输出的概率值大于0.8,则判定当前的输入为正类,即含有恶意webshell的代码。
与现有技术相比,本发明的有益效果是:
本发明融合了多个检测模型,在机器学习领域中,模型融合能够将几种模型的优点集合在一起,因此,本发明基于模型融合的webshell检测方法能够提高检测webshell的准确率和降低误报率。基于多模型融合,克服了使用单模型在检测时存在的有一定偏向的问题,而多模型融合可以从不同的角度来检测同一段代码,在挖掘代码信息上比单模型能挖掘出更多的信息,从而解决单个模型无法从多个角度分析同一段代码的问题,由此增强检测模型的性能。
本发明提供的多模型融合的检测方法的技术优势在于,当单一模型检测方法的检测率不够高,或者当前的单模型在训练集上已经存在一定的过拟合,但设计人员由于各种限制未能发现单模型的过拟合而降低检测精确度时,通过融合模型提高检测webshell的准确率和降低误报率;采用本发明技术方案,可将多个检测率不高的模型进行融合,来达到单个模型在训练集上检测率很高的检测效果,这样,即便设计检测系统的设计人员并没有穷尽所有特征,也能够同时享有人工特征和深度学习特征带来的双重优势,这样大大减轻了设计人员在单个模型上却需要引入另外一种模型的一部分特征;而引入的其他模型的特征时,直接加入当前的模型会有更大的难度。
附图说明
图1是本发明提供的模型融合的方法流程框图。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明融合了两种静态检测方法,通过设计三种静态模型,使用模型融合中的学习算法对三种模型进行融合。包括:建立三种模型(svmShell模型、nnShell模型、lstmShell模型);对模型进行融合,得到一个新的检测模型;用训练数据训练得到的新的检测模型,得到训练好的新检测模型;针对待测数据,用训练好的新检测模型进行预测,由此实现webshell检测。具体地,针对存储在服务器端的脚本,提取得到传统特征和抽象语法树,输入到训练好的模型中,最终得到该脚本含有恶意webshell的概率。具体实施时,如果超过阈值(0.8),则判定当前代码含有恶意webshell。包括步骤如下:
1.数据预处理,提取出静态特征,再训练模型;
抽取待测代码的信息,包括:代码长度、代码中调用函数的个数,作为机器学习的输入的特征,通过使用svm(Support Vector Machine,支持向量机)和nn(NeuralNetworks,神经网络)对输入的特征进行预测,采用监督学习的方法,生成一个输入特征到检测结果的映射;经过模型预测/运算之后得出概率值,代表当前检测对象是恶意webshell的概率;此步骤生成两个模型,分别为:通过支持向量机生成svmShell模型,通过神经网络生成nnShell模型;
2.将待测代码转换成为抽象语法树,进行剪枝处理,再训练神经网络模型;
对待测代码进行语义检测(使用工具将原始的文本代码转换成为抽象语法树),生成的抽象语法树作为树结构,还不能作为神经网络的输入,首先对抽象语法树进行剪枝,然后使用lstm(Long Short-Term Memory,长短时记忆网络),将剪枝后的抽象语法树作为输入,对输入的信息处理,通过lstm对序列进行记忆,能够有效地利用代码的序列特征,此步骤生成一个模型lstmShell,用于处理输入代码的时序信息;
3.使用模型融合的方法对以上生成的三种模型进行融合,
对步骤1得到的svmShell模型、nnShell模型、步骤2得到的lstmShell模型进行融合,融合方法具体是:针对单个模型输出的概率值,将模型的预测概率通过加权平均进行计算,得到最终的预测概率P。具体通过式1进行加权平均计算:
Figure BDA0001721182010000041
其中,n表示模型的个数,超参数weighti表示第i个模型的相对权重,Pi表示第i个模型的预测概率值。具体可通过手动调整weighti的取值,可以使用网格搜索的方式进行超参数的选取,具体实施时,赋予每个模型一样的权重,即所有三个模型的相对权重weight均为1/3。
4.针对存储在服务器端的脚本提取传统特征和抽象语法树,输入到训练好的模型中,最终得到该脚本含有恶意webshell的概率,如果概率超过阈值(0.8),则判定当前代码含有恶意webshell。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

Claims (3)

1.一种基于模型融合的webshell检测方法,通过建立多个webshell检测模型并进行模型融合,再利用融合后得到的新模型进行webshell检测,识别是否是webshell,以提高检测效果;包括如下步骤:
1)训练基于静态特征的webshell检测模型和基于神经网络的webshell检测模型;执行如下操作:
11)对训练数据,获取代码的静态信息,作为输入特征;
12)分别通过支持向量机和神经网络,对输入的特征进行预测,采用监督学习的方法,生成输入特征到检测结果的映射;经过模型预测之后得出概率值,代表当前检测对象是恶意webshell的概率;
13)分别生成两个模型:通过支持向量机生成svmShell模型,通过神经网络生成nnShell模型;两个模型分别为基于静态特征的webshell检测模型和基于神经网络的webshell检测模型;
2)抽取训练数据集中数据的抽象语法树,将抽象语法树进行剪枝,作为长短时记忆网络的输入,生成lstmShell模型;
3)使用机器学习模型融合的方法对步骤1)和步骤2)得到的模型进行融合;执行如下操作:
将每个模型预测输出的概率值通过式1进行加权平均计算,得到最终的预测概率:
Figure FDA0003172714740000011
其中,n表示模型的个数,weighti表示模型i的权重,Pi表示模型i的预测概率值;
通过上述步骤得到训练好的webshell检测模型;
4)对待测代码进行webshell检测;执行如下操作:
41)获取待测代码的静态信息,抽取待测代码的抽象语法树;
42)将步骤41)的静态信息、抽象语法树作为输入特征,输入到训练好的webshell检测模型进行预测,识别得到待测代码是否是webshell。
2.如权利要求1所述的基于模型融合的webshell检测方法,其特征是,设置概率阈值,当步骤4)进行检测输出的概率值大于概率阈值,则将当前的输入代码判定为正类,即含有恶意webshell的代码。
3.如权利要求2所述的基于模型融合的webshell检测方法,其特征是,设置的概率阈为0.8。
CN201810734942.0A 2018-07-05 2018-07-05 一种基于模型融合的webshell检测方法 Active CN108985061B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810734942.0A CN108985061B (zh) 2018-07-05 2018-07-05 一种基于模型融合的webshell检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810734942.0A CN108985061B (zh) 2018-07-05 2018-07-05 一种基于模型融合的webshell检测方法

Publications (2)

Publication Number Publication Date
CN108985061A CN108985061A (zh) 2018-12-11
CN108985061B true CN108985061B (zh) 2021-10-01

Family

ID=64536261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810734942.0A Active CN108985061B (zh) 2018-07-05 2018-07-05 一种基于模型融合的webshell检测方法

Country Status (1)

Country Link
CN (1) CN108985061B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109743311B (zh) * 2018-12-28 2021-10-22 绿盟科技集团股份有限公司 一种WebShell检测方法、装置及存储介质
CN109948557B (zh) * 2019-03-22 2022-04-22 中国人民解放军国防科技大学 多网络模型融合的烟雾检测方法
CN110362597A (zh) * 2019-06-28 2019-10-22 华为技术有限公司 一种结构化查询语言sql注入检测方法及装置
CN112307473A (zh) * 2019-08-01 2021-02-02 四川大学 一种基于Bi-LSTM网络和注意力机制的恶意JavaScript代码检测模型
CN110572397B (zh) * 2019-09-10 2022-05-24 上海斗象信息科技有限公司 一种基于流量的webshell的检测方法
CN110855661B (zh) * 2019-11-11 2022-05-13 杭州安恒信息技术股份有限公司 一种WebShell检测方法、装置、设备及介质
CN113094706A (zh) * 2020-01-08 2021-07-09 深信服科技股份有限公司 一种WebShell检测方法、装置、设备及可读存储介质
CN112926054B (zh) * 2021-02-22 2023-10-03 亚信科技(成都)有限公司 一种恶意文件的检测方法、装置、设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101585139B1 (ko) * 2014-06-24 2016-01-13 에스케이인포섹(주) 정오탐 분석 기능을 구비한 웹쉘 탐지 장치 및 이의 정오탐 분석 방법
CN104765883A (zh) * 2015-04-30 2015-07-08 中电运行(北京)信息技术有限公司 一种用于Webshell的检测方法
CN107516041B (zh) * 2017-08-17 2020-04-03 北京安普诺信息技术有限公司 基于深度神经网络的WebShell检测方法及其系统
CN107659570B (zh) * 2017-09-29 2020-09-15 杭州安恒信息技术股份有限公司 基于机器学习与动静态分析的Webshell检测方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ensemble Network Intrusion Detection Model Based on Classification & Clustering for Dynamic Environment;Musyimi Samuel Muthama等;《网页在线公开:https://www.ijert.org/research/ensemble-network-intrusion-detection-model-based-on-classification-clustering-for-dynamic-environment-IJERTV7IS020104.pdf》;20180226;第1-10页 *

Also Published As

Publication number Publication date
CN108985061A (zh) 2018-12-11

Similar Documents

Publication Publication Date Title
CN108985061B (zh) 一种基于模型融合的webshell检测方法
Darabian et al. Detecting cryptomining malware: a deep learning approach for static and dynamic analysis
CN107885999B (zh) 一种基于深度学习的漏洞检测方法及系统
CN110233849B (zh) 网络安全态势分析的方法及系统
CN108920947B (zh) 一种基于日志图建模的异常检测方法和装置
CN109005145B (zh) 一种基于自动特征抽取的恶意url检测系统及其方法
US20120159629A1 (en) Method and system for detecting malicious script
US9762593B1 (en) Automatic generation of generic file signatures
CN111460472B (zh) 一种基于深度学习图网络的加密算法识别方法
CN113596007B (zh) 一种基于深度学习的漏洞攻击检测方法和设备
CN109831460B (zh) 一种基于协同训练的Web攻击检测方法
CN110175851B (zh) 一种作弊行为检测方法及装置
CN108229170B (zh) 利用大数据和神经网络的软件分析方法和装置
CN112492059A (zh) Dga域名检测模型训练方法、dga域名检测方法、装置及存储介质
CN112307473A (zh) 一种基于Bi-LSTM网络和注意力机制的恶意JavaScript代码检测模型
CN105516196A (zh) 基于http报文数据的并行化网络异常检测方法与系统
CN104504335A (zh) 基于页面特征和url特征的钓鱼app检测方法及系统
CN106874762B (zh) 基于api依赖关系图的安卓恶意代码检测方法
CN114357443A (zh) 基于深度学习的恶意代码检测方法、设备与存储介质
CN107358099B (zh) 基于llvm中间表示程序切片技术的无用变量检测方法
Hou et al. Disentangled representation learning in heterogeneous information network for large-scale android malware detection in the COVID-19 era and beyond
CN112817877B (zh) 异常脚本检测方法、装置、计算机设备和存储介质
CN108040053A (zh) 一种基于dns日志数据的网络安全威胁分析方法及系统
KR20190028880A (ko) 봇넷 탐지 시스템을 학습하기 위한 학습 데이터를 생성하는 방법 및 그 장치
CN111382432A (zh) 一种恶意软件检测、分类模型生成方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant