网页内容安全实时监测方法与流程

文档序号:11458821阅读:236来源:国知局
网页内容安全实时监测方法与流程

本发明涉及通信技术/计算机技术,具体涉及网页内容安全实时监测方法。



背景技术:

目前在网页安全内容实时监测领域的主流方式是在服务器端部署防篡改方案。面向web服务器端的内容检测研究较为成熟,已经出现了不少实用系统。该方案需要在web服务器端安装监测软件,该软件包含核心内嵌、外挂轮询、事件触发等技术。面向服务端的检测系统属于单机部署模式。其不仅部署复杂、应用成本高,而且降低网站性能。而在监控网页结构类型众多、管理又分散的网站时,由于网页数量巨大,并不适合通过现有技术实现对网页内容的实时监控。



技术实现要素:

鉴于上述问题,本发明提出了克服上述问题或者至少部分地解决上述问题的网页内容安全实时监测方法。

为此目的,第一方面,本文提供一种网页内容安全实时监测系统,包括任务调度模块、监控模块、分析引擎模块;

任务调度模块、监控模块分别部署于分布式系统的一个第一节点上;

所述任务调度模块用于将需要抓取的目标网址,以及预设的抓取时间或抓取频率分配给各分析引擎模块;

所述监控模块用于监控分析引擎模块执行分析任务的状态和资源占用情况,以及任务状态和资源占用情况上报任务调度模块;

多个分析引擎模块分别部署在不同的分布式系统的第二节点上;

分析引擎模块用于抓取目标网页,获得网页文件,对网页文件进行安全性分析。

进一步,分析引擎模块还用于根据预设的抓取规则获得线索,根据线索提取第一网页文件中的子目标网页地址,根据线索获取第二网页文件。

进一步,分析引擎模块还用于对网页文件进行恶意代码分析后,还对网页文件进行暗链分析;

分析引擎模块还用于去除网页文件中的标签注释文本后,分别计算获得的网页文件与对应的安全网页文件的simhash值,计算获得的网页文件的simhash值与安全网页文件之间的的simhash值之间的海明距离,根据海明距离判断网页相似度,若相似,则该获取的网页文件为安全网页。

进一步,分析引擎模块还用于去除网页文件中的标签注释文本后,分别计算获得的网页文件与对应的安全网页文件的simhash值,计算获得的网页文件的simhash值与安全网页文件之间的的simhash值之间的海明距离,根据海明距离判断网页相似度,若相似,则该获取的网页文件为安全网页。

进一步,分析引擎模块还用于比较网页文件与对应的安全网页文件的网页编码、文件类型、数据长度是否一致,若不一致则该网页为存在安全风险的网页。

进一步,分析引擎模块还用于根据设置的敏感词构造dfa状态机;对网页文件进行分词,获得字符串;在dfa状态机中遍历查询所有获得的字符串,若在dfa状态机中查找到对应的字符串,则该网页文件包含敏感词。

进一步,分析引擎模块还用于将安全性分析获得结果按设定的方式存储;

将分析引擎的分析结果进行统计分析,并将分析结果发送至交互界面显示。

第二方面,本发明提出网页内容安全实时监测方法,其特征在于,包括步骤:

根据预设的目标网址、以及预设的抓取时间或抓取频率,

通过部署在分布式系统上的网站爬虫工具抓取目标网页,获得网页文件;

对网页文件进行安全性分析。

可选的,所述网站爬虫工具抓取目标网页,包括步骤:

根据预设的抓取规则获得线索,根据线索提取第一网页文件中的子目标网页地址,根据线索获取第二网页文件。

可选的,所述步骤对网页文件进行安全性分析包括,对网页文件进行恶意代码分析后,还对网页文件进行暗链分析。

可选的,所述对网页文件进行安全性分析还包括步骤:去除网页文件中的标签注释文本后,计算获得的网页文件与对应的安全网页文件的各自的simhash值,计算获得的网页文件的simhash值与安全网页文件之间的海明距离,根据海明距离判断网页相似度,若相似,则该获取的网页文件为安全网页。

