CN107483488A - 一种恶意Http检测方法及系统 - Google Patents
一种恶意Http检测方法及系统 Download PDFInfo
- Publication number
- CN107483488A CN107483488A CN201710839179.3A CN201710839179A CN107483488A CN 107483488 A CN107483488 A CN 107483488A CN 201710839179 A CN201710839179 A CN 201710839179A CN 107483488 A CN107483488 A CN 107483488A
- Authority
- CN
- China
- Prior art keywords
- http
- http requests
- request
- requests
- head
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本发明公开了一种恶意Http检测方法及系统,在该方法中通过马尔科夫链、one‑class SVM,建立浏览器访问行为识别模型,对用户正常上网产生的合法Http请求流量进行过滤,然后利用合法流量发生的时间信息,将可疑、孤立的Http请求提取出来。对于提取出的可疑Http请求,系统采用启发式方法从服务器特征评估分值、主机请求行为特征评估分值、Http消息特征评估分值等多个方面,进行风险评估,形成最终检测结果。
Description
技术领域
本申请涉及信息处理技术领域,尤其涉及一种恶意Http检测方法及系统。
背景技术
目前,各种恶意软件对互联网用户造成严重的安全威胁,对于很多恶意软件如:僵尸网络、木马等需要与控制服务器建立通信,以便获取控制指令、执行相关操作,在通信过程中使用的网络协议主要有IRC、Http、P2P及私有协议等,虽然采用P2P协议的恶意软件能有效克服单点失效,具有整个控制网络难以全面关闭的优势,但很多研究表明大量恶意软件使用的通信协议仍主要是Http协议。Cymru研究组的分析报告表明:基于Http协议的僵尸网络数量快速增长。Rossow在沙网中分析恶意软件的网络行为时,发现:58.6%恶意样本都会产生Http请求。迈克菲实验室的研究表明:最近几年60%以上的顶级僵尸网络家族在通信过程中采用的是Http协议,并且有明显增长的趋势。
目前,大量合法网络应用采用Http协议作为其通信协议,其中很多应用程序的通信行为具有明显周期性,如:BT客户端与Track服务器的通信、在线游戏等,同时现在很多恶意软件在通信过程中采用随机间隔来躲避检测,因此,基于行为特征的检测方法存在过度依赖请求行为的时间特征问题。基于内容的检测方法主要通过恶意样本通信流量提取出匹配特征,以便利用特征匹配方法进行检测,但是,尽管在特征提取时考虑到匹配特征泛化问题,系统对未知恶意样本的检测能力还是相对有限。
发明内容
本发明实施例提供了一种恶意Http检测方法及系统,用以解决现有技术中对恶意软件检测的准确性以及效率较低的问题。
其具体的技术方案如下:
一种恶意Http检测方法,所述方法包括:
在检测周期内,提取出每个Http请求中头部信息以及对应的响应字节数;
根据所述头部信息,确定对应Http请求是否存在用户代理异常,并提确定出用户代理异常的Http请求;
获取所述代理用户异常的Http请求的时间信息,根据所述时间信息确定出孤立Http请求,并形成孤立Http请求对应的URL集合;
在所述URL集合中确定出对服务器资源访问具有持续性的Http请求;
在所述URL集合中确定出对服务器资源访问具有周期性的Http请求;
根据所述用户代理异常的Http请求、孤立Http请求、具有持续性的Http请求以及具有周期性Http请求得到主机特征评估分值、主机行为特征评估分值以及请求特征评估分值;
根据所述主机特征评估分值、所述主机行为特征评估分值以及请求特征评估分值之和,确定恶意软件风险等级。
可选的,提取出每个Http请求中头部信息以及对应的响应字节数,包括:
获取被检测主机的域名系统DNS请求流量以及传输控制协议TCP流量,根据所述DNS流量得到域名地址;
若所述域名地址未在预设白名单中,则将所述域名地址添加到域名地址缓存池中;
根据TCP流量,确定TCP会话的目的地址是否在域名地址缓存池中;
若是,则提取出Http请求中的头部信息以及服务器对所述Http请求的响应字节数;
若否,则直接丢弃所述Http请求。
可选的,根据所述头部信息,确定对应Http请求是否存在用户代理异常,包括:
在所述头部信息中获取应用软件名称信息以及版本信息;
判断所述应用软件是否为应用库中应用软件;
若否,则将所述Http请求标注为用户代理异常;
若是,则判断所述版本信息是否与合法应用软件的版本信息匹配;
若不匹配,则将所述Http请求标注为异常。
可选的,所述方法还包括:
若所述版本信息与合法应用软件的版本信息匹配时,则根据Http请求对应的浏览器类型,确定所述浏览器类型对应的转移概率矩阵;
获取Http请求中的头部,并删除未在状态空间中的头部,得到剩余头部数量,其中,所述状态空间中包含了Http协议规范中定义的头部;
若所述剩余头部数量小于指定样本中所包含的头部数量最小值,则将所述Http请求标注为异常;
若所述剩余头部数量大于等于指定样本中所包含的头部数量最小值,确定删除的头部数量与所述Http请求的头部总数量的比值;
若所述比值大于指定阈值,则将所述Http请求标注为异常;
若所述比值小于等于指定阈值,则通过所述转移概率矩阵,得到所述Http请求对应发生概率,若所述发生概率为零,则将所述Http请求标注为异常,否否,所述Http请求为合法请求。
可选的,获取所述代理用户异常的Http请求的时间信息,根据所述时间信息确定出孤立Http请求,包括:
获取主机在检测周期内发送的所有Http请求,并按照发生的时间顺序得到时间序列;
通过指定时间间隔,将所述时间序列划分为K个不相交的子序列,其中,对任意子序列内的相邻请求之间的时间间隔小于等于所述指定时间间隔,并且与外部相邻请求之间的时间间隔大于所述指定时间间隔;
若所述时间序列中的子序列在合法请求序列内,判断所述子序列中的Http请求的发生时间是否大于区间范围的最大值,或者小于所述区间范围的最小值,其中,所述区间范围为用户正常操作产生请求的时间区间;
若是,则将所述Http请求确定为孤立Http请求。
可选的,在所述URL集合中确定出对服务器资源访问具有持续性的Http请求,包括:
确定Http请求流的开始时间以及结束时间;
将所述开始时间以及所述结束时间之差作为Http请求流的最长观测长度;
将所述最长观测长度划分为n+1个基本观测窗口;
根据n+1个基本观测窗口,得到所述Http请求流的持续性指标;
若所述持续性指标大于规定阈值,确定所述Http请求流具有持续性。
可选的,在所述URL集合中确定出对服务器资源访问具有周期性的Http请求,包括:
确定第一个达到检测阈值的最小观测窗口测的观测长度;
根据所述观测长度确定采样间隔;
根据所述采样间隔对所述Http请求流进行采样,得到请求次数序列;
根据所述请求次数序列以及指定公式,确定所述Http请求的周期性。
一种恶意Http检测系统,包括:
数据预处理模块,用于在检测周期内,提取出每个Http请求中头部信息以及对应的响应字节数;
合法流量识别模块,用于根据所述头部信息,确定对应Http请求是否存在用户代理异常,并提确定出用户代理异常的Http请求;获取所述代理用户异常的Http请求的时间信息,根据所述时间信息确定出孤立Http请求,并形成孤立Http请求对应的URL集合;
风险评估模块,用于在所述URL集合中确定出对服务器资源访问具有持续性的Http请求;在所述URL集合中确定出对服务器资源访问具有周期性的Http请求;根据所述用户代理异常的Http请求、孤立Http请求、具有持续性的Http请求以及具有周期性Http请求得到主机特征评估分值、主机行为特征评估分值以及请求特征评估分值;根据所述主机特征评估分值、所述主机行为特征评估分值以及请求特征评估分值之和,确定恶意软件风险等级。
可选的,所述数据预处理模块,具体用于获取被检测主机的域名系统DNS请求流量以及传输控制协议TCP流量,根据所述DNS流量得到域名地址;若所述域名地址未在预设白名单中,则将所述域名地址添加到域名地址缓存池中;根据TCP流量,确定TCP会话的目的地址是否在域名地址缓存池中;若是,则提取出Http请求中的头部信息以及服务器对所述Http请求的响应字节数;若否,则直接丢弃所述Http请求。
可选的,所述合法流量识别模块,具体用于在所述头部信息中获取应用软件名称信息以及版本信息;判断所述应用软件是否为应用库中应用软件;若否,则将所述Http请求标注为用户代理异常;若是,则判断所述版本信息是否与合法应用软件的版本信息匹配;若不匹配,则将所述Http请求标注为异常。
可选的,所述合法流量识别模块,具体用于若所述版本信息与合法应用软件的版本信息匹配时,则根据Http请求对应的浏览器类型,确定所述浏览器类型对应的转移概率矩阵;获取Http请求中的头部,并删除未在状态空间中的头部,得到剩余头部数量,若所述剩余头部数量小于指定样本中所包含的头部数量最小值,则将所述Http请求标注为异常;若所述剩余头部数量大于等于指定样本中所包含的头部数量最小值,确定删除的头部数量与所述Http请求的头部总数量的比值;若所述比值大于指定阈值,则将所述Http请求标注为异常;若所述比值小于等于指定阈值,则通过所述转移概率矩阵,得到所述Http请求对应发生概率,若所述发生概率为零,则将所述Http请求标注为异常,否否,所述Http请求为合法请求。
可选的,所述合法流量识别模块,具体用于获取主机在检测周期内发送的所有Http请求,并按照发生的时间顺序得到时间序列;通过指定时间间隔,将所述时间序列划分为K个不相交的子序列,其中,对任意子序列内的相邻请求之间的时间间隔小于等于所述指定时间间隔,并且与外部相邻请求之间的时间间隔大于所述指定时间间隔;若所述时间序列中的子序列在合法请求序列内,判断所述子序列中的Http请求的发生时间是否大于区间范围的最大值,或者小于所述区间范围的最小值,其中,所述区间范围为用户正常操作产生请求的时间区间;若是,则将所述Http请求确定为孤立Http请求。
可选的,所述风险评估模块,具体用于确定Http请求流的开始时间以及结束时间;将所述开始时间以及所述结束时间之差作为Http请求流的最长观测长度;将所述最长观测长度划分为n+1个基本观测窗口;根据n+1个基本观测窗口,得到所述Http请求流的持续性指标;若所述持续性指标大于规定阈值,确定所述Http请求流具有持续性。
可选的,所述风险评估模块,具体用于确定第一个达到检测阈值的最小观测窗口测的观测长度;根据所述观测长度确定采样间隔;根据所述采样间隔对所述Http请求流进行采样,得到请求次数序列;根据所述请求次数序列以及指定公式,确定所述Http请求的周期性。
综上来讲,本发明所提供的方法具有如下技术效果:
1、采取启发式方法进行检测更为适合。同时启发式方法与很多机器学习方法相比,无需训练、学习过程,有利于降低系统对已知恶意样本通信流量的依赖,提高对未知恶意软件的检测能力。
2、恶意Http通信流量通常淹没在大量合法Http流量中,并且这些恶意流量与正常流量有一定的相似性,当正常流量与恶意流量混合在一起时,难以检测。由于恶意软件需要反复访问控制服务器,当用户没有网络操作时,这些请求行为表现的相对孤立,因此,系统通过建立合法流量访问模型,对正常流量进行过滤,发现潜在可疑、孤立的Http请求,并对这些请求重点进行分析,有利于降低系统误报率。
3、正常流量的主要成分是用户通过浏览器上网而产生的访问流量,与恶意软件的Http请求行为特征相比,用户通过浏览器正常上网的行为特征却相对统一,并与恶意软件的Http请求行为有着显著区别,因此,更易于建立检测模型。
4、在合法流量识别模型中,系统采用one-class SVM分类器,在训练过程中,无需恶意训练样本,降低了系统对已知样本请求特征的依赖,提高了系统对未知样本的检测能力,同时与恶意Http请求流量相比,用户上网正常流量十分容易采集,更易于收集分类器所需的训练样本。
附图说明
图1为本发明实施例中一种恶意Http检测方法的流程图;
图2为本发明实施例中系统架构示意图;
图3为本发明实施例中常见应用程序的User-Agent头部结构示意图;
图4为本发明实施例中浏览器User-Agent头部的内部格式示意图;
图5为本发明实施例中基本观测窗口示意图;
图6为本发明实施例中基于滑动窗口的持续性计算的示意图;
图7为本发明实施例中一种恶意Http检测系统的结构示意图。
具体实施方式
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解,本发明实施例以及实施例中的具体技术特征只是对本发明技术方案的说明,而不是限定,在不冲突的情况下,本发明实施例以及实施例中的具体技术特征可以相互组合。
具体来讲,Http协议是互联网上广泛使用的应用协议,除浏览器外,很多应用程序在通信过程中也会使用Http协议,如:游戏、软件升级、在线播放软件等,但合法Http流量主要还是由用户通过浏览器访问网站资源而产生的,与用户使用浏览器正常上网行为相比,基于Http协议的恶意软件请求行为具有以下显著特征:
(1)访问行为具有周期性或重复性;
与传统IRC僵尸网络不同,Http僵尸网络采取的是“Pull”工作模式,即:感染主机需按照一定周期或随机间隔,重复访问控制服务器,以便获取控制指令或提交执行结果。这与正常用户上网行为不同,用户对同一资源访问,通常不具有周期性特征,尤其是对非知名资源的访问,用户的访问行为具有明显的随机性、短暂性,这些内容访问往往是通过搜索引擎、网页之间的关联等造成的,用户在这些资源上做短暂停留后、便离开。对这些资源的访问,通常是一次性访问,在之后很长时间内,用户不会再访问这些资源。也正是这个原因,很多研究对Http恶意软件的检测主要是基于恶意软件访问行为的周期性特征。
(2)控制服务器上只有少量资源被访问;
合法的WEB服务器包含很多资源内容,如:不同的html文件、图片文件等,同样对于一个正常网页,也是由文本、图片、脚本等多个文件构成,因此,用户访问正常的WEB服务,通常会请求服务器上的大量资源。而恶意软件访问服务器上资源的主要目的是获取控制指令或提交结果,因此,恶意软件请求服务器上的资源数量是十分有限的。
(3)请求具有孤立性;
通常一个正常网页内容是由多个不同文件构成,浏览器为提高用户的访问体验,会同时打开多个连接下载这些内容,以便快速显示网页内容,因此,浏览器会在短时间内产生大量Http请求,同时网站之间存在相互关联,在这个过程中,用户往往也会请求多个域名。但恶意软件的访问行为往往不具备这些特征,同时由于恶意软件的Http请求行为具有重复性特征,恶意Http请求可能发生在感染主机工作期间的任何时刻,当用户没有上网操作时,恶意软件产生的Http请求将表现的十分“孤立”。
(4)用户代理User-Agent存在异常
在RFC2616中定义了User-Agent头部,主要用于告诉WEB服务器,浏览器类型、使用操作系统等信息,WEB服务器可根据这些信息对输出内容进行调整,IE、Firefox等常用浏览器对User-Agent均有明确定义。大量恶意软件发送的Http请求中,User-Agent内容存在异常。在研究报告中指出:只有31%的恶意样本使用的User-Agent是完全正确的,67.5%样本至少使用了一次可疑的User-Agent。
(5)与浏览器发送的请求存在差异
RFC2616中定义了很多请求头部,如:Host、Connection、Accept等,但不同浏览器发送的Http请求中,所包含头部以及各个头部在消息中的顺序有着各自规律。大多数恶意软件的Http协议通信部分是恶意软件开发者独立开发的,往往对浏览器模仿存在一些缺陷。对一些恶意样本反编译发现,很多恶意软件通过Wininet开发库来实现Http请求发送,对于一些函数接口,在调用时,需要开发者自己设置User-Agent内容及Http请求中头部信息,从而造成恶意Http请求消息中所包含的头部以及头部间顺序可能与浏览器填写规律不符。
(6)其他特征
由于恶意Http请求的主要目的是获取控制指令,与正常Http请求相比,恶意Http请求响应内容长度相对较短。此外,在同一网络内,当有多台主机感染相同的恶意软件时,感染主机的Http请求行为具有明显的组行为特征,即:所有感染主机访问控制服务器上的资源内容完全相同,但用户正常上网行为往往不具备这样特征,由于不同用户兴趣、爱好不同,对同一WEB服务器资源用户访问的内容往往不同。
基于恶意软件的Http请求具有上述的显著特征,所以本发明实施例中提供了一种恶意Http检测方法,如图1所示为本发明实施例中一种恶意Http检测方法的流程图,该方法包括:
S101,在检测周期内,提取出每个Http请求中头部信息以及对应的响应字节数;
S102,根据所述头部信息,确定对应Http请求是否存在用户代理异常,并提确定出用户代理异常的Http请求;
S103,获取所述代理用户异常的Http请求的时间信息,根据所述时间信息确定出孤立Http请求,并形成孤立Http请求对应的URL集合;
S104,在所述URL集合中确定出对服务器资源访问具有持续性的Http请求;
S105,在所述URL集合中确定出对服务器资源访问具有周期性的Http请求;
S106,根据用户代理异常的Http请求、孤立Http请求、具有持续性的Http请求以及具有周期性Http请求得到主机特征评估分值、主机行为特征评估分值以及请求特征评估分值;
S107,根据所主机特征评估分值、所述主机行为特征评估分值以及请求特征评估分值之和,确定恶意软件风险等级。
具体来讲,在本发明实施例中对恶意软件的Http请求检测包含三个具有处理过程,如图2所示,处理过程包含:数据预处理过程、合法流量识别过程、风险评估过程,下面对这三个处理过程进行详细说明。
数据预处理过程:
数据预处理过程主要包括DNS流量处理与TCP流量处理两个部分,在DNS流量处理过程中,系统采集网络中主机的DNS请求流量,通过预先整理的域名白名单,对知名域名、CDN网络上的域名进行过滤,并将白名单以外域名的解析结果缓存在域名地址池中。
进一步,系统通过超时机制对地址池中的地址进行管理,即:域名地址池中的IP地址,如果在一定时间间隔内,没有域名解析结果为该地址,并且网络中也没有TCP会话能够与之关联,则将该IP地址从地址池中删除。
TCP流量处理过程主要是采集网络中主机的TCP流量,对于网络内部主机主动发起的TCP会话,如果会话的目的地址不在域名地址缓存池中,则直接丢弃,否则对会话进行协议分析,判定是否是Http协议,由于Http协议为明文协议并且协议格式相对简单,同时在实际分析中只关心主机发送的GET、POST请求,因此,在协议分析时,只需简单判断每个TCP会话中,客户端发送的首个带负载的报文是否包含协议关键字即可。对于非Http协议的TCP会话,系统直接丢弃,对于是Http协议的TCP会话,系统对整个会话进行还原,提取出每次Http请求的头部消息及统计服务器对该请求响应的字节数,并将这些信息保存在日志文件中。
通过上述的方式就可以通过白名单对知名的网站的访问流量进行过滤,从而降低了系统所需要保存及处理的数据量,同样通过TPC会话与域名关联分析,将有效过滤网络中P2P应用产生的Http流量。
在提取出每个Http流量中的头部信息以及对应的响应字节数之后,则进入到合法流量识别过程。
合法流量识别过程:
在本发明实施例中该合法流量识别过程包含浏览器指纹识别算法、合法流量识别模型、孤立请求提取三个部分。
在浏览器指纹识别算法个过程中,主要是对用户代理User-Agent异常进行标注,这里需要说明是,User-Agent头部的内容中至少包含应用软件名称以及版本信息,对于浏览器等正常应用,如:BT客户端、在线播放器、在线游戏,在Http协议实现时,都会严格遵守规范中的约定,如图3所示为一些常见应用程序的User-Agent头部。
对于当前常见的浏览器来讲,各自定了User-Agent头部的内部格式,如图4所示,虽然内容格式存在差异,但是所有浏览器的User-Agent中都包含浏览器名称及版本、操作系统及版本、排版引擎及版本的版本信息。
基于上述的User-Agent头部的内容就可以对User-Agent异常进行检测,一般来讲,User-Agent异常包含应用类型未知、版本信息异常、User-Agent欺骗。下面分别对这三种异常的检测进行详细的说明。
首先,对应用类型未知的检测具体为:通过已知正常应用的User-Agent数据库,确定Http请求中应用软件名称信息是否为该数据库中的信息,若是,则将该Http请求标注为正常,若否,则该Http请求标注为异常。此时就完成了对未知应用类型的检测。
若是该Http请求通过了未知应用类型的检测,则进一步根据User-Agent头部中的版本信息进行检测,也就是提取出User-Agent头部中的操作系统及版本、浏览器名称及版本、排版引擎信息及版本,然后与已知浏览器的版本信息进行匹配,若是不匹配,则将该Http请求标注为异常,若是该版本信息进行匹配,则进一步检测该Http请求是否存在User-Agent欺骗。
User-Agent欺骗检测具体如下:
若所述版本信息与合法应用软件的版本信息匹配时,则根据Http请求对应的浏览器类型,确定所述浏览器类型对应的转移概率矩阵;获取Http请求中的头部,并删除未在状态空间中的头部,得到剩余头部数量,若所述剩余头部数量小于指定样本中所包含的头部数量最小值,则将所述Http请求标注为异常。
若所述剩余头部数量大于等于指定样本中所包含的头部数量最小值,确定删除的头部数量与所述Http请求的头部总数量的比值;若所述比值大于指定阈值,则将所述Http请求标注为异常;若所述比值小于等于指定阈值,则通过所述转移概率矩阵,得到所述Http请求对应发生概率,若所述发生概率为零,则将所述Http请求标注为异常,否否,所述Http请求为合法请求。
下面对该User-Agent欺骗的具体实现过程进行详细描述:
1)算法理论基础
设X={Xn,n=0,1,2...}是定义在概率空间上的随机序列,X的状态空间S是有限集,对任意的非负整数n,及任意的状态i0,i1,i2...,in+1∈S,只要P(X0=i0,X1=i1,...,Xn=in)>0,满足:
P(Xn+1=in+1|X0=i0,X1=i1,...,Xn=in)=P(Xn+1=in+1|Xn=in) (4-1)
则将称X为离散参数的马尔科夫链。公式4-1表示在已知过程现在状态的条件下,过程将来处于那个状态的概率不依赖于过程过去经历的状态.,只与当前状态有关。若X的一步转移概率pij(n)与时刻n无关,则称X为齐次马尔科夫链。对于一阶齐次马尔科夫链(|S|=m)的转移概率矩阵及转移概可表示如下:
满足
若初始概率概率分布为π={π1,π2,,πm},则:
由于马尔科夫链的状态是直接可见的,在实际应用中,可通过已有训练样本直接对转移概率矩阵及初始状态进行估计,设N为训练样本中所有状态出现的次数,Nij为状态j在状态i后面紧接发生的次数,即:
则转移概率矩阵P及初始状态π的估计方法如下:
2)算法具体实现
系统通过Http请求中头部顺序来检测Http请求是否存在Agent欺骗问题,在RFC2616规范中,没有强制要求各个头部在Http请求中出现的顺序,因此,各个头部在Http请求中的顺序是与应用程序实现密切相关的,对于每种应用程序,各个头部在Http请求中的顺序存在着潜在规律,系统采用马尔可夫链来刻画这种潜在规律,建立每种应用程序的指纹特征,对User-Agent欺骗进行检测。
设状态空间S={sstart,s1,s2,sn,send},其中sstart,send分别为起始状态、结束状态,s1,s2,sn为RFC2616规范中定义的头部,则任意Http请求q可表示成一个头部序列,即为:q={sstart,h1,h2,,hm,send},hi∈{s1,s2,sn}。对于请求q中的头部hi,hj,如果1≤i<j≤m,则说明在Http消息中头部hj出现在hi后面。系统假设对于任意应用程序A的Http请求为一阶齐次马尔科夫链,由于所有请求都是从sstart状态开始,则初始概率概率分布π={1,0,0,,0},若应用程序A的转移概率矩阵P,对于应用程序A发送的任意q,则满足:
且P(q)>0 (4-7)
反之对于任意Http请求q,若P(q)=0,则说明应用程序A无法产生头部顺序与q一样的请求,此时,如果q的User-Agent与应用程序A相符,则说明存在Agent欺骗。
算法将每个应用程序的转移概率矩阵P作为应用程序的指纹,通过计算Http请求中头部顺序的发生概率,判断请求是否存在异常。系统目前只是为IE、Chrome、Firefox、Opera四种浏览器建立了指纹特征,对浏览器发送的GET请求、POST请求进行检测。由于GET请求与POST请求在Http消息中出现的头部存在很大差异,为保证判断准确率,系统为每种浏览器分别建立各自的GET指纹与POST指纹,对于这两种指纹训练过程与检测过程完全相同。
由于RFC2616定义的头部很多,为提高计算效率,系统并没有选取所有的头部作为状态空间S中状态,通过对网络流量中Http消息进行统计,计算Http消息中包含的头部数量的平均值,将S中状态的数量定为平均值的两倍,即:将Http请求中出现次数最多的前20个头部作为状态空间S中状态。在训练过程中,由于状态空间S只选取了RFC2616定义的头部子集作为状态,因此,需要对收集到的请求样本集合进行处理,删除每个训练样本中不在状态空间S中的头部,并去除样本集合中的重复样本,形成最终的训练样本集合,在此过程中,记录下每类样本集合中,样本包含头部的最小数量、头部最大删除率;然后根据公式4-5,计算每类浏览器的转移概率矩阵P,建立对应浏览器的检测指纹。在异常检测过程中,算法具体处理流程如下:
首先,根据Http请求q中的User-Agent内容,分析出浏览器类型,选取该类浏览器对应的转移概率矩阵P;
其次,对Http请求q进行分析,删除不在状态空间S中的头部,如果消息中最终头部数量小于训练样本中所包含头部数量的最小值,则将请求q判断为异常,否则计算删除头部数量占q中头部总数量的比例r,若r大于指定阈值,则将请求q判断为异常,否则计算发生概率;
最后,根据公式4-3,通过转移概率矩阵P,计算发生概率P(q),若P(q)=0,则说明对应浏览器不能产生头部顺序与q一样的请求,请求q存在User-Agent欺骗,将请求标注为异常,否则,认为请求q是合法请求。
通过上述的方法可以实现对Http请求进行User-Agent欺骗检测。从而筛选出User-Agent异常的Http请求。
进一步,在上述处理过程完成之后,则将筛选出的Http请求通过合法流量识别模型进一步筛选。
在合法流量识别模型过程中,由于一个正常网页内容通常包含多个不同文件,浏览器在实现时,为提高网页显示速度,当用户点击一个网页连接时,浏览器会同时打开多个网络连接、并发下载这些内容,与恶意软件的请求行为有着显著不同的特征,具体体现在以下几个方面:
(1)主机短时间内产生一定数量的URL请求,同时往往会访问多个不同的主机;
(2)主机发送的Http相邻请求之间的时间间隔很短;
(3)大量请求经Http指纹算法识别后,不存在异常。
对于日志文件中捕获的Http请求,在实际分析时,系统无法区分那些Http请求属于同一次用户上网访问操作,为刻画浏览器访问行为,定义主机Http请求序列的Δt划分,具体如下:
在一个检测周期T内,对于网络中任意主机h,发送的所有Http请求按发生时间的先后顺序,可表示为时间序列X={x0,x1,x2,x3,,xn},系统通过时间隔Δt,将X顺序的划分为k个不相交的子序列{L1,L2,,Lk},对于任意子序列Li,其内部任意相邻请求之间的时间间隔小于等于Δt,并与外部相邻请求之间的间隔均大于Δt,即:划分满足以下两个条件:
(1)L1∪L2∪∪Lk=X且对于任意i,j满足Li∩Lj=Φ;
(2)对任意l,m,xl∈Li,则不存在|xm-xl|≤Δt。
主机Http请求序列的Δt划分实质是将一些发生时间相邻较近的Http请求划分到一个子序列中,并把每个子序列视为用户的一次网页访问行为,在划分时,算法并没有考虑每个请求的User-Agent,主要是因为用户访问网页的过程中,可能会触发系统中其它应用程序发送Http请求,如:用户点击一个视频链接,可能会触发在线播放软件产生相应的Http请求行为。
针对浏览器访问特征,在实际分析时,系统首先将主机的Http请求序列进行Δt划分,选取子序列以下统计特性作为分类特征,如表1所示:
表1
为建立浏览器访问识别模型,系统没有选取有监督的分类算法,而是选取one-class SVM分类器,在训练时,只需收集浏览器访问行为的训练样本,而无需收集恶意软件的训练样本,以便提高系统对未知恶意软件的识别能力。one-class SVM是一种无监督学习的方法,主要用于异常检测和孤立点发现。one-class SVM是基于SVM的最优超平面和最大分类间隔等思想,将一分类问题等价为一个特殊的二分类问题,寻找一个超平面最大化样本与原点之间的间隔,设未标注训练样本数据D={x1,x2,,xl},训练样本数据中大部分样本具备某种特性,很少部分样本属于孤立点,One-Class SVM算法就是要找到一个决策函数f(x),在训练样本数据D中大部分样本取值为+1,而少量孤立点上取值为-1。One-Class SVM利用核函数将低维样本空间变换到高维特征空间,然后在高维特征空间中寻找一个最优超平面,任意样本的f(x)值由其落在分类面的两侧来决定。与C-SVM分类器类似,One-ClassSVM的优化问题为:
其中w和b为超平面参数,Φ为样本空间到特征空间的变换,v∈(0,1)是预先定义的百分比参数估计,则决策函数为:
f(x)=sgn(wΦ(x)-b) (4-9)
对于问题4-8求解,首先用核函数将原问题映射到特征空间,并采用拉格朗日优化方法,得到原问题的对偶问题:
其中K(xi,xj)是核函数,最终决策函数f(x)为:
在实际使用时,核函数选取的是高斯径向基函数。
基于上述的理论基础,在经过User-Agent异常检测Http请求中对孤立请求进行具体检测方式如下:
在每个检测周期结束时,系统根据设定间隔Δt,对每个主机的Http请求序列进行划分,计算每个子序列的特征向量,通过one-class SVM进行识别,将判断为合法流量的请求数据进行过滤。
由于用户上网浏览行为通常会持续一段时间,访问多个不同内容,对于子序列Li,其开始、结束时间分别为Si、Ei,如果Li被识别为正常请求,则说明用户在(Si,Ei)期间用户处于正常上网状态,对于Si、Ei附近的请求也很有可能是由于用户正常上网行为触发的。为进一步过滤剩余流量中的合法请求,系统假设发生在(Si-θ,Ei+θ)期间的所有请求均是由于用户正常操作产生的(θ为给定阈值),即:最终提取出的可疑流量的为:设X'={L1,L2,,Lk}为合法请求的子序列集合,任意请求x,其发生时间为xs,则对于任意Lj∈X',满足xs<Si-θ或xs>Ei+θ,则认为请求x为孤立的可疑Http请求,提取孤立请求出来以便进行下一步处理。
在提取出孤立请求之后,进一步对提取出的孤立请求进行持续性分析以及周期性分析。
持续行分析的具体实现方式如下:
确定Http请求流的开始时间以及结束时间;
将所述开始时间以及所述结束时间之差作为Http请求流的最长观测长度;
将所述最长观测长度划分为n+1个基本观测窗口;
根据n+1个基本观测窗口,得到所述Http请求流的持续性指标;
若所述持续性指标大于规定阈值,确定所述Http请求流具有持续性。
进一步来讲,对于每个Http请求流Q的持续性计算方法,与其定义十分相似,设主机h对于资源u的Http请求流Q的开始时间与结束时间为<ts,te>,则T=te-ts为Http请求流Q的最长观测长度,系统通过基本观测间隔Δw将T划分为n+1个基本观测窗口具体如图5所示。
对任意Http请求si∈Q,其发生时间为ti,则si对应的窗口位置k为:
通过Q中的每个请求发生时间信息,计算对应观测窗口,并将观测窗口置为可用窗口。当所有请求完成映射后,计算持续性指标p:
其中当wi为可用窗口时,δi为1,否则为0 (4-13)
通过持续性指标p的计算方法,可以看到p有效的刻画了以Δw为观测间隔时,主机对资源u访问行为的重复程度,由于访问重复规律事先不可预知,为更好的刻画访问行为的重复性,可以选择不同长度的观测窗口进行观测,为计算方便,不同观测窗口的长度选取基本观测窗口Δw倍数,对于k*Δw观测窗口,则持续性指标pk为:
其中当wi*k至w(i+1)*k-1任意窗口为可用窗口时,则δk i为1,否则为0。在检测过程中,对任意观测窗口,pk大于规定阈值λ时,则认为主机对资源u访问行为具有重复性。
由于Http请求流Q主要是通过网络流量数据镜像方式获得,在整个观测窗口中,主机可能随时发生关机、待机等行为,即:请求流Q中的请求可能是主机多次开关机的混合行为,为克服主机关机等行为对持续性分析的影响,系统采用滑动窗口技术,设滑动窗口长度为L、滑动距离为ΔL,对于Q中的请求,系统每次选取落入到滑动窗口内的请求,通过持续性算法计算主机在该滑动窗口内访问行为是否具有持续性,如图4所示。对于Http请求流Q而言,在任意滑动窗口内的请求行为具有持续性,则认为主机h对资源u的访问行为持续性。
周期性分析的具体实现方式如下:
确定第一个达到检测阈值的最小观测窗口测的观测长度;
根据所述观测长度确定采样间隔;
根据所述采样间隔对所述Http请求流进行采样,得到请求次数序列;
根据所述请求次数序列以及指定公式,确定所述Http请求的周期性。
进一步来讲,该周期性检测的算法理论基础为:
离散傅立叶变换是数字信号处理领域中最常用的处理方法之一,通过离散傅里叶变换将信号从时域变换到频域,以便确定信号中所包含的谐波或频率成分。对于时域中N点序列x(n),n=0,1...N-1,其离散傅里叶变换为:
对应的反变换为:
离散傅里叶变换实质是将原信号表示为N个频率分量的复正弦信号的线性叠加,其中X(k)包含了这些正弦信号的幅度及相位信息。对于实序列的离散傅里叶变换具有共轭对称性,因此,真正有用的信息是X(k)的前项。
在实际分析中,通过计算信号的功率谱密度来分析每个频率所携带的能量,提取出信号中主要的频率成分。功率谱估计的经典方法是周期图法,设X(k)是序列x(n)的离散傅里叶变换,则周期图法估计出的功率谱为:
对于包含周期成分时间序列,其周期图上将会有明显的峰值,但由于噪声干扰,一些不包含周期成分的时间序列在周期图上也会出现虚假峰值,为判断一个信号是否是周期信号,建立如下假设检验:
H0:序列x(n)为Gauss白噪声(方差为σ2);
H1:序列x(n)为叠加有周期分量的Gauss白噪声。
检验的基本思想是:周期图上是否具有一个足够大的峰值,如果有,则拒绝H0假设,接受H1假设。
设在H0假设情况下,相互独立,对于k=1,2...M,I(k)服从自由度为2的χ2分布,即:
对于自由度为2的χ2分布,其分布等价于指数分布,即:
因此,对于任意z,z>=0,
在整个假设检验中主要关心周期图中最大峰值,因此定义检验统计量γ,
由于在H0假设情况下:I(k),k=1,2...M独立同分布,因此,对于任意z,z>=0,p{γ>z}=1-p{γ≤z}=1-p{(I(k)/σ2)≤z,对于一切k,0≤k≤M}=1-(1-e-z/2)M (4-22)
在实际使用中σ2是不可预先知道的,因此,无法直接上述公式进行检验,对于指数分布f(x)=λe-λx,期望为因此,E(I(k)/σ2)=2,E[I(k)]=2σ2,k=1,2...M,因此,是σ2无偏估计。因此,检验统计量γ修改为:
定义显著水平α,计算出相应的zα,如果从I(k)中计算出g*>zα,则说明周期图中有一个显著的峰值,拒绝H0假设,即:序列x(n)包含有周期分量。
Fisher提出g统计量:用于检验周期图中最大峰值,其中g的确切分布函数为:
其中,α为小雨1/Z的最大整数。
基于上述的理论基础对具有持续的Http请求进行进一步的周期性检测,检测方法如下:
对于请求流Q在持续性分析过程,最先达到检测阈值的最小窗口长度为w,系统以w/10为采样间隔,对Q进行采样,形成请求次数序列X={x1,x2...xk},其中xk为在第k采样间隔中,发生的Http请求次数,并建立如下假设:
H0:X为Gauss白噪声(方差为σ2);
H1:X为叠加有周期分量的Gauss白噪声。
并根据公式4-23,计算检验统计量g*,进行检验。
另外,在本发明实施例中,未采用相邻请求间隔中最小间隔的1/4作为采样间隔,主要是对于很多满足持续行的Http请求组,大部分最小请求间隔较小,甚至不到1s,如果直接选择请求最小间隔作为采样间隔的选取参数,将导致请求次数序列X过长。并且如果最先达到检测阈值的最小窗口长度为w,则说明Http请求流Q的主要周期成分大于w,系统以w/10为采样间隔,满足奈奎斯特采样定理,同时也保证系统能够采集足够的采样点。
通过上述方法过程就实现了对Http请求的各个检测,从而提取出异常的Http的请求集合。下面基于该Http请求集合中的各个类型进行符号定义,后续根据定义符号得到主机特征评估分值、主机行为特征评估分值以及请求特征评估分值,符号定义如表2所示:
表2
主机特征评估分值包含:URL数量评估指标Surl、域名评估指标Snew、一致性评估指标Ssim。
1)URL数量评估指标Surl具体计算如下:
由于恶意软件对控制服务器上资源访问的主要目的是:获取控制指令或提交结果,因此,访问服务器上的资源数量十分有限,同时控制服务器通常对外不提供正常服务,对于未感染恶意软件的主机基本不会访问这些服务器,只有网络中感染主机才会访问,因此,在一个检测周期内,可疑服务器上出现的URL数量十分少,因此,定义检测阈值θurl,在一个检测周期内,服务器s上被请求的资源数量C超过θurl时,认为该服务器为可信服务器,从可疑URL集合中删除该服务器上所有URL,否则Surl定义如下:
2)域名评估指标Snew具体计算如下:
对于恶意软件的控制服务器,正常主机通常不会访问,同时不同的恶意软件使用的控制服务器也往往不同,控制服务器具有各自的域名,当网络中有主机感染新的恶意软件时,感染主机往往会请求新域名,即:请求的域名网络中主机从未请求过,因此,Snew定义如下:
3)、一致性评估指标Ssim具体计算如下:
由于恶意软件通常具有一定的传染能力,在一个网络中往往存在多台感染主机,对于感染相同恶意软件的主机,它们访问控制服务器上的资源内容往往完全相同,具有明显的组行为特征,相反对于正常的用户访问,由于不同用户的兴趣、爱好不同,对同一WEB服务器,用户访问的资源往往存在较大差异。对于url的评估指标Ssim定义如下:
在实际数据分析中,当风险分为1、满足|H|>1时,76%恶意样本url的评估指标Ssim>0.8。当|H|=1时,定义Ssim=0。
主机行为特征评估分值包括:持续行评估指标以及周期性评估指标,具体计算如下:
为保证及时获取控制者发布的指令,恶意软件在运行期间,访问控制服务器的行为具有明显的重复性、持续性,对于一些恶意软件其访问行为还具有明显的周期性。这种访问行为与用户正常的访问行为有着很大的不同,对于非知名网站,用户的访问行为具有明显的随机性、短暂性,因此,定义持续性评估指标Sp与周期性评估指标Spp,具体如下:
请求特征评估分值包含:User-Agent异常评估指标Sagent、Referer头部评估指标Srefer、请求包含头部数量评估指标Shead、响应长度评估指标Slen。
1)、User-Agent异常评估指标Sagent具体计算如下:
恶意软件的Http请求行为通常存在User-Agent异常问题,相反对浏览器或知名应用的访问行为,则不存在该问题,因此,定义url的评估指标Sagent,具体如下:
2)、Referer头部评估指标Srefer具体计算如下:
在RFC2616定义中,Referer头部主要用于说明浏览器当前请求资源地址是从哪个资源中获得,对于正常浏览器请求,85%的请求均会包含Referer头部,而对于恶意软件的Http请求却很少包含,因此,定义url的评估指标Srefer,具体如下:
3)、请求包含头部数量评估指标Shead具体计算如下:
与浏览器请求相比恶意请求信息中包含的头部数量相对较少,因此,定义url的评估指标Shead,具体如下:
4)、响应长度评估指标Slen具体计算如下:
与正常网页访问相比,恶意请求的服务器响应字数相对较少,因此,定义评估指标Slen定义如下:
通过上述公式可以计算得到各个评估值,然后根据各个评估值之和就可以得到风险评估值,风险评估值为Score=Surl+Snew+Ssim+max(Sp,Spp)+Sagent+Srefer+Shead+Slen。
然后根据风险评估值与风险等级区间范围进行比较,确定该风险评估值在那个对应的区间为内,比如说,高、中、低风险等级对应的分值区间范围为7~9、4~6、1~3,那么根据计算出的风险评估等级就可以直接确定出风险等级。
进一步,为了避免重复累加风险得分,如果主机请求行为具有周期性,计算风险总分Score时,则不在统计持续性得分。对于一些主要功能为点击欺诈的僵尸网络,感染主机发送的很多虚假点击请求也符合上诉特征,如:User-Agent欺骗、访问一致性等,由于系统检测的重点是发现恶意软件当使用的控制服务器,为降低这部分请求的最终得分,系统针对恶意软件访问控制服务器具有重复性的特点,将最终风险得分定义为:
在实际应用中,系统选取α=5,可以有效降低这部分请求的得分。
综上来讲,本发明所提供的方法具有如下技术效果:
1、采取启发式方法进行检测更为适合。同时启发式方法与很多机器学习方法相比,无需训练、学习过程,有利于降低系统对已知恶意样本通信流量的依赖,提高对未知恶意软件的检测能力。
2、恶意Http通信流量通常淹没在大量合法Http流量中,并且这些恶意流量与正常流量有一定的相似性,当正常流量与恶意流量混合在一起时,难以检测。由于恶意软件需要反复访问控制服务器,当用户没有网络操作时,这些请求行为表现的相对孤立,因此,系统通过建立合法流量访问模型,对正常流量进行过滤,发现潜在可疑、孤立的Http请求,并对这些请求重点进行分析,有利于降低系统误报率。
3、正常流量的主要成分是用户通过浏览器上网而产生的访问流量,与恶意软件的Http请求行为特征相比,用户通过浏览器正常上网的行为特征却相对统一,并与恶意软件的Http请求行为有着显著区别,因此,更易于建立检测模型。
4、在合法流量识别模型中,系统采用one-class SVM分类器,在训练过程中,无需恶意训练样本,降低了系统对已知样本请求特征的依赖,提高了系统对未知样本的检测能力,同时与恶意Http请求流量相比,用户上网正常流量十分容易采集,更易于收集分类器所需的训练样本。
进一步,对应本发明实施例中一种恶意Http检测方法,本发明实施例中还提供了一种恶意Http检测系统,如图7所示为本发明实施例中一种恶意Http检测系统的结构示意图,该系统包括:
数据预处理模块701,用于在检测周期内,提取出每个Http请求中头部信息以及对应的响应字节数;
合法流量识别模块702,用于根据所述头部信息,确定对应Http请求是否存在用户代理异常,并提确定出用户代理异常的Http请求;获取所述代理用户异常的Http请求的时间信息,根据所述时间信息确定出孤立Http请求,并形成孤立Http请求对应的URL集合;
风险评估模块703,用于在所述URL集合中确定出对服务器资源访问具有持续性的Http请求;在所述URL集合中确定出对服务器资源访问具有周期性的Http请求;根据所述用户代理异常的Http请求、孤立Http请求、具有持续性的Http请求以及具有周期性Http请求得到主机特征评估分值、主机行为特征评估分值以及请求特征评估分值;根据所述主机特征评估分值、所述主机行为特征评估分值以及请求特征评估分值之和,确定恶意软件风险等级。
进一步,在本发明实施例中,所述数据预处理模块701,具体用于获取被检测主机的域名系统DNS请求流量以及传输控制协议TCP流量,根据所述DNS流量得到域名地址;若所述域名地址未在预设白名单中,则将所述域名地址添加到域名地址缓存池中;根据TCP流量,确定TCP会话的目的地址是否在域名地址缓存池中;若是,则提取出Http请求中的头部信息以及服务器对所述Http请求的响应字节数;若否,则直接丢弃所述Http请求。
进一步,在本发明实施例中,所述合法流量识别模块702,具体用于在所述头部信息中获取应用软件名称信息以及版本信息;判断所述应用软件是否为应用库中应用软件;若否,则将所述Http请求标注为用户代理异常;若是,则判断所述版本信息是否与合法应用软件的版本信息匹配;若不匹配,则将所述Http请求标注为异常。
进一步,在本发明实施例中,所述合法流量识别模块702,具体用于若所述版本信息与合法应用软件的版本信息匹配时,则根据Http请求对应的浏览器类型,确定所述浏览器类型对应的转移概率矩阵;获取Http请求中的头部,并删除未在状态空间中的头部,得到剩余头部数量,若所述剩余头部数量小于指定样本中所包含的头部数量最小值,则将所述Http请求标注为异常;若所述剩余头部数量大于等于指定样本中所包含的头部数量最小值,确定删除的头部数量与所述Http请求的头部总数量的比值;若所述比值大于指定阈值,则将所述Http请求标注为异常;若所述比值小于等于指定阈值,则通过所述转移概率矩阵,得到所述Http请求对应发生概率,若所述发生概率为零,则将所述Http请求标注为异常,否否,所述Http请求为合法请求。
进一步,在本发明实施例中,所述合法流量识别模块702,具体用于获取主机在检测周期内发送的所有Http请求,并按照发生的时间顺序得到时间序列;通过指定时间间隔,将所述时间序列划分为K个不相交的子序列,其中,对任意子序列内的相邻请求之间的时间间隔小于等于所述指定时间间隔,并且与外部相邻请求之间的时间间隔大于所述指定时间间隔;若所述时间序列中的子序列在合法请求序列内,判断所述子序列中的Http请求的发生时间是否大于区间范围的最大值,或者小于所述区间范围的最小值,其中,所述区间范围为用户正常操作产生请求的时间区间;若是,则将所述Http请求确定为孤立Http请求。
进一步,在本发明实施例中,所述风险评估模块703,具体用于确定Http请求流的开始时间以及结束时间;将所述开始时间以及所述结束时间之差作为Http请求流的最长观测长度;将所述最长观测长度划分为n+1个基本观测窗口;根据n+1个基本观测窗口,得到所述Http请求流的持续性指标;若所述持续性指标大于规定阈值,确定所述Http请求流具有持续性。
进一步,在本发明实施例中,所述风险评估模块703,具体用于确定第一个达到检测阈值的最小观测窗口测的观测长度;根据所述观测长度确定采样间隔;根据所述采样间隔对所述Http请求流进行采样,得到请求次数序列;根据所述请求次数序列以及指定公式,确定所述Http请求的周期性。
这里需要说明的是,该系统的具体算法原理实现在上述的实施例中已经详细说明,此处就不再赘述。
尽管已描述了本申请的优选实施例,但本领域内的普通技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (14)
1.一种恶意Http检测方法,其特征在于,所述方法包括:
在检测周期内,提取出每个Http请求中头部信息以及对应的响应字节数;
根据所述头部信息,确定对应Http请求是否存在用户代理异常,并提确定出用户代理异常的Http请求;
获取所述代理用户异常的Http请求的时间信息,根据所述时间信息确定出孤立Http请求,并形成孤立Http请求对应的URL集合;
在所述URL集合中确定出对服务器资源访问具有持续性的Http请求;
在所述URL集合中确定出对服务器资源访问具有周期性的Http请求;
根据所述用户代理异常的Http请求、孤立Http请求、具有持续性的Http请求以及具有周期性Http请求得到主机特征评估分值、主机行为特征评估分值以及请求特征评估分值;
根据所述主机特征评估分值、所述主机行为特征评估分值以及请求特征评估分值之和,确定恶意软件风险等级。
2.如权利要求1所述的方法,其特征在于,提取出每个Http请求中头部信息以及对应的响应字节数,包括:
获取被检测主机的域名系统DNS请求流量以及传输控制协议TCP流量,根据所述DNS流量得到域名地址;
若所述域名地址未在预设白名单中,则将所述域名地址添加到域名地址缓存池中;
根据TCP流量,确定TCP会话的目的地址是否在域名地址缓存池中;
若是,则提取出Http请求中的头部信息以及服务器对所述Http请求的响应字节数;
若否,则直接丢弃所述Http请求。
3.如权利要求1所述的方法,其特征在于,根据所述头部信息,确定对应Http请求是否存在用户代理异常,包括:
在所述头部信息中获取应用软件名称信息以及版本信息;
判断所述应用软件是否为应用库中应用软件;
若否,则将所述Http请求标注为用户代理异常;
若是,则判断所述版本信息是否与合法应用软件的版本信息匹配;
若不匹配,则将所述Http请求标注为异常。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
若所述版本信息与合法应用软件的版本信息匹配时,则根据Http请求对应的浏览器类型,确定所述浏览器类型对应的转移概率矩阵;
获取Http请求中的头部,并删除未在状态空间中的头部,得到剩余头部数量,其中,所述状态空间中包含了Http协议规范中定义的头部;
若所述剩余头部数量小于指定样本中所包含的头部数量最小值,则将所述Http请求标注为异常;
若所述剩余头部数量大于等于指定样本中所包含的头部数量最小值,确定删除的头部数量与所述Http请求的头部总数量的比值;
若所述比值大于指定阈值,则将所述Http请求标注为异常;
若所述比值小于等于指定阈值,则通过所述转移概率矩阵,得到所述Http请求对应发生概率,若所述发生概率为零,则将所述Http请求标注为异常,否否,所述Http请求为合法请求。
5.如权利要求1所述的方法,其特征在于,获取所述代理用户异常的Http请求的时间信息,根据所述时间信息确定出孤立Http请求,包括:
获取主机在检测周期内发送的所有Http请求,并按照发生的时间顺序得到时间序列;
通过指定时间间隔,将所述时间序列划分为K个不相交的子序列,其中,对任意子序列内的相邻请求之间的时间间隔小于等于所述指定时间间隔,并且与外部相邻请求之间的时间间隔大于所述指定时间间隔;
若所述时间序列中的子序列在合法请求序列内,判断所述子序列中的Http请求的发生时间是否大于区间范围的最大值,或者小于所述区间范围的最小值,其中,所述区间范围为用户正常操作产生请求的时间区间;
若是,则将所述Http请求确定为孤立Http请求。
6.如权利要求1所述的方法,其特征在于,在所述URL集合中确定出对服务器资源访问具有持续性的Http请求,包括:
确定Http请求流的开始时间以及结束时间;
将所述开始时间以及所述结束时间之差作为Http请求流的最长观测长度;
将所述最长观测长度划分为n+1个基本观测窗口;
根据n+1个基本观测窗口,得到所述Http请求流的持续性指标;
若所述持续性指标大于规定阈值,确定所述Http请求流具有持续性。
7.如权利要求6所述的方法,其特征在于,在所述URL集合中确定出对服务器资源访问具有周期性的Http请求,包括:
确定第一个达到检测阈值的最小观测窗口测的观测长度;
根据所述观测长度确定采样间隔;
根据所述采样间隔对所述Http请求流进行采样,得到请求次数序列;
根据所述请求次数序列以及指定公式,确定所述Http请求的周期性。
8.一种恶意Http检测系统,其特征在于,包括:
数据预处理模块,用于在检测周期内,提取出每个Http请求中头部信息以及对应的响应字节数;
合法流量识别模块,用于根据所述头部信息,确定对应Http请求是否存在用户代理异常,并提确定出用户代理异常的Http请求;获取所述代理用户异常的Http请求的时间信息,根据所述时间信息确定出孤立Http请求,并形成孤立Http请求对应的URL集合;
风险评估模块,用于在所述URL集合中确定出对服务器资源访问具有持续性的Http请求;在所述URL集合中确定出对服务器资源访问具有周期性的Http请求;根据所述用户代理异常的Http请求、孤立Http请求、具有持续性的Http请求以及具有周期性Http请求得到主机特征评估分值、主机行为特征评估分值以及请求特征评估分值;根据所述主机特征评估分值、所述主机行为特征评估分值以及请求特征评估分值之和,确定恶意软件风险等级。
9.如权利要求8所述的系统,其特征在于,所述数据预处理模块,具体用于获取被检测主机的域名系统DNS请求流量以及传输控制协议TCP流量,根据所述DNS流量得到域名地址;若所述域名地址未在预设白名单中,则将所述域名地址添加到域名地址缓存池中;根据TCP流量,确定TCP会话的目的地址是否在域名地址缓存池中;若是,则提取出Http请求中的头部信息以及服务器对所述Http请求的响应字节数;若否,则直接丢弃所述Http请求。
10.如权利要求8所述的系统,其特征在于,所述合法流量识别模块,具体用于在所述头部信息中获取应用软件名称信息以及版本信息;判断所述应用软件是否为应用库中应用软件;若否,则将所述Http请求标注为用户代理异常;若是,则判断所述版本信息是否与合法应用软件的版本信息匹配;若不匹配,则将所述Http请求标注为异常。
11.如权利要求10所述的系统,其特征在于,所述合法流量识别模块,具体用于若所述版本信息与合法应用软件的版本信息匹配时,则根据Http请求对应的浏览器类型,确定所述浏览器类型对应的转移概率矩阵;获取Http请求中的头部,并删除未在状态空间中的头部,得到剩余头部数量,若所述剩余头部数量小于指定样本中所包含的头部数量最小值,则将所述Http请求标注为异常;若所述剩余头部数量大于等于指定样本中所包含的头部数量最小值,确定删除的头部数量与所述Http请求的头部总数量的比值;若所述比值大于指定阈值,则将所述Http请求标注为异常;若所述比值小于等于指定阈值,则通过所述转移概率矩阵,得到所述Http请求对应发生概率,若所述发生概率为零,则将所述Http请求标注为异常,否否,所述Http请求为合法请求。
12.如权利要求8所述的系统,其特征在于,所述合法流量识别模块,具体用于获取主机在检测周期内发送的所有Http请求,并按照发生的时间顺序得到时间序列;通过指定时间间隔,将所述时间序列划分为K个不相交的子序列,其中,对任意子序列内的相邻请求之间的时间间隔小于等于所述指定时间间隔,并且与外部相邻请求之间的时间间隔大于所述指定时间间隔;若所述时间序列中的子序列在合法请求序列内,判断所述子序列中的Http请求的发生时间是否大于区间范围的最大值,或者小于所述区间范围的最小值,其中,所述区间范围为用户正常操作产生请求的时间区间;若是,则将所述Http请求确定为孤立Http请求。
13.如权利要求8所述的系统,其特征在于,所述风险评估模块,具体用于确定Http请求流的开始时间以及结束时间;将所述开始时间以及所述结束时间之差作为Http请求流的最长观测长度;将所述最长观测长度划分为n+1个基本观测窗口;根据n+1个基本观测窗口,得到所述Http请求流的持续性指标;若所述持续性指标大于规定阈值,确定所述Http请求流具有持续性。
14.如权利要求8所述的系统,其特征在于,所述风险评估模块,具体用于确定第一个达到检测阈值的最小观测窗口测的观测长度;根据所述观测长度确定采样间隔;根据所述采样间隔对所述Http请求流进行采样,得到请求次数序列;根据所述请求次数序列以及指定公式,确定所述Http请求的周期性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710839179.3A CN107483488B (zh) | 2017-09-18 | 2017-09-18 | 一种恶意Http检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710839179.3A CN107483488B (zh) | 2017-09-18 | 2017-09-18 | 一种恶意Http检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107483488A true CN107483488A (zh) | 2017-12-15 |
CN107483488B CN107483488B (zh) | 2021-04-30 |
Family
ID=60585281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710839179.3A Active CN107483488B (zh) | 2017-09-18 | 2017-09-18 | 一种恶意Http检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107483488B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108200034A (zh) * | 2017-12-27 | 2018-06-22 | 新华三信息安全技术有限公司 | 一种识别域名的方法及装置 |
CN109120592A (zh) * | 2018-07-09 | 2019-01-01 | 四川大学 | 一种基于用户行为的Web异常检测系统 |
CN109729137A (zh) * | 2018-05-15 | 2019-05-07 | 平安普惠企业管理有限公司 | 页面数据显示方法、显示终端及存储介质 |
CN109756479A (zh) * | 2018-11-29 | 2019-05-14 | 武汉极意网络科技有限公司 | 浏览器中伪造请求检测方法及装置 |
CN110430214A (zh) * | 2019-08-15 | 2019-11-08 | 上海寰创通信科技股份有限公司 | 一种代理上网的识别方法及系统 |
CN110602038A (zh) * | 2019-08-01 | 2019-12-20 | 中国科学院信息工程研究所 | 一种基于规则的异常ua检测和分析的方法及系统 |
CN110602030A (zh) * | 2019-05-16 | 2019-12-20 | 上海云盾信息技术有限公司 | 网络入侵阻断方法、服务器及计算机可读介质 |
CN111131487A (zh) * | 2019-12-30 | 2020-05-08 | 广东浪潮大数据研究有限公司 | 一种深度学习平台容器镜像获取、共享方法及系统 |
CN111131137A (zh) * | 2018-11-01 | 2020-05-08 | 财团法人资讯工业策进会 | 可疑封包检测装置及其可疑封包检测方法 |
CN111476610A (zh) * | 2020-04-16 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 一种信息检测方法、装置及计算机可读存储介质 |
CN111740923A (zh) * | 2020-06-22 | 2020-10-02 | 北京神州泰岳智能数据技术有限公司 | 应用识别规则的生成方法、装置、电子设备和存储介质 |
CN112307480A (zh) * | 2019-07-24 | 2021-02-02 | 中移互联网有限公司 | 应用软件所在设备的风险分析方法及装置 |
CN113596011A (zh) * | 2021-07-23 | 2021-11-02 | 北京百度网讯科技有限公司 | 流量识别方法及装置,计算设备和介质 |
CN113612777A (zh) * | 2021-08-04 | 2021-11-05 | 百度在线网络技术(北京)有限公司 | 训练方法、流量分级方法、装置、电子设备以及存储介质 |
CN113806737A (zh) * | 2021-09-01 | 2021-12-17 | 厦门服云信息科技有限公司 | 一种恶意进程风险等级评估方法、终端设备及存储介质 |
CN113904829A (zh) * | 2021-09-29 | 2022-01-07 | 上海市大数据股份有限公司 | 一种基于机器学习的应用防火墙系统 |
CN114285639A (zh) * | 2021-12-24 | 2022-04-05 | 云盾智慧安全科技有限公司 | 一种网站安全防护方法及装置 |
CN115086055A (zh) * | 2022-06-24 | 2022-09-20 | 电子科技大学 | 一种针对安卓移动设备加密恶意流量的检测装置及方法 |
CN115314268A (zh) * | 2022-07-27 | 2022-11-08 | 天津市国瑞数码安全系统股份有限公司 | 基于流量指纹和行为的恶意加密流量检测方法和系统 |
CN115150159B (zh) * | 2022-06-30 | 2023-11-10 | 深信服科技股份有限公司 | 一种流量检测方法、装置、设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147842A (zh) * | 2010-07-23 | 2011-08-10 | 卡巴斯基实验室封闭式股份公司 | 防御网络资源上的恶意软件 |
CN105323210A (zh) * | 2014-06-10 | 2016-02-10 | 腾讯科技(深圳)有限公司 | 一种检测网站安全的方法、装置及云服务器 |
US9531736B1 (en) * | 2012-12-24 | 2016-12-27 | Narus, Inc. | Detecting malicious HTTP redirections using user browsing activity trees |
CN106302337A (zh) * | 2015-05-22 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 漏洞检测方法和装置 |
-
2017
- 2017-09-18 CN CN201710839179.3A patent/CN107483488B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147842A (zh) * | 2010-07-23 | 2011-08-10 | 卡巴斯基实验室封闭式股份公司 | 防御网络资源上的恶意软件 |
US9531736B1 (en) * | 2012-12-24 | 2016-12-27 | Narus, Inc. | Detecting malicious HTTP redirections using user browsing activity trees |
CN105323210A (zh) * | 2014-06-10 | 2016-02-10 | 腾讯科技(深圳)有限公司 | 一种检测网站安全的方法、装置及云服务器 |
CN106302337A (zh) * | 2015-05-22 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 漏洞检测方法和装置 |
Non-Patent Citations (2)
Title |
---|
张永斌等: "《域名请求行为特征与构成特征相结合的域名变换检测》", 《西安交通大学学报》 * |
张永斌等: "《基于组行为特征的恶意域名检测》", 《计算机科学》 * |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108200034A (zh) * | 2017-12-27 | 2018-06-22 | 新华三信息安全技术有限公司 | 一种识别域名的方法及装置 |
CN108200034B (zh) * | 2017-12-27 | 2021-01-29 | 新华三信息安全技术有限公司 | 一种识别域名的方法及装置 |
CN109729137A (zh) * | 2018-05-15 | 2019-05-07 | 平安普惠企业管理有限公司 | 页面数据显示方法、显示终端及存储介质 |
CN109120592A (zh) * | 2018-07-09 | 2019-01-01 | 四川大学 | 一种基于用户行为的Web异常检测系统 |
CN111131137A (zh) * | 2018-11-01 | 2020-05-08 | 财团法人资讯工业策进会 | 可疑封包检测装置及其可疑封包检测方法 |
CN109756479A (zh) * | 2018-11-29 | 2019-05-14 | 武汉极意网络科技有限公司 | 浏览器中伪造请求检测方法及装置 |
CN109756479B (zh) * | 2018-11-29 | 2021-03-23 | 武汉极意网络科技有限公司 | 浏览器中伪造请求检测方法及装置 |
CN110602030A (zh) * | 2019-05-16 | 2019-12-20 | 上海云盾信息技术有限公司 | 网络入侵阻断方法、服务器及计算机可读介质 |
CN112307480A (zh) * | 2019-07-24 | 2021-02-02 | 中移互联网有限公司 | 应用软件所在设备的风险分析方法及装置 |
CN112307480B (zh) * | 2019-07-24 | 2023-09-05 | 中移互联网有限公司 | 应用软件所在设备的风险分析方法及装置 |
CN110602038A (zh) * | 2019-08-01 | 2019-12-20 | 中国科学院信息工程研究所 | 一种基于规则的异常ua检测和分析的方法及系统 |
CN110430214A (zh) * | 2019-08-15 | 2019-11-08 | 上海寰创通信科技股份有限公司 | 一种代理上网的识别方法及系统 |
CN111131487A (zh) * | 2019-12-30 | 2020-05-08 | 广东浪潮大数据研究有限公司 | 一种深度学习平台容器镜像获取、共享方法及系统 |
CN111131487B (zh) * | 2019-12-30 | 2022-08-12 | 广东浪潮大数据研究有限公司 | 一种深度学习平台容器镜像获取、共享方法及系统 |
CN111476610A (zh) * | 2020-04-16 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 一种信息检测方法、装置及计算机可读存储介质 |
CN111476610B (zh) * | 2020-04-16 | 2023-06-09 | 腾讯科技(深圳)有限公司 | 一种信息检测方法、装置及计算机可读存储介质 |
CN111740923A (zh) * | 2020-06-22 | 2020-10-02 | 北京神州泰岳智能数据技术有限公司 | 应用识别规则的生成方法、装置、电子设备和存储介质 |
CN113596011A (zh) * | 2021-07-23 | 2021-11-02 | 北京百度网讯科技有限公司 | 流量识别方法及装置,计算设备和介质 |
CN113596011B (zh) * | 2021-07-23 | 2024-03-22 | 北京百度网讯科技有限公司 | 流量识别方法及装置,计算设备和介质 |
CN113612777A (zh) * | 2021-08-04 | 2021-11-05 | 百度在线网络技术(北京)有限公司 | 训练方法、流量分级方法、装置、电子设备以及存储介质 |
CN113806737A (zh) * | 2021-09-01 | 2021-12-17 | 厦门服云信息科技有限公司 | 一种恶意进程风险等级评估方法、终端设备及存储介质 |
CN113806737B (zh) * | 2021-09-01 | 2023-11-28 | 厦门服云信息科技有限公司 | 一种恶意进程风险等级评估方法、终端设备及存储介质 |
CN113904829A (zh) * | 2021-09-29 | 2022-01-07 | 上海市大数据股份有限公司 | 一种基于机器学习的应用防火墙系统 |
CN113904829B (zh) * | 2021-09-29 | 2024-01-23 | 上海市大数据股份有限公司 | 一种基于机器学习的应用防火墙系统 |
CN114285639A (zh) * | 2021-12-24 | 2022-04-05 | 云盾智慧安全科技有限公司 | 一种网站安全防护方法及装置 |
CN114285639B (zh) * | 2021-12-24 | 2023-11-24 | 云盾智慧安全科技有限公司 | 一种网站安全防护方法及装置 |
CN115086055A (zh) * | 2022-06-24 | 2022-09-20 | 电子科技大学 | 一种针对安卓移动设备加密恶意流量的检测装置及方法 |
CN115150159B (zh) * | 2022-06-30 | 2023-11-10 | 深信服科技股份有限公司 | 一种流量检测方法、装置、设备及可读存储介质 |
CN115314268A (zh) * | 2022-07-27 | 2022-11-08 | 天津市国瑞数码安全系统股份有限公司 | 基于流量指纹和行为的恶意加密流量检测方法和系统 |
CN115314268B (zh) * | 2022-07-27 | 2023-12-12 | 天津市国瑞数码安全系统股份有限公司 | 基于流量指纹和行为的恶意加密流量检测方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107483488B (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107483488A (zh) | 一种恶意Http检测方法及系统 | |
Ring et al. | Flow-based network traffic generation using generative adversarial networks | |
Salman et al. | A review on machine learning–based approaches for Internet traffic classification | |
Haddadi et al. | Benchmarking the effect of flow exporters and protocol filters on botnet traffic classification | |
Davis et al. | Data preprocessing for anomaly based network intrusion detection: A review | |
Najafabadi et al. | User behavior anomaly detection for application layer ddos attacks | |
CN110830490B (zh) | 基于带对抗训练深度网络的恶意域名检测方法及系统 | |
Greensmith et al. | The DCA: SOMe comparison: A comparative study between two biologically inspired algorithms | |
Behnke et al. | Feature engineering and machine learning model comparison for malicious activity detection in the dns-over-https protocol | |
CN115134099B (zh) | 基于全流量的网络攻击行为分析方法及装置 | |
Feng et al. | BotFlowMon: Learning-based, content-agnostic identification of social bot traffic flows | |
Hamed et al. | A survey and taxonomy on data and pre-processing techniques of intrusion detection systems | |
Ring et al. | A toolset for intrusion and insider threat detection | |
Xu et al. | Seeing traffic paths: Encrypted traffic classification with path signature features | |
Feng et al. | Towards learning-based, content-agnostic detection of social bot traffic | |
Garcia-Teodoro et al. | Automatic generation of HTTP intrusion signatures by selective identification of anomalies | |
Brissaud et al. | Passive monitoring of https service use | |
Silva et al. | A statistical analysis of intrinsic bias of network security datasets for training machine learning mechanisms | |
Chwalinski et al. | Detection of application layer DDoS attacks with clustering and Bayes factors | |
Lei et al. | Detecting malicious domains with behavioral modeling and graph embedding | |
Elekar | Combination of data mining techniques for intrusion detection system | |
Lampesberger et al. | An on-line learning statistical model to detect malicious web requests | |
CN111310796B (zh) | 一种面向加密网络流的Web用户点击识别方法 | |
Zou et al. | Deep learning for detecting network attacks: An end-to-end approach | |
CN114710310B (zh) | 基于网络流量频域指纹的Tor用户访问网站识别方法及系统 |
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 |