CN109600382A - webshell检测方法及装置、HMM模型训练方法及装置 - Google Patents

webshell检测方法及装置、HMM模型训练方法及装置 Download PDF

Info

Publication number
CN109600382A
CN109600382A CN201811559057.XA CN201811559057A CN109600382A CN 109600382 A CN109600382 A CN 109600382A CN 201811559057 A CN201811559057 A CN 201811559057A CN 109600382 A CN109600382 A CN 109600382A
Authority
CN
China
Prior art keywords
webshell
web page
hmm model
page access
log
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.)
Granted
Application number
CN201811559057.XA
Other languages
English (en)
Other versions
CN109600382B (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.)
Beijing Knownsec Information Technology Co Ltd
Original Assignee
Beijing Knownsec Information Technology Co Ltd
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 Beijing Knownsec Information Technology Co Ltd filed Critical Beijing Knownsec Information Technology Co Ltd
Priority to CN201811559057.XA priority Critical patent/CN109600382B/zh
Publication of CN109600382A publication Critical patent/CN109600382A/zh
Application granted granted Critical
Publication of CN109600382B publication Critical patent/CN109600382B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供webshell检测方法及装置、HMM模型训练方法及装置。所述方法包括:获取待检测的网页访问日志;获取预先训练好的HMM模型,所述训练好的HMM模型用于检测网页访问日志中是否包括webshell;通过所述训练好的HMM模型检测所述待检测的网页访问日志中是否包含webshell。所述方法相较于现有技术中依赖规则库或者“孤岛法”检测webshell的方式来说,检测效果更好,且检测的准确率也比较高。

Description