可选的,所述对网页文件进行安全性分析还包括步骤:比较网页文件与对应的安全网页文件的网页编码、文件类型、数据长度是否一致,若不一致则该网页为存在安全风险的网页。

可选的,所述对网页文件进行安全性分析还包括步骤,根据设置的敏感词构造dfa状态机;对网页文件进行分词,获得字符串;在dfa状态机中遍历查询所有获得的字符串,若在dfa状态机中查找到对应的字符串,则该网页文件包含敏感词。

可选的,在步骤对网页文件进行安全性分析之后,还包括步骤:

将安全性分析获得结果按设定的方式存储;

将分析引擎的分析结果进行统计分析,并将分析结果发送至交互界面显示。

由上述技术方案可知,区别于现有技术系统采用分布式部署,允许客户在需要时灵活的增加或减少线上的分析引擎数量,从而实现对含有海量的动态数据页面进行监测。

用户根据检测任务的需求,在监控模块中预设对应目的网址的抓取时间或抓取频率,从而根据检监测网站的特点运行监测任务,避免对客户网络和服务器本身造成压力,对服务器性能影响较小。

上述方法无需在服务器上安装客户端,能够透明接入客户网络环境,易于部署,系统内包含任务调度和监视模块,只需简单的配置网站的首页及基本参数即可启动监测。极大的降低了实施维护成本。

前面是提供对本发明一些方面的理解的简要发明内容。这个部分既不是本发明及其各种实施例的详尽表述也不是穷举的表述。它既不用于识别本发明的重要或关键特征也不限定本发明的范围,而是以一种简化形式给出本发明的所选原理,作为对下面给出的更具体的描述的简介。应当理解,单独地或者组合地利用上面阐述或下面具体描述的一个或多个特征,本发明的其它实施例也是可能的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中实施所述方法的监测系统结构示意图;

图2为本发明的一个实施例中执行所述方法的流程示意图。

具体实施方式

下面将结合示例性的检测系统描述本发明。

如图1所示,在本发明的一个实施例中,本发明公开的网页内容安全实时监测系统用于实现本发明对应的方法,其中系统包括任务调度模块、监控模块、分析引擎模块;

