发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的网页危险性的识别方法和装置。
根据本发明的一个方面。提供了一种网页危险性的识别方法,包括:
收集安全网页和危险网页,将所述安全网页和危险网页所包含的各个字符依次组成多个候选表征信息;
合并符合预设相似条件的候选表征信息;
统计合并后的各个候选表征信息对划分安全网页和危险网页的表征参数,并依据所述表征参数筛选多个候选表征信息作为网页危险性的表征信息;
依据所述表征信息训练网页危险性的预测模型,并依据所述预测模型对待检测网页的危险性进行识别。
本发明实施例中,所述将安全网页和危险网页所包含的各个字符依次组成多个候选表征信息的步骤包括:
提取安全网页和危险网页所对应的页面内容;
以连续的多个汉字或一个英文单词作为一个候选表征信息,从所述页面内容中提取多个候选表征信息。
本发明实施例中,所述合并符合预设相似条件的候选表征信息的步骤包括:
针对任意两个候选表征信息,提取所述两个候选表征信息的最长公共子串;
若所述最长公共子串的字符个数符合第一预设范围,且所述两个候选表征信息在安全网页和危险网页中总共出现的次数的差值符合第二预设范围;
则,删除在各个安全网页和危险网页中总共出现的次数较小的候选表征信息。
本发明实施例中,通过以下步骤确定两个候选表征信息的最长公共子串:
将两个候选表征信息所包含的字符分别以行和列的形式组成矩阵;
针对矩阵中的各个节点,若对应的行列字符相同,则设置节点值为1,若不同,则设置节点值为0,并以该节点的节点值与左上角的所有节点的节点值之和对该节点的节点值重新赋值;
提取节点值最大的节点所在对角线中,连续的、节点值非0的节点对应的字符作为最长公共子串。
本发明实施例中,所述表征参数包括表征信息与危险网页的相关性参数,以及表征信息对划分安全网页和危险网页的权重参数;
所述统计合并后的各个候选表征信息对划分安全网页和危险网页的表征参数,并依据表征参数筛选多个候选表征信息作为网页危险性的表征信息的步骤包括:
分别统计合并后的各个候选表征信息与危险网页的相关性参数,并筛选所述相关性参数从大到小排序靠前的候选表征信息;
分别统计筛选后的各个候选表征信息对划分安全网页和危险网页的权重参数,并筛选所述权重参数从大到小排序靠前的候选表征信息。
本发明实施例中,所述分别统计合并后的各个候选表征信息与危险网页的相关性参数的步骤包括:
依据合并后的各个候选表征信息在安全网页和危险网页中分别出现的次数,通过卡方检验法,计算各个候选表征信息与危险网页的相关性参数。
本发明实施例中,所述分别统计筛选后的各个候选表征信息对划分安全网页和危险网页的权重参数的步骤包括:
依据筛选后的各个候选表征信息在各个安全网页和各个危险网页中分别出现的次数,构建安全网页和危险网页的分类函数,并依据所述分类函数确定各个候选表征信息的权重参数。
本发明实施例中,通过支持向量机线性分类器构建安全网页和危险网页的分类函数。
本发明实施例中,所述预测模型包括各表征信息在网页中出现的次数与网页危险性的对应关系;
所述依据预测模型对待检测网页的危险性进行识别的步骤包括:
统计各表征信息在待预测网页中出现的次数,并输入所述预测模型;
所述预测模型依据各表征信息在待预测网页中出现的次数,以及各表征信息在网页中出现的次数与网页危险性的对应关系,生成待检测网页的危险性识别结果。
本发明实施例中,通过随机森林分类器,依据所述表征信息训练网页危险性的预测模型,所述预测模型包括多个决策树子模型,各决策树子模型分别包括表征信息在网页中出现的次数与网页危险性的对应关系;
所述预测模型依据各表征信息在待预测网页中出现的次数,以及各表征信息在网页中出现的次数与网页危险性的对应关系,生成待检测网页的危险性识别结果的步骤包括:
各决策树子模型依据各表征信息在待预测网页中出现的次数,以及各表征信息在网页中出现的次数与网页危险性的对应关系,生成待检测网页的危险性预测结果;
将各决策树子模型生成的危险性预测结果进行加权平均,将加权平均的结果作为待检测网页的危险性识别结果。
根据本发明的另一个方面,提供了一种网页危险性的识别装置,包括:
候选表征信息组成模块,适于收集安全网页和危险网页,将所述安全网页和危险网页所包含的各个字符依次组成多个候选表征信息;
合并模块,适于合并符合预设相似条件的候选表征信息;
筛选模块,适于统计合并后的各个候选表征信息对划分安全网页和危险网页的表征参数,并依据所述表征参数筛选多个候选表征信息作为网页危险性的表征信息;
模型训练模块,适于依据所述表征信息训练网页危险性的预测模型;
识别模块,适于依据所述预测模型对待检测网页的危险性进行识别。
本发明实施例中,所述候选表征信息组成模块包括:
第一提取子模块,适于提取安全网页和危险网页所对应的页面内容;
第二提取子模块,适于以连续的多个汉字或一个英文单词作为一个候选表征信息,从所述页面内容中提取多个候选表征信息。
本发明实施例中,所述合并模块包括:
公共子串提取子模块,适于针对任意两个候选表征信息,提取所述两个候选表征信息的最长公共子串;
范围判断子模块,判断所述最长公共子串的字符个数是否符合第一预设范围,且所述两个候选表征信息在安全网页和危险网页中总共出现的次数的差值是否符合第二预设范围;
信息删除子模块,适于当所述范围判断子模块的结果为是时,删除在各个安全网页和危险网页中总共出现的次数较小的候选表征信息。
本发明实施例中,所述公共子串提取子模块包括:
矩阵形成子单元,适于将两个候选表征信息所包含的字符分别以行和列的形式组成矩阵;
赋值子单元,适于针对矩阵中的各个节点,若对应的行列字符相同,则设置节点值为1,若不同,则设置节点值为0,并以该节点的节点值与左上角的所有节点的节点值之和对该节点的节点值重新赋值;
字符提取子单元,适于提取节点值最大的节点所在对角线中,连续的、节点值非0的节点对应的字符作为最长公共子串。
本发明实施例中,所述表征参数包括表征信息与危险网页的相关性参数,以及表征信息对划分安全网页和危险网页的权重参数;
所述筛选模块包括:
相关性筛选子模块,适于分别统计合并后的各个候选表征信息与危险网页的相关性参数,并筛选所述相关性参数从大到小排序靠前的候选表征信息;
权重筛选子模块,适于分别统计筛选后的各个候选表征信息对划分安全网页和危险网页的权重参数,并筛选所述权重参数从大到小排序靠前的候选表征信息。
本发明实施例中,所述相关性筛选子模块依据合并后的各个候选表征信息在安全网页和危险网页中分别出现的次数,通过卡方检验法,计算各个候选表征信息与危险网页的相关性参数。
本发明实施例中,所述权重筛选子模块依据筛选后的各个候选表征信息在各个安全网页和各个危险网页中分别出现的次数,构建安全网页和危险网页的分类函数,并依据所述分类函数确定各个候选表征信息的权重参数。
本发明实施例中,通过支持向量机线性分类器构建安全网页和危险网页的分类函数。
本发明实施例中,所述预测模型包括各表征信息在网页中出现的次数与网页危险性的对应关系;
所述识别模块包括:
次数统计子模块,适于统计各表征信息在待预测网页中出现的次数,并输入所述预测模型;
识别结果生成子模块,适于所述预测模型依据各表征信息在待预测网页中出现的次数,以及各表征信息在网页中出现的次数与网页危险性的对应关系,生成待检测网页的危险性识别结果。
本发明实施例中,所述预测模型通过随机森林分类器训练,所述预测模型包括多个决策树子模型,各决策树子模型分别包括表征信息在网页中出现的次数与网页危险性的对应关系;
所述识别结果生成子模块进一步包括:
预测结果生成子单元,适于各决策树子模型依据各表征信息在待预测网页中出现的次数,以及各表征信息在网页中出现的次数与网页危险性的对应关系,生成待检测网页的危险性预测结果;
预测结果处理子单元,适于将各决策树子模型生成的危险性预测结果进行加权平均,将加权平均的结果作为待检测网页的危险性识别结果。
本发明实施例通过收集已知的安全网页和危险网页,从收集的网页中提取多个候选表征信息,并依据候选表征信息在划分安全网页和危险网页时的表征参数,对候选表征信息进行筛选得到表征信息,相比于人工筛选,本发明实施例大大提高了信息提取的效率。
本发明实施例还依据筛选出的表征信息构建网页危险性识别模型,相比于现有技术中仅仅依据网页是否包含特征信息来识别危险网页,本发明对于危险网页,尤其是钓鱼网页可以提高识别的准确率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
参考图1,示出了本发明实施例所述的一种网页危险性的识别方法的流程图,具体可以包括:
步骤100,收集安全网页和危险网页,将所述安全网页和危险网页所包含的各个字符依次组成多个候选表征信息。
本发明实施例预先收集已识别的安全网页和危险网页,从安全网页和危险网页中提取候选表征信息,候选表征信息用于表征网页的危险性,在本发明中,危险网页可以是钓鱼网页。
在具体的实现中,可以通过网络蜘蛛抓取安全网页,也可以通过在客户端收集用户或技术人员提交的恶意网页。网络蜘蛛是通过网页的链接地址来寻找网页,可以预置一些安全网页的网址,网络蜘蛛从已知的安全网站的某一个页面(通常是首页)开始,读取网页的内容,提取该网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。
本发明实施例中,所述步骤100可以包括:
子步骤1001,提取安全网页和危险网页所对应的页面内容;
子步骤1002,以连续的多个汉字或一个英文单词作为一个候选表征信息,从所述页面内容中提取多个候选表征信息。
网页内容中包含有多个文本字符,本发明实施例通过各个安全网页和危险网页所对应的网页内容中提取候选表征信息,具体而言,针对所有网页所包含的网页内容,英文单词可以单独作为一个候选表征信息,连续的多个汉字也可以作为一个候选表针信息。针对汉字部分,可以分别以连续的两个汉字和连续的三个汉字作为候选表征信息,例如,针对页面内容中的某个语句“hello恭喜您中奖了”,可以拆分为如下的十个候选表征信息:
Hello
恭喜喜您您中中奖奖了
恭喜您喜您中您中奖中奖了
在具体的实现中,候选表征信息中所包含的汉字字符的个数可以依据具体的需要设定。
步骤102,合并符合预设相似条件的候选表征信息。
通过对网页内容的拆分,可以提取大量的候选表征信息,其中,有很多冗余的信息,例如:恭喜和恭喜您,含义相近,其表征作用相近,可以做合并处理。本发明实施例中,可以进一步对符合预设相似条件的候选表针信息进行提取,所述步骤102可以包括:
子步骤1021,针对任意两个候选表征信息,提取所述两个候选表征信息的最长公共子串;
子步骤1022,若所述最长公共子串的字符个数符合第一预设范围,且所述两个候选表征信息在安全网页和危险网页中总共出现的次数的差值符合第二预设范围,则执行子步骤1023;
子步骤1023,删除在各个安全网页和危险网页中总共出现的次数较小的候选表征信息。
针对任意的两个候选表征信息,提取出两者的最长公共子串,例如,“中华人民共和国”和“人民共和时代”的最长公共子串为“人民共和”。提取最长公共子串后,进一步判断,这两个候选表征信息的最长公共子串的字符个数是否符合第一预设范围,并且,这两个候选表征信息在安全网页和危险网页中总共出现的次数的差值符合第二预设范围。
具体而言,第一预设范围是指最长公共子串的字符个数,不超过两个候选表征信息中任意一个的字符个数的预设比例(例如2/3),例如,“人民共和”包含4个字符,未超过“中华人民共和国”或“人民共和时代”的字符个数的2/3。第二预设范围是指,两个候选表征信息在安全网页和危险网页中总共出现的次数的差值,小于较高出现次数的预设比例(例如1/10)。例如,“中华人民共和国”在安全网页和危险网页中总共出现的次数为100次,“人民共和时代”在安全网页和危险网页中总共出现的次数为50次,两者次数的差值为50次,较高出现次数为100次的预设比例1/10为10次,因此,差值50次超过了预设比例。
若两个候选表征信息满足如上的条件,则删除在安全网页和危险网页中总共出现的次数较小的一个候选表征信息。
在本发明实施例中,可以通过LCS(Longest Common Subsequence,最长公共子序列)算法提取两个候选表征信息的最长公共子串,具体可以包括如下步骤:
子步骤1021-1,将两个候选表征信息所包含的字符分别以行和列的形式组成矩阵;
子步骤1021-2,针对矩阵中的各个节点,若对应的行列字符相同,则设置节点值为1,若不同,则设置节点值为0,并以该节点的节点值与左上角的所有节点的节点值之和对该节点的节点值重新赋值;
子步骤1021-3,提取节点值最大的节点所在对角线中,连续的、节点值非0的节点对应的字符作为最长公共子串。
本发明实施例通过两个候选表征信息组成的矩阵提取最大公共子串。首先,将两个候选表征信息所包含的字符分别以行和列的形式组成矩阵,如图4A所示为候选表征信息构建的矩阵示意图,以“中华人民共和国”的各个字符为列,“人民共和时代”的各个字符为行构建矩阵。
矩阵中的各个节点的数据由行列所对应的字符确定。具体而言,对于矩阵中的某个节点,若对应的行列字符相同,则设置节点值为1,若不同,则设置为0,以图4A为例,第一列第一行的节点,对应的行字符为“中”,对应的列字符为“人”,行列字符不同,则设置节点值为0,第一列第三行的节点,对应的行字符为“人”,对应的列字符也为“人”,则设置节点值为1。
在对各个节点设置节点值后,针对各个节点,将节点值与左上角所有节点的节点值进行加和,并以加和的结果对该节点进行重新赋值。如上例,以第6行第4列的节点为例,左上角的节点值包括4个1,加和结果为4,因此,对该节点重新赋值后节点值为4,图4B为图4B是重新赋值后的矩阵示意图,其中的节点值是对图4A中节点值重新赋值后得到的。
在对矩阵进行重新赋值后,可以找出节点值最大的节点所在对角线,然后进一步找出连续的节点值非0的节点,将这些节点对应的字符作为两个候选表征字符的最长公共子串。如图4B所示,节点值最大的节点为第6行第4列的节点,该节点所在对角线中,连续非0的节点共有4个,对应的节点值分别为1、2、3和4,这些节点对应的字符为人民共和,即为最长公共字串。
在具体的实现中,对各个节点进行赋值后,也可以直接找出值为1的节点组成的对角线,将最长的对角线对应的字符提取出来,即为最长公共子串,如图4A中,值为1的4个节点组成的便是最长对角线,将其对应的字符提取出来便可以得到最长公共子串。
本发明实施例中,对提取的候选表征信息中任意两个表征信息进行比较,舍去符合上述条件的候选表征信息后,可以循环重复执行合并的步骤,直至任意两个候选表征信息均不符合预设相似条件,或是候选表征信息的个数满足预设个数为止。
步骤104,统计合并后的各个候选表征信息对划分安全网页和危险网页的表征参数,并依据所述表征参数筛选多个候选表征信息作为网页危险性的表征信息。
对候选表征信息进行合并后,进一步需要筛选其中表征参数符合要求的候选表征信息。表征参数是候选表征信息对划分安全网页和危险网页的衡量参数。表征参数可以是候选表征信息与危险网页的相关性参数,也可以是候选表征信息对划分安全网页和危险网页的权重参数。
在本发明实施例中,将相关性参数和权重参数结合起来对候选表征信息进行筛选,步骤104可以进一步包括:
子步骤1041,分别统计合并后的各个候选表征信息与危险网页的相关性参数,并筛选所述相关性参数从大到小排序靠前的候选表征信息。
子步骤1042,分别统计筛选后的各个候选表征信息对划分安全网页和危险网页的权重参数,并筛选所述权重参数从大到小排序靠前的候选表征信息。
本发明实施例中,通过相关性参数和权重参数对候选表征信息做两次筛选,首先计算各个候选表征信息与危险网页的相关性参数,然后筛选相关性参数从大到小排序靠前的候选表征信息。
具体的,可以依据合并后的各个候选表征信息在安全网页和危险网页中分别出现的次数,通过卡卡方检验法,计算各个候选表征信息与危险网页的相关性参数。
需要说明的是,卡卡方检验法中,统计各个候选表征信息在安全网页和危险网页中出现的次数时,是指各候选表征信息出现在多少个安全网页和多少个危险网页中,不关注在某个网页中出现了几次。
卡方检验是用于检验两个变量独立性的方法,常常先假设两个变量确实是独立的(原假设),然后观察实际值(也可以叫做观察值)与理论值(这个理论值是指“如果两者确实独立”的情况下应该有的值)的偏差程度,如果偏差足够小,就认为误差是很自然的样本误差,是测量手段不够精确导致或者偶然发生的,两者确实是独立的,此时就接受原假设;如果偏差大到一定程度,使得这样的误差不太可能是偶然产生或者测量不精确所致,就认为两者实际上是相关的,即否定原假设,而接受备择假设。
假设理论值为E,当提供了数个样本的观察值x1,x2,……xi,……xn之后,代入到如下公式中就可以求得卡方值φ:
用这个值与事先设定的阈值比较,如果大于阈值(即偏差很大),就认为原假设不成立,反之则认为原假设成立。
本发明实施例利用卡方检验算法处理候选表征信息与网页的表征关系,主要关心一个候选表征信息t(一个随机变量)与一个类别c(此处为危险网页,另一个随机变量)之间是否相互独立,如果独立,就可以说候选表征信息t对类别c完全没有表征作用,即无法根据t出现与否来判断一个网页是否属于c这个分类。通过卡方检验的方法可以找出一些对危险网页最相关的候选发明信息。
卡方检验使用“候选表征信息t与危险网页类别c不相关”来做原假设。选择的过程也即是计算每个候选发明信息与危险网页类别c的卡方值,从大到小排个序(此时卡方值越大越相关),取前k个就可以(k值可以根据需要设定)。
例如,有N个网页,其中有M个是危险网页的,需要考察一个候选发明信息“中奖”与类别“危险网页”之间的相关性,有四个观察值可以使用:
1、包含“中奖”且属于“危险网页”类别的网页数为A
2、包含“中奖”但不属于“危险网页”类别的网页数为B
3、不包含“中奖”但却属于“危险网页”类别的网页数为C
4、既不包含“中奖”也不属于“危险网页”类别的网页数为D
将上面的参数代入卡方检验的公式,可以得到,针对候选表征信息t对危险网页类别c的相关性参数,也即是卡方检验值φ满足如下公式:
在具体的实现中,可以依据筛选后的各个候选表征信息在各个安全网页和各个危险网页中分别出现的次数,构建安全网页和危险网页的分类函数,并依据所述分类函数确定各个候选表征信息的权重参数。
本发明实施例中,通过分类器计算各个候选表征信息对划分安全网页和危险网页的权重参数,依据权重参数进行进一步的筛选。
具体的,首先统计经卡方检验筛选后的各候选表征信息,在各个安全网页和危险网页中出现的次数,不同于卡方检验,分类器统计的次数中,包括了各候选表征信息在各个网页中分别出现的次数。
依据统计结果可以构建安全网页和危险网页的分类函数,在本发明实施例的一种优选实施例中,可以通过支持向量机线性分类器(support vectormachine,SVM)构建安全网页和危险网页的分类函数。
支持向量机是一种基于分类边界的方法。以二维数据为例,其基本原理是,如果训练数据分布在二维平面上的点,它们按照其分类聚集在不同的区域。基于分类边界的分类算法的目标是,通过训练,找到这些分类之间的边界,直线的边界称为线性划分,曲线的边界称为非线性划分。对于多维数据(如N维),可以将它们视为N维空间中的点,而分类边界就是N维空间中的面,称为超面(超面比N维空间少一维)。线性分类器使用超平面类型的边界,非线性分类器使用超曲面。
本发明实施例中,假设所有的候选表征信息和目标(正常网页和恶意网页)是呈线性关系的,线性SVM分类器最终的输出是高维空间的一个超平面,在超平面的函数表达式中,对每一维都会有一个不同的权重参数,利用这个权重的高低对候选表征信息进行筛选。
此处以二维数据为例,说明分类函数的构建过程。如图5所示,横纵坐标分别代表两个候选表征信息A和B,三角形代表正常网页,方块代表危险网页,三角形或方块的位置坐标代表了两个候选表征信息在网页中出现的次数,例如,纵坐标上的方块表示,在这个网页中候选表征信息B出现了1次,候选表征信息A未出现。坐标为(1,1)的三角形表示,这个网页中候选表征信息A在出现了1次,候选表征信息B也出现了1次。依据各个网页所聚集的区域,可以用一条直线作为划分两个区域的边界,表示为-3x+y+1=0,将边界函数中各个候选发明信息对应的系数,作为该候选发明信息的权重参数,如此例,对应的将x的系数-3作为候选表征信息A的权重参数,将y的系数1作为候选表征信息B的权重参数。
本发明实施例中,先用卡方检验法对候选发明信息进行筛选,再用SVM分类器再次进行筛选,从而得出对划分安全网页和危险网页表征参数较优的表征信息。传统的信息选择方式是针对人工选择的特征进行进一步的筛选,这种方式无法应对更新频率极快的网页结构。本发明实施例采用的是一种数据驱动的表征信息选择方式,所有的表征信息都是通过对已知数据的统计分析得到,相比于人工筛选信息,本发明实施例大大提高了信息提取的效率。
步骤106,依据所述表征信息训练网页危险性的预测模型,并依据所述预测模型对待检测网页的危险性进行识别。
对候选表征信息进行筛选得到表征参数较优的表征信息后,依据表征信息,以及各表征信息在安全网页和危险网页中出现的次数,构建网页危险性的预测模型,依据预测模型对待预测网页进行识别,相比于现有技术中仅仅依据网页是否包含特征信息来识别危险网页,本发明可以提高危险网页识别的准确率。
预测模型可以包括各表征信息在网页中出现的次数与网页危险性的对应关系。
在本发明实施例中,所述步骤106可以进一步包括:
子步骤1061,统计各表征信息在待预测网页中出现的次数,并输入所述预测模型;
子步骤1062,所述预测模型依据各表征信息在待预测网页中出现的次数,以及各表征信息在网页中出现的次数与网页危险性的对应关系,生成待检测网页的危险性识别结果。
预测模型可以包括各表征信息在网页中出现的次数与网页危险性的对应关系,在依据训练好的模型对待预测网页进行预测时,首先需要统计各个表征信息,在待预测网页中出现的次数,然后将这些统计的次数输入预测模型,便可以生成对待检测网页的危险性识别结果。
在本发明的一种优选实施例中,可以通过随机森林分类器,依据所述表征信息训练网页危险性的预测模型。
在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。
根据下列算法而建造每棵树:
1、用N来表示训练例子(安全网页和危险网页)的个数,M表示变量(即表征信息)的数目;
2、设定一个值m,用于确定在树的一个节点上做决定时,会使用到多少个变量,m小于M;
3、从N个训练案例中以可重复取样的方式,取样N次,形成一组训练集(即bootstrap取样),并使用这棵树来对剩余预测其类别,并评估其误差;
4、对于树上的每一个节点,随机选择m个基于此点上的变量。根据这m个变量,计算其最佳的分割方式;
5、每棵树都会完整成长而不会剪枝(pruning)(这有可能在建完一棵正常树状分类器后会被采用)。
随机森林的优势在于可以分布式计算,大大提高了训练模型的效率。
具体而言,在使用随机森林训练模型时,得到的预测模型包括多个决策树子模型,各决策树子模型分别包括各表征信息在网页中出现的次数与网页危险性的对应关系。在这种情况下,子步骤1062可以进一步包括:
各决策树子模型依据各表征信息在待预测网页中出现的次数,以及各表征信息在网页中出现的次数与网页危险性的对应关系,生成待检测网页的危险性预测结果;
将各决策树子模型生成的危险性预测结果进行加权平均,将加权平均的结果作为待检测网页的危险性识别结果。
在对待预测网页进行预测时,将表征信息在待预测网页中出现的次数输入各决策树子模型,各决策树子模型分别输出对待检测网页的预测结果,然后根据预先设置的各个决策树子模型预测结果的权重,可以对多个预测结果进行加权平均,将加权平均的结果作为待检测网页的危险性识别结果。例如,预测模型包括3个决策树子模型,对应的权重分别为1/6、1/3和1/2,三个子模型对待预测网页的危险性的预测结果分别是60%、30%和20%,则危险性识别结果为60%×1/6+30%×1/3+20%×1/2=30%,代表成为危险网页的可能概率为30%。
如图6所示的待测网页危险性识别的示意图,对待检测网页首先提取各表征信息在待检测网页中出现的次数,将各个表征信息表示为向量的形式,分别输入到决策树子模型1-K中,然后依据K个各决策树子模型的预测结果,生成待检测网页的危险性识别结果。
在本发明实施例中,预测模型可以按照预设频率进行训练,例如每小时训练一次,以及时对预测模型的精度进行检查,训练样本可以是已知分类的安全网页和危险网页,若预测的精度(准确率)低于预设值,则可以认为精度不达标,此时可以进一步分析,预测结果是将某些安全网页识别成了危险网页,还是漏报了某些危险网页。若是将某些安全网页识别成了危险网页,可以在训练样本中再添加一些安全网页的样本,若漏报了某些危险网页,则可以在训练样本中再添加一些危险网页的样本。每次训练预测模型直至精度达标后,可以将最新的预测模型更新原来的预测模型。
本发明实施例实现了对网页危险性的预测,在具体的实现中,还可以对危险网页进行进一步的分类,例如,虚假票务、虚假中奖、虚假网银等分类,具体的实现方法类似于本发明实施例所述的方法,本发明对此并不做限定。
本发明实施例通过收集已知的安全网页和危险网页,从收集的网页中提取多个候选表征信息,并依据候选表征信息在划分安全网页和危险网页时的表征参数,对候选表征信息进行筛选得到表征信息,相比于人工筛选,本发明实施例大大提高了信息提取的效率。
本发明实施例还依据筛选出的表征信息构建网页危险性识别模型,相比于现有技术中仅仅依据网页是否包含特征信息来识别危险网页,本发明对于危险网页,尤其是钓鱼网站可以提高识别的准确率。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必需的。
参考图2,示出了本发明实施例所述的一种网页危险性的识别装置的实施例的结构框图,具体可以包括:
候选表征信息组成模块201,适于收集安全网页和危险网页,将所述安全网页和危险网页所包含的各个字符依次组成多个候选表征信息;
合并模块202,适于合并符合预设相似条件的候选表征信息;
筛选模块203,适于统计合并后的各个候选表征信息对划分安全网页和危险网页的表征参数,并依据所述表征参数筛选多个候选表征信息作为网页危险性的表征信息;
模型训练模块204,适于依据所述表征信息训练网页危险性的预测模型;
识别模块205,适于依据所述预测模型对待检测网页的危险性进行识别。
本发明实施例中,所述候选表征信息组成模块可以包括:
第一提取子模块,适于提取安全网页和危险网页所对应的页面内容;
第二提取子模块,适于以连续的多个汉字或一个英文单词作为一个候选表征信息,从所述页面内容中提取多个候选表征信息。
本发明实施例中,所述合并模块可以包括:
公共子串提取子模块,适于针对任意两个候选表征信息,提取所述两个候选表征信息的最长公共子串;
范围判断子模块,判断所述最长公共子串的字符个数是否符合第一预设范围,且所述两个候选表征信息在安全网页和危险网页中总共出现的次数的差值是否符合第二预设范围;
信息删除子模块,适于当所述范围判断子模块的结果为是时,删除在各个安全网页和危险网页中总共出现的次数较小的候选表征信息。
本发明实施例中,所述公共子串提取子模块可以包括:
矩阵形成子单元,适于将两个候选表征信息所包含的字符分别以行和列的形式组成矩阵;
赋值子单元,适于针对矩阵中的各个节点,若对应的行列字符相同,则设置节点值为1,若不同,则设置节点值为0,并以该节点的节点值与左上角的所有节点的节点值之和对该节点的节点值重新赋值;
字符提取子单元,适于提取节点值最大的节点所在对角线中,连续的、节点值非0的节点对应的字符作为最长公共子串。
本发明实施例中,所述表征参数可以包括表征信息与危险网页的相关性参数,以及表征信息对划分安全网页和危险网页的权重参数;
所述筛选模块可以包括:
相关性筛选子模块,适于分别统计合并后的各个候选表征信息与危险网页的相关性参数,并筛选所述相关性参数从大到小排序靠前的候选表征信息;
权重筛选子模块,适于分别统计筛选后的各个候选表征信息对划分安全网页和危险网页的权重参数,并筛选所述权重参数从大到小排序靠前的候选表征信息。
本发明实施例中,所述相关性筛选子模块可以依据合并后的各个候选表征信息在安全网页和危险网页中分别出现的次数,通过卡方检验法,计算各个候选表征信息与危险网页的相关性参数。
本发明实施例中,所述权重筛选子模块可以依据筛选后的各个候选表征信息在各个安全网页和各个危险网页中分别出现的次数,构建安全网页和危险网页的分类函数,并依据所述分类函数确定各个候选表征信息的权重参数。
本发明实施例中,可以通过支持向量机线性分类器构建安全网页和危险网页的分类函数。
本发明实施例中,所述预测模型可以包括各表征信息在网页中出现的次数与网页危险性的对应关系;
所述识别模块可以包括:
次数统计子模块,适于统计各表征信息在待预测网页中出现的次数,并输入所述预测模型;
识别结果生成子模块,适于所述预测模型依据各表征信息在待预测网页中出现的次数,以及各表征信息在网页中出现的次数与网页危险性的对应关系,生成待检测网页的危险性识别结果。
本发明实施例中,所述预测模型可以通过随机森林分类器训练,所述预测模型包括多个决策树子模型,各决策树子模型分别包括表征信息在网页中出现的次数与网页危险性的对应关系;
所述识别结果生成子模块进一步包括:
预测结果生成子单元,适于各决策树子模型依据各表征信息在待预测网页中出现的次数,以及各表征信息在网页中出现的次数与网页危险性的对应关系,生成待检测网页的危险性预测结果;
预测结果处理子单元,适于将各决策树子模型生成的危险性预测结果进行加权平均,将加权平均的结果作为待检测网页的危险性识别结果。
参考图3,示出了本发明实施例所述的一种网页危险性的识别系统的实施例的结构框图,具体可以包括:
全网蜘蛛服务器21、网页检测服务器22、客户端23、网页存储服务器24、网页危险性识别引擎25;
所述全网蜘蛛服务器21、网页检测服务器22和客户端23收集待检测网页,并发送到网页存储服务器24;
所述网页危险性识别引擎25从所述网页存储服务器24提取待检测网页并对待检测网页的危险性进行识别;
所述网页危险性识别引擎25包括:
候选表征信息组成模块251,适于收集安全网页和危险网页,将所述安全网页和危险网页所包含的各个字符依次组成多个候选表征信息;
合并模块252,适于合并符合预设相似条件的候选表征信息;
筛选模块253,适于统计合并后的各个候选表征信息对划分安全网页和危险网页的表征参数,并依据所述表征参数筛选多个候选表征信息作为网页危险性的表征信息;
模型训练模块254,适于依据所述表征信息训练网页危险性的预测模型;
识别模块255,适于依据所述预测模型对待检测网页的危险性进行识别。
本发明实施例中,其中,全网蜘蛛服务器21通过抓取互联网的网页或是对网页进行初步的判断,发现一些可疑的网页作为待检测网页。
网页监测服务器22一方面可以对预置的安全网页数据库中的安全网页进行检测,若发现某个安全网页被访问,则检测其页面内容是否发生变化,若页面内容有改动,可能会是被恶意利用从而成为钓鱼网页,对于这类网页则发送到网页存储服务器,以进一步通过网页危险性识别引擎对更新后的网页进行识别;网页监测服务器22还可以监测互联网新增的网页,将新增的网页发送到网页存储服务器作为待检测的网页。目前,网页监测服务器集群日均监测的网页可达数百亿,通过上述方法找出的待检测网页可以达到数十亿,处理任务量与网页搜索服务为一个量级,从而可以更及时更有效的发现钓鱼网页。
本发明实施例中还通过客户端23收集待检测网页,客户端具体的可以是网盾客户端,可以获取一些全网蜘蛛服务器21和网页监测服务器22没有发现的一些网页。
本发明实施例中,所述系统还可以包括危险网页查询引擎26和危险网页库27,所述网页存储服务器24在发送到网页危险性识别引擎25之前,危险网页查询引擎26可以通过预置的危险网页库27对待检测网页进行筛选,若待检测网页存在于危险网页库27中,则确定该网页为危险网页,不再进一步发送到网页危险性识别引擎25进行识别,若不存在于危险网页库27中,则发送到网页危险性识别引擎25进行识别。
在具体的实现中,客户端23提交的待检测网页可以直接发送到危险网页查询引擎26,进一步在预置的危险网页库27中进行查询,若危险网页库中存在待检测网页,则可以直接返回查询结果为危险网页;若不存在,则可以进一步发送到网页危险性识别引擎25中对网页危险性进行识别,进而可以实现对危险网页的实时查询。
对于上述网页危险性的识别装置和系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图1所示方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网页危险性的识别装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。