webshell检测方法及装置、HMM模型训练方法及装置
技术领域
本发明涉及网络安全技术领域,具体而言,涉及webshell检测方法及装置、HMM模型训练方法及装置。
背景技术
webshell是网络黑客普遍使用的攻击利用手段之一,通过人工或者规则库筛查从数量较多的网页访问日志中找出webshell攻击行为比较困难。
传统的webshell检测主要依赖于规则库模式或者黑名单模式。而规则库和黑名单是由各厂商收集到的webshell程序样本的特征组成。特征则是分析工程师从webshell程序中找到其特有的关键词组合,查找webshell时把请求的特殊url(Uniform ResourceLocator,统一资源定位符)和参数与规则库中的所有特殊“关键词”进行匹配,如果命中,就可以判定为webshell。基于特殊“关键词”的特征匹配的规则库模式,应对已发现和已分析的webshell效果比较好,但对未周知的和没有收录在规则库中的webshell查找效果不好。相对于传统的webshell检测主要依赖于规则库模式,还有一种检测模式为“孤岛”法。在一个网站的所有url访问中,如果只有极个别用户访问过,那么该访问就可以判定为webshell。“孤岛”法,可以检测出一部分webshell,但黑客攻击手段越来越多,利用webshell的url也多种多样,同时不同的网站开发者命名的url千差万别,导致这种检测方法误报率和漏报率较高。
发明内容
本发明在于提供一种webshell检测方法及装置、HMM模型训练方法及装置,以缓解webshell的检测效果差的技术问题。
本发明的实施例通过如下方式实现:
第一方面,本发明实施例提供一种webshell检测方法,所述方法包括:
获取待检测的网页访问日志;获取预先训练好的HMM模型,所述训练好的HMM模型用于检测网页访问日志中是否包括webshell;通过所述训练好的HMM模型检测所述待检测的网页访问日志中是否包含webshell。
在本发明实施例的技术方案中,通过预先训练好的HMM模型检测网页访问日志中是否包括webshell,由于训练好的HMM模型可用于检测webshell,且由于HMM模型自身具有预测功能,相较于现有技术中依赖规则库或者“孤岛法”检测webshell的方式来说,检测效果更好,且检测的准确率也比较高。
结合第一方面,在第一方面的第一种可能的实现方式中,在获取待检测的网页访问日志之前,所述方法还包括:
获取样本网页访问日志,所述样本网页访问日志中包括确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志;根据所述样本访问日志对初始的HMM模型进行训练,得到所述训练好的HMM模型。将样本网页访问日志中包括的两种网页访问日志作为训练样本,可以依据这些训练样本对初始的HMM模型进行训练,以使训练好的HMM模型可用于检测webshell。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,根据所述样本访问日志对HMM模型进行训练包括:对所述样本访问日志进行分析,提取出多个样本访问序列,每个样本访问序列中包含用于表征webshell攻击行为的可观测状态和隐藏状态;将所述多个样本序列作为数据集输入到所述HMM模型中进行训练。通过分析提取包含用于识别webshell的状态样本的样本访问序列,作为数据集对HMM模型进行训练,以使HMM模型根据数据集的特点进行训练从而得到训练好的HMM模型。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,对所述样本访问日志进行分析,提取出多个样本访问序列,包括:对确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志进行比较分析,确定用于表征webshell攻击的可观测状态和隐藏状态;根据所述可观测状态和所述隐藏状态从所述确定包含webshell的网页访问日志中提取出所述多个样本访问序列。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述可观测状态包括:webshell的访问操作、webshell的http请求方法以及webshell的访问结果状态码;所述隐藏状态包括webshell访问的开始、持续、结束或者正常访问。
结合第一方面的第一种可能的实现方式,在第一方面的第五种可能的实现方式中,在得到训练好的HMM模型后,所述方法还包括:
按照预设规则从所述样本访问日志中确定出多个验证访问序列;将所述多个验证访问序列作为验证数据集输入所述训练好的HMM模型中,得到所述训练好的HMM模型对所述验证数据集中是否包含webshell的识别结果;根据所述识别结果分析所述训练好的HMM模型的识别准确率。通过多个验证访问序列对训练好的HMM模型进行验证,以得到训练好的HMM模型的识别准确率,进而可以根据识别准确度对训练好的HMM模型作进一步优化等。
第二方面,本发明实施例提供一种HMM模型训练方法,包括:
获取样本网页访问日志,所述样本网页访问日志中包括确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志;根据所述样本访问日志对初始的HMM模型进行训练,得到训练好的HMM模型。根据样本访问日志对初始的HMM模型进行训练,从而使训练好的HMM模型可以用于识别webshell。
结合第二方面,在第二方面的第一种可能的实现方式中,根据所述样本访问日志对初始的HMM模型进行训练包括:
对确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志进行比较分析,确定用于表征webshell攻击的可观测状态和隐藏状态;根据所述可观测状态和所述隐藏状态从所述确定包含webshell的网页访问日志中提取出多个样本访问序列,每个样本访问序列中包含用于表征webshell攻击行为的可观测状态和隐藏状态;将所述多个样本访问序列作为数据集输入到所述HMM模型中进行训练,得到训练好的HMM模型。
第三方面,本发明实施例提供一种webshell检测装置,所述装置包括用于实现第一方面所述的方法的功能模块。
第四方面,本发明还提供一种HMM模型训练装置,所述装置包括用于实现第二方面所述的方法的功能模块。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举本发明实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的HMM模型训练方法流程图;
图2为本发明实施例提供的webshell检测方法流程图;
图3为本发明实施例提供的HMM模型训练装置结构示意图;
图4为本发明实施例提供的webshell检测装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
为了能够更加清楚的理解本发明实施例中的技术方案,本发明实施例先对隐马尔科夫模型(Hidden Markov Model,以下简称HMM)作一个简单的介绍。HMM模型是一种典型的机器学习模型,可以用于语言识别、自然语言处理、模式识别等。使用HMM模型解决的问题一般有两个特征:(1)解决的问题是基于序列的,比如时间序列或者状态序列。(2)问题中有两类数据,一类数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,可称为隐藏状态序列。通过基于序列的两类数据进行识别的过程类似于词性分析,结合到webshell的识别来说,类比成对一篇文章中的句子做词性分析。一个访问序列相当于一个句子,一次访问相当于句子中的一个单词,对单词进行词性标注相当于识别该访问是否是webshell访问。HMM模型完成机器学习后,就能对给定的数据进行识别。
HMM模型算法对转移概率和表现概率直接建模,统计共同出现的概率。是一种基于概率计算的具备“预测”功能的算法模型。HMM模型算法训练代价小,复杂度适中,效率高。综上,HMM模型的机器学习算法,是从大量样本数据训练出来模型,然后对新数据进行分析和计算概率的机器学习算法,具备“预测”能力。webshell攻击形式多变,且更新发展很快,普通的分类算法、规则库和黑名单等解决方案在实际使用中日渐吃力,漏报率逐步上升。所以本发明实施例采用HMM模型算法来分析和查找网页访问日志中的webshell,来解决现有方案的不足。
本发明实施例先对HMM模型的训练作介绍,请参照图1,是本发明实施例提供的HMM模型训练方法流程图,所述训练方法包括:
步骤101:获取样本网页访问日志,所述样本网页访问日志中包括确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志。
步骤102:根据所述样本访问日志对初始的HMM模型进行训练,得到训练好的HMM模型。
步骤101中,获取的样本访问日志,可以是从现有的访问日志中得到的。确定包含webshell的网页访问日志可以称为黑数据,确定未包含webshell的网页访问日志可以称为白数据。例如获取某个客户端上已有的访问日志,且这些访问日志是已经完成webshell检测的,将其分类为黑数据和白数据。通过对黑数据和白数据进行分析,可以分析出webshell攻击的一些特点。
基于HMM模型的特点,为了得到训练模型的数据,可以对已有的数据进行分析,抽象出可观测状态和隐藏状态。在本发明实施例中,步骤102的一种可能的实现方式:对确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志进行比较分析,确定用于表征webshell攻击的可观测状态和隐藏状态;根据所述可观测状态和所述隐藏状态从所述确定包含webshell的网页访问日志中提取出多个样本访问序列,每个样本访问序列中包含用于表征webshell攻击行为的可观测状态和隐藏状态;将所述多个样本访问序列作为数据集输入到所述HMM模型中进行训练,得到训练好的HMM模型。
其中,对确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志进行比较分析的一个过程相当于一种比较筛选的过程,也就是通过比较筛选出一些能够代表webshell攻击的访问序列,再从这些访问序列中确定用于标签webshell攻击的可观测状态和隐藏状态。
本发明实施例提供一些代表webshell攻击的访问序列,基于这些访问序列,抽象出可观测状态和隐藏状态。示例如下:
AS110.110.110.xxx110.110.110.xxx SQLI BAN/include/taglib/findgs.lib.php POST 403
AC 110.110.110.xxx 110.110.110.xxx NONE-/include/taglib/findgs.lib.php POST 200
AC 110.110.110.xxx 110.110.110.xxx WEBSHELL BAN/include/taglib/findgs.lib.php POST 403
AC 110.110.110.xxx 220.220.220.xxx,<SP>110.110.110.xxx WEBSHELL BAN/include/taglib/findgs.lib.php POST 403
AC 110.110.110.xxx 220.220.220.xxx,<SP>110.110.110.xxx WEBSHELL BAN/include/taglib/findgs.lib.php POST 403
AC 110.110.110.xxx 110.110.110.xxx WEBSHELL TEST_RULE/include/taglib/findgs.lib.php POST 200
AC 110.110.110.xxx 110.110.110.xxx NONE-/include/taglib/findgs.lib.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42GET 200
AC 110.110.110.xxx 110.110.110.xxx NONE-/include/taglib/findgs.lib.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42GET 500
AC 110.110.110.xxx 110.110.110.xxx SQLI BAN/include/taglib/findgs.lib.php POST 403
AC 110.110.110.xxx 110.110.110.xxx NONE-/include/taglib/findgs.lib.php POST 200
AC 110.110.110.xxx 110.110.110.xxx NONE-/include/taglib/findgs.lib.php POST 200
AC 110.110.110.xxx 110.110.110.xxx SQLI BAN/include/taglib/findgs.lib.php POST 403
AC 110.110.110.xxx 110.110.110.xxx SQLI BAN/include/taglib/findgs.lib.php POST 403
AC 110.110.110.xxx 110.110.110.xxx SQLI BAN/include/taglib/findgs.lib.php POST 403
AC 110.110.110.xxx 110.110.110.xxx SQLI BAN/include/taglib/findgs.lib.php POST 403
AC 110.110.110.xxx 110.110.110.xxx WEBSHELL BAN/include/taglib/findgs.lib.php POST 403
AC 110.110.110.xxx 110.110.110.xxx NONE-/include/taglib/findgs.lib.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42GET 200
AC 110.110.110.xxx 110.110.110.xxx NONE-/include/taglib/findgs.lib.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42GET 200
AC 110.110.110.xxx 110.110.110.xxx WEBSHELL TEST_RULE/include/taglib/findgs.lib.php POST 200
AE 110.110.110.xxx 110.110.110.xxx NONE-/include/taglib/findgs.lib.php POST 200
对上述示例序列进行分析:Web应用防护系统(也称为:网站应用级入侵防御系统;英文:Web Application Firewall,简称:WAF)会对webshell访问进行拦截,能够检测到webshell访问时的一些基本操作,这些被检测到的访问可以作为识别webshell的可观测状态。Webshell的使用只能利用特定的HTTP REQ METHOD(http请求方法),所以http请求方法可以作为识别webshell的可观测状态。RESP CODE(http返回码)也和webshell利用成功与否及webshell生命周期的各个阶段息息相关,所以也可以作为HMM模型中的可观测状态。
对于隐藏状态,可以是webshell访问的开始、持续、结束或者正常访问。
因此,抽象出的可观测状态为:WAF匹配动作,分为两类:攻击和正常;http请求方法,可分为3类:GET、POST、OTHER;http返回状态码,可分为2类:成功(1xx/2xx/3xx)和失败(4xx/5xx)。隐藏状态为:正常访问网站;AS,webshell攻击访问开始;AC,webshell攻击访问持续;AE,webshell攻击访问结束。
举例来说,在AC 110.110.110.xxx 110.110.110.xxx WEBSHELL TEST_RULE/include/taglib/findgs.lib.php POST 200这个访问序列中,AC代表webshell持续的攻击访问;110.110.110.xxx 110.110.110.xxx代表http返回码,此处为成功的状态码;POST代表http的请求方法。代表这个访问序列为通过连续POST请求方式攻击的webshell访问序列。
再以另一组访问序列为例,在AE 100.100.xx.110 100.1x0.100.xx WE BSHELLBAN/e/data/language/gb/pub/phpdama.php GET 403这个访问序列中,AE代表webshell攻击访问结束;100.100.xx.110 100.1x0.100.xx代表http返回码,此处为成功的状态码;GET代表http的请求方法。代表这个访问序列为通过GET请求方式攻击的处于结束状态的webshell访问序列。
在完成上述的分析后,可以根据可观测状态和隐藏状态从确定包含webshell的网页访问日志中提取出多个样本访问序列。
对于样本访问序列来说,其中包含用于表征webshell攻击行为的可观测状态和隐藏状态,因此可以将这些样本访问序列输入到HMM模型中进行训练。
下面举一些样本访问序列的例子:
举例1:AS 100.100.xx.100 100.1x0.100.xx NONE-/e/data/language/gb/pub/phpdama.php GET 200
AE 100.100.xx.100 100.1x0.100.xx SPECIAL TEST_RULE/e/dat a/language/gb/pub/phpdama.php POST 200
AE 100.100.xx.100 100.1x0.100.xx WEBSHELL BAN/e/data/lan guage/gb/pub/phpdama.php?GET 403
AE 100.100.xx.110 100.1x0.100.xx WEBSHELL BAN/e/data/lang uage/gb/pub/phpdama.php GET 403
以举例1中AE 100.100.xx.100 100.1x0.100.xx WEBSHELL BAN/e/d ata/language/gb/pub/phpdama.php?GET 403这个访问序列来说,这是一个被web防火墙禁止的webshell访问序列。
举例2:AS 100.100.xx.110 100.1x0.100.xx SQLI BAN/include/taglib/findgs.lib.php POST 403
AC 100.100.xx.110 100.1x0.100.xx 222.188.155.64NONE-/incl ude/taglib/findgs.lib.php POST 200
AC 100.100.xx.110 100.1x0.100.xx 222.188.155.64WEBSHELL BAN/include/taglib/findgs.lib.php POST 403
AC 100.100.xx.110 69.xx.194.xx<SP>222.188.155.64WEBSHELL BAN/include/taglib/findgs.lib.php POST 403
AC 100.100.xx.110 69.xx.194.xx<SP>222.188.155.64WEBSHELL BAN/include/taglib/findgs.lib.php POST 403
AC 100.100.xx.110 100.1x0.100.xx WEBSHELL TEST_RULE/include/taglib/findgs.lib.php POST 200
AC 100.100.xx.110 100.1x0.100.xx NONE-/include/taglib/findgs.lib.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42GET 200
以举例2中AC 100.100.xx.110 100.1x0.100.xx WEBSHELL TEST_RULE/include/taglib/findgs.lib.php POST 200这个访问序列来说,这是一个成功测试绕过web防火墙的webshell访问序列。
举例3:AS 100.100.xx.110 100.1x0.100.xx NONE-/plus/mytag_js.php?aid=9527GET 200
AE 100.100.xx.110 100.1x0.100.xx WEBSHELL TEST_RULE/plus/mytag_js.php?aid=9527POST 200
AE 100.100.xx.110 100.1x0.100.xx WEBSHELL TEST_RULE/plus/mytag_js.php?aid=9527POST 200
AE 100.100.xx.110 100.1x0.100.xx WEBSHELL TEST_RULE/plus/mytag_js.php?aid=9527POST 200
AE 100.100.xx.110 100.1x0.100.xx WEBSHELL TEST_RULE/plus/mytag_js.php?aid=9527POST 200
AE 100.100.xx.110 100.1x0.100.xx WEBSHELL TEST_RULE/plus/mytag_js.php?aid=9527POST 200
AE 100.100.xx.110 100.1x0.100.xx NONE-/plus/mytag_js.php?aid=9527GET200
举例4:AS 111.23.197.8 114.94.33.128,<SP>111.23.197.8WEBSHELL BAN/plus/mytag_js.php?aid=9090POST 403
AC 111.23.197.8 170.188.143.93,<SP>111.23.197.8WEBSHELL BAN/plus/mytag_js.php?aid=9090POST 403
AC 111.23.197.8 144.26.73.13,<SP>111.23.197.8WEBSHELL BAN/plus/mytag_js.php?aid=9090POST 403
AC 111.23.197.8 177.184.77.207,<SP>111.23.197.8WEBSHELL BAN/plus/mytag_js.php?aid=9090POST 403
AC 111.23.197.8 194.164.42.61,<SP>111.23.197.8WEBSHELL BAN/plus/mytag_js.php?aid=9090POST 403
AE 111.23.197.8 184.72.191.147,<SP>111.23.197.8NONE-/plus/mytag_js.php?aid=9090POST 200
在举例1和举例2中,是非典型的多个样本访问序列,也就是从确定包含webshell的访问序列中随机挑选出的多个具有可观测状态和隐藏状态的样本访问序列。在举例3中,为典型的样本访问序列,代表的是webshell攻击成功后,连续通过POST请求方法的多个样本访问序列。在举例4中,也是为典型的样本访问序列,代表的是尝试进行若干次webshell攻击都被拦截的,但是最后攻击成功的多个样本访问序列。举例3和举例4中都是成功绕过web防火墙拦截的webshell访问序列。
在得到这些样本访问序列后,组成数据集,输入到初始的HMM模型中,对初始的HMM模型进行训练,得到训练好的HMM模型。其中,具体的训练过程是在输入数据集后,HMM模型内会完成一个机器学习的过程,也就是基于样本访问序列不断计算转移概率和表现概率的一个过程,计算完成即训练完成。
在得到训练好的HMM模型后,还可以对训练好的HMM模型进行验证,所述方法包括:按照预设规则从所述样本访问日志中确定出多个验证访问序列;将所述多个验证访问序列作为验证数据集输入所述训练好的HMM模型中,得到所述训练好的HMM模型对所述验证数据集中是否包含webshell的识别结果;根据所述识别结果分析所述训练好的HMM模型的识别准确率。
其中,按照预设规则可以是在样本访问日志中选择一定时间跨度(如一季度或者更长时间)的访问序列作为验证访问序列,例如在确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志中各选择一定数量的访问序列作为验证数据集,其中的一定数量可以是成比例的数量或者随机的数量。也可以通过随机选择,例如在样本访问日志中随机选择大量的访问序列作为验证数据集。
通过验证数据集可以得到训练好的HMM模型的识别准确率,验证数据集中的webshell访问序列是已知的,进而可以判断训练好的HMM模型能不能在验证数据集中识别出webshell。
在完成验证后,可以根据模型验证结果进行准确率和召回率的分析,从而还能根据准确率和召回率对训练好的HMM模型作进一步的训练或者优化等,得到最佳的HMM模型。
举例来说,训练好的HMM模型识别出了验证数据集中的百分之90的webshell访问序列,那么训练好的HMM模型的准确率则为百分之90。这样的识别率还是相对比较高的,基本可以直接用于webshell的检测。
基于训练好的HMM模型,请参照图2,本发明实施例还提供一种webshell检测方法,所述检测方法基于HMM模型,所述方法包括:
步骤201:获取待检测的网页访问日志。
步骤202:获取预先训练好的HMM模型,所述训练好的HMM模型用于检测网页访问日志中是否包括webshell。
步骤203:通过所述训练好的HMM模型检测所述待检测的网页访问日志中是否包含webshell。
在本发明实施例的技术方案中,通过预先训练好的HMM模型检测网页访问日志中是否包括webshell,由于训练好的HMM模型的检测效率高,且具有预测功能,相较于现有技术中依赖规则库或者“孤岛法”检测webshell的方式来说,检测效果更好,且检测的准确率也比较高。
在步骤201中,待检测的网页访问日志也就是不知道是否包含webshell的网页访问日志,需要通过训练的HMM模型进行识别和检测。
对于步骤202,在上述训练方法中的步骤102完成后,可以将训练好的HMM模型进行存储,在步骤202中直接获取训练好的HMM模型即可;也可以是在执行步骤201之前训练好的HMM模型,将其用于检测webshell。
对于步骤203,检测的过程相当于对该网页访问日志作词性分析,举例来说,该网页访问日志中的每一个访问序列都相当于一个句子,一个访问序列中有多种访问,分析访问序列中每一个访问是否属于可观测状态或者隐藏状态,只要识别到任意的可观测状态或者隐藏状态,则可判断该访问属于webshell访问。从而能够识别出网页访问日志中是否包含webshell,并可以得到检测为webshell访问的访问序列。
前述的HMM模型的训练方法也可以包括在所述检测方法中,也就是在执行步骤202之前执行所述检测方法中的步骤。因此在执行步骤201之前,所述检测方法还可以包括:获取样本网页访问日志,所述样本网页访问日志中包括确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志;根据所述样本访问日志对初始的HMM模型进行训练,得到所述训练好的HMM模型。
进一步的,根据所述样本访问日志对HMM模型进行训练包括:对所述样本访问日志进行分析,提取出多个样本访问序列,每个样本访问序列中包含至少两个用于识别webshell的状态样本;将所述多个样本序列作为数据集输入到所述HMM模型中进行训练。
进一步的,对所述样本访问日志进行分析,提取出多个样本访问序列,包括:对确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志进行比较分析,确定用于表征webshell攻击的可观测状态和隐藏状态;根据所述可观测状态和所述隐藏状态从所述确定包含webshell的网页访问日志中提取出所述多个样本访问序列。
进一步的,所述可观测状态包括:webshell的访问操作、webshell的http请求方法以及webshell的访问结果状态码;所述隐藏状态包括webshell访问的开始、持续、结束或者正常访问。
在所述检测方法中,还可以对训练好的HMM模型进行验证,因此所述方法还包括:按照预设规则从所述样本访问日志中确定出多个验证访问序列;将所述多个验证访问序列作为验证数据集输入所述训练好的HMM模型中,得到所述训练好的HMM模型对所述验证数据集中是否包含webshell的识别结果;根据所述识别结果分析所述训练好的HMM模型的识别准确率。
前述实施例中的HMM模型训练方法中的各实施方式和具体实例同样适用于webshell检测方法中的模型训练和模型验证部分,通过前述对HMM模型训练方法的详细描述,本领域技术人员可以清楚的知道模型训练和模型验证的实施方法,所以为了说明书的简洁,在此不再详细描述。
请参照图3,是本发明实施例提供的webshell检测装置300,检测装置300包括获取模块301、处理模块302。
获取模块301:用于获取待检测的网页访问日志;获取模块301还用于获取预先训练好的HMM模型,所述训练好的HMM模型用于检测网页访问日志中是否包括webshell;处理模块302:用于通过所述训练好的HMM模型检测所述待检测的网页访问日志中是否包含webshell。
可选的,获取模块301还用于:获取样本网页访问日志,所述样本网页访问日志中包括确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志;处理模块302还用于根据所述样本访问日志对初始的HMM模型进行训练,得到所述训练好的HMM模型。
可选的,处理模块302还用于对所述样本访问日志进行分析,提取出多个样本访问序列,每个样本访问序列中包含至少两个用于识别webshell的状态样本;将所述多个样本序列作为数据集输入到所述HMM模型中进行训练。
可选的,处理模块302还用于对确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志进行比较分析,确定用于表征webshell攻击的可观测状态和隐藏状态;根据所述可观测状态和所述隐藏状态从所述确定包含webshell的网页访问日志按照预设规则从所述样本访问日志中确定出多个验证访问序列;
可选的,处理模块302还用于将所述多个验证访问序列作为验证数据集输入所述训练好的HMM模型中,得到所述训练好的HMM模型对所述验证数据集中是否包含webshell的识别结果;根据所述识别结果分析所述训练好的HMM模型的识别准确率中提取出所述多个样本访问序列。
请参照图4,是本发明实施例提供的HMM模型训练装置400,训练装置400包括获取模块401、训练模块402。
获取模块401:用于获取样本网页访问日志,所述样本网页访问日志中包括确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志;训练模块402:用于根据所述样本访问日志对初始的HMM模型进行训练,得到训练好的HMM模型。
可选的,训练模块402还用于对确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志进行比较分析,确定用于表征webshell攻击的可观测状态和隐藏状态;根据所述可观测状态和所述隐藏状态从所述确定包含webshell的网页访问日志中提取出多个样本访问序列,每个样本访问序列中包含至少两个用于识别webshell的状态样本;将所述多个样本访问序列作为数据集输入到所述HMM模型中进行训练,得到训练好的HMM模型。
前述实施例中的webshell检测方法和HMM模型训练方法中的各实施方式和具体实例同样适用于图3中的检测装置和图4中的训练装置,通过前述对webshell检测方法和HMM模型训练方法的详细描述,本领域技术人员可以清楚的知道图3中的检测装置和图4中的训练装置的实施方法,所以为了说明书的简洁,在此不再详述。
本发明实施例还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被计算机运行时执行上述的webshell检测方法和HMM模型训练方法中的步骤。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种webshell检测方法,其特征在于,所述方法包括:
获取待检测的网页访问日志;
获取预先训练好的HMM模型,所述训练好的HMM模型用于检测网页访问日志中是否包括webshell;
通过所述训练好的HMM模型检测所述待检测的网页访问日志中是否包含webshell。
2.根据权利要求1所述的检测方法,其特征在于,在获取待检测的网页访问日志之前,所述方法还包括:
获取样本网页访问日志,所述样本网页访问日志中包括确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志;
根据所述样本访问日志对初始的HMM模型进行训练,得到所述训练好的HMM模型。
3.根据权利要求2所述的检测方法,其特征在于,根据所述样本访问日志对HMM模型进行训练包括:
对所述样本访问日志进行分析,提取出多个样本访问序列,每个样本访问序列中包含用于表征webshell攻击行为的可观测状态和隐藏状态;
将所述多个样本序列作为数据集输入到所述HMM模型中进行训练。
4.根据权利要求3所述的检测方法,其特征在于,对所述样本访问日志进行分析,提取出多个样本访问序列,包括:
对确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志进行比较分析,确定用于表征webshell攻击行为的可观测状态和隐藏状态;
根据所述可观测状态和所述隐藏状态从所述确定包含webshell的网页访问日志中提取出所述多个样本访问序列。
5.根据权利要求4所述的检测方法,其特征在于,所述可观测状态包括:webshell的访问操作、webshell的http请求方法以及webshell的访问结果状态码;所述隐藏状态包括webshell访问的开始、持续、结束或者正常访问。
6.根据权利要求2所述的检测方法,其特征在于,在得到训练好的HMM模型后,所述方法还包括:
按照预设规则从所述样本访问日志中确定出多个验证访问序列;
将所述多个验证访问序列作为验证数据集输入所述训练好的HMM模型中,得到所述训练好的HMM模型对所述验证数据集中是否包含webshell的识别结果;
根据所述识别结果分析所述训练好的HMM模型的识别准确率。
7.一种HMM模型训练方法,其特征在于,包括:
获取样本网页访问日志,所述样本网页访问日志中包括确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志;
根据所述样本访问日志对初始的HMM模型进行训练,得到训练好的HMM模型。
8.根据权利要求7所述的训练方法,其特征在于,根据所述样本访问日志对初始的HMM模型进行训练包括:
对确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志进行比较分析,确定用于表征webshell攻击行为的可观测状态和隐藏状态;
根据所述可观测状态和所述隐藏状态从所述确定包含webshell的网页访问日志中提取出多个样本访问序列,每个样本访问序列中包含用于表征webshell攻击行为的可观测状态和隐藏状态;
将所述多个样本访问序列作为数据集输入到所述HMM模型中进行训练,得到训练好的HMM模型。
9.一种webshell检测装置,其特征在于,所述装置包括:
获取模块:用于获取待检测的网页访问日志;
所述获取模块还用于获取预先训练好的HMM模型,所述训练好的HMM模型用于检测网页访问日志中是否包括webshell;
处理模块:用于通过所述训练好的HMM模型检测所述待检测的网页访问日志中是否包含webshell。
10.一种HMM模型训练装置,其特征在于,包括:
获取模块:用于获取样本网页访问日志,所述样本网页访问日志中包括确定包含webshell的网页访问日志和确定未包含webshell的网页访问日志;
训练模块:用于根据所述样本访问日志对初始的HMM模型进行训练,得到训练好的HMM模型。
CN201811559057.XA 2018-12-19 2018-12-19 webshell检测方法及装置、HMM模型训练方法及装置 Active CN109600382B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811559057.XA CN109600382B (zh) 2018-12-19 2018-12-19 webshell检测方法及装置、HMM模型训练方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811559057.XA CN109600382B (zh) 2018-12-19 2018-12-19 webshell检测方法及装置、HMM模型训练方法及装置

