发明名称 利用空间混合索引机制检测钓鱼网页的方法
摘要 一种基于空间混合索引机制的综合利用网页的空间布局、文字特征以及图像特征的钓鱼网页检测方法,涉及了一种基于页面视觉布局特征结合空间数据库的设计方案,主要解决了基于网页视觉相似性角度进行快速钓鱼网页检测的问题。方法结合浏览器渲染引擎,对指定的可疑网页进行视觉布局特征抽取,再利用空间数据库索引同步结合网页的文本特征以及图像特征,形成空间混合索引机制的综合文件图像倒排索引的空间树,即DIIR树。DIIR树是对空间索引机制的空间区域R树进行改进,在空间区域R树的每一个结点上添加网络对象中文字的倒排索引文件以及图像特征的倒排索引文件。在查询一个新的网络对象时并不仅仅考虑其空间布局特征,而是同步结合网络对象的文字特征以及图像特征。
申请公布号 CN102662959A 申请公布日期 2012.09.12
申请号 CN201210057731.0 申请日期 2012.03.07
申请人 南京邮电大学 发明人 张卫丰;王慕妮;周国强;张迎周;田先桃;周国富;陆柳敏;许碧欢;顾赛赛
分类号 G06F17/30(2006.01)I;H04L29/06(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 叶连生
主权项 1.一种利用空间混合索引机制检测钓鱼网页的方法,其主要方法在于通过结合浏览器渲染引擎,对指定的可疑网页进行视觉布局特征抽取,再利用空间数据库索引同步结合网页文本特征的倒排索引以及网页图像特征的倒排索引来检测钓鱼网页;空间混合索引机制是指综合文字与图像倒排索引的空间树,记为DIIR树;空间混合索引机制即DIIR树是对空间索引机制的空间区域R树进行改进,在空间区域R树的每一个结点上添加网络对象中文字的倒排索引文件以及图像特征的倒排索引文件,在查询一个新的网络对象时并不仅仅考虑其空间布局特征,而是同步结合网络对象的文字特征以及图像特征;对文字特征运用语言模型来计算待查询的网络对象与结点之间的语义相关性,对于图像特征,则提取图像的旋转不变特征,并对其进行标准化,将标准化后的特征向量的每一维作为一种可视化文字,然后运用语言模型来计算待查询的网络对象与结点之间的可视化文字的语义相关性,运用对象之间的空间距离以及两个语义相关性模型,设计空间混合索引的剪枝函数;利用空间混合索引机制即DIIR树的整个方法主要步骤包括:a)特征提取过程:将网页按照空间位置分割成各个网络对象,即提取网页的布局特征,提取每个网络对象的文字特征以及图像特征;步骤a1)布局特征抽取模块的主要工作就是结合浏览器内核以及文档对象模型DOM树分析工具抽取网页中所有大小合适的矩形块信息并且各矩形块相互之间没有重叠;步骤a2)遍历一个网页的文档对象模型DOM树,结合浏览器内核中的布局渲染引擎分析该页面的超文本标记文档html源文件,级联样式表css源文件以及java脚本js源代码,获取每个节点所代表的标签的显示位置和大小,并记录下这些信息组成网页布局特征信息;步骤a3)在特征库采集阶段,将采集到的可能被模仿的合法网页布局特征数据交给空间数据库模块进行数据存储;在钓鱼网页分析阶段,将疑似页面的布局特征数据传给页面布局分析模块进行综合分析;步骤a4)统计每个网络对象中各个单词出现的次数,据此,创建网络对象中各个单词的语言模型;b)空间混合索引的建树过程:在空间索引机制的空间区域R树的基础上同步结合文字倒排文件以及图像倒排文件;步骤b1)选择子树过程:从根结点开始,在每一层选择待查询对象与该结点之间由公式1与公式2给出的最小距离,也就是最小的伪文件结点所属的子树,直到找到叶子结点;步骤b2)结点分割过程:如果插入对象后,叶子结点的容量超过了最大值,此时,使用由步骤b3)到步骤b8)的分割算法对该结点进行分割;步骤b3)对于当前结点中的伪文件对E<sub>i</sub>,E<sub>j</sub>,创建包含E<sub>i</sub>,E<sub>j</sub>的矩形框R<sub>ij</sub>;步骤b4)计算矩形框R<sub>ij</sub>的面积与伪文件E<sub>i</sub>的面积以及E<sub>j</sub>的面积之差,记为d;步骤b5)计算伪文件对之间的文字特征余弦相似性及图片特征余弦相似性,选择两者中较大的值,记为cosSim;步骤b6)计算(1-β)d+β(1-cosSim)作为两个伪文件之间的距离,其中β是权重参数;步骤b7)选择距离最大的一对伪文件分别作为两个分组的第一个元素;步骤b8)对于余下的伪文件结点,根据公式2计算其与两个组之间的距离,并将其加入到这个值较小的组里,直到结点中的伪文件都被分为两组;AreaCost(E<sub>k</sub>)=area(E′<sub>k</sub>.rectangle)-area(E<sub>k</sub>.rectangle)公式1其中,E<sub>k</sub>指的是当前结点的伪文件结点,也就是下一分支的入口结点;E′<sub>k</sub>.rectangle指的是插入新结点之后伪文件结点可能的扩展矩形区域,E<sub>k</sub>.rectangle指的是未插入新结点时伪文件结点的矩形区域,<maths num="0001"><![CDATA[<math><mrow><mi>SimAreaCost</mi><mrow><mo>(</mo><msub><mi>E</mi><mi>k</mi></msub><mo>,</mo><mi>O</mi><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&beta;</mi><mo>)</mo></mrow><mfrac><mrow><mi>AreaCost</mi><mrow><mo>(</mo><msub><mi>E</mi><mi>k</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>max</mi><mi>Area</mi></mrow></mfrac><mo>+</mo></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><mi>&beta;</mi><mi>min</mi><mo>[</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>cos</mi><mi>ine</mi><mrow><mo>(</mo><msub><mi>E</mi><mi>k</mi></msub><mo>.</mo><mi>DcVector</mi><mo>,</mo><mi>O</mi><mo>.</mo><mi>DVector</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>公式2<maths num="0003"><![CDATA[<math><mrow><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>cos</mi><mi>ine</mi><mrow><mo>(</mo><msub><mi>E</mi><mi>k</mi></msub><mo>.</mo><mi>IcVector</mi><mo>,</mo><mi>O</mi><mo>.</mo><mi>IVector</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths>其中,β是一个权重参数,其取值范围为[0,1];AreaCost(E<sub>k</sub>)如公式1所示;maxArea指的是包含所有对象的最小矩形框,用于标准化;cosine(E<sub>k</sub>.DcVector,O.DVector)是指文本向量之间的余弦相似度,用于表示文本文件之间的相似度;其中E<sub>k</sub>.DcVector指的是伪文件结点中的文字权重向量,是伪文件结点中各个单词的最大权重,O.DVector指的是待查询的文件中文字权重向量;cosine(E<sub>k</sub>.IcVector,O.IVector)是指图像的可视化文字特征向量之间的余弦相似度,用于表示图像之间的相似度;E<sub>k</sub>.IcVector指的是伪文件中图像的可视化文字特征的权重向量,是伪文件结点中各个可视化文字的最大权重;O.IVector指的是待插入对象的可视化文字特征的权重向量;min指的是取最小值;c)空间混合索引机制的查询过程:查询过程使用最佳优先遍历算法检索空间网络对象,并计算结点的排名分值,从而找出前n个对象的列表,n为整数;在查询处理的过程中,需要用到两个距离公式,如公式3与公式4所示,表示待查询网络对象和包含在结点中的对象之间的空间文本距离的最小下界,用来在搜索的过程中进行排序和搜索空间的有效剪枝<maths num="0004"><![CDATA[<math><mrow><msub><mi>D</mi><mi>ST</mi></msub><mrow><mo>(</mo><mi>Q</mi><mo>,</mo><mi>O</mi><mo>)</mo></mrow><mo>=</mo><mi>&alpha;</mi><mfrac><mrow><msub><mi>D</mi><mi>&epsiv;</mi></msub><mrow><mo>(</mo><mi>Q</mi><mo>.</mo><mi>loc</mi><mo>,</mo><mi>O</mi><mo>.</mo><mi>loc</mi><mo>)</mo></mrow></mrow><mrow><mi>max</mi><mi>D</mi></mrow></mfrac><mo>+</mo></mrow></math>]]></maths>公式3<maths num="0005"><![CDATA[<math><mrow><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&alpha;</mi><mo>)</mo></mrow><mi>min</mi><mo>[</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mfrac><mrow><mi>P</mi><mrow><mo>(</mo><mi>Q</mi><mo>.</mo><mi>keywords</mi><mo>|</mo><mi>O</mi><mo>.</mo><mi>doc</mi><mo>)</mo></mrow></mrow><mrow><mi>max</mi><mi>DP</mi></mrow></mfrac><mo>)</mo></mrow><mo>,</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mfrac><mrow><mi>P</mi><mrow><mo>(</mo><mi>Q</mi><mo>.</mo><mi>keycategory</mi><mo>|</mo><mi>O</mi><mo>.</mo><mi>doc</mi><mo>)</mo></mrow></mrow><mrow><mi>max</mi><mi>IP</mi></mrow></mfrac><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths>其中,α是一个权重参数,其取值范围为[0,1];D<sub>ε</sub>(Q.loc,O.loc)表示待查询网络对象与数据库中已有网络对象之间的欧氏距离;maxD表示数据库中两个对象之间的最大距离,用于标准化;P(Q.keywords|O.doc)指的是待查询网络对象Q中文字的查询似然度语言模型的排列函数;P(Q.keycategory|O.doc)指的是待查询网络对象Q中图片特征的查询似然度语言模型的排列函数;maxDP用于标准化排列分数P(Q.keywords|O.doc)到(0,1),计算方法为<img file="FDA0000141273970000033.GIF" wi="650" he="118" />t<sub>d</sub>指网络对象中的关键字;maxIP用于标准化排列分数P(Q.keycategory|O.doc)到(0,1),计算方法为<img file="FDA0000141273970000034.GIF" wi="629" he="118" />t<sub>i</sub>指网络对象中图片特征的某一维特征;<maths num="0006"><![CDATA[<math><mrow><msub><mi>MIND</mi><mi>ST</mi></msub><mrow><mo>(</mo><mi>Q</mi><mo>,</mo><mi>N</mi><mo>)</mo></mrow><mo>=</mo><mi>&alpha;</mi><mfrac><mrow><msub><mi>MIND</mi><mi>&epsiv;</mi></msub><mrow><mo>(</mo><mi>Q</mi><mo>.</mo><mi>loc</mi><mo>,</mo><mi>N</mi><mo>.</mo><mi>rec</mi><mi>tan</mi><mi>gle</mi><mo>)</mo></mrow></mrow><mrow><mi>max</mi><mi>D</mi></mrow></mfrac><mo>+</mo></mrow></math>]]></maths>(4)<maths num="0007"><![CDATA[<math><mrow><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&alpha;</mi><mo>)</mo></mrow><mi>min</mi><mo>[</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mfrac><mrow><mi>P</mi><mrow><mo>(</mo><mi>Q</mi><mo>.</mo><mi>keywords</mi><mo>|</mo><mi>N</mi><mo>.</mo><mi>doc</mi><mo>)</mo></mrow></mrow><mrow><mi>max</mi><mi>DP</mi></mrow></mfrac><mo>)</mo></mrow><mo>,</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mfrac><mrow><mi>P</mi><mrow><mo>(</mo><mi>Q</mi><mo>.</mo><mi>keycategory</mi><mo>|</mo><mi>N</mi><mo>.</mo><mi>doc</mi><mo>)</mo></mrow></mrow><mrow><mi>max</mi><mi>IP</mi></mrow></mfrac><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths>其中,α是一个权重参数,其取值范围为[0,1];MIND<sub>ε</sub>(Q.loc,N.rectangle)分别表示待查询网络对象与伪文件对象之间的最小欧氏距离;P(Q.keywords|N.doc)指的是待查询网络对象O中图片特征的查询似然度语言模型的排列函数,与公式3不同的是用N.doc伪文件来代替O.doc;P(Q.keycategory|N.doc)指的是待查询文件Q中图片特征的查询似然度语言模型的排列函数,与公式3不同的是用N.doc伪文件来代替O.doc;maxD,maxDP,maxIP与公式3中相同;步骤c1)使用优先队列去跟踪记录需要被访问的结点和对象,对于创建好的综合文件图像倒排索引的空间树即DIIR树,根结点入队列;步骤c2)如果队列不为空,则队首元素出队列;如果队列为空,转步骤c6);步骤c3)如果取出的队首元素为一个网络对象,则将其作为找到的一个最相近的对象,如果已经找到n个最相近的对象,则说明完成此次查询,转步骤c6);否则,返回步骤c2);步骤c4)如果取出的队首元素是叶子结点,则将叶子结点中的每个对象作如下处理:计算其与待查询网络对象之间的距离,并将此对象与其距离加入到优先队列中,并返回到步骤c2);步骤c5)如果取出的队首元素是非叶子结点,则将其中的每个伪文件结点,作如下处理:计算其与待查询网络对象之间的距离,并将此伪文件结点与其距离加入到优先队列中,并返回到步骤c2);步骤c6)终止。
地址 210003 江苏省南京市鼓楼区新模范马路66号