一种基于机器学习的恶意网络爬虫监测和处理方法及系统转让专利

申请号 : CN202010193784.X

文献号 : CN111090802B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张鑫明白冬立

申请人 : 北京热云科技有限公司

摘要 :

本发明提供一种基于机器学习的恶意网络爬虫监测和处理方法及系统,其中方法包括获取最原始数据,还包括以下步骤:处理所述最原始数据,并生成数据集;将所述数据集在PSO‑BP神经网络下训练数据,并建立神经网络模型;在服务器入口部署配置软件,把待判断的数据输入决策树和神经网络模型,判断链接是否为爬虫链接;对所述爬虫链接进行处理。

权利要求 :

1.一种基于机器学习的恶意网络爬虫监测和处理方法,包括获取最原始数据,其特征在于,还包括以下步骤:步骤1:处理所述最原始数据,并生成数据集;

步骤2:将所述数据集在PSO-BP神经网络下训练数据,并建立神经网络模型;所述PSO-BP神经网络为基于PSO优化的BP神经网络,将sigmoid激活函数进行改进,公式为:其中,为激活函数的输入值;

步骤3:在服务器入口部署配置软件,把待判断的数据输入决策树和神经网络模型,判断链接是否为爬虫链接;所述配置软件使用Flink大数据处理框架实时处理请求链接,把请求链接数据进行处理;所述Flink大数据处理框架把所有处理好的数据通过决策树验证关键参数是否为模拟生成的假参数,快速过滤出爬虫链接;

所述决策树的验证方法包括以下子步骤:

步骤31:设定正常用户访问的最高频率作为验证阈值;

步骤32:检查访问频率,把超过所述验证阈值的用户的链接视为爬虫链接;

步骤33:检查请求链接的请求参数是否全并检查所述请求参数是否符合网站相应加密规则;

步骤34:对于请求参数不全或请求参数完全不符合网站相应加密规则的链接归为爬虫链接,对于请求参数部分相符网站相应加密规则的链接留给神经网络进行处理;

步骤4:对所述爬虫链接进行处理。

2.如权利要求1所述的基于机器学习的恶意网络爬虫监测和处理方法,其特征在于,所述最原始数据包括访问IP访问时携带的参数、访问频率和该访问IP访问的平台的所有不同链接中至少一种。

3.如权利要求2所述的基于机器学习的恶意网络爬虫监测和处理方法,其特征在于,所述步骤1包括把所述最原始数据中的IP、能够定位到具体用户的数据、校验参数、访问链接和访问时间分别作为关键字,按照一定格式保存为一条数据。

4.如权利要求3所述的基于机器学习的恶意网络爬虫监测和处理方法,其特征在于,保存为一定格式的一条数据的处理在hadoop Yarn框架下进行,把处理好的数据按照2:1的比例分为训练集和测试集。

5.如权利要求4所述的基于机器学习的恶意网络爬虫监测和处理方法,其特征在于,训练所述神经网络模型时,输入值为hadoop Yarn框架下处理好的数据里的参数。

6.如权利要求5所述的基于机器学习的恶意网络爬虫监测和处理方法,其特征在于,所述爬虫链接的处理方法包括:

1)对于每分钟爬取次数没有超过设定阈值的爬虫链接采用以下两种方法中至少一种:(1)增加服务器响应时间,(2)返回假数据或返回固定数据或不返回数据;

2)对于每分钟爬取次数超过设定阈值的爬虫链接采用封ip地址、设计防火墙和封跑爬虫程序的主机中至少一种操作。

7.一种基于机器学习的恶意网络爬虫监测和处理系统,包括用于获取最原始数据的数据获取模块,其特征在于,还包括以下模块:数据处理模块:用于处理所述最原始数据,并生成数据集;

模型建立模块:用于将所述数据集在PSO-BP神经网络下训练数据,并建立神经网络模型;所述PSO-BP神经网络为基于PSO优化的BP神经网络,将sigmoid激活参数进行改进,公式为 ,其中,为激活函数的输入值;

爬虫判断模块:用于在服务器入口部署配置软件,把待判断的数据输入决策树和神经网络模型,判断链接是否为爬虫链接;所述配置软件使用Flink大数据处理框架实时处理请求链接,把请求链接数据进行处理;所述Flink大数据处理框架把所有处理好的数据通过决策树验证关键参数是否为模拟生成的假参数,快速过滤出爬虫链接;

所述决策树的验证方法包括以下子步骤:

步骤31:设定正常用户访问的最高频率作为验证阈值;

步骤32:检查访问频率,把超过所述验证阈值的用户的链接视为爬虫链接;

