一种基于流量分析的多链路网页篡改判定方法与流程

文档序号:18465481发布日期:2019-08-17 02:25阅读:164来源:国知局
本发明涉及一种网页篡改判定技术,具体涉及一种基于流量分析的多链路网页篡改判定方法。
背景技术
::根据部署的位置,可以将现有的网页篡改判定技术分为两大类:网页篡改本地判定技术和网页篡改远程判定技术。目前的网页防篡改软件大多使用本地篡改判定技术,现有的篡改判定软件中,天津锐捷网络的webguard、中创软件中间件公司的inforguard、上海天存的iguard、博威特公司的梭子鱼、e-lock公司的tripwirewebalarm均采取了本地篡改判定技术,而目前使用远程篡改判定技术并且成熟的软件较少。在基于网页相似度的网页篡改判定技术中,基于编辑距离的相似度比对方法对于静态网页来说,能够简单并且快速的得出网页的相似度,并根据相似度判断出网页是否被篡改;但是对于动态网页来说,该方法也可以得出相似度,但是相似度的值却不具有参考价值,无法准确推断出是正常的网站更新还是网页被篡改。基于网页结构的相似度比对方法可以对网页结构的改变做出准确的判断,相似度算法主要针对网页结构,即:从与历史网页的相似度判断两个网页在结构上是否相同,也即网页是否被篡改。若将该方法应用在篡改判定技术上,则显得该方法对篡改行为的考量不完全,若恶意程序只对网页上显示的文字进行篡改,那么该方法将得不到正确的结论。基于语义分析的相似度比对方法适用于主题分明的网页,若将该方法应用于网页篡改判定技术上,那么对于主题不够分明的网站例如新闻或通知类型的,该判定方法将得不到正确结论。即使是主题分明的网页,若篡改后的内容与篡改前的内容主题一致,那么该篡改行为也不会被发现。技术实现要素:针对现有网页篡改判定方法存在的上述问题,本发明提供了一种误报率低并且能够检测网页是否被流量劫持的基于流量分析的多链路网页篡改判定方法。本发明的目的是通过以下技术方案实现的:一种基于流量分析的多链路网页篡改判定方法,包括如下步骤:步骤一、配置网站规则;步骤二、在多个链路节点中捕获网页,并且使用相似度比对算法将历史网页与当前网页进行对比,得出网页是否被篡改的结论;步骤三、将多个链路节点的结论进行汇总,并综合分析,得出网页是被流量篡改还是源篡改。相比于现有技术,本发明具有如下优点:1、充分考虑网页结构的特性,网页结构是一个倒置的树结构,越靠近根结点的元素,对整个网页结构的影响越大,若父结点变化,儿子结点有极大的可能性会变化,也可以说是儿子结点会随着父结点而变化,所以对处于网页树结构中不同的层赋予不同权重,从而提出层权重概念,即这一层对整个网页结构的影响程度。2、结合网页结构和网站更新及篡改特征,提出元素分类概念,即某几个元素属于同一类,表达同一个意思;提出元素影响因子概念,即某个元素的改变对结构的影响程度;提出重要属性概念,即元素的某些属性是常被篡改的属性,对篡改的判定有重要意义。3、结合网页内容和网站更新及篡改特征,提出内容集合的异常评判标准概念,即针对内容集合改变,说明哪些属于网站正常更新时的改变,哪些属于网页篡改时的改变,并且误报率远小于其他方式的网页篡改判定技术。附图说明图1是网页篡改判定模型。图2是网页相似度比对算法的流程图。图3是文本集合更新情况的分类图。图4是基于多点相似度比对的网页篡改判定模型——网络拓扑。具体实施方式下面结合附图对本发明的技术方案作进一步的说明,但并不局限于此,凡是对本发明技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的保护范围中。本发明提供了一种基于流量分析的多链路网页篡改判定方法,如图1所示,所述方法包括如下步骤:步骤一、添加目标网站以及配置网站规则。将网页进行动态区域和固定区域的划分,在网站更新过程中,动态区域的内容是在变化的,而固定区域的内容基本不变。配置网站规则的目的主要是确定网页的区域,网站规则配置方式有两种:1)人为指定模式:人为的指定目标网页中哪一部分是固定区域,哪一部分是动态区域。需要配置的内容是:固定区域在网页dom树中有哪几个内容集合;动态区域在网页dom树中有哪几个内容集合。2)无人为指定模式:通过抓取该网站的前m次网页(每一次抓取的网页与前一次的网页不同),分别对比前后两次网页的不同,得出网页的动态区域以及固定区域(若m的取值过小,固定区域的判断可能有误,从而影响最终结论),需要配置的内容是:m的取值。步骤二、对配置的网站进行爬取,并且使用网页相似度比对算法进行比较。在抓取到一个网页后,先提取网页的相关数据,再通过查找该网页的url,判断是否有该网页的历史信息,若有则将当前网页的相关数据和历史信息进行相似度比对,得出相似度的值,并与该网页的相似度基准值进行比较,得出结论。将结论进行汇总,以便下一步进行综合结论分析。若得出更新结论,则将历史信息替换为当前的相关数据。网页的相关数据包括:virtualdom、固定区域的位置信息、动态区域的位置信息和相似度基准值。如图2所示,网页相似度比对算法的具体步骤如下:第一步、初始化:初始化两个足够大的队列q1,q2,用来遍历virtualdom中的结点;初始化一个map<string,int>map_tag_affectoi用来存储影响因子为2的元素,即β合中的元素;初始化一个map<string,int>map_tag_classify用来存储元素分类;初始化一个足够大的整型数组array1,每一个元素存储一层的变化比例,即公式(4)中内层求和的部分;初始化一个足够大的二维整型数组arrayb,存储对应的文本集合属于固定区域还是动态区域;初始化两个vector<text>v1,v2,用来存储文本集合;初始化一个整型数组array2,数组中每一个元素存储一个集合的变化比例,即公式中内层求和的部分;初始化双精度浮点数nu,记录一层中有变化的元素的累加和,即公式中αi,j*xi,j的累加和;初始化双精度浮点数de,用来记录一层中所有元素的累加和,即公式中αi,j的累加和,执行第二步。第二步、同时按层遍历两个virtualdom,遍历过程中向结点中添加层号属性和父结点序号属性,两个根结点入队(入队过程中,只关注元素、文本、src属性和href属性),执行第三步。第三步、出队:若q1,q2中一个为空,另一个不为空,则执行第九步;若两队列都为空,则执行第十步;否则,q1和q2出队,出队结点为n1,n2,将n1和n2的儿子结点分别按顺序入队,执行第四步。第四步、对比两个结点n1,n2:将历史父结点序号和当前父结点序号进行对比(若无历史父结点号,则无需对比),若不同,则执行第五步;否则,执行第六步。第五步、对比两个文本集合v1,v2:将集合变化比例记录到数组array2,执行第六步。本步骤中用到的文本集合比对算法如表1所示:文本集合比对算法的具体步骤如下:步骤一:取两文本集合条目总数textn1,textn2,若textn1==textn2,则初始化更新条目数量textu为textn1,并且执行步骤二;否则执行步骤十。步骤二:取v1和v2的队首指针(可以使用正向迭代器)和队尾指针(可以使用反向迭代器),oldhead,newhead,oldrear,newrear,执行步骤三。步骤三:若v1中只有一个条目,且该条目的长度不小于static_len(静态网页文本长度),则执行步骤九;若oldhead<oldrear,且newhead<newrear,则执行步骤四;否则,执行步骤十一。步骤四:对比oldrear和newrear,若所指条目相同,则对两个条目进行标记,oldrear和newrear同时减一,textu减一,执行步骤三;否则,执行步骤五。步骤五:若oldhead<oldrear,且newhead<newrear,则执行步骤六;若oldhead==oldrear,且newhead==newrear,则执行步骤十一。步骤六:对比oldhead和newhead,若所指条目相同,则对两个条目进行标记,oldhead和newhead同时增一,textu减一,执行步骤五;否则,执行步骤七。步骤七:若v1中所有条目被标记或逐一对比结束,执行步骤十一;否则,将v1中未被标记的条目与v2中未被标记的条目进行逐一对比,若相同,则对两个条目进行标记,textu减一,执行步骤七;若不同,则执行步骤八;步骤八:以简单的编辑距离方式对这两个条目进行对比,若满足ldmatch(text1,text2)=1,则对两个条目进行标记,执行步骤七。步骤九:使用编辑距离算法,来计算整个网页的相似度,整个比对算法结束。步骤十:判定该网页被篡改,文本集合比对算法结束。步骤十一:判定该网页未被篡改,文本集合比对算法结束。第六步、记录层变化比例:将结点中的文本text1,text2分别存入v1,v2,将历史层号和当前层号进行对比(若无历史层号,则无需对比),若不同,则根据nu和de将该层结构变化比例记录到数组array1中,执行第七步。第七步、对比重要属性propl1,propl2:若propl1和propl2存在,且同为src或者同为href,且属性值相同,或者propl1和propl2都不存在,则执行第八步;否则执行第九步。第八步、对比两个元素tag1、tag2:若tag1和tag2都不为空,且不属于同一元素分类(根据map_tag_classify),则执行第九步;否则,进行nu和de的累加(根据map_tag_affectoi),并执行第三步。第九步、判定该网页为被篡改,算法结束。第十步、判定该网页为未被篡改,算法结束。算法中用到如下参数及相关定义:结点、元素分类、元素变化程度、元素影响因子、层权重、结构相似度、文本集合、本文集合变化程度、重要属性、内容相似度、相似度基准值,其中:结点:给定一棵树t,其树高为h,结点n中包括元素tag、文本text和属性prop,其中一个结点n可以包含至多一个元素tag,一个结点n可以包含至多一个文本text,一个结点n可以包含任意个属性prop,但是结点n不可以为空。结点n在树结构中可以具体表示为:ni,j,其中i为层号,i的最小值为1,最大值为h;j为结点在第i层中的顺序位置,j的最小值为1,最大值为numni,numni表示第numni层中结点的个数。元素分类:将网页中常用的元素进行人为分类,分类规则为:若元素表示的意思相近,则将这些元素归为一类。元素变化程度:给定两个元素tag1、tag2,其变化程度x为:若两元素相同,那么变化程度为0;若两元素不同且属于同一分类,那么变化程度为0.5;若tag1或者tag2有一个存在另一个不存在,那么变化程度为1;若两个元素不同且不属于同一分类,那么直接判定为篡改。变化程度x可表示为:元素影响因子:给定一个元素tag,若tag属于集合β,那么元素的影响因子α为2;否则为1。元素影响因子α表示如下:其中,i为层号,i的最小值为1,最大值为h;j为结点在第i层中的顺序位置,j的最小值为1,最大值为numni,β集合包含{div,table,form,tr,td}以及与这些元素属于同一分类的元素。层权重:给定一棵树t,其树高为h,层权重w可以表示为:其中,i为层号,i的最小值为1,最大值为h。结构相似度:给定两棵树t1,t2,两棵树在结构上的相似度ss可以表示为:文本集合:给出一段文本text,一个叶子结点node,node包含text,若node有其它兄弟结点,并且其它兄弟结点中有文本text1,text2,…,textn,那么text,text1,text2,…,textn为一个文本集合texts;否则文本text单独为一个文本集合texts。文本集合变化程度:给定两个文本集合text1,text2,两个集合的条目数量为textn1,textn2,两集合对比得出更新条目的数量为textu,某两个条目的编辑距离为ld(text1,text2),文本长度为len(text)。当文本集合为固定区域时,若textn1=textn2,且textu=0,那么文本集合影响因子β=0;否则直接判定该网页被篡改。当文本集合为动态区域,若textn1=textn2,textu=0,那么文本集合影响因子β=0;若textn1≠textn2,那么直接判定为该网页被篡改;若textn1=textn2,textu≠0,且不存在ldmatch(text1,text2)=1(集合中某个条目的一部分被篡改,即:texts1中存在text1,texts2中存在text2,ld(text1,text2)>1/3max(len(text1),len(text2)),ld(text1,text2)<1/2max(len(text1),len(text2)),将该情况表示为ldmatch(text1,text2)=1),那么文本集合影响因子β=0.5;若textn1=textn2,textu≠0,ldmatch(text1,text2)=1,那么文本集合影响因子β=1。文本集合变化程度β可以表示为:固定区域:动态区域:其中,i为层号,i的最小值为1,最大值为h;k为文本集合在第i层中的顺序位置,j的最小值为1,最大值为numti,numti表示第i层中文本集合的个数。重要属性:元素中包含的某些在网页篡改判定中扮演重要角色的属性,称之为重要属性。在文本或图片不变的情况下,若重要属性变化,则直接判定该网页被篡改。重要属性集合y={src,href}。内容相似度:给出两棵树t1,t2,两棵树在内容上的相似度sc可以表示为:其中,i为层号,w为第i层中文本集合的数量,textsi,wu表示文本集合中变化的条目数量,textsi,wn表示文本集合中条目总数量,numsi表示第i层中本文集合的数量。相似度基准值:结构相似度基准值以及内容相似度基准值公式如下:步骤三、对多个节点得出的结论进行分析。部署在多节点的原因是:在相似度比对算法得出结论后,若整个系统只有一个节点,那么我们无法判断该网页是被源篡改还是在中间链路被篡改。若有多个节点,则可以通过对比多个节点的结论做进一步判断,得出该网页是否在中间链路被流量篡改的结论。假设有n个节点,那么节点可以表示为k1,k2,k3,…,kn,目标网站服务器表示为s,具体对比的方案为:1)若k1,k2,k3,…,kn结论全为非篡改,那么最终结论是:没有网页流量篡改的情况;2)若某几个节点结论为篡改(如k1,k2结论为篡改),其他结点结论为非篡改,那么最终结论是:从s到篡改节点(k1和k2)的链路上都出现网页流量篡改的情况;如图4所示,若k2、k3节点结论为篡改,则k2、k3到s的链路上被劫持。3)若k1,k2,k3,…,kn结论为篡改,那么有可能网页被源篡改,也有可能是在s到k1,k2,k3,…,kn的链路上都出现了网页流量篡改的情况。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1