任务调度模块、监控模块部署于分布式系统的一个第一节点上;在分布式系统中第一几点可以有1个(任务调度模块、监控模块都部署在同一个第一节点中),也可以有2个((任务调度模块、监控模块都可以是分别部署在不同的第一节点中)。任务调度模块和监控模块只有一个。

所述任务调度模块用于将需要抓取的目标网址,以及预设的抓取时间或抓取频率分配给各分析引擎模块;

所述监控模块用于监控分析引擎模块执行分析任务的状态和资源占用情况,以及任务状态和资源占用情况上报任务调度模块;

多个分析引擎模块分别部署在不同的分布式系统的第二节点上;可以理解的是,可以根据监控任务的情况,部署对应数量的分析引擎模块,在同一个节点上,不存在多个分析引擎模块;第一节点连接第二节点。第一节点上也可以部署分析引擎模块,即一个第一节点可以是第一节点的同时也是第二节点。

分析引擎模块用于抓取目标网页,获得网页文件,对网页文件进行安全性分析。

区别于现有技术系统采用分布式部署,允许客户在需要时灵活的增加或减少线上的分析引擎数量,从而实现对海量的数据页面进行监测。

在本发明的另一些实施例中,分析引擎模块还用于根据预设的抓取规则获得线索,根据线索提取第一网页文件中的子目标网页地址,根据线索获取第二网页文件。

预设的抓取规则可以限定在第一网页文件中抓取链接的位置、设置抓取链接的深度(即第一个第一网页文件到最后一个第二网页文件所经过的链接个数)、页面数、第一网页文件中的链接类型等。

通过在监控模块中设置抓取规则,使用户可以根据检测任务的需求,有针对的抓取网页的数据;同时,通过根据设定的深度、类型等线索,实现网站爬虫自动抓取第一级网页到设定深度的网页的内容,从而实现大量的动态网页的监测,有效识别网页替换、恶意链接等行为。

分析引擎模块还用于根据预设的抓取规则获得线索,根据线索提取第一网页文件中的子目标网页地址,根据线索获取第二网页文件。

在本发明的另一些实施例中,分析引擎模块还用于对网页文件进行恶意代码分析后,还对网页文件进行暗链分析;

分析引擎模块还用于去除网页文件中的标签注释文本后,分别计算获得的网页文件与对应的安全网页文件的simhash值,计算获得的网页文件的simhash值与安全网页文件之间的的simhash值之间的海明距离,根据海明距离判断网页相似度,若相似,则该获取的网页文件为安全网页。

或者分析引擎模块用于去除网页文件中的标签注释文本后,再分别计算获得的网页文件与对应的安全网页文件的simhash值,计算获得的网页文件的simhash值与安全网页文件之间的的simhash值之间的海明距离,根据海明距离判断网页相似度,若相似,则该获取的网页文件为安全网页;

分析引擎模块还用于比较网页文件与对应的安全网页文件的网页编码、文件类型、数据长度是否一致,若不一致则该网页为存在安全风险的网页。

该系统包括用于与用户交互的交互界面,其可以是webui(即基于html和脚本所设计的用户交互界面);包括用于调度分布式任务的任务调度模块,任务调度模块用于将需要抓取的目标网址分配给各分析引擎模块;分析引擎模块包括网站爬虫单元、分析处理单元和结果上报单元。本领域技术人员容易理解,可以根据检测网页任务的大小,部署多个分析引擎模块,实现对海量网页的实时监控。监控模块与任务调度模块、各分析引擎模块通信连接,用于监控分析引擎模块执行分析任务的状态;网站爬虫单元用于根据目标网址抓取网页文件。分析处理单元与网站爬虫模块通信连接,用于对抓取的网页进行安全性分析。结果上报单元用于将安全分析的结果上传至存储设备存储,以及在对安全分析的结果进行标准化处理后,存储于数据库中。

本发明公开网页内容安全实时监测方法,包括步骤:

根据预设的目标网址、以及预设的抓取时间或抓取频率,

通过部署在分布式系统上的网站爬虫工具抓取目标网页,获得网页文件;

对网页文件进行安全性分析。

网站爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的线索,自动的抓取万维网信息的程序或者脚本,其中本文的实施例中优选采用基于web2.0(web2.0,指的是一个利用web的平台,由用户主导而生成的内容互联网产品模式,为了区别传统由网站雇员主导生成的内容而定义为web2.0)的网站爬虫,从而支持网站中的javascript(javascript是一种由netscape的livescript发展而来的原型)、ajax(asynchronousjavascriptandxml,异步的javascript和xml)等web2.0的技术特性,能够有效的提高客户端模式获取网页可见范围,为后续内容分析提供充分的数据支撑。

本文中的网页文件为根据http协议(超文本传输协议,hypertexttransferprotocol,是互联网上应用最为广泛的一种网络协议)从目标网址中获取到的文本。

区别于现有技术系统采用分布式部署,允许客户在需要时灵活的增加或减少线上的分析引擎数量,从而实现对海量数据页面进行监测。

用户根据检测任务的需求,在监控模块中预设对应目的网址的抓取时间或抓取频率,从而根据检监测网站的特点运行监测任务,避免对客户网络和服务器本身造成压力,对服务器性能影响较小。

上述方法无需在服务器上安装客户端,能够透明接入客户网络环境,易于部署,系统内包含任务调度和监视模块,只需简单的配置网站的首页及基本参数即可启动监测。极大的降低了实施维护成本。在本文一个具体实施例中所述网站爬虫工具抓取目标网页,包括步骤:

根据预设的抓取规则获得线索,例如提取第一网页文件中的链接作为线索,根据线索获取第二网页文件。

预设的抓取规则可以限定在第一网页文件中抓取链接的位置、设置抓取链接的深度(即第一个第一网页文件到最后一个第二网页文件所经过的链接个数)、页面数、第一网页文件中的链接类型等。

通过在监控模块中设置抓取规则,使用户可以根据检测任务的需求,有针对的抓取网页的数据;同时,通过根据设定的深度、类型等线索,实现网站爬虫自动抓取第一级网页到设定深度的网页的内容,从而实现大量的动态网页的监测,有效识别网页替换、恶意链接等行为。

所述步骤对网页文件进行安全性分析包括,对网页文件进行恶意代码分析后,还对网页文件进行暗链分析。

暗链通常是指黑客在入侵网站获取网站控制权限后,在网页中植入链接信息等代码。暗链的实现原理很简单,均是通过css样式完成,按实现方式来分类,通常有四种类型的暗链:

1.通过将display属性设置为none等使得链接信息不可见。

2.通过将链接字符无限小,达到肉眼不可见。

3.通过使链接字符与网页背景色一致或相似,达到链接不可见。

4.通过链接位置定位,使得链接出现至可见屏外,达到暗链效果。

暗链的最显着牲就是“暗”,暗即在它是隐藏在网页源代码中的,通过肉眼直接在页面上看不见的。

在对网页文件进行恶意代码分析后,还对网页进行暗链分析,减少了人工分析网络安全的难度,提高了网页安全监测的性能。

在本文的一个实施例中对网页文件进行安全性分析还包括步骤:去除网页文件中的标签注释文本后,计算获得的网页文件与对应的安全网页文件的各自的simhash值,计算获得的网页文件的simhash值与安全网页文件之间的海明距离,根据海明距离值判断网页相似度,若相似,则该获取的网页文件为安全网页。

从一个文本计算得到simhash值是过程大概如下:

将文本进行关键词抽取(其中包括分词和计算权重),抽取出n个(关键词,权重)对,将“(关键词,权重)对”记为feature_weight_pairs=[fw1,fw2…fwn],其中fwn=(feature_n,weight_n)。

hash_weight_pairs=[(hash(feature),weight)forfeature,weightinfeature_weight_pairs]生成(hash,weight),此时假设hash生成的位数bits_count=6;

然后对hash_weight_pairs进行位的纵向累加,如果该位是1,则+weight,如果是0,则-weight,最后生成bits_count个数字,例如是[13,108,-22,-5,-32,55],这里产生的值和hash函数所用的算法相关。

根据每一位的是大于等于0,则该位为1,若为负数则为0,例如[13,108,-22,-5,-32,55]得到simhash值为110001。

simhash本质上是局部敏感性的hash,和md5之类的不一样。正因为它的局部敏感性,所以我们可以使用海明距离来衡量simhash值的相似度。

海明距离值的计算方式为:二进制串a和二进制串b的海明距离就是axorb后二进制数值中1的个数。

由上述算法可知,比较网页文件与对应安全网页的计算量级小,计算速度快,从而在提高海量网页的实时监测小了。

若网页文件与对应的安全网页通过计算海明距离比较,判断得出网页文件与安全网页的内容相似度符合预设值,则认为网页文件未被修改,是安全的。

在另一些实施例中,对所述对网页文件进行安全性分析还包括步骤:比较网页文件与对应的安全网页文件的网页编码、文件类型、数据长度是否一致,若不一致则该网页为存在安全风险的网页。

通过对文件编码、文件类型和数据长度等比较,从而较快的识别网页文件是否被整体串改的情况。

所述对网页文件进行安全性分析还包括步骤,根据设置的敏感词构造dfa(有穷状态自动机)状态机;对网页文件进行分词,获得字符串;在dfa状态机中遍历查询所有获得的字符串,若在dfa状态机中查找到对应的字符串,则该网页文件包含敏感词。

构造dfa状态机的过程如下:

1:把{s}放进队列l和集合d中。其中s是nfa(有穷状态自动机)的起始状态。队列l放置的是未被处理的已经创建了的dfa状态,集合d放置的是已经存在的dfa状态。dfa的每一个状态都对应着nfa的一些状态。

2:从队列l中取出一个状态,计算从这个状态输出的所有边所接受的字符集的并集,然后对该集合中的每一个字符寻找接受这个字符的边,把这些边的目标状态的并集t计算出来。如果t∈d则代表当前字符指向了一个已知的dfa状态。否则则代表当前字符指向了一个未创建的dfa状态,这个时候就把t放进l和d中。在这个步骤里有两层循环:第一层是遍历所有接受的字符的并集,第二层是对每一个可以接受的字符遍历所有输出的边计算目标dfa状态所包含的nfa状态的集合。

dfa状态机构造完成后,向状态机输入字符串,若得到终止状态,则字符串中包含敏感词。

相比于现有技术中使用正则表达式,文本查找等监测敏感词的方法,本文提供的构造dfa从而监测敏感词的方法其监测敏感词的速度更快,效率更高,更适用于实现海量的网页内容中的敏感词监测。

将安全性分析获得结果按设定的方式存储;

将分析引擎的分析结果进行统计分析,并将分析结果发送至交互界面显示。

如图2所示,在本发明的一个完整实施例中,其主要实施过程包括:

s201:输入预设的监测网站的地址,抓取规则(包括抓取深度、过滤文件类型)并发抓取网页的数量、登入代理、数据存储等信息;

s202:网站爬虫根据预设的上述信息抓取网页文件(即下载网页),

s203:在抓取的过程中,根据http协议获得网页文件的网页编码、文件类型、数据长度等信息;

s204:将网页文件转换为utf-8编码;

s205:解析网页文件的结构,提取网页文件的标题、内容等;

s206:根据抓取规则判断网页文件中的链接是否作为线索用于递归获得第二网页文件,若是则s207将该链接放入url队列等待抓取;若否则不向url队列中放入网页文件的链接;

对抓取到的网页进行s211网页相似度分析、s212敏感词分析、s221恶意代码分析和s222暗链分析;

在分析恶意代码之后对其进行暗链分析;

在网页相似度分析之后进行敏感词分析;

s231上述分析的结果和数据上报至相应的标准化模块,将分析结果按预设的格式存储。

s241管理待抓取的url队列,url队列中的url为待抓取的url;管理包括增加url,取出url等操作。

可以理解的是上述方法可以通过软件/计算机程序实现,也可以通过硬件实现,在通过软件实现是,该软件/计算机程序存储或运行于计算机可读介质中。

本文中使用的“至少一个”、“一个或多个”以及“和/或”是开放式的表述,在使用时可以是联合的和分离的。例如,“a、b和c中的至少一个”,“a、b或c中的至少一个”,“a、b和c中的一个或多个”以及“a、b或c中的一个或多个”指仅有a、仅有b、仅有c、a和b一起、a和c一起、b和c一起或a、b和c一起。

本文中使用的术语“计算机可读介质”是指参与将指令提供给处理器执行的任何有形存储设备和/或传输介质。计算机可读介质可以是在ip网络上的网络传输(如soap)中编码的串行指令集。这样的介质可以采取很多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如nvram或者磁或光盘。易失性介质包括诸如主存储器的动态存储器(如ram)。计算机可读介质的常见形式包括例如软盘、柔性盘、硬盘、磁带或任何其它磁介质、磁光介质、cd-rom、任何其它光介质、穿孔卡、纸带、任何其它具有孔形图案的物理介质、ram、prom、eprom、flash-eprom、诸如存储卡的固态介质、任何其它存储芯片或磁带盒、后面描述的载波、或计算机可以读取的任何其它介质。电子邮件的数字文件附件或其它自含信息档案或档案集被认为是相当于有形存储介质的分发介质。当计算机可读介质被配置为数据库时,应该理解该数据库可以是任何类型的数据库,例如关系数据库、层级数据库、面向对象的数据库等等。相应地,认为本发明包括有形存储介质或分发介质和现有技术公知的等同物以及未来开发的介质,在这些介质中存储本发明的软件实施。

本文中使用的术语“确定”、“运算”和“计算”及其变型可以互换使用,并且包括任何类型的方法、处理、数学运算或技术。

本文中使用的术语“模块”或“工具”是指任何已知的或以后发展的硬件、软件、固件、人工智能、模糊逻辑或能够执行与该元件相关的功能的硬件和软件的组合。另外,虽然用示例性实施方式来描述本发明,但应当理解本发明的各方面可以单独要求保护。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1