步骤33:检查请求链接的请求参数是否全并检查所述请求参数是否符合网站相应加密规则;

步骤34:对于请求参数不全或请求参数完全不符合网站相应加密规则的链接归为爬虫链接,对于请求参数部分相符网站相应加密规则的链接留给神经网络进行处理;

爬虫处理模块:用于对所述爬虫链接进行处理;

所述系统通过如权利要求1所述的方法进行恶意网络爬虫监测和处理。

说明书 :

一种基于机器学习的恶意网络爬虫监测和处理方法及系统

技术领域

[0001] 本发明涉及文本词特征提取的技术领域,特别是一种基于机器学习的恶意网络爬虫监测和处理方法及系统。

背景技术

[0002] 网络爬虫,又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取网络信息的程序或者脚本。其爬行对象从一些种子URL扩充到整个Web,可为门户站点搜索引擎和大型Web服务提供商提供原始数据。搜索引擎一般是善意的爬虫,爬取网站的所有页面,提供给其他用户进行快速搜索和访问,给网站带来流量。然而,如同其他技术,爬虫也是一把双刃剑,尤其是近年来“大数据”概念吸引了众多公司肆意爬取其他公司的数据,恶意爬虫充斥互联网,不但不遵守Robots规则对服务器造成了压力,也不为网站带来流量,往往通过分析并自行构造参数对非公开接口进行数据爬取或提交,获取对方本不愿意被大量获取的数据,给对方服务器性能造成极大损耗。
[0003] 申请公开号为CN109818949A的发明专利申请公开了一种基于神经网络的反爬虫方法,通过部署神经网络于服务器入口处,可对远端恶意爬虫请求中的特征进行识别学习,对恶意爬虫在空间及时间上的行为特征进行快速高效提取识别;有效检测通过伪装的恶意爬虫,阻止高级爬虫自动完成验证码填写,降低代理IP或端口被永久封禁的风险,保护服务端数据安全和业务正常有序开展。并且使服务器不易被爬虫攻破,具有较强安全性和稳定性,同时相对于其他规范固定的反爬虫机制,可以有效防止误伤,降低误伤率,保障系统正常业务运行不受影响。该方法的缺点是只能按照ip处理,无法分析出由于爬虫代码使用ip池切换大量ip使爬虫频率大大降低而无法识别是否为爬虫。

发明内容