Publications (2)

Publication Number Publication Date
CN109600382A true CN109600382A (zh) 2019-04-09
CN109600382B CN109600382B (zh) 2021-07-13

Family

ID=65964097

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811559057.XA Active CN109600382B (zh) 2018-12-19 2018-12-19 webshell检测方法及装置、HMM模型训练方法及装置

Country Status (1)

Country Link
CN (1) CN109600382B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109831465A (zh) * 2019-04-12 2019-05-31 重庆天蓬网络有限公司 一种基于大数据日志分析的网站入侵检测方法
CN110753038A (zh) * 2019-09-29 2020-02-04 武汉大学 一种异常检测自适应权限控制系统及方法
CN111277606A (zh) * 2020-02-10 2020-06-12 北京邮电大学 检测模型训练方法、检测方法及装置、存储介质
CN112153033A (zh) * 2020-09-16 2020-12-29 杭州安恒信息技术股份有限公司 一种检测webshell的方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160127402A1 (en) * 2014-11-04 2016-05-05 Patternex, Inc. Method and apparatus for identifying and detecting threats to an enterprise or e-commerce system
US20160307428A1 (en) * 2015-03-03 2016-10-20 Caduceus Intelligence Corporation Remote monitoring system and related methods
CN107659570A (zh) * 2017-09-29 2018-02-02 杭州安恒信息技术有限公司 基于机器学习与动静态分析的Webshell检测方法及系统
CN107888616A (zh) * 2017-12-06 2018-04-06 北京知道创宇信息技术有限公司 基于URI的分类模型的构建方法和Webshell攻击网站的检测方法
CN107888571A (zh) * 2017-10-26 2018-04-06 江苏省互联网行业管理服务中心 一种基于HTTP日志的多维度webshell入侵检测方法及检测系统
CN108809955A (zh) * 2018-05-22 2018-11-13 南瑞集团有限公司 一种基于隐马尔可夫模型的电力用户行为深度分析方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160127402A1 (en) * 2014-11-04 2016-05-05 Patternex, Inc. Method and apparatus for identifying and detecting threats to an enterprise or e-commerce system
US20160307428A1 (en) * 2015-03-03 2016-10-20 Caduceus Intelligence Corporation Remote monitoring system and related methods
CN107659570A (zh) * 2017-09-29 2018-02-02 杭州安恒信息技术有限公司 基于机器学习与动静态分析的Webshell检测方法及系统
CN107888571A (zh) * 2017-10-26 2018-04-06 江苏省互联网行业管理服务中心 一种基于HTTP日志的多维度webshell入侵检测方法及检测系统
CN107888616A (zh) * 2017-12-06 2018-04-06 北京知道创宇信息技术有限公司 基于URI的分类模型的构建方法和Webshell攻击网站的检测方法
CN108809955A (zh) * 2018-05-22 2018-11-13 南瑞集团有限公司 一种基于隐马尔可夫模型的电力用户行为深度分析方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郑瀚ANDREW_HANN: "HMM隐马尔科夫算法(Hidden Markov Algorithm)初探", 《HTTPS://WWW.CNBLOGS.COM/LITTLEHANN/P/7609060.HTML》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109831465A (zh) * 2019-04-12 2019-05-31 重庆天蓬网络有限公司 一种基于大数据日志分析的网站入侵检测方法
CN109831465B (zh) * 2019-04-12 2020-07-10 重庆天蓬网络有限公司 一种基于大数据日志分析的网站入侵检测方法
CN110753038A (zh) * 2019-09-29 2020-02-04 武汉大学 一种异常检测自适应权限控制系统及方法
CN111277606A (zh) * 2020-02-10 2020-06-12 北京邮电大学 检测模型训练方法、检测方法及装置、存储介质
CN111277606B (zh) * 2020-02-10 2022-04-15 北京邮电大学 检测模型训练方法、检测方法及装置、存储介质
CN112153033A (zh) * 2020-09-16 2020-12-29 杭州安恒信息技术股份有限公司 一种检测webshell的方法和装置

