计算机技术和网络技术的飞速发展及其在各行各业广泛应用使网络安全成为企业、国家安全的重要内容.根据Gartner的统计数据,75%的网络攻击都发生在应用层,Web应用作为多种服务器攻击的突破口,更是防范的重点.
Web应用面临的威胁中,有一类威胁存在一个通用的模式,即通过对用户与应用交互的参数进行注入攻击,注入位置可能是GET请求参数、POST请求参数、COOKIE、PATH等,可以将此类称之为注入型威胁,包括SQL注入、代码注入、跨站脚本、文件包含等.如果能够准确检测此类威胁,就能够阻止很大一部分的Web攻击.注入型威胁的基本原理是:攻击者通过客户端提交的参数中含有攻击载荷,Web服务器接收后传递到Web应用,经过参数提取、过滤等处理后进入数据库查询、文件操作、网络接口等关键函数,参数中的恶意代码被当作指令执行,进行越权操作或越权访问的结果通过输出返回给攻击者.
针对注入型威胁的防御研究有很多,主要思路集中在基于签名的检测和基于无监督学习的检测.Snort、WAF(Web Application Firewall)等工具都是采用基于签名的检测,王培凤等[1]采用完全自动机匹配算法提高了Snort的算法性能,在以往威胁检测时发挥了重要作用.但是随着漏洞挖掘和利用技术迅速提升,新的攻击方式不断出现,加之攻击本身具有多态性,基于签名的检测方法普遍面临以下困境:难以同时在准确率、效率上达到平衡;规则维护困难,影响运行速度;难以检测未知威胁.Chandola等[2]指出无监督异常检测算法在不依赖于先验知识的情况下通过计算距离、密度,对离群点评分排序发现数据集中的异常数据.Barbora等[3]采用半监督学习的方法,通过标签数据与无监督异常检测算法结合引入先验知识,说明在许多应用场景中引入先验知识是提高检测效果的必要条件.采用无监督学习检测异常模式[4]能够检测未知攻击.但于此同时不可避免的产生较多的误报和虚警,需要投入较多的人力进行识别,容易引起告警疲劳和不信任,因此AI2系统设计了无监督模块和监督学习模块[5].
无论是基于签名检测方法的规则匹配,还是无监督学习的方法,都是以用户输入作为唯一特征进行威胁检测,本质上是对威胁的单一维度特征进行分析监测,后期行为特征利用没有充分利用,导致输入端检测压力大和误报漏报的问题.He等[6-7]在解决僵尸网络检测和新型LDoS驱动的高分散低速率QoS侵犯识别问题时,分别采用了多特征分析的方法,有效提高了检测准确率、健壮性和识别率.Cova等[8]提取页面跳转、插件函数执行等10个特征进行机器学习,实验结果表明该方法把漏报率降至0.2%,Provos等[9-10]使用静态特征与动态特征结合检测的方法也取得了较好的检测效果.
本文在研究Web安全的注入型威胁检测时,提取多个特征进行检测,包括输入、关键函数和响应数据的特征,并进行统计分析、词法分析、特征分析,能够检测未知威胁,提高检测率、降低误报率,避免告警疲劳.
1 特征分析对于注入型威胁,利用的漏洞都是以用户输入数据作为代码执行,只是代码类型(包括网页脚本、SQL语句等)和执行代码的位置不同, 从输入到返回客户端通常包括这4个子阶段,这4个子阶段对于异常模式的检测既可以是相互独立进行的,也可以进行关联检测.Web应用程序中参数执行流程通常如图 1所示.
![]() |
图 1 Web应用程序参数执行流程 Fig. 1 Parameter execution flow in Web application |
通过分析,认为在输入、关键函数、输出3个关键节点是发现威胁行为的最佳位置,针对Web应用注入型威胁的程序运行特征主要从以上3处提取,下面对每个阶段的特征进行分析.
1.1 用户输入特征以用户输入数据的类型(字符型,数值型)、字符分布规律作为特征,以正常用户的输入建立统计模型,而攻击者会在输入中加入攻击载荷,无论是否经过编码,必然在输入数据类型、字符分布规律上存在异常.用户通过客户端提交的所有参数(包括GET、POST、cookie、referer、path多种方法)都会发送到服务端程序进行处理,这也是攻击者与程序交互最多的地方,因此攻击行为在输入时通常会表现出异常特征.对用户的查询URL进行提取就可以得到参数名和参数值,原则上只要被程序使用了都有可能产生注入型的漏洞,但是参数名比较少,因此本文主要对参数值进行异常检测.
1.2 关键函数参数特征为了保证输入字符的安全性,通常要采用过滤函数对输入进行过滤,对于非法字符可以提出警告或不予响应,但是有的输入没有经过过滤直接执行导致产生漏洞.用户输入的参数经过过滤后会作为后台某些服务的参数,如:数据库服务、文件访问服务、页面构造等.对于进入数据库查询、页面显示、命令执行、文件处理等关键函数的参数,同样可以选择数据的类型(字符型,数值型)、长度、字符分布规律、字符串结构作为特征进行分析,但是一旦关键函数确定,相应参数的词法结构[11]也能够确定,因此可以对其进行针对性的词法分析,而不用对其进行统计性分析,保证即使数据输入进来也不能被当作代码执行.这里的关键函数是指Web应用与数据库、文件等交互的函数,以PHP为例,部分关键函数如表 1所示.
![]() |
表 1 与数据库、文件等交互的PHP关键函数 Table 1 PHP key functions interact with database and file |
这些关键函数参数是构成SQL语句、文件处理、页面操作的重要部分,词法结构相对固定,可以对其进行词法结构特征的检测,发现异常参数是否具有攻击属性.
1.3 输出特征设计输出给用户的结果也可以抽取代码回显、敏感字符、敏感目录等特征,确保敏感内容不会返回到客户端.输出是反馈给用户的结果,如果存在攻击行为,在输出中就能找到相应信息,这也是验证最准确的、误报最低的检测方法.可以进行动态验证和静态验证,静态验证就是特殊字符的匹配,动态验证则是通过执行响应数据.
2 程序运行时特征获取通过第1章的分析发现,威胁行为特征就隐藏在程序运行过程中,因此运行特征获取是威胁发现的前提.输入参数可以从Web服务器日志或WAF日志中提取,也可以直接从参数处理函数中提取,关键函数参数和响应数据的获取需要通过嵌入应用的代码让应用程序自身具备一定的威胁感知和防护能力,这个思路中关键的一项技术目前被Gartner定义为RASP(Runtime Application Self-Protection)[12],Gartner早在2012年就介绍过该技术,并预计2017年25%的应用会具备这个能力,并且在2014年把该技术列入到处于上升阶段的新技术.目前已经有多家厂商推出了产品,通常RASP天生就可以与其他安全产品集成,开源社区也有相应的实现.
RASP的基本思路是通过在应用程序的执行容器、运行框架、程序代码等位置嵌入感知和监控代码,深入到应用程序运行时进行持续监控和威胁感知,发现异常可以持续监控程序行为,在确认威胁后能够及时阻断执行,使程序具备自我防护和威胁感知能力.
目前已经有许多工具在不同的运行位置实现RASP,在各个层次实现有不同的特点,越靠近上层获取特征的关联性更好,而靠近底层的效率更高,需要根据实际需求进行选择.常见的RASP代码嵌入位置和工具如表 2所示.
![]() |
表 2 RASP代码嵌入位置及工具 Table 2 RASP embedding location and tools |
本文采用的多特征提取方法是在Web应用代码中嵌入感知代码,获取程序在输入、关键函数、响应数据的运行特征.例如在PHP语言中,可以通过$_POST和$_GET获取用户输入的数据,直接把数据赋值给威胁分析变量,然后对用户输入的统计特征进行模式分析.关键函数参数特征和输出特征获取方式也与之相似,仅是分析的函数对象不同.已经有相关的开源项目如Shadow Daemon,可以将这部分特征抽取代码放入框架代码运行,后期考虑到效率和通用性问题,也会将嵌入代码的从应用代码迁移至框架代码,但目前还是以功能实现为主.
3 基于多特征关联的注入型威胁检测本文采用多特征关联的目的是克服单一特征上下文信息缺失的局限性,降低分析难度.对用户输入进行异常分析之后,基于关键函数可以提供更多的上下文信息,如异常参数的执行环境和位置、常用词法结构等,方便对其进行词法结构的分析,进行异常的攻击属性判断.响应数据分析检测则是攻击行为是否成立的最准确依据.多特征检测的一种方式是独立检测,即对于用户的所有输入都在用户输入、关键函数、数据输出3个关键位置进行相互独立的检测,不受相互间检测结果的影响,这种方式的检测强度更大、准确度更高,但时间和资源消耗也更多;多特征检测的另一种方式是关联检测,即当前特征检测只检测上一步特征出现异常模式的数据流,而对于未见异常的数据流不进行检测,关联检测对于检测准确率和误报率的平衡作用在3.1节进行分析,同时由于绝大多数输入是合法的,因此本文采用效率更高的多特征关联检测方法.
3.1 基于隐马尔科夫模型的输入异常检测应用开发人员在程序开发时假设所有用户会向服务器提交正常的参数,这种输入通常是相似的,而恶意输入为了实现命令注入、越权访问等目的,输入内容在长度、结构和字符分布上明显有别于正常输入.因此,把输入看作序列,利用隐马尔科夫模型对正常输入建模以记录正常用户行为模式,通过计算发现非正常访问行为,将其识别为异常,配合后期的词法分析和输出页面判断,可以更准确地感知威胁.
Kruegel等[13]采用二阶隐马尔科夫模型对Apache日志数据进行分析,Song等[14]在Kruegel工作的基础上进行研究,运用多阶隐马尔科夫模型对输入进行分析,并在多种注入型漏洞检测准确率和误报率上对不同阶数模型进行对比.对文献[14]的实验结果深入分析发现,在误报率低于5%之后,降低误报率都是以牺牲检测准确率为代价的;最佳“拐点”(检测准确率和误报率在检测指标ROC曲线上达到最佳平衡的点)处七阶和十一阶隐马尔科夫模型的检测效果最好,而且高阶模型明显优于低阶模型.但是高阶模型的平均训练时间是低阶模型的2倍,平均检测时间也相差5倍,因此上述文献采用用户输入单一特征进行异常检测面临检测效率与检测结果难以平衡的问题.
在误报率控制在5%的情况下,二阶模型与多阶模型的检测准确率很高且基本相同.本文在用户输入异常检测阶段考虑采用二阶模型进行输入异常检测,提高检测效率,保证检测准确率,在关键函数和数据输出时进行多特征关联以降低误报率,使检测效率与检测结果实现较好平衡.
以往研究表明,隐马尔科夫模型的状态数过多会导致训练时间过长且不易收敛,因此参数观测值对应隐含状态的分类方法将直接决定训练和检测效果,但对于该项内容的研究较少.鉴于此,本节主要研究分类方法对异常检测的影响.
隐马尔科夫模型[15-16](hidden Markov models, HMM)可以表示为五元组(A, B, π, ΩX, ΩO), 其中A ={aij, i, j=1, 2, …, N}是状态转移概率矩阵,B ={ bij (k)}是状态输出概率矩阵,π是初始状态分布,ΩX={X1, …, XN}表示模型的隐含状态集合,N表示隐含状态总数,ΩO={O1, …, OM}是模型观察值集合,M表示所有观察值总数.
由模型的特性可知,根据状态转移序列可以计算该随机事件集的概率.假设模型为H,S ={sa, sb, sc, …, se}是一个状态序列,S出现的概率为
$ \begin{array}{l} P(S|{\rm{H}}) = P({s_a}, {s_b}, {s_c}, \cdots, {s_d}, {s_e}|H) = \\ P({s_a}) \times P({s_b}|{s_a}) \times P({s_c}|{s_b}) \cdots P({s_e}|{s_d}). \end{array} $ | (1) |
条件概率用P(si|si-1)表示,si表示字符串中的第i个字符,si-1表示字符串中的第i-1个字符,si在si-1后出现的概率为
$ P({s_i}|{s_{i-1}}) = \frac{{P({s_i}, {s_{i-1}})}}{{P({s_{i-1}})}}. $ | (2) |
通过式(1)可以发现,序列S出现的概率P(S |H)与序列长度ls相关,也与状态间的转移概率密切相关.就本文的Web参数输入问题,定义参数的异常度σ为
$ \sigma =-\eta {\rm{ln}}\left( {P\left( {S|H} \right)} \right). $ | (3) |
参数长度l和参数状态间的转移概率与参数的异常度σ密切相关.参数状态间的转移概率除了与训练数据的状态分布有关,观测值分类成隐含状态的方法直接影响式(2)中si的出现频率.η为调整异常度取值范围的参数.
选取ⅡS7.5搭建的网站参数进行分析,研究输入参数长度与观测值分类对检测结果的影响.选取了参数长度在5~8的参数构成数据集进行训练,生成HMM模型.然后分别选取和构造同分布参数、不同分布但不引入未出现类型参数、引入未出现新类别的参数三类检测模型,依据上述规则改变参数长度l,分析参数异常度σ,越接近0表示参数与正常数据越接近,越大表明与正常值偏离越大.
实验选取模型检测参数的长度取值范围为4~24,总共分为3组,每一组实验分别运算10次后计算异常度σ的平均值作为实验结果.第一组模型检测参数与正常参数的字符分布特征相同,第二组与正常参数的字符分布特征不同,但是状态种类相同,第三组引入新的状态.
实验结果如图 2所示,3组结果的检测异常度差距十分明显.在不改变分布特征时长度对正常参数异常度影响很小,对异常分布参数影响较大;改变参数特征分布比较容易触发异常,引入新的状态会导致完全检测为异常.
![]() |
图 2 参数长度与参数异常度关系 Fig. 2 Correlation between parameter length and parameter abnormality value |
为了避免模型异常灵敏导致频繁误报,缩短训练时间,需要对参数值分类,对应到隐含状态.基于以上实验可以确定的分类原则如下:1)正常参数与攻击字符串分类后对应的不同状态数最大化;2)分类结果在体现参数原有的分布特征的前提下遵循分类最少原则;3)应用的正常扩展不影响参数分类.
参数观测值的分类方法有很多,也可以根据Web应用设计更有针对性的分类方法,通常字符、数字、分隔符、控制字符映射不同的隐含状态.攻击字符串通常会包含特殊符号,特殊符号是指用于闭合标签和字符串、分隔关键字的英文标点符号、控制字符等,特殊符号是攻击字符串的重要特征,而且出现频率很低,可以作为独立的隐含状态.
由于Web应用存在更新、改版等问题,需要建立快反馈机制,设置修正阈值,异常误报率大于该阈值后就重新训练模型,将误报数据作为正常数据重新训练模型,修正模型参数,保证对随时可能变化的Web应用做到快速适应.
3.2 关键函数参数的词法结构分析一旦确定了传入关键函数的参数存在异常,可以专门对其进行词法结构分析,这样做的好处是降低分析难度,如果在输入的地方就对其继续分析,由于不知道执行环境,需要进行的词法、语法分析,难度较大.当确定异常参数是提交给哪类关键函数之后,词法分析得更加具体、更加准确,比如传入数据库查询函数的参数只需要检测对应数据库的SQL语句的词法结构,文件包含类的只需要检测文件目录结构词法结构.
为了发现词法结构异常,首先要获取正常参数下的词法结构,这也是开发人员预期的程序运行方式,当HMM模型检测到异常参数后,词法结构的合法性成为判断异常是否是攻击的重要依据.因为注入型威胁多是将数据作为代码执行,词法结构改变难以避免,比较特殊的文件包含漏洞为了跳转到敏感目录,如“../../../../etc/passwd”,相比于“/inc/web.config”也有结构变化.关键函数词法分析的流程如图 3所示.
![]() |
图 3 关键函数词法分析的流程 Fig. 3 Lexical structure analysis flow chart of key functions |
对上述异常进行了人工分析后,发现异常来源主要有4类:用户输入错误,程序编写错误,各种扫描程序产生的请求,以及尝试注入,但是注入语句结构非法的错误尝试.采用关键函数词法结构分析确实有助于解决部分误报问题,与HMM模型形成互补优势.
3.3 基于响应数据的攻击检测应用程序的响应数据是检测攻击是否发生的最可靠证据,是漏洞动态检测方法的主要检测对象.因此作为攻击行为的一个最重要特征,响应数据分析是必要的.
程序运行发生异常是常见现象,而返回异常提醒信息很可能是发现漏洞的入口,数据库报错信息可以引发SQL注入漏洞,此外根据程序报错的堆栈跟踪输出,可能发现应用程序使用了存在漏洞的库函数,进而利用漏洞发起攻击.仅关注输入的安全机制无法检测该类异常,同时没有一种通用输入可以触发潜在程序异常,因此无法难以检测.
除了异常信息,对于正常用户权限下无法访问的内容管理后台、数据库信息、配置文件信息等也不应该出现在正常用户的响应数据内容,因此这类页面的独有特征可以作为检测输出是否合法的依据.
根据以上分析,本文对用户的请求返回内容进行分析,首先需要对建立异常特征字符字典,收集程序返回异常信息时的特征字符,同时在内容管理后台、数据库信息、配置文件信息中插入标识权限特征的水印信息,然后对异常请求的响应数据进行特征字符和水印信息分析,能够阻止敏感数据、异常等信息泄露,阻断部分攻击发生.
4 实验与结果分析由于已有的公开数据集无法覆盖第3节提出的特征,本文实验采用来自IIS、Apache、Nginx的网站数据进行验证方法的有效性.由于原有程序代码不支持RASP,需要在原来的应用上进行修改代码实现原型系统,获取上文中的多种特征进行分析.为了进行方法有效性的比较,网站服务器同时安装了开源的Web应用防火墙(Web Application Firewall, WAF),检测规则配置为CRS规则集.实验中采用的为ModSecurity 2.6版本的开源WAF,整体实验环境依赖于Exsi6.0,主要硬件配置:处理器为Intel(R) Xeon E5-2602,主频是2.4 GHz,内存大小为32 GB.
为了对比分析各个特征对于提升注入型威胁检测能力的效果,设计单一输入特征的HMM检测方法和输入-关键函数双特征检测方法进行对比实验,通过分析得出每个特征对于检测率和误报率的作用.HMM求解需要计算条件概率,为了避免向下溢出,对数据进行了修正,上面的对比算法中也进行了数据修正.实验采用HMM程序是由UBC开发的HMM程序包[17]进行数据训练.
训练数据集主要是Web服务器日志去重后的参数数据,用于训练HMM模型,训练数据中的异常数据过多会影响模型的训练效果,为了降低异常日志的比例,训练需要迭代进行多次,确定为异常的数据从训练数据集剔除然后加入异常数据集,采用剔除后的训练数据集重新训练模型,直到概率值最低的字符串为正常请求,并设置为异常阈值.异常测试数据集则包含了日志中大部分的程序异常请求和攻击请求,将其与正常日志数据混合到一起,构成异常测试数据集,去重后每类数据量如表 4所示.同时为了保证验证的全面性和对比性,引入了绕过测试数据集与漏洞测试数据集,其中除了随机选取的正常数据和程序异常数据外,绕过数据集包括了sqlmap绕过waf的tamper脚本和人工生成的混淆脚本,漏洞数据集参考Damn Vulnerable Web App (DVWA)构造的部分漏洞数据,确保参数能够进入关键函数进行深入分析,覆盖的注入威胁类型如表 3所示.
![]() |
表 3 HMM训练数据集属性 Table 3 Characteristics of training datasets for HMM |
![]() |
表 4 不同数据集威胁检测误报率与检测率对比 Table 4 Results of threat detection controlled experiments on different datasets |
实验选取ROC(receiver operating characteristic)曲线的评估指标误报率F和检测率T用于4种威胁检测程序的检测能力评价,在3个测试数据集上的实验结果如表 4所示.
实验数据表明,经过多次迭代,获取的训练数据真实反映了参数的字符分布特征、长度特征、结构特征,使得原型系统和HMM检测方法都获得很高的检测率.工具和手动的编码绕过等方式使攻击字符串绕过WAF等能力显著增强,但由于其本质上影响了字符分布特征、长度特征,对于统计类的检测方法的绕过效果不好.漏洞测试数据集中构造的正常提交方法的漏洞都被检测到了,但构造的CVE-2016-3714(imagemagick远程命令执行)漏洞通过图片提交,虽然用到了关键函数system()执行代码,但是该输入未进行检查,因此无法检出.
通过实验数据分析各个特征对于提升注入型威胁检测能力的效果,在引入关键函数参数的词法结构分析之后,检测率没有明显变化,但误报率有明显降低,尤其异常测试数据集的下降比绕过测试数据集更为明显,分析认为程序异常具有很强的随机性,符合词法结构的概率要低于绕过测试数据集,因此对于此类误报的消除效果更好.对比原型系统与输入-关键函数双特征检测方法的实验结果,得出输出数据特征对于降低误报同样具有明显效果,分析测试数据集发现存在小部分符合词法结构的程序异常数据,引起威胁误报;并且该特征对于绕过测试数据集的检测能力更强,主要原因在于部分数据库特有绕过方式使词法结构被识别为异常程序,输出数据的敏感字符表明数据具有攻击性,提高威胁检测能力.
综合分析以上实验结果,用户输入特征仍然是威胁检测率的保证,关键函数和输出数据特征对于降低误报率作用明显,且输出数据特征有助于提升检测绕过脚本的能力.
5 结语本文提出了一种基于多特征关联的注入型威胁检测方法,从用户输入、关键函数执行、响应数据提取特征进行威胁检测,多特征方法利用不同执行阶段的特点,能够在保持很高检测正确率的同时降低误报率.但该方法尚面临RASP代码修改量大的问题,被调用模块的内部关键函数也未实现检测,需要在进一步研究中解决.
[1] |
王培凤, 李莉. 一种改进的多模式匹配算法在Snort中的应用[J]. 计算机科学, 2012, 02: 72-79. WANG Pei-feng, LI Li. Application of an Improved multi-pattern matching algorithm in Snort[J]. Computer Science, 2012, 02: 72-79. |
[2] |
CHANDOLA V, BANERJEE A, KUMAR V. Anomaly detection:a survey[J]. Acm Computing Surveys, 2009, 41(3): 1-58. |
[3] |
BARBORA M, MCWILLIAMS B, ASSENT I. Learning outlier ensembles:the best of both worlds-su-pervised and unsupervised[C]//InKD-D'14Works-hops:Outlier Detection and Description (ODD.2). New York:ACM, 2014:51-54. http://pure.au.dk/portal/da/publications/id(a4dfe81e-04d1-4cdb-b3dc-060eb06b7f48).html
|
[4] |
BORGOLTE K, KRUEGEL C, VIGNA G. Delta:automatic identification of unknown web-based infection campaigns[C]//ACM Sigsac Conference on Computer & Communications Security. Berlin:ACM, 2013:109-120. http://dl.acm.org/citation.cfm?id=2516725
|
[5] |
VEERAMACHANENI K, ARNALDO I, KORRAPATI V, et al. AI.2:training a big data machine to defend[C]//IEEE, International Conference on Big Data Security on Cloud. New York:IEEE, 2016:1-13. http://ieeexplore.ieee.org/document/7502263/
|
[6] |
何毓锟, 李强, 嵇跃德, 等. 一种关联网络和主机行为的延迟僵尸检测方法[J]. 计算机学报, 2014, 37(1): 50-61. HE Yu-kun, LI Qiang, JI Yue-de, et al. Detecting response-delayed bot by correlating host behavior and network activity[J]. Chinese Journal of Computers, 2014, 37(1): 50-61. |
[7] |
康健, 杨媚, ZHANGJun-yao. 基于多维观测特征的MF-HMM模型识别新型LDoS驱动的高分散低速率QoS侵犯[J]. 四川大学学报:工程科学版, 2015, 47(1): 42-48. KANG Jian, YANG Mei, ZHANG Jun-yao. Identifying new high-distributed low-rate QoS violation driven by LDoS based on multi-observed features MF-HMM[J]. Journal of Sichuan University:Engineering Science Edition, 2015, 47(1): 42-48. |
[8] |
COVA M, KRUEGEL C, VIGNA G. Detection and analysis of drive-by-download attacks and malicious JavaScript code[C]//International Conference on World Wide Web, WWW 2010. Raleigh:DBLP, 2010:281-290. http://dl.acm.org/citation.cfm?id=1772720
|
[9] |
PROVOS N, MAVROMMATIS P, RAJAB M A, et al. All your iFRAMEs point to us[C]//Conference on Security Symposium. Berkeley:USENIX Association, 2008:1-15. http://dl.acm.org/citation.cfm?id=1496712
|
[10] |
CANALI D, COVA M, VIGNA G, et al. Prophiler:a fast filter for the large-scale detection of malicious web pages[C]//International Conference on World Wide Web. Hyderabad:ACM, 2011:197-206. http://hal.archives-ouvertes.fr/hal-00727271
|
[11] |
RIECK K, KRUEGER T, DEWALD A. Cujo:efficient detection and prevention of drive-by-download attacks[C]//Twenty-Sixth Computer Security Applications Conference. Austin:DBLP, 2010:31-39. http://dl.acm.org/citation.cfm?id=1920267
|
[12] |
Runtime application self-protection (RASP)[EB/OL].[2016-08-15].http://www.gartner.com/it-glossary/runtime-application-self-protection-rasp/.
|
[13] |
KRUEGEL C, VIGNA G. Anomaly detection of Web-based attacks[C]//In Proceedings of the 10th ACM Conference on Computer and Communications Security. Washington DC:ACM, 2003:251-261. http://dl.acm.org/citation.cfm?id=948144
|
[14] |
SONG Y, KEROMYTIS A D, STOLFO S J. Spectrogram:a mixture-of-Markov-chains model for anomaly detection in Web traffic[C]//Network & Distributed System Security Symposium. San Diego:DBLP, 2009:121-135. http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=215BB8A933D47132E3A25045D521CCCC?doi=10.1.1.147.2436&rep=rep1&type=pdf
|
[15] |
RABINER L R. A tutorial on hidden Markov models and selected applications in speech recognition[J]. Readings in Speech Recognition, 1989, 77(2): 267-296. |
[16] |
顾晓丹, 杨明, 罗军舟, 等. 针对SSH匿名流量的网站指纹攻击方法[J]. 计算机学报, 2015, 38(4): 833-845. GU Xiao-dan, YANG Ming, LUO Jun-zhou, et al. Website fingerprinting attack based on hyperlink relations[J]. Chinese Journal of Computers, 2015, 38(4): 831-845. |
[17] |
Download HMM toolbox[EB/OL]. (2002-10-23)[2016-10-08]. http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm_download.html.
|