[0004] 为了解决上述的技术问题,本发明提出的基于机器学习的恶意网络爬虫监测和处理方法及系统,该系统的技术方案分为三部分。第一部分是训练数据的处理,处理在hadoop Yarn框架下进行,该框架能够解决原hadoop框架处理大数据时出现的单点故障问题,第二部分是训练数据、生成模型,需要在基于PSO优化的BP神经网络下进行。该网络能够提高BP神经网络的泛化能力、学习能力,并且大大提升它的收敛速度。第三部分为爬虫监测处理,监测需要在Flink大数据处理框架下进行。该框架能够实时处理海量数据。
[0005] 本发明的第一目的是提供一种基于机器学习的恶意网络爬虫监测和处理方法,包括获取最原始数据,还包括以下步骤:
[0006] 步骤1:处理所述最原始数据,并生成数据集;
[0007] 步骤2:将所述数据集在PSO-BP神经网络下训练数据,并建立神经网络模型;
[0008] 步骤3:在服务器入口部署配置软件,把待判断的数据输入决策树和神经网络模型,判断链接是否为爬虫链接;
[0009] 步骤4:对所述爬虫链接进行处理。
[0010] 优选的是,所述最原始数据包括访问IP访问时携带的参数、访问频率和该IP访问平台的所有不同链接中至少一种。
[0011] 在上述任一方案中优选的是,所述步骤1包括把所述最原始数据中的IP、能够定位到具体用户的数据、校验参数、访问链接和访问时间分别作为关键字,按照一定格式保存为一条数据。
[0012] 在上述任一方案中优选的是,保存为一定格式的一条数据的处理在hadoop Yarn框架下进行,把处理好的数据按照2:1的比例分为训练集和测试集。
[0013] 在上述任一方案中优选的是,所述PSO-BP神经网络为基于PSO优化的BP神经网络,将sigmoid激活参数进行改进,公式为:
[0014]
[0015] 其中,为激活函数的输入值。
[0016] 在上述任一方案中优选的是,训练所述神经网络模型时,输入值为hadoop Yarn框架下处理好的数据里的所有参数。
[0017] 在上述任一方案中优选的是,所述配置软件使用Flink大数据处理框架实时处理请求链接,把请求链接数据进行处理;所述Flink大数据处理框架把所有处理好的数据通过决策树验证关键参数是否为模拟生成的假参数,快速过滤出爬虫链接。
[0018] 在上述任一方案中优选的是,所述决策树验证方法包括以下子步骤:
[0019] 步骤31:设定正常用户访问的最高频率作为验证阈值;
[0020] 步骤32:检查访问频率,把超过所述验证阈值的用户的链接视为爬虫链接;
[0021] 步骤33:检查请求链接的请求参数是否全并检查所述请求参数是否符合网站相应加密规则;
[0022] 步骤34:对于请求参数不全或请求参数完全不符合网站相应加密规则的链接归为爬虫链接,对于请求参数部分相符网站相应加密规则的链接留给神经网络进行处理。
[0023] 在上述任一方案中优选的是,所述爬虫链接的处理方法包括:
[0024] 1)对于每分钟爬取次数没有超过设定阈值的爬虫采用以下两种方法中至少一种:(1)增加服务器响应时间,(2)返回假数据或返回固定数据或不返回数据;
[0025] 2)对于每分钟爬取次数超过设定阈值的爬虫链接采用封ip地址、设计防火墙和封跑爬虫链接程序的主机中至少一种操作。
[0026] 本发明的第二目的是提供一种基于机器学习的恶意网络爬虫监测和处理系统,包括用于获取最原始数据的数据获取模块,还包括以下模块:
[0027] 数据处理模块:用于处理所述最原始数据,并生成数据集;
[0028] 模型建立模块:用于将所述数据集在PSO-BP神经网络下训练数据,并建立神经网络模型;
[0029] 爬虫判断模块:用于在服务器入口部署配置软件,把待判断的数据输入决策树和神经网络模型,判断链接是否为爬虫链接;
[0030] 爬虫处理模块:用于对所述爬虫链接进行处理;
[0031] 所述系统通过如第一目的所述的方法进行恶意网路爬虫监测和处理。
[0032] 优选的是,所述最原始数据包括访问IP访问时携带的参数、访问频率和该IP访问平台的所有不同链接中至少一种。
[0033] 在上述任一方案中优选的是,所述数据处理模块还用于把所述最原始数据中的IP、能够定位到具体用户的数据、校验参数、访问链接和访问时间分别作为关键字,按照一定格式保存为一条数据。
[0034] 在上述任一方案中优选的是,保存为一定格式的一条数据的处理在hadoop Yarn框架下进行,把处理好的数据按照2:1的比例分为训练集和测试集。
[0035] 在上述任一方案中优选的是,所述PSO-BP神经网络为基于PSO优化的BP神经网络,将sigmoid激活参数进行改进,公式为:
[0036]
[0037] 其中,为激活函数的输入值。
[0038] 在上述任一方案中优选的是,训练所述神经网络模型时,输入值为hadoop Yarn框架下处理好的数据里的所有参数。
[0039] 在上述任一方案中优选的是,所述配置软件使用Flink大数据处理框架实时处理请求链接,把请求链接数据进行处理;所述Flink大数据处理框架把所有处理好的数据通过决策树验证关键参数是否为模拟生成的假参数,快速过滤出爬虫链接。
[0040] 在上述任一方案中优选的是,所述决策树验证方法包括以下子步骤:
[0041] 步骤31:设定正常用户访问的最高频率作为验证阈值;
[0042] 步骤32:检查访问频率,把超过所述验证阈值的用户的链接视为爬虫链接;
[0043] 步骤33:检查请求链接的请求参数是否全并检查所述请求参数是否符合网站相应加密规则;
[0044] 步骤34:对于请求参数不全或请求参数完全不符合网站相应加密规则的链接归为爬虫链接,对于请求参数部分相符网站相应加密规则的链接留给神经网络进行处理。
[0045] 在上述任一方案中优选的是,所述爬虫链接的处理方法包括:
[0046] 1)对于每分钟爬取次数没有超过设定阈值的爬虫链接采用以下两种方法中至少一种:(1)增加服务器响应时间,(2)返回假数据或返回固定数据或不返回数据;
[0047] 2)对于每分钟爬取次数超过设定阈值的爬虫链接采用封ip地址、设计防火墙和封跑爬虫程序的主机中至少一种操作。
[0048] 本发明提出了一种基于机器学习的恶意网络爬虫监测和处理方法及系统,该系统请求处理响应更快,监测爬虫更精确,对恶意爬虫的处理更有效。
[0049] Sigmoid函数是一个在生物学中常见的S型函数,Sigmoid函数常被用作神经网络的激活函数。

附图说明