Also Published As

Publication number Publication date
CN109600382B (zh) 2021-07-13

Similar Documents

Publication Publication Date Title
CN109600382A (zh) webshell检测方法及装置、HMM模型训练方法及装置
CN110808968B (zh) 网络攻击检测方法、装置、电子设备和可读存储介质
EP3651043A1 (en) Url attack detection method and apparatus, and electronic device
CN111401416B (zh) 异常网站的识别方法、装置和异常对抗行为的识别方法
CN108566399B (zh) 钓鱼网站识别方法及系统
CN107204960B (zh) 网页识别方法及装置、服务器
US9053374B2 (en) Biometric training and matching engine
CN105516128B (zh) 一种Web攻击的检测方法及装置
CN109104421B (zh) 一种网站内容篡改检测方法、装置、设备及可读存储介质
CN105718795B (zh) Linux下基于特征码的恶意代码取证方法及系统
CN110138794A (zh) 一种仿冒网站识别方法、装置、设备及可读存储介质
CN106776609A (zh) 网站转载数量的统计方法及装置
CN111368303A (zh) 一种PowerShell恶意脚本的检测方法及装置
CN111338692A (zh) 基于漏洞代码的漏洞分类方法、装置及电子设备
CN114650176A (zh) 钓鱼网站的检测方法、装置、计算机设备及存储介质
CN111914257A (zh) 文档检测的方法、装置、设备、及计算机存储介质
CN110704841A (zh) 一种基于卷积神经网络的大规模安卓恶意应用检测系统及方法
CN110855635B (zh) Url识别方法、装置及数据处理设备
CN109670311A (zh) 基于高级语义的恶意代码分析与检测方法
CN108985052A (zh) 一种恶意程序识别方法、装置和存储介质
CN104580109B (zh) 生成点选验证码的方法及装置
CN111400718A (zh) 一种系统漏洞与攻击的检测方法、装置及其相关设备
CN111125443A (zh) 一种基于自动去重的试题题库在线更新方法
CN111125704B (zh) 一种网页挂马识别方法及系统
WO2017080183A1 (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 311501, Unit 1, Building 5, Courtyard 1, Futong East Street, Chaoyang District, Beijing

Applicant after: Beijing Zhichuangyu Information Technology Co., Ltd.

Address before: Room 311501, Unit 1, Building 5, Courtyard 1, Futong East Street, Chaoyang District, Beijing

Applicant before: Beijing Knows Chuangyu Information Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant