CN114169540A - 一种基于改进机器学习的网页用户行为检测方法及系统 - Google Patents

一种基于改进机器学习的网页用户行为检测方法及系统 Download PDF

Info

Publication number
CN114169540A
CN114169540A CN202111256666.XA CN202111256666A CN114169540A CN 114169540 A CN114169540 A CN 114169540A CN 202111256666 A CN202111256666 A CN 202111256666A CN 114169540 A CN114169540 A CN 114169540A
Authority
CN
China
Prior art keywords
splitting
client
webpage
behavior
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111256666.XA
Other languages
English (en)
Inventor
何维民
赵磊
陈奕彤
许高俊
孙莉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Jiangsu Electric Power Co ltd Marketing Service Center
Original Assignee
State Grid Jiangsu Electric Power Co ltd Marketing Service Center
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Grid Jiangsu Electric Power Co ltd Marketing Service Center filed Critical State Grid Jiangsu Electric Power Co ltd Marketing Service Center
Priority to CN202111256666.XA priority Critical patent/CN114169540A/zh
Publication of CN114169540A publication Critical patent/CN114169540A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Abstract

一种基于改进机器学习的网页用户行为检测方法及系统,在参与训练的各客户端模拟运行网页来获取正常网页和用户异常行为网页时的数据,然后根据特征提取规则来提取挖掘算法特征、运行行为特征以及网络行为等特征,其次,各个客户端将线程特征根据线程所属网页进行特征合并处理,并对其中的文本特征使用词嵌入方法转为特征向量。最后,将正常网页以及用户异常行为网页的所有特征向量作为参与改进的机器学习模型的输入,进行迭代训练以获得可以用来识别用户异常行为的机器学习模型。本发明使用多客户端的独立训练与联合判定方法,并结合多维性高的样本特征,增加了训练时的多样性,使得训练后的模型更加准确,有效减小了误报率。

Description

一种基于改进机器学习的网页用户行为检测方法及系统
技术领域
本发明涉及网络安全技术领域,具体涉及一种基于改进机器学习网页用户行为检测方法及系统。
背景技术
随着区块链技术的发展,基于区块链技术的网络交易安全资源逐渐受到了人们的密切关注。网络交易安全资源挖掘技术,即用户通过使用矿机、CPU或者GPU 资源来进行复杂的哈希计算从而生成新区块以获取相应网络交易安全资源奖励的过程。
网络交易安全资源的挖掘最初主要由专用硬件系统主导,比如基于GPU和ASIC矿机挖掘的比特币,这种网络交易安全资源的挖掘一般对于计算机的硬件系统有较高的要求。后来随着内存限制型网络交易安全资源的出现,挖掘网络交易安全资源的门槛开始降低了,此类网络交易安全资源基于可用内存是处理速度的限制因素的算法,通过内存密集型计算实现挖掘,因此降低可特定硬件相对于普通处理器的挖掘优势。内存限制型网络交易安全资源使得利用计算机CPU挖掘网络交易安全资源变成了现实。
一些不法分子通过攻击网站来向网页中秘密嵌入用户异常行为脚本进行网络交易安全资源的挖掘,从而获取巨额利益,用户在浏览相应网页时,本地计算机会被植入网页用户异常行为脚本,来为不法分子免费获得网络交易安全资源。网页用户异常行为不仅消耗用户资源,使得用户的权益受到极大的危害,而且由于过程十分耗时,会消耗用户设备的大量CPU资源,从而造成大量的电力资源浪费,并且可能会使用户的硬件设备过热甚至损坏。因此如何有效并且准确识别网页用户异常行为已经成为目前安全研究领域中尤为重要的一部分。
目前的网页用户异常行为检测方法包括基于黑名单的检测技术、基于网页用户异常行为的检测技术以及基于机器学习的检测技术,但是这些现有的网页用户异常行为检测方法大多存在特征维度单一、误报率高等不足。例如现有的基于机器学习的检测技术不需要人为定义判别标准,就可通过挖取网页特有的静态或者动态特征实现自动化检测,但是由于这类检测方案需要大量的数据集,在这个数据隐私安全极为重要的社会,如何获取大量的数据集是一大难点。并且大多数基于机器学习的检测方案仅使用单一的特征或者动态特征来识别网页用户异常行为,会造成较高的误报率和漏报率。
发明内容
为解决现有技术中存在的不足,本发明的目的在于,针对现有的网页用户异常行为识别方法存在特征维度单一、误报率高以及训练样本不足等问题,提供一种基于改进机器学习的网页用户行为检测方法及系统。
本发明采用如下的技术方案:
一种基于改进机器学习的网页用户行为检测方法,包括以下步骤:
步骤1,在每个客户端模拟运行大于1的正常网页和大于1的被用户异常行为网页;客户端数量大于等于2,其被部署在任意能够运行网页的终端上,每个客户端分别与中心服务器连接;
步骤2,采集各客户端所对应的正常网页或用户异常行为网页中的网页源代码作为本地数据集;
步骤3,提取步骤2本地数据集中每条样本的特征;每条样本的特征包括哈希函数调用文本数据的二元组序列权重、存在用户异常行为网页的运行性行为特征以及网络行为特征;
步骤4,对改进的机器学习模型进行训练,得到可以动态检测网页用户异常行为的机器学习模型;
步骤5,实时采集待检测网站的网页代码,并利用步骤4训练好的机器学习模型进行检测。
在步骤2中,网页源代码是指与网页用户异常行为脚本相关的源代码内容,包括网页源代码中的JavaScript代码以及网页源代码中引用的本地服务器和远程服务器的JavaScript代码。
在步骤3中,存在用户异常行为网页的运行性行为特征指能够体现存在用户异常行为网页与正常网页在运行时的不同特征,包括网页的线程数、堆栈函数中支持从高级编程语言编译密码原语到浏览器的机器码模块个数以及子线程函数调用序列中子序列的最大频数;
存在用户异常行为网页的网络行为特征指能够体现存在用户异常行为网页与正常网页与网络有关的不同特征,包括存在用户异常行为网页的线程与本地服务器之间的双向通信连接数、网页运行时的Websockets连接数、网页运行时的worker线程数以及Messageloop事件内容。
步骤3包括以下内容:
步骤301,计算本地数据集里哈希函数调用文本数据二元组序列权重;
步骤302,提取存在用户异常行为网页的运行性行为特征;
步骤303,提取存在用户异常行为网页的网络行为特征。
步骤301包括以下内容:
步骤301.1,提取哈希函数调用文本数据;
步骤301.2,对哈希函数调用文本数据进行特殊符号过滤;特殊符号指所有的非数字或非英文字符,包括标点符号与除分词需要外的空格;
步骤301.3,使用2-gram对过滤后的哈希函数调用文本数据进行分词操作,得到二元组序列;
步骤301.4,对步骤301.3的二元组序列进行权重赋值得到哈希函数调用文本数据二元组序列权重。
在步骤301.4中,统计每个二元组序列在二元组序列总数中出现的频率作为特征,其次将各个二元组序列与其对应的二元组频率放在一起得到其向量化表示,之后使用TF-IDF方法对每个二元组序列进行权重赋值;再将特征进行标准化。
步骤4包括以下内容:
步骤401,各客户端对本地数据集中的样本进行编号,得到N个编号,再对每条数据样本的特征进行编号,共得到M个特征,M=N×K,K表示特征的类别数;
步骤402,对本地数据集进行分类,在每个客户端构建一个决策树;
步骤403,中心服务器端从各个客户端接收到各客户端的中间结果后比较并选择每个客户端信息增益最大的分裂属性和分裂值作为该客户端当前节点的分裂信息,将选出的分裂属性和分裂值分发其对应的客户端;
步骤404,客户端的决策树重新分裂,不断迭代步骤401-404直到每个客户端的决策树分裂出的节点全部指向同一类。
步骤402包括以下内容:
步骤402.1,如果是首次进行分裂,对于每个客户端,每次随机选择一个样本,然后放回继续选择,直到随机选取n个样本,将选好的n个样本作为决策树根节点处的样本;如果不是首次进行分裂,则直接进入步骤402.2;
步骤402.2,随机从M个特征中选出包含m个特征的特征集合(m≤M)并计算该特征集合中每个特征的信息增益,选择信息增益最大的特征a作为分裂属性;如果是首次进行分裂,则将信息增益最大的特征a作为分裂属性,其值|a| 作为分裂值;如果不是首次进行分裂,则将则将信息增益最大的特征a与其值 |a|与中心服务器传回的分裂属性和分裂值进行比较,选择数值更大的作为本轮迭代的分裂属性与分裂值;
决策树形成的过程中,每个节点都通过该方法选取分裂属性,若该节点选取的分裂属性是其父节点选取的分裂属性,则该节点为叶子节点,无需进行分裂;
步骤402.3,客户端每次构建客户端决策树的根节点或叶子节点时,使用同态加密算法对该节点的信息增益、分裂属性以及分裂值进行加密,并将加密后的结果上传至中心服务器端。
信息增益的满足以下关系式:
G(m,a)=H(m)-H(a|m)
其中,H(m)为包含m个特征的特征集合的熵,H(a|m)为在给定特征a的条件下,特征集合m的条件熵,其求取方法分别为:
Figure RE-GDA0003463284450000041
Figure RE-GDA0003463284450000042
其中,|m|为选取的特征集合中特征的个数,Ck表示第k类的特征,k= 1,2…,K,|Ck|为属于第k类特征Ck的样本个数,在本实施例中,即与本地数据集中的样本数量一致;根据特征a的取值将m划分为n个子集m1,m2…,mn, mik为子集合mi中属于第k类特征Ck的集合。
步骤5包括以下内容:
步骤501:使用步骤3的方法提取待检测网站网页代码的样本特征;
步骤502:将特征输入至所有客户端的决策树进行判定;
步骤503:统计每个客户端决策树的分类结果,将所得频率最高的分类结果作为最终的检测结果。
本发明还公开了基于改进机器学习的网页用户行为检测方法的网页用户行为检测系统,包括客户端、中心服务器,其特征在于:
客户端还包括数据采集模块、特征提取模块以及决策树构建模块。
客户端的数量大于等于2,其被部署在任意能够运行网页的终端上,在每个客户端模拟运行大于1的正常网页和大于1的用户异常行为网页;每个客户端分别与中心服务器连接;
客户端中的数据采集模块负责采集客户端上正常网页与用户异常行为网页的网页源代码,并将采集的网页源代码作为数据集输入至特征提取模块;
特征提取模块提取数据集的特征,包括哈希函数调用文本数据的二元组序列权重、存在用户异常行为网页的运行性行为特征以及网络行为特征,并将提取到的特征输入至决策树构建模块;
决策树构建模块用于构建可以判定网页用户异常行为的决策树;该模块随机选取部分特征样本,在首次分裂时,选择信息增益最大的特征作为分裂属性、该特征对应的值作为分裂值进行分裂,并对此时的分裂属性、分裂值以及该特征的信息增益进行同态加密后输入至中心服务器;如果不是首次分裂,决策树构建模块将信息增益最大的特征对应的值与中心服务器返回的分裂值进行比较,选择更大的作为本次分裂的分裂值,其对应的特征为分裂属性,并对此时的分裂属性、分裂值以及该特征的信息增益进行同态加密后输入至中心服务器;
中心服务器对每次接受到的分裂属性、分裂值以及信息增益进行保存,对于每个客户端,挑选保存的该客户端信息增益最大的分裂属性和分裂值,并将信息增益最大的分裂属性、分裂值和信息增益返回至决策树构建模块。
本发明的有益效果在于,与现有技术相比,本发明:
1、使用的样本特征多维性高,对于网页用户异常行为的识别更加具有针对性;
2、使用多客户端的独立训练与联合判定方法,并结合多维性高的样本特征,增加了训练时的多样性,使得训练后的模型更加准确,有效减小了误报率;
3、多客户端在进行训练时,将中间结果通过加密方式上传到中心服务器,根据中心服务器的抉择进行迭代更新;该方法不仅保证了数据的安全性同时也缩短了训练每个客户端训练的总体用时。
附图说明
图1为本发明一种基于改进机器学习的网页用户行为检测方法的流程示意图;
图2为本发明一种基于改进机器学习的网页用户行为检测系统结构图。
具体实施方式
下面结合附图对本申请作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本申请的保护范围。
图1为本发明一种基于改进机器学习网页用户行为检测方法的流程示意图,本发明的检测方法具体包括以下步骤:
步骤1,在每个客户端模拟运行大于1的正常网页和大于1的用户异常行为网页;客户端的数量大于等于2,其被部署在任意能够运行网页的终端上,每个客户端分别与中心服务器连接。
步骤2,采集各客户端所对应的正常网页或被用户异常行为网页中的网页源代码作为本地数据集;
其中网页源代码是指与用户异常行为脚本相关的源代码内容,包括网页源代码中的JavaScript代码以及网页源代码中引用的本地服务器和远程服务器的 JavaScript代码。
步骤3,提取步骤2本地数据集中每条样本的特征;每条样本的特征包括哈希函数调用文本数据的二元组序列权重、存在用户异常行为网页时的运行性行为特征以及网络行为特征;
存在用户异常行为网页的运行性行为特征指能够体现存在用户异常行为网页与正常网页在运行时的不同特征,包括网页的线程数、堆栈函数中支持从高级编程语言编译密码原语到浏览器的机器码模块个数以及子线程函数调用序列中子序列的最大频数;
支持从高级编程语言编译密码原语到浏览器的机器码的一个优选实施例为WebAssembly,一般存在用户异常行为网页时,这样的机器码会被攻击者用于提高计算效率,并且攻击者一般会在浏览器中基于堆栈的虚拟机上执行该机器码;
存在用户异常行为网页的网络行为特征指能够体现存在用户异常行为网页与正常网页与网络有关的不同特征,包括存在用户异常行为网页的线程与本地服务器之间的双向通信连接数;
本步骤具体包括以下内容:
步骤301,计算本地数据集里哈希函数调用文本数据二元组序列权重;
步骤301.1,提取哈希函数调用文本数据;
考虑到大多数网络用户异常行为检测行为会创建一个或者多个线程专门用于网络交易安全资源的挖掘工作,而其他的线程则会处理用户使用正常网页的请求。此外用于专门应用于网络用户异常行为检测行为的线程会高频地调用哈希函数以解决复杂的数学问题来获得网络交易安全资源,因此可以将哈希函数节点在整个函数调用结构中的占比作为识别网络用户异常行为检测线程的特征,以此将存在网络用户异常行为检测线程的网页标识为具有网络用户异常行为检测行为的网页。
从步骤2的本地数据集中提取网页线程运行时的所有数据,包括网页线程运行中所调用的每个节点函数中的原始函数标识Id、函数名称FunctionName、函数的具体公式;同时给每个节点函数添加一个默认为False的哈希字段,如该节点函数为哈希函数,则将该字段设置为True;
在本实施例中,提取的文本数据形式为:
[“Id”:0,“Children”:1,”FunctionName”:”main”,”Hash”:”Ture”] ;
步骤301.2,对哈希函数调用文本数据进行特殊符号过滤;
特殊符号指所有的非数字或非英文字符,包括标点符号与除分词需要外的空格;
由于哈希函数调用文本数据包含标点符号,所以在文本特征向量化前需要过滤掉文本中的所有标点符号和除分词需要外的空格,例如对于采集的一条哈希函数调用文本数据在过滤前为:
[“Id”:0,“Children”:1,”FunctionName”:”main”,”Hash”:”Tur e”]
经过符号过滤操作后为:
[Id 0 Children 1 FunctionName main Hash Ture]
步骤301.3,对过滤后的哈希函数调用文本数据进行分词操作,得到二元组序列;
经过符号过滤后的文本数据需要使用N-gram语言处理模型进行分词以便更好地表示该文本序列特征所表示的含义。
N-gram语言处理模型的基本思想是将文本中的内容按照字节大小进行长度为N的分割,得到长度为N的字节片段序列。
第N个词的出现只与前面N-1个词有关,整句的概率就是词出现概率的乘积。假设有一个由N个词组成的句子S=(w1,w2…wn),其中,w1,w2…wn表示该句子中第一个词到最后一个词在该句中出现的概率,第i个词出现的概率wi由第一个词的概率w1到它之前一个单的概率wi-1来决定,则该句的概率公式表示为
Figure RE-GDA0003463284450000081
N-gram中的N是指一个词出现的概率与其之前第N-1个词的依赖关系,因此当N=2时表示一个词的出现依赖于其前之前的一个词,N=3时表示一个词的出现依赖于其前的两个词。
由于过滤后的哈希函数调用文本数据是由多对键值对组成的,所以使用2- gram进行分词以便更好的表示该文本序列所表示的含义。将上述经过预处理后的文本序列2-gram处理后的到如下二元组序列:
[ID 0][0 Children][Children 1][1 FunctionName]
[FunctionName main][main Hash]
[Hash Ture]
步骤301.4,对步骤301.3的二元组序列进行权重赋值得到哈希函数调用文本数据二元组序列权重;
统计每个二元组序列在二元组序列总数中出现的频率作为特征,其次将各个二元组序列与其对应的二元组频率放在一起得到其向量化表示,之后使用 TF-IDF方法对每个二元组序列进行权重赋值;再将特征进行标准化。
步骤302,提取存在用户异常行为网页的运行性行为特征;
存在用户异常行为网页的运行性行为特征包括网页的线程数、堆栈函数中支持从高级编程语言编译密码原语到浏览器的机器码模块数量、子线程函数调用序列中子序列的最大频数;
考虑到许多攻击者在对用户浏览网页植入网页用户异常行为脚本时,一把会创建一个或者多个专用线程来执行网页用户异常行为任务,通过模拟运行用户异常行为网页时发现,存在用户异常行为网页需要创建6~9个线程,并且利用其中的几个线程专门用于执行用户异常行为网页,因此在本实施例中选取网页的线程数作为评估网页是否具有存在用户异常行为的运行性行为特征之一;
通过分析网页用户异常运行时的通信原理可知,一般存在用户异常行为网页需要使用支持从高级编程语言编译密码原语到浏览器的机器码模块来提高计算效率。并且该模块需要在浏览器中基于堆栈的虚拟机上执行,因此可将堆栈函数中支持从高级编程语言编译密码原语到浏览器的机器码模块数量作为识别网页用户异常行为的运行性行为特征之一。在本实施例中,支持从高级编程语言编译密码原语到浏览器的机器码模块为WebAssembly。
由于存在用户异常行为网页需要大量的密集计算来获取哈希值,因此存在用户异常行为网页脚本需要重复性地调用挖掘算法,从而导致函数调用呈现出密集的周期性特征,最终体现为浏览器线程的函数调用序列中存在较高的子序列调用频数。而正常网页中极少出现密集型计算,故通常不存在上述特征,所以存在一个或多个用户异常行为线程的网页即可被视为用户异常行为网页。因此本实施例将子线程函数调用序列中子序列的最大频数作为识别网页用户异常行为的运行性行为特征之一。
为确定子线程函数调用序列中子序列的最大频数,通过模拟运行用户异常行为检测网页获取网页运行60s内各个线程的函数调用序列,即网页运行过程中访问函数调用结构中的节点函数而产生的一组序列。再统计出浏览器线程的函数调用序列中的子序列调用频数,在本实施例中,最终确定子线程函数调用序列中子序列的最大频数为5。
步骤303,提取存在用户异常行为网页的网络行为特征;
考虑到大多数网页存在用户异常行为时,需要建立存在用户异常行为网页的线程与本地服务器之间的双向通信,因此网络行为特征包括将存在用户异常行为网页的线程与本地服务器之间的双向通信连接数、网页运行时的 Websockets连接数、页运行时的worker线程数以及Messageloop事件内容;
由于现在大多数浏览器都支持Websockets通信,其是一种在单个TCP连接上进行全双工通信的协议,并且绝大多数正常网页都会使用HTTP协议来处理用户请求,所以本实施例将网页运行时的Websockets连接数作为识别网页用户异常行为的网络行为特征之一。
其他可以使用的网路行为特征还包括网页运行时的worker线程数;采用主线程执行网页用户异常行为任务一般会引起网页界面反应缓慢容易引起用户怀疑,所以目前的绝大多数用户异常行为网页并不会占用用户的主线程来执行用户异常行为任务,而是根据webworker理念创建附属主线程之外的worker线程来处理网页用户异常行为任务,这些附属线程可以接受并且处理来自主线程分配的其他任务,因此可以将网页运行时的worker线程数作为识别网页用户异常行为的网络行为特征之一。
浏览器是一种多进程的结构设计,每个进程内又有许多线程,多线程之间的交互则通过Messageloop事件进行。我们已经知道Web Worker的出现可以使主线程创建多个子线程用以处理任务,子线程之间可以通过共同运算得出结果,而线程之间的交互则通过Messageloop事件进行,因此选取Messageloop事件内容作为识别恶意用户异常行为网站的特征之一。
步骤4,对改进的机器学习模型进行训练,得到可以动态检测网页用户异常行为的机器学习模型;
具体训练方法包括以下内容:
步骤401,各客户端对本地数据集中的样本进行编号,得到N个编号,再对每条数据样本的特征进行编号,共得到M个特征,M=N×K,K表示特征的类别数;在本实施例中,特征的类别有6个,分别为一个二元组序列权重特征、三个运行性行为特征以及两个网络行为特征;
步骤402,对本地数据集进行分类,在每个客户端构建一个决策树;
步骤402.1,如果是首次进行分裂,对于每个客户端,每次随机选择一个样本,然后放回继续选择,直到随机选取n个样本,将选好的n个样本作为决策树根节点处的样本;如果不是首次进行分裂,则直接进入步骤402.2;
步骤402.2,随机从M个特征中选出包含m个特征的特征集合(m≤M)并计算该特征集合中每个特征的信息增益,选择信息增益最大的特征a作为分裂属性;如果是首次进行分裂,则将信息增益最大的特征a作为分裂属性,其值|a| 作为分裂值;如果不是首次进行分裂,则将则将信息增益最大的特征a与其值 |a|与中心服务器传回的分裂属性和分裂值进行比较,选择数值更大的作为本轮迭代的分裂属性与分裂值;
信息增益特征选择的一个重要指标,它定义为一个特征能够为分类系统带来多少信息,带来的信息越多,说明该特征越重要,相应的信息增益也就越大。
信息增益计算公式如下:
G(m,a)=H(m)-H(a|m)
其中,H(m)为包含m个特征的特征集合的熵,H(a|m)为在给定特征a的条件下,特征集合m的条件熵,其求取方法分别为:
Figure RE-GDA0003463284450000111
Figure RE-GDA0003463284450000112
其中,|m|为选取的特征集合中特征的个数,Ck表示第k类的特征,k= 1,2…,K,|Ck|为属于第k类特征Ck的样本个数,在本实施例中,即与本地数据集中的样本数量一致;根据特征a的取值将m划分为n个子集m1,m2…,mn, mik为子集合mi中属于第k类特征Ck的集合;
决策树形成的过程中,每个节点都通过该方法选取分裂属性,若该节点选取的分裂属性是其父节点选取的分裂属性,则该节点为叶子节点,无需进行分裂;
步骤402.3,客户端每次构建客户端决策树的根节点或叶子节点时,使用同态加密算法对该节点的信息增益、分裂属性以及分裂值进行加密,并将加密后的结果上传至中心服务器端,
Figure RE-GDA0003463284450000121
其中,
Figure RE-GDA0003463284450000122
表示加法同态加密
这里的中间结果是在决策树的构建过程中将每步选择的结果,即决策树当前节点的分裂属性a、分裂值|a|以及信息增益G(m,a);
于本发明实施例中,包括多个客户端,生成多个数据集,因此,每个客户端的决策树构建过程中均产生不同的中间结果,需要将所有中间结果都上传至中间服务器端。
步骤403,中心服务器端优化选择中间结果;
中心服务器端从各个客户端接收到各客户端的中间结果后比较并选择每个客户端信息增益最大的分裂属性和分裂值作为该客户端当前节点的分裂信息,将选出的分裂属性和分裂值分发其对应的客户端;
步骤404,客户端的决策树重新分裂,不断迭代步骤401-404直到每个客户端的决策树分裂出的节点全部指向同一类;
各客户端将接收到的分裂属性和分裂值作为当前节点的分裂信息,并对当前数据集进行划分,其左右子树的构建过程遵从步骤401-404不断迭代,
步骤5,实时采集待检测网站的网页代码,并利用步骤4训练好的机器学习模型进行检测;
步骤501:使用步骤3的方法提取待检测网站网页代码的样本特征;
步骤502:将特征输入至所有客户端的决策树进行判定;
步骤503:统计每个客户端决策树的分类结果,将所得频率最高的分类结果作为最终的检测结果。
本发明还公开了一个基于改进机器学习的网页用户行为检测方法的网页用户行为检测系统,包括客户端、中心服务器,客户端包括数据采集模块、特征提取模块以及决策树构建模块;具体结构示意图如图2所示;
客户端的数量大于等于2,其被部署在任意能够运行网页的终端上,在每个客户端模拟运行大于1的正常网页和大于1的用户异常行为网页;每个客户端分别与中心服务器连接;
客户端中的数据采集模块负责采集客户端上正常网页与用户异常行为网页的网页源代码,并将采集的网页源代码作为数据集输入至特征提取模块;
特征提取模块提取数据集的特征,包括哈希函数调用文本数据的二元组序列权重、存在用户异常行为网页的运行性行为特征以及网络行为特征,并将提取到的特征输入至决策树构建模块;
决策树构建模块用于构建可以判定网页用户异常行为的决策树;该模块随机选取部分特征样本,在首次分裂时,选择信息增益最大的特征作为分裂属性、该特征对应的值作为分裂值进行分裂,并对此时的分裂属性、分裂值以及该特征的信息增益进行同态加密后输入至中心服务器;如果不是首次分裂,决策树构建模块将信息增益最大的特征对应的值与中心服务器返回的分裂值进行比较,选择更大的作为本次分裂的分裂值,其对应的特征为分裂属性,并对此时的分裂属性、分裂值以及该特征的信息增益进行同态加密后输入至中心服务器;
中心服务器对每次接受到的分裂属性、分裂值以及信息增益进行保存,对于每个客户端,挑选保存的该客户端信息增益最大的分裂属性和分裂值,并将信息增益最大的分裂属性、分裂值和信息增益返回至决策树构建模块。
本发明申请人结合说明书附图对本发明的实施示例做了详细的说明与描述,但是本领域技术人员应该理解,以上实施示例仅为本发明的优选实施方案,详尽的说明只是为了帮助读者更好地理解本发明精神,而并非对本发明保护范围的限制,相反,任何基于本发明的发明精神所作的任何改进或修饰都应当落在本发明的保护范围之内。