[0050] 图1为按照本发明的基于机器学习的恶意网络爬虫监测和处理方法的一优选实施例的流程图。
[0051] 图1A为按照本发明的基于机器学习的恶意网络爬虫监测和处理方法的如图1所示实施例的决策树验证方法流程图。
[0052] 图2为按照本发明的基于机器学习的恶意网络爬虫监测和处理系统的一优选实施例的模块图。
[0053] 图3为按照本发明的基于机器学习的恶意网络爬虫监测和处理方法的一优选实施例的决策树模型示意图。

具体实施方式

[0054] 下面结合附图和具体的实施例对本发明做进一步的阐述。
[0055] 实施例一
[0056] 如图1所示,执行步骤100,获取最原始数据。最原始数据包括访问IP访问时携带的参数、访问频率和该IP访问平台的所有不同链接中至少一种。
[0057] 执行步骤110,处理所述最原始数据,并生成数据集。把所述最原始数据中的IP、能够定位到具体用户的数据、校验参数、访问链接和访问时间分别作为关键字,按照一定格式保存为一条数据。保存为一定格式的一条数据的处理在hadoop Yarn框架下进行,把处理好的数据按照2:1的比例分为训练集和测试集。
[0058] 执行步骤120,将所述数据集在PSO-BP神经网络下训练数据,并建立神经网络模型。PSO-BP神经网络为基于PSO优化的BP神经网络,将sigmoid激活参数进行改进,公式为:
[0059]
[0060] 其中,为激活函数的输入值。训练所述神经网络模型时,输入值为hadoop Yarn框架下处理好的数据里的所有参数。
[0061] 执行步骤130,在服务器入口部署配置软件,把待判断的数据输入决策树和神经网络模型,判断链接是否为爬虫链接。配置软件使用Flink大数据处理框架实时处理请求链接,把请求链接数据进行处理。Flink大数据处理框架把所有处理好的数据通过决策树验证关键参数是否为模拟生成的假参数,快速过滤出爬虫链接。如图1A所述,决策树验证方法如下:执行步骤131,设定正常用户访问的最高频率作为验证阈值。执行步骤132,判断访问频率是否超过验证阈值。如果访问频率超过验证阈值,则执行步骤135,将该用户的链接视为爬虫链接。如果访问频率没有超过验证阈值,则执行步骤133,检查请求链接的请求参数是否全。如果参数不全,则执行步骤135,将该用户的链接视为爬虫链接。如果参数不全,则执行步骤134,检查所述请求参数是否符合网站相应加密规则。如果请求参数完全不符合网站相应加密规则,则执行步骤135,将该用户的链接视为爬虫链接。如果参数符合加密规则,则执行步骤136,将该用户的链接标注为非爬虫链接。如果请求参数部分相符网站相应加密规则,则执行步骤137,将链接留给神经网络进行处理。
[0062] 执行步骤140,对所述爬虫链接进行处理。爬虫链接的处理方法包括对于每分钟爬取次数没有超过设定阈值的爬虫链接采用以下两种方法中至少一种:(1)增加服务器响应时间,(2)返回假数据或返回固定数据或不返回数据,还包括对每分钟爬取次数超过设定阈值的爬虫链接采用封ip地址、设计防火墙和封跑爬虫程序的主机中至少一种操作。在本实施例中,阈值设定为20次/分钟。
[0063] 实施例二
[0064] 如图2所示,一种基于机器学习的恶意网络爬虫监测和处理系统,包括数据获取模块200、数据处理模块210、模型建立模块220、爬虫判断模块230和爬虫处理模块240。
[0065] 数据获取模块200用于获取最原始数据。最原始数据包括访问IP访问时携带的参数、访问频率和该IP访问平台的所有不同链接中至少一种。
[0066] 数据处理模块210用于处理所述最原始数据,并生成数据集。数据处理模块还用于把所述最原始数据中的IP、能够定位到具体用户的数据、校验参数、访问链接和访问时间分别作为关键字,按照一定格式保存为一条数据。保存为一定格式的一条数据的处理在hadoop Yarn框架下进行,把处理好的数据按照2:1的比例分为训练集和测试集。
[0067] 模型建立模块220用于将所述数据集在PSO-BP神经网络下训练数据,并建立神经网络模型。PSO-BP神经网络为基于PSO优化的BP神经网络,将sigmoid激活参数进行改进,公式为:
[0068]
[0069] 其中,为激活函数的输入值。训练所述神经网络模型时,输入值为hadoop Yarn框架下处理好的数据里的所有参数。
[0070] 爬虫判断模块230用于在服务器入口部署配置软件,把待判断的数据输入决策树和神经网络模型,判断链接是否为爬虫链接。配置软件使用Flink大数据处理框架实时处理请求链接,把请求链接数据进行处理。Flink大数据处理框架把所有处理好的数据通过决策树验证关键参数是否为模拟生成的假参数,快速过滤出爬虫链接。所述决策树验证方法包括以下子步骤:步骤31:设定正常用户访问的最高频率作为验证阈值;步骤32:检查访问频率,把超过所述验证阈值的用户的链接视为爬虫链接;步骤33:检查请求链接的请求参数是否全并检查所述请求参数是否符合网站相应加密规则;步骤34:对于请求参数不全或请求参数完全不符合网站相应加密规则的链接归为爬虫链接,对于请求参数部分相符网站相应加密规则的链接留给神经网络进行处理。
[0071] 爬虫处理模块240用于对所述爬虫链接进行处理。爬虫链接的处理方法包括对于每分钟爬取次数没有超过设定阈值的爬虫链接采用以下两种方法中至少一种:(1)增加服务器响应时间,(2)返回假数据或返回固定数据或不返回数据,还包括对于每分钟爬取次数超过设定阈值的爬虫链接采用封ip地址、设计防火墙和封跑爬虫程序的主机中至少一种操作。
[0072] 实施例三
[0073] 一、生成用户画像原始数据
[0074] 最原始数据:分析访问ip 访问携带参数,提取访问链接重要相关参数,获取访问频率,获取该ip访问平台的所有不同链接。
[0075] 处理数据:将最原始数据进行处理,把ip和能够定位到具体用户的数据作为关键字。把其他如链接携带的相关参数、访问时间作为其他参数保存为一条数据。也就是说每条链接保存为一条数据。每条数据都按照一定的格式保存。最后针对每个用户就有大量的数据。
[0076] 数据的处理在hadoop Yarn框架下进行。该框架是hadoopMapReduce 框架的V2版本,改善了作为 Map-reduce 集中处理点的JobTracker单点故障问题。
[0077] 把处理好的数据按比例2:1分成训练集和测试集。
[0078] 二、训练数据建立模型
[0079] bp(back propagation)神经网络是一种前馈神经网络,该网络输入信息正向传递、权重误差调整通过逆向进行。同时具有非线性的映射能力。为适应爬虫链接参数的分析学习,提出改进的sigmoid激活函数(1)。原sigmoid激活函数当输入值稍稍远离坐标原点梯度值变化就会很低,会使反向传播修改权重没有效果。
[0080]      (1)
[0081] 粒子群优化(particle swaITn optimization,PSO)是一种基于种群的随机优化技术。粒子群中每个粒子代表一个可能解,通过单个粒子的行为,群体内粒子互相通信来解决最终问题。使用基于PSO优化的bp神经网络能够很好地解决原神经网络容易陷入局部极小值问题。
[0082] 使用第一步处理好的数据集在PSO-BP神经网络下训练数据,最后得到神经网络中间各层各节点之间的权重值。得到模型。通过该模型可根据输入的数据得出链接是否为爬虫链接。
[0083] 训练PSO-BP神经网络模型,输入值是hadoop Yarn框架下处理好的数据,里边所有参数作为输入值。该模型着重分析不同ip用户部分请求参数相同的问题,是为了应对爬虫更换大量ip的现象。
[0084] 三、部署
[0085] 在用于处理网站请求的服务器入口配置爬虫监测处理软件。该软件使用Flink大数据处理框架实时处理请求链接。处理时先通过决策树过滤链接。决策树能够快速分析得出结果。若链接中的关键参数为模拟生成的假参数则分析结果为恶意爬虫,若参数完全没有问题则分析结果为正常请求。其他情况作为不确定处理,后续把该链接数据输入到训练好的PSO-BP神经网络模型中,进一步分析是否为恶意爬虫。
[0086] 决策树模型图如图3所示。
[0087] 设定正常用户访问的最高频率作为阈值。首先过滤访问频率,把超过阈值的用户视为爬虫。过滤一批爬虫请求之后,再检查请求参数是否全,参数是否符合网站相应加密规则。对于完全不符的归为爬虫,对于部分相符的留给神经网络进行处理。
[0088] 四、爬虫处理
[0089] 1.对于频率不高的爬虫处理:增加服务器响应时间,返回假数据或返回固定数据或不返回数据。
[0090] 2.对于频率较高-的爬虫处理:封ip,设防火墙,封跑爬虫程序的主机。
[0091] 该系统适用于网页和app爬虫的预防处理。
[0092] 为了更好地理解本发明,以上结合本发明的具体实施例做了详细描述,但并非是对本发明的限制。凡是依据本发明的技术实质对以上实施例所做的任何简单修改,均仍属于本发明技术方案的范围。本说明书中每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。