Claims (11)

1.一种基于改进机器学习的网页用户行为检测方法,其特征在于,所述基于改进机器学习的网页用户行为检测方法包括以下步骤:
步骤1,在每个客户端模拟运行大于1的正常网页和大于1的用户异常行为网页;客户端数量大于等于2,其被部署在任意能够运行网页的终端上,每个客户端分别与中心服务器连接;
步骤2,采集各客户端所对应的正常网页或用户异常行为网页中的网页源代码作为本地数据集;
步骤3,提取步骤2本地数据集中每条样本的特征;每条样本的特征包括哈希函数调用文本数据的二元组序列权重、存在用户异常行为网页的运行性行为特征以及网络行为特征;
步骤4,对改进的机器学习模型进行训练,得到可以动态检测网页用户异常行为的机器学习模型;
步骤5,实时采集待检测网站的网页代码,并利用步骤4训练好的机器学习模型进行检测。
2.根据权利要求1所述的网页用户行为检测方法,其特征在于:
在所述步骤2中,网页源代码是指与网页用户异常行为脚本相关的源代码内容,包括网页源代码中的JavaScript代码以及网页源代码中引用的本地服务器和远程服务器的JavaScript代码。
3.根据权利要求1所述的网页用户行为检测方法,其特征在于:
在所述步骤3中,存在用户异常行为网页的运行性行为特征指能够体现存在用户异常行为网页与正常网页在运行时的不同特征,包括网页的线程数、堆栈函数中支持从高级编程语言编译密码原语到浏览器的机器码模块个数以及子线程函数调用序列中子序列的最大频数;
存在用户异常行为网页的网络行为特征指能够体现存在用户异常行为网页与正常网页与网络有关的不同特征,包括存在用户异常行为网页的线程与本地服务器之间的双向通信连接数、网页运行时的Websockets连接数、网页运行时的worker线程数以及Messageloop事件内容。
4.根据权利要求1或3所述的网页用户行为检测方法,其特征在于:
所述步骤3包括以下内容:
步骤301,计算本地数据集里哈希函数调用文本数据二元组序列权重;
步骤302,提取存在用户异常行为网页的运行性行为特征;
步骤303,提取存在用户异常行为网页的网络行为特征。
5.根据权利要求4所述的网页用户异常行为检测方法,其特征在于:
所述步骤301包括以下内容:
步骤301.1,提取哈希函数调用文本数据;
步骤301.2,对哈希函数调用文本数据进行特殊符号过滤;特殊符号指所有的非数字或非英文字符,包括标点符号与除分词需要外的空格;
步骤301.3,使用2-gram对过滤后的哈希函数调用文本数据进行分词操作,得到二元组序列;
步骤301.4,对步骤301.3的二元组序列进行权重赋值得到哈希函数调用文本数据二元组序列权重。
6.根据权利要求5所述的网页用户行为检测方法,其特征在于:
在所述步骤301.4中,统计每个二元组序列在二元组序列总数中出现的频率作为特征,其次将各个二元组序列与其对应的二元组频率放在一起得到其向量化表示,之后使用TF-IDF方法对每个二元组序列进行权重赋值;再将特征进行标准化。
7.根据权利要求1所述的网页用户行为检测方法,其特征在于:
所述步骤4包括以下内容:
步骤401,各客户端对本地数据集中的样本进行编号,得到N个编号,再对每条数据样本的特征进行编号,共得到M个特征,M=N×K,K表示特征的类别数;
步骤402,对本地数据集进行分类,在每个客户端构建一个决策树;
步骤403,中心服务器端从各个客户端接收到各客户端的中间结果后比较并选择每个客户端信息增益最大的分裂属性和分裂值作为该客户端当前节点的分裂信息,将选出的分裂属性和分裂值分发其对应的客户端;
步骤404,客户端的决策树重新分裂,不断迭代步骤401-404直到每个客户端的决策树分裂出的节点全部指向同一类。
8.根据权利要求7所述的网页用户行为检测方法,其特征在于:
所述步骤402包括以下内容:
步骤402.1,如果是首次进行分裂,对于每个客户端,每次随机选择一个样本,然后放回继续选择,直到随机选取n个样本,将选好的n个样本作为决策树根节点处的样本;如果不是首次进行分裂,则直接进入步骤402.2;
步骤402.2,随机从M个特征中选出包含m个特征的特征集合(m≤M)并计算该特征集合中每个特征的信息增益,选择信息增益最大的特征a作为分裂属性;如果是首次进行分裂,则将信息增益最大的特征a作为分裂属性,其值|a|作为分裂值;如果不是首次进行分裂,则将则将信息增益最大的特征a与其值|a|与中心服务器传回的分裂属性和分裂值进行比较,选择数值更大的作为本轮迭代的分裂属性与分裂值;
决策树形成的过程中,每个节点都通过该方法选取分裂属性,若该节点选取的分裂属性是其父节点选取的分裂属性,则该节点为叶子节点,无需进行分裂;
步骤402.3,客户端每次构建客户端决策树的根节点或叶子节点时,使用同态加密算法对该节点的信息增益、分裂属性以及分裂值进行加密,并将加密后的结果上传至中心服务器端。
9.根据权利要求8所述的网页用户行为检测方法,其特征在于:
所述信息增益的满足以下关系式:
G(m,a)=H(m)-H(a|m)
其中,H(m)为包含m个特征的特征集合的熵,H(a|m)为在给定特征a的条件下,特征集合m的条件熵,其求取方法分别为:
Figure RE-FDA0003463284440000031
Figure RE-FDA0003463284440000032
其中,|m|为选取的特征集合中特征的个数,Ck表示第k类的特征,k=1,2…,K,|Ck|为属于第k类特征Ck的样本个数,在本实施例中,即与本地数据集中的样本数量一致;根据特征a的取值将m划分为n个子集m1,m2…,mn,mik为子集合mi中属于第k类特征Ck的集合。
10.根据权利要求1或9所述的网页用户行为检测方法,其特征在于:
所述步骤5包括以下内容:
步骤501:使用步骤3的方法提取待检测网站网页代码的样本特征;
步骤502:将特征输入至所有客户端的决策树进行判定;
步骤503:统计每个客户端决策树的分类结果,将所得频率最高的分类结果作为最终的检测结果。
11.根据权利要求1-10任意一项所述的基于改进机器学习的网页用户行为检测方法的网页用户行为检测系统,包括客户端、中心服务器,其特征在于:
所述客户端还包括数据采集模块、特征提取模块以及决策树构建模块。
所述客户端的数量大于等于2,其被部署在任意能够运行网页的终端上,在每个客户端模拟运行大于1的正常网页和大于1的用户异常行为网页;每个客户端分别与中心服务器连接;
所述客户端中的数据采集模块负责采集客户端上正常网页与用户异常行为网页的网页源代码,并将采集的网页源代码作为数据集输入至特征提取模块;
所述特征提取模块提取数据集的特征,包括哈希函数调用文本数据的二元组序列权重、存在用户异常行为网页的运行性行为特征以及网络行为特征,并将提取到的特征输入至决策树构建模块;
所述决策树构建模块用于构建可以判定网页用户异常行为的决策树;该模块随机选取部分特征样本,在首次分裂时,选择信息增益最大的特征作为分裂属性、该特征对应的值作为分裂值进行分裂,并对此时的分裂属性、分裂值以及该特征的信息增益进行同态加密后输入至中心服务器;如果不是首次分裂,决策树构建模块将信息增益最大的特征对应的值与中心服务器返回的分裂值进行比较,选择更大的作为本次分裂的分裂值,其对应的特征为分裂属性,并对此时的分裂属性、分裂值以及该特征的信息增益进行同态加密后输入至中心服务器;
所述中心服务器对每次接受到的分裂属性、分裂值以及信息增益进行保存,对于每个客户端,挑选保存的该客户端信息增益最大的分裂属性和分裂值,并将信息增益最大的分裂属性、分裂值和信息增益返回至决策树构建模块。
CN202111256666.XA 2021-10-27 2021-10-27 一种基于改进机器学习的网页用户行为检测方法及系统 Pending CN114169540A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111256666.XA CN114169540A (zh) 2021-10-27 2021-10-27 一种基于改进机器学习的网页用户行为检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111256666.XA CN114169540A (zh) 2021-10-27 2021-10-27 一种基于改进机器学习的网页用户行为检测方法及系统

Publications (1)

Publication Number Publication Date
CN114169540A true CN114169540A (zh) 2022-03-11

Family

ID=80477405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111256666.XA Pending CN114169540A (zh) 2021-10-27 2021-10-27 一种基于改进机器学习的网页用户行为检测方法及系统

Country Status (1)

Country Link
CN (1) CN114169540A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116545650A (zh) * 2023-04-03 2023-08-04 中国华能集团有限公司北京招标分公司 一种网络动态防御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116545650A (zh) * 2023-04-03 2023-08-04 中国华能集团有限公司北京招标分公司 一种网络动态防御方法
CN116545650B (zh) * 2023-04-03 2024-01-30 中国华能集团有限公司北京招标分公司 一种网络动态防御方法

Similar Documents

Publication Publication Date Title
CN110765458B (zh) 一种基于深度学习的恶意软件图像格式检测方法及其装置
CN110808968B (zh) 网络攻击检测方法、装置、电子设备和可读存储介质
CN108259494B (zh) 一种网络攻击检测方法及装置
CN109753800B (zh) 融合频繁项集与随机森林算法的Android恶意应用检测方法及系统
CN111585955A (zh) 一种http请求异常检测方法及系统
CN116010947A (zh) 一种基于异质网络的Android恶意软件检测方法
Zhang et al. A php and jsp web shell detection system with text processing based on machine learning
Gao et al. Detecting SQL injection attacks using grammar pattern recognition and access behavior mining
CN114297079A (zh) 基于时间卷积网络的xss模糊测试用例生成方法
CN112507336A (zh) 基于代码特征和流量行为的服务端恶意程序检测方法
CN111754338A (zh) 一种套路贷网站团伙识别方法及系统
CN113067792A (zh) 一种xss攻击识别方法、装置、设备及介质
CN112817877B (zh) 异常脚本检测方法、装置、计算机设备和存储介质
CN105243327B (zh) 一种文件安全处理方法
CN114285641A (zh) 网络攻击检测方法及装置、电子设备、存储介质
CN114169540A (zh) 一种基于改进机器学习的网页用户行为检测方法及系统
Yan et al. Cross-site scripting attack detection based on a modified convolution neural network
CN105468972A (zh) 一种移动终端文件检测方法
CN110717182A (zh) 一种网页木马检测方法、装置、设备及可读存储介质
CN115314268B (zh) 基于流量指纹和行为的恶意加密流量检测方法和系统
CN111475812B (zh) 一种基于数据可执行特征的网页后门检测方法与系统
CN113946823A (zh) 一种基于url基线偏离度分析的sql注入检测方法及装置
CN112052453A (zh) 基于Relief算法的webshell检测方法及装置
Wan et al. Generation of malicious webpage samples based on GAN
Khatun et al. An Approach to Detect Phishing Websites with Features Selection Method and Ensemble Learning

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination