CN111541687B - 一种网络攻击检测方法及装置 - Google Patents
一种网络攻击检测方法及装置 Download PDFInfo
- Publication number
- CN111541687B CN111541687B CN202010315920.8A CN202010315920A CN111541687B CN 111541687 B CN111541687 B CN 111541687B CN 202010315920 A CN202010315920 A CN 202010315920A CN 111541687 B CN111541687 B CN 111541687B
- Authority
- CN
- China
- Prior art keywords
- access
- user
- address
- record
- access address
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Abstract
本发明实施例提供一种网络攻击检测方法及装置,该方法包括:获取用户的访问记录;访问记录是用户对同一访问地址进行访问的访问信息;对访问记录进行特征提取,得到访问记录的特征数据。将特征数据输入机器学习模型,确定用户对访问地址的访问是否为恶意访问;机器学习模型是通过历史正常访问记录和历史恶意访问记录进行训练得到的。相比于现有技术中的正则匹配方法检测攻击;本申请实施例提供的方法不需要技术人员撰写复杂的正则表达式,也无需技术人员对正则库进行维护;消除因为正则表达式条数过多,影响正则引擎的性能,延长检测时间的问题。节省了大量的人力成本和时间成本,且增加对网络攻击的检测的准确性,提升服务器和信息的安全性。
Description
技术领域
本申请涉及网络技术领域,尤其涉及一种网络攻击检测方法及装置。
背景技术
近年来,随着网络技术的迅速发展,网络应用的快速普及,越来越多的人使用网络,使得网络信息呈井喷式增加,如用户私人信息或企业关键数据等;而这些网络信息的安全也相应成为如今人们最关心的话题之一。
现有技术中,一般通过在服务器中设置检测引擎,在该检测引擎中内置正则表达式;正则表达式由技术人员编写,用于匹配包含黑客攻击代码的相应报文,以确定服务器是否受到攻击。但若是正则表达式编写的过于宽泛,则会使得很多正常报文遭到拦截;若是正则表达式编写的过于狭细,又会使得黑客易于绕过正则表达式的匹配,使服务器遭受到攻击,造成信息泄露或服务器损坏。且正则表达式的语句过多也会拖慢检测引擎的检测速度。另外,随着计算机的发展与普及,网络黑客对服务器的攻击方式也越来越多样化,例如XSS攻击,SQL注入等。而因此,正则表达式的编写变得复杂且不便更新,需要技术人员花费大量的时间与精力来维护正则表达式的准确性。
因此,现在亟需一种网络攻击检测方法及装置,增加对网络攻击的检测的准确性,提升服务器和信息的安全性。
发明内容
本发明实施例提供一种网络攻击检测方法及装置,增加对网络攻击的检测的准确性,提升服务器和信息的安全性。
第一方面,本发明实施例提供一种网络攻击检测方法及装置,该方法包括:
获取用户的访问记录;所述访问记录是用户对同一访问地址进行访问的访问信息;对所述访问记录进行特征提取,得到所述访问记录的特征数据。将所述特征数据输入机器学习模型,确定所述用户对所述访问地址的访问是否为恶意访问;所述机器学习模型是通过历史正常访问记录和历史恶意访问记录进行训练得到的。
采用上述方法,获取访问记录,提取访问记录的特征数据,将特征数据输入机器学习模型,以此确定该访问是恶意访问还是正常访问。相比于现有技术中的正则匹配方法检测恶意代码来说,本申请实施例提供的方法不需要技术人员撰写复杂的正则表达式,也不需要技术人员对正则库进行维护,消除了因为正则表达式条数过多,影响正则引擎的性能,从而延长检测时间的问题;节省了大量的人力成本和时间成本,且增加对网络攻击的检测的准确性,提升服务器和信息的安全性。
在一种可能的设计中,获取用户的访问记录,包括:确定所述用户对所述访问地址进行访问后,在预设时间内没有再对所述访问地址进行访问;获取所述用户在所述预设时间之前对所述访问地址连续访问的访问信息,作为所述访问记录;所述连续访问指相邻两次访问的时间间隔小于所述预设时间。
采用上述方法,通过两种方式获取访问信息,可以针对用户两种访问场景,即连续访问与可以为非连续访问,进行网络攻击检测。例如,在一种场景下,即,用户为非法用户,尝试对该访问地址进行网络攻击时,一般来说,网络攻击不是一瞬间可以完成的,需要较长时间进行大量的访问、试错等,才能实现网络攻击的成功;因此,通过上述两种方式,可以根据访问地址的防火墙性能、密钥、认证等设置,具体确定获取连续访问的访问记录,或获取包括连续访问和\或非连续访问的访问记录,以便于网络攻击的检测。
在一种可能的设计中,所述机器学习模型是通过历史正常访问记录和历史恶意访问记录进行训练得到的,包括:获取所述历史正常访问记录和所述历史恶意访问记录;根据所述历史正常访问记录确定所述历史正常访问记录中各个正常访问的特征数据;根据所述历史恶意访问记录确定所述历史恶意访问记录中各个恶意访问的特征数据;将所述各个正常访问的特征数据作为正样本,将所述各个恶意访问的特征数据作为负样本,对初始模型进行机器学习,得到所述机器学习模型。
采用上述方法,根据历史正常访问记录中的各个正常访问的特征数据做正样本和历史恶意访问记录中的各个恶意访问的特征数据做负样本,进行机器学习得到的机器学习模型,能够更加准确地确定用户的访问为正常访问或是恶意访问。
在一种可能的设计中,所述特征数据至少包括:所述用户对所述访问地址的访问次数;无法访问所述访问地址的次数占所述访问次数的比例;访问状态的状态熵,所述状态熵用于表征所述用户对所述访问地址的访问状态的一致程度;所述用户访问所述访问地址的访问频率。
采用上述方法,通过用户对访问地址的访问次数,无法访问访问地址的次数占访问次数的比例;可以确定该用户对该访问地址的了解程度。例如,若该用户对自己的计算机本地图片资源访问,可以准确输入访问地址,成功获取图片资源;若非法用户获取该图片资源则需要不停地试错地址;如此,造成大量的无法访问访问地址的信息,加大无法访问访问地址的次数占访问次数的比例,而该比例越大,则该用户越有可能是非法用户。进一步结合该用户的访问状态熵和访问频率。可以准确确定该用户的访问是否为恶意访问。
在一种可能的设计中,所述特征数据还包括:所述用户访问所述访问地址的不同uri的条数;所述用户访问所述访问地址的平均资源包大小;所述用户访问所述访问地址的所有uri的平均uri长度;所述访问地址中包含的敏感词的个数;所述用户各次访问所述访问地址中子文件夹个数的方差;所述用户各次访问所述访问地址的时间间隔、所述用户对访问地址中各页面的访问次数中最大访问次数。
采用上述方法,基于访问记录中的用户对访问地址的访问次数、无法访问访问地址的次数占访问次数的比例、访问该访问地址的访问状态熵和访问频率这四项特征数据,进一步获取访问记录中的用户访问访问地址的不同uri的条数、用户访问访问地址的平均资源包大小、用户访问访问地址的所有uri的平均uri长度、访问地址中包含的敏感词的个数、用户各次访问访问地址中子文件夹个数的方差、用户各次访问访问地址的时间间隔、用户对访问地址中各页面的访问次数中最大访问次数。如此,根据至少十一维特征数据,可以更加准确地确定该访问是否为恶意访问,增加机器学习结果的准确性。
在一种可能的设计中,所述机器学习模型为至少包括N棵决策树的随机森林模型,其中,所述N棵决策树中的每棵决策树都由第一随机过程和第二随机过程确定,所述第一随机过程为随机确定所述决策树的特征数据,所述第二随机过程为随机确定所述决策树的深度。
采用上述方法,使得机器学习模型为至少包括N棵决策树的随机森林模型,并通过两个随机过程确定决策树的特征数据和树深;如此,由于两个随机过程,可以使得随机森林的决策树的确定更加灵活,且由于随机森林模型至少包括N棵决策树,可以使获得的随机深林模型后续处理高维度的特征数据的特征向量,提升分类精度,训练速度快。
在一种可能的设计中,所述随机森林模型包含100棵决策树,每棵决策树的特征数据的个数最大为10,每棵决策树的深度不大于50。
采用上述方法,使得随机森林模型包含100棵决策树,每棵决策树的特征数据的个数最大为10,每棵决策树的深度不大于50;对于上述至少四维或至少十一维的特征数据在随机森林模型中的结果更加准确。
在一种可能的设计中,确定所述用户对所述访问地址的访问是否为恶意访问之后,还包括:若为恶意访问,则将所述访问记录存储在历史恶意访问记录中并记录所述用户的用户信息;若为正常访问,将所述访问记录存储在历史正常访问记录中。
采用上述方法,通过将已确定的恶意访问或正常访问,分别存储在历史恶意访问记录或历史正常访问记录中;如此,使得历史恶意访问记录和历史正常访问记录时时更新,以便于后续对机器学习模型的更新,进一步增加机器学习模型的准确性。
第二方面,本发明实施例提供一种网络攻击检测装置,该装置包括:
获取单元,用于获取用户的访问记录;所述访问记录是用户对同一访问地址进行访问的访问信息;
处理单元,用于对所述访问记录进行特征提取,得到所述访问记录的特征数据;
所述处理单元还用于,将所述特征数据输入机器学习模型,确定所述用户对所述访问地址的访问是否为恶意访问;所述机器学习模型是通过历史正常访问记录和历史恶意访问记录进行训练得到的。
第三方面,本申请实施例还提供一种计算设备,包括:存储器,用于存储计算机程序;处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行如第一方面的各种可能的设计中所述的方法。
第四方面,本申请实施例还提供一种计算机可读非易失性存储介质,包括计算机可读程序,当计算机读取并执行所述计算机可读程序时,使得计算机执行如第一方面的各种可能的设计中所述的方法。
本申请的这些实现方式或其他实现方式在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种网络攻击检测的架构示意图;
图2为本发明实施例提供的一种网络攻击检测方法的流程示意图;
图3为本发明实施例提供的一种网络攻击检测方法的流程示意图;
图4为本发明实施例提供的一种网络攻击检测装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种网络攻击检测的系统架构,用户101可以同时访问一个或多个服务器、电脑、手机、平板电脑、穿戴设备等电子网络设备;例如,服务器102、服务器103、服务器104。此处,以用户101访问服务器102为例;当用户101访问服务器102时,服务器102根据用户101对服务器102的同一访问地址进行访问的访问信息生成访问记录,这里访问记录可以是HTTP访问日志。服务器102对该访问记录的特征数据进行提取,并将该特征数据输入机器学习模型,以确定用户101对服务器102的该访问地址的访问是否为恶意访问。这里也可以通过监测服务器105获取服务器102、服务器103、服务器104等电子网络设备的访问记录或访问信息。在上述示例中,网络攻击检测可以是对web攻击的检测。监测服务器105获取服务器102的访问记录或访问信息,提取该访问记录或根据该访问信息生成的访问记录的特征数据,将该特征数据输入机器学习模型,以确定用户101对服务器102的访问地址的访问是否为恶意访问。需要说明的是,用户具体使用访问设备具体不做限制,可以是电脑、平板电脑、手机、穿戴设备等网络电子设备。
基于此,本申请实施例提供了一种网络攻击检测的方法,如图2所示,包括:
步骤201、获取用户的访问记录;所述访问记录是用户对同一访问地址进行访问的访问信息;
此处,访问信息包括操作系统版本,浏览器版本,IP地址,MAC地址,浏览器分辨率,访问地址、语言设置、访问次数、访问网页的访问状态等等。结合图1中的架构进行说明,则,当服务器102或监测服务器105可以将这些访问信息部分或全部整理并记录,生成访问记录;或者监测服务器105直接获取服务器102生成的访问记录。
步骤202、对所述访问记录进行特征提取,得到所述访问记录的特征数据;
此处,特征数据可以为一维或多维,即,可以为一个或多个数值,或者也可以为一个数值或一个多维向量。这里特征数据的形式可以为适合机器学习模型的任何形式,具体不做限定。
步骤203、将所述特征数据输入机器学习模型,确定所述用户对所述访问地址的访问是否为恶意访问;所述机器学习模型是通过历史正常访问记录和历史恶意访问记录进行训练得到的。
此处,机器学习模型可以为随机森林模型、支持向量机(Support VectorMachine,SVM)、K最近邻(kNN,k-NearestNeighbor)分类算法、多层感知机(MLP,MultilayerPerceptron)等可以进行二分类的机器学习。如此,根据输入访问记录的特征数据的机器学习模型,可以确定出该访问为恶意访问或正常访问。
采用上述方法,获取访问记录,提取访问记录的特征数据,将特征数据输入机器学习模型,以此确定该访问是恶意访问还是正常访问。相比于现有技术中的正则匹配方法检测恶意代码来说,本申请实施例提供的方法不需要技术人员撰写复杂的正则表达式,也不需要技术人员对正则库进行维护,消除了因为正则表达式条数过多,影响正则引擎的性能,从而延长检测时间的问题。节省了大量的人力成本和时间成本,且增加对网络攻击的检测的准确性,提升服务器和信息的安全性。
针对步骤201中,获取用户的访问记录,可以包括:确定所述用户对所述访问地址进行访问后,在预设时间内没有再对所述访问地址进行访问;获取所述用户在所述预设时间之前对所述访问地址连续访问的访问信息,作为所述访问记录;所述连续访问指相邻两次访问的时间间隔小于所述预设时间。也就是说,在确定该用户101在预设时间没有继续访问该访问地址,也没有访问信息的生成;此时,获取在此刻之前的访问时间间隔小于预设时间的该用户101连续访问该访问地址的访问记录。在如图1架构中的服务器102可以知道用户101访问该访问地址的访问信息,在确定该用户101在预设时间没有继续访问该访问地址,获取在此刻之前的某段时间内该用户101访问该访问地址的访问信息,从而生成访问记录;或者,服务器102根据用户101访问该访问地址的访问信息,直接生成访问记录,而无需判断是否在预设时间没有继续访问该访问地址;或者监测服务器105根据服务器102的访问信息获取访问记录,是在确定该用户101在预设时间没有继续访问该访问地址,具体可通过在服务器102内设置监测线程;或者,监测服务器105根据从服务器102获取的访问信息中,确定出访问记录,即服务器102将该用户对该访问地址的所有访问信息都发送给监测服务器105;监测服务器105从所有访问信息中确定出在特定时刻之前的某段时间内该用户101访问该访问地址的访问信息,从而生成访问记录。此处的特定时刻是指用户在特定时刻后的预设时间内没有再对所述访问地址进行访问。这里的某段时间可以是1h、2h、5h、1d、7d等等,技术人员可以根据需要设置,具体不做限定。
其中,针对步骤202中的访问记录的特征数据至少可以包括如下四维特征数据:所述用户对所述访问地址的访问次数;无法访问所述访问地址的次数占所述访问次数的比例;访问状态的状态熵,所述状态熵用于表征所述用户对所述访问地址的访问状态的一致程度;所述用户访问所述访问地址的访问频率。
此处,用户对访问地址的访问次数;可以为用户对访问的资源所在的地址的访问次数,或用户对登录网页所在地址的访问次数等等,具体不做限定。例如,用户访问地址:https://weibo.com/,即,微博登录页面。用户访问地址https://weibo.com/100次,则用户对访问地址的访问次数为100。
无法访问访问地址的次数占访问次数的比例;可以为用户访问资源所在地址不存在的次数占访问该资源所在地址的总次数的比例,或用户登录网页用户名或密码错误次数占总登录次数的比例等,具体不做限定。在上个示例中,用户访问该访问地址前99次输入用户名和\或密码错误,登录失败;则无法访问访问地址的次数占访问次数的比例为99/100。
访问状态的状态熵;用于表征用户对访问地址的访问状态的一致程度。例如,用户访问同一个访问地址3次,第一次访问状态为404,即,请求的网页不存在;第二次访问状态为503,即,服务不可用;第三次访问状态为200,即,服务器成功返回网页。如此,3次访问的访问状态都不同,3次访问的访问状态较混乱,访问状态的状态熵较高。若第一次、第二次、第三次的访问状态都为404或503或200,3次访问的访问状态的一致程度很高,则访问状态的状态熵很低。
用户访问访问地址的访问频率;为用户在单位时间内对该访问地址的访问次数。
针对步骤202中的访问记录的特征数据,在包括上述四维特征数据的情况下,还可以包括以下七维特征数据中的任一项或多项:所述用户访问所述访问地址的不同uri的条数;所述用户访问所述访问地址的平均资源包大小;所述用户访问所述访问地址的所有uri的平均uri长度;所述访问地址中包含的敏感词的个数;所述用户各次访问所述访问地址中子文件夹个数的方差;所述用户各次访问所述访问地址的时间间隔、所述用户对访问地址中各页面的访问次数中最大访问次数。
此处,用户访问该访问地址的不同uri(标识、定位任何资源的字符串)的条数;例如,用户访问一个访问地址‘WWW.BAIDU.COM\F\IMAGE\图片’中的不同资源,即,WWW.BAIDU.COM\F\IMAGE\图片\2017年、WWW.BAIDU.COM\F\IMAGE\图片\2018年、WWW.BAIDU.COM\F\IMAGE\图片\2019年、WWW.BAIDU.COM\F\IMAGE\图片\2020年。则用户访问该访问地址的不同uri的条数为4条。
用户访问该访问地址的平均资源包大小;例如,用户登陆微博后,上传一条动态到微博后台服务器,则该上传动态可能包括文字和图片等,即为上传资源包;微博后台服务器将该动态展示,即为微博后台服务器针对该动态返回资源包。如此,上传资源包的大小和返回资源包的大小的平均值,即为平均资源包大小。平均资源包大小也可以是多次发布动态的上传资源包和返回资源包总资源包大小/发布动态的次数*2。
用户访问该访问地址的所有uri的平均uri长度;例如,针对同一访问地址进行3次访问,且每次访问的uri不同,三条uri的长度分别为2803、2807、2704,则该访问地址的所有uri的平均uri长度=(2803+2807+2704)/3=2438。
访问地址中包含的敏感词的个数;例如,用户访问的访问地址为WWW.BAIDU.COM\F\eval(...)\IMAGE\eval(...)、\图片。其中,eval(...)是程序语言中的函数,功能是获取返回值;非法用户可以通过在括号内编写相应的代码获取资源,用户一旦访问该访问地址,用户访问的服务器会自动执行用户编写的代码,帮助用户获取服务器中的资源。因此,eval(...)为针对用户可能进行恶意访问的敏感词。对于该访问地址中包含的敏感词个数为2个。
用户各次访问该访问地址中子文件夹个数的方差;例如,用户访问的访问地址为WWW.BAIDU.COM\F\IMAGE\图片。用户访问的访问地址中的子文件夹F为第1个,IMAGE为第2个,图片为第3个。则用户各次访问该访问地址中子文件夹个数的
用户各次访问该访问地址的时间间隔;例如,用户访问该访问地址WWW.BAIDU.COM\F\IMAGE\图片3次,第一次访问发生在00:00,第二次访问发生在00:10,第三次访问发生在00:20;则用户各次访问该访问地址的时间间隔为10min。
用户对访问地址中各页面的访问次数中最大访问次数;例如,对于访问地址https://weibo.com/中的3个页面,第1个页面的访问次数为10,第2个页面的访问次数为10,第3个页面的访问次数为100。则用户对访问地址中各页面的访问次数中最大访问次数为100。
如此,在步骤202中得到访问记录的特征数据至少包括:用户对访问地址的访问次数;无法访问访问地址的次数占访问次数的比例;访问状态的状态熵,状态熵用于表征用户对访问地址的访问状态的一致程度;用户访问访问地址的访问频率,这四维的特征数据。还可以包括:用户访问访问地址的不同uri的条数;用户访问访问地址的平均资源包大小;用户访问访问地址的所有uri的平均uri长度;访问地址中包含的敏感词的个数;用户各次访问访问地址中子文件夹个数的方差;用户各次访问访问地址的时间间隔、用户对访问地址中各页面的访问次数中最大访问次数等多维特征数据。
如此,得到该访问记录的特征数据后,如步骤203,将提取的访问记录的上述多维特征数据输入机器学习模型,以确定用户对访问地址的访问是否为恶意访问。
在执行步骤203之前,即将特征数据输入机器学习模型之前,可以通过历史正常访问记录和历史恶意访问记录对机器学习模型进行训练。包括:获取所述历史正常访问记录和所述历史恶意访问记录;根据所述历史正常访问记录确定所述历史正常访问记录中各个正常访问的特征数据;根据所述历史恶意访问记录确定所述历史恶意访问记录中各个恶意访问的特征数据;将所述各个正常访问的特征数据作为正样本,将所述各个恶意访问的特征数据作为负样本,对初始模型进行机器学习,从而得到所述机器学习模型。也就是说,为了增加机器学习模型的准确性,获取历史访问记录中的历史正常访问记录和历史恶意访问记录,可以提取历史正常访问记录中的各个正常访问记录的特征数据做正样本,提取历史恶意访问记录中的各个恶意访问记录的特征数据做负样本,根据正样本和负样本对初始模型进行机器学习训练,在初始模型的基础上获得初始模型的变形和/或相应的参数、阈值等,进一步得到机器学习模型。如此,将不确定是否为恶意的访问记录的特征数据输入该机器训练模型,可以准确得到访问是正常访问还是恶意访问的分类结果。
根据上述方法,本申请实施例提供了一种机器学习模型的实施例,即,机器学习模型为至少包括N棵决策树的随机森林模型,其中,所述N棵决策树中的每棵决策树都由第一随机过程和第二随机过程确定,所述第一随机过程为随机确定所述决策树的特征数据,所述第二随机过程为随机确定所述决策树的深度。
结合上述四维特征数据,即,用户对访问地址的访问次数、无法访问访问地址的次数占访问次数的比例、访问状态的状态熵、用户访问访问地址的访问频率,进行举例说明。例如,随机森林模型包含了至少N=3棵决策树;访问记录的四维特征数据为用户对访问地址的访问次数=89、无法访问访问地址的次数占访问次数的比例=60%、访问状态的状态熵50、用户访问访问地址的访问频率=1000/min。即,4个特征数据89、60%、50、1000;在第一棵决策树的第一随机过程随机选取两个特征数据,为用户对访问地址的访问次数89、无法访问访问地址的次数占访问次数的比例60%;第二随机过程随机确定第一棵决策树的树深为10;在第二棵决策树的第一随机过程随机选取三个特征数据,第二随机过程随机确定第二棵决策树的树深为10;在第三棵决策树的第一随机过程随机选取四个特征数据,第二随机过程随机确定第三棵决策树的树深为4。以第一棵决策树的树深为10举例,即,第一个节点为用户对访问地址的访问次数节点,阈值为50、第二个节点为无法访问访问地址的次数占访问次数的比例,阈值为79%、第三个节点为用户对访问地址的访问次数节点,阈值范围为20-30、第四个节点为用户对访问地址的访问次数节点,阈值为40、第五个节点为用户对访问地址的访问次数节点,阈值为80、第六个节点为无法访问访问地址的次数占访问次数的比例,阈值为60%、第七个节点为无法访问访问地址的次数占访问次数的比例,阈值范围为20%-50%、第八个节点为用户对访问地址的访问次数节点,阈值为80、第九个节点为用户对访问地址的访问次数节点,阈值为40、第十个节点为无法访问访问地址的次数占访问次数的比例,阈值为79%。该决策树可以根据这两个特征数据确定该访问为恶意访问。通过上述例子可以看出,该决策树的相邻节点可以是相同特征数据,也可以是不同特征数据,每个节点的对应特征数据的阈值或阈值范围也可以相同或不同。因为,这两个特征数据在不同的阈值或阈值范围下分别分析、结合分析或相同特征数据在不同的阈值或阈值范围下分别分析、重叠分析都可能会具有相应的意义;因此,即使在有很少数的特征数据时,树深也可以很大。相应的,这里的阈值和阈值范围可以为上述方法中通过历史正常访问记录和历史恶意访问记录的特征数据训练得来的。
本申请实施例还提供了一种随机森林模型的实施例,即,所述随机森林模型包含100棵决策树,每棵决策树的特征数据的个数最大为10,每棵决策树的深度不大于50。该实施例可以针对上述描述的十一维特征数据,即,将访问记录的十一维特征数据的11个特征数据随机的输入随机森林模型的100棵决策树中,每棵决策树输入的特征数据最大不超过10个,且每棵决策树的树深不大于50。
在步骤203中机器训练模型确定所述用户对所述访问地址的访问是否为恶意访问之后,还包括:若为恶意访问,则将所述访问记录存储在历史恶意访问记录中并记录所述用户的用户信息;若为正常访问,将所述访问记录存储在历史正常访问记录中。也就是说,将后续可以准确确定的访问放入相应的历史正常访问记录或历史恶意访问记录中,以此,后续可以应用到机器学习模型训练的更新中,增加机器学习模型训练结果的准确度。
基于上述流程,本发明实施例提供了网络攻击检测方法的流程,如图3所示,包括:
步骤301、获取历史恶意访问记录和历史正常访问记录。
步骤302、根据历史恶意访问记录和历史正常访问记录对初始模型进行训练,得到机器学习模型。
步骤303、在用户多次访问同一访问地址时,确定预设时间内用户没有对该访问地址继续访问,没有访问信息生成,则获取该用户在设定时间内的访问记录或连续的访问记录。
步骤304、提取该访问记录的特征数据。
步骤305、将该特征数据输入步骤302得到的机器学习模型。
步骤306、该机器学习模型判断该访问是否为恶意访问,若是恶意访问,则执行步骤307;若不是恶意访问,则执行步骤308。
步骤307、将该恶意访问的访问记录存储在历史恶意访问记录中,并记录该用户的用户IP和用户信息。
步骤308、将该访问确认为正常访问,并存储在历史正常访问记录中。
需要说明的是,上述流程顺序并不唯一,步骤302可以先于步骤303执行,也可以在步骤303之后执行,如定期更新机器学习模型。此处,流程顺序具体不做限定。
基于同样的构思,本发明实施例提供一种网络攻击检测装置,图4为本发明实施例提供的一种网络攻击检测装置示意图,如图4示,包括:
获取单元401,用于获取用户的访问记录;所述访问记录是用户对同一访问地址进行访问的访问信息;
处理单元402,用于对所述访问记录进行特征提取,得到所述访问记录的特征数据;
所述处理单元402还用于,将所述特征数据输入机器学习模型,确定所述用户对所述访问地址的访问是否为恶意访问;所述机器学习模型是通过历史正常访问记录和历史恶意访问记录进行训练得到的。
在一种可能的设计中,所述获取单元401还用于:确定所述用户对所述访问地址进行访问后,在预设时间内没有再对所述访问地址进行访问;获取所述用户在所述预设时间之前对所述访问地址连续访问的访问信息,作为所述访问记录;所述连续访问指相邻两次访问的时间间隔小于所述预设时间。
在一种可能的设计中,所述机器学习模型是通过历史正常访问记录和历史恶意访问记录进行训练得到的,所述处理单元402具体用于:获取所述历史正常访问记录和所述历史恶意访问记录;根据所述历史正常访问记录确定所述历史正常访问记录中各个正常访问的特征数据;根据所述历史恶意访问记录确定所述历史恶意访问记录中各个恶意访问的特征数据;将所述各个正常访问的特征数据作为正样本,将所述各个恶意访问的特征数据作为负样本,对初始模型进行机器学习,从而得到所述机器学习模型。
在一种可能的设计中,所述特征数据至少包括:所述用户对所述访问地址的访问次数;无法访问所述访问地址的次数占所述访问次数的比例;访问状态的状态熵,所述状态熵用于表征所述用户对所述访问地址的访问状态的一致程度;所述用户访问所述访问地址的访问频率。
在一种可能的设计中,所述特征数据还包括以下至少一项:所述用户访问所述访问地址的不同uri的条数;所述用户访问所述访问地址的平均资源包大小;所述用户访问所述访问地址的所有uri的平均uri长度;所述访问地址中包含的敏感词的个数;所述用户各次访问所述访问地址中子文件夹个数的方差;所述用户各次访问所述访问地址的时间间隔;所述用户对访问地址中各页面的访问次数中最大访问次数。
在一种可能的设计中,所述机器学习模型为至少包括N棵决策树的随机森林模型,其中,所述N棵决策树中的每棵决策树都由第一随机过程和第二随机过程确定,所述第一随机过程为随机确定所述决策树的特征数据,所述第二随机过程为随机确定所述决策树的深度。
在一种可能的设计中,所述随机森林模型包含100棵决策树,每棵决策树的特征数据的个数最大为10,每棵决策树的深度不大于50。
在一种可能的设计中,确定所述用户对所述访问地址的访问是否为恶意访问之后,所述处理单元402还用于:若为恶意访问,则将所述访问记录存储在历史恶意访问记录中并记录所述用户的用户信息;若为正常访问,将所述访问记录存储在历史正常访问记录中。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种网络攻击检测方法,其特征在于,所述方法包括:
获取用户的访问记录;所述访问记录是用户对同一访问地址进行访问的访问信息;
对所述访问记录进行特征提取,得到所述访问记录的特征数据;
将所述特征数据输入机器学习模型,确定所述用户对所述访问地址的访问是否为恶意访问;所述机器学习模型是通过历史正常访问记录和历史恶意访问记录进行训练得到的;所述机器学习模型为至少包括N棵决策树的随机森林模型,其中,所述N棵决策树中的每棵决策树都由第一随机过程和第二随机过程确定,所述第一随机过程为随机确定所述决策树的特征数据,所述第二随机过程为随机确定所述决策树的深度,所述决策树的特征数据包括所述用户对所述访问地址的访问次数、无法访问所述访问地址的次数占所述访问次数的比例、访问状态的状态熵,所述状态熵用于表征所述用户对所述访问地址的访问状态的一致程度、所述用户访问所述访问地址的访问频率、所述用户访问所述访问地址的不同uri的条数、所述用户访问所述访问地址的平均资源包大小、所述用户访问所述访问地址的所有uri的平均uri长度、所述访问地址中包含的敏感词的个数、所述用户各次访问所述访问地址中子文件夹个数的方差、所述用户各次访问所述访问地址的时间间隔、所述用户对访问地址中各页面的访问次数中最大访问次数,所述决策树的相邻节点是相同特征数据或不同特征数据,每个节点的特征数据的阈值或阈值范围相同或不同。
2.如权利要求1所述的方法,其特征在于,获取用户的访问记录,包括:
确定所述用户对所述访问地址进行访问后,在预设时间内没有再对所述访问地址进行访问;
获取所述用户在所述预设时间之前对所述访问地址连续访问的访问信息,作为所述访问记录;所述连续访问指相邻两次访问的时间间隔小于所述预设时间。
3.如权利要求1所述的方法,其特征在于,所述机器学习模型是通过历史正常访问记录和历史恶意访问记录进行训练得到的,包括:
获取所述历史正常访问记录和所述历史恶意访问记录;
根据所述历史正常访问记录确定所述历史正常访问记录中各个正常访问的特征数据;
根据所述历史恶意访问记录确定所述历史恶意访问记录中各个恶意访问的特征数据;
将所述各个正常访问的特征数据作为正样本,将所述各个恶意访问的特征数据作为负样本,对初始模型进行机器学习,得到所述机器学习模型。
4.如权利要求1所述的方法,其特征在于,
所述随机森林模型包含100棵决策树,每棵决策树的特征数据的个数最大为10,每棵决策树的深度不大于50。
5.如权利要求1所述的方法,其特征在于,确定所述用户对所述访问地址的访问是否为恶意访问之后,还包括:
若为恶意访问,则将所述访问记录存储在历史恶意访问记录中并记录所述用户的用户信息;
若为正常访问,将所述访问记录存储在历史正常访问记录中。
6.一种网络攻击检测装置,其特征在于,所述装置包括:
获取单元,用于获取用户的访问记录;所述访问记录是用户对同一访问地址进行访问的访问信息;
处理单元,用于对所述访问记录进行特征提取,得到所述访问记录的特征数据
所述处理单元还用于,将所述特征数据输入机器学习模型,确定所述用户对所述访问地址的访问是否为恶意访问;所述机器学习模型是通过历史正常访问记录和历史恶意访问记录进行训练得到的;所述机器学习模型为至少包括N 棵决策树的随机森林模型,其中,所述N棵决策树中的每棵决策树都由第一随机过程和第二随机过程确定,所述第一随机过程为随机确定所述决策树的特征数据,所述第二随机过程为随机确定所述决策树的深度,所述决策树的特征数据包括所述用户对所述访问地址的访问次数、无法访问所述访问地址的次数占所述访问次数的比例、访问状态的状态熵,所述状态熵用于表征所述用户对所述访问地址的访问状态的一致程度、所述用户访问所述访问地址的访问频率、所述用户访问所述访问地址的不同uri的条数、所述用户访问所述访问地址的平均资源包大小、所述用户访问所述访问地址的所有uri的平均uri长度、所述访问地址中包含的敏感词的个数、所述用户各次访问所述访问地址中子文件夹个数的方差、所述用户各次访问所述访问地址的时间间隔、所述用户对访问地址中各页面的访问次数中最大访问次数,所述决策树的相邻节点是相同特征数据或不同特征数据,每个节点的特征数据的阈值或阈值范围相同或不同。
7.一种计算设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行权利要求1至5任一项所述的方法。
8.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读程序,当计算机读取并执行所述计算机可读程序时,使得计算机执行如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010315920.8A CN111541687B (zh) | 2020-04-21 | 2020-04-21 | 一种网络攻击检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010315920.8A CN111541687B (zh) | 2020-04-21 | 2020-04-21 | 一种网络攻击检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111541687A CN111541687A (zh) | 2020-08-14 |
CN111541687B true CN111541687B (zh) | 2022-10-11 |
Family
ID=71979307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010315920.8A Active CN111541687B (zh) | 2020-04-21 | 2020-04-21 | 一种网络攻击检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111541687B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923039B (zh) * | 2021-10-20 | 2023-11-28 | 北京知道创宇信息技术股份有限公司 | 攻击设备识别方法、装置、电子设备及可读存储介质 |
CN116668120A (zh) * | 2023-06-01 | 2023-08-29 | 泰州市野徐太丰防护用品厂 | 基于访问习性分析的网络安全防护系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107707545A (zh) * | 2017-09-29 | 2018-02-16 | 深信服科技股份有限公司 | 一种异常网页访问片段检测方法、装置、设备及存储介质 |
CN110866030A (zh) * | 2019-10-23 | 2020-03-06 | 中国科学院信息工程研究所 | 一种基于无监督学习的数据库异常访问检测方法 |
CN110995748A (zh) * | 2019-12-17 | 2020-04-10 | 杭州安恒信息技术股份有限公司 | 一种防暴力破解方法、装置、设备、介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105554007B (zh) * | 2015-12-25 | 2019-01-04 | 北京奇虎科技有限公司 | 一种web异常检测方法和装置 |
CN107563194A (zh) * | 2017-09-04 | 2018-01-09 | 杭州安恒信息技术有限公司 | 潜伏性盗取用户数据行为检测方法及装置 |
CN110311902B (zh) * | 2019-06-21 | 2022-04-22 | 北京奇艺世纪科技有限公司 | 一种异常行为的识别方法、装置及电子设备 |
-
2020
- 2020-04-21 CN CN202010315920.8A patent/CN111541687B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107707545A (zh) * | 2017-09-29 | 2018-02-16 | 深信服科技股份有限公司 | 一种异常网页访问片段检测方法、装置、设备及存储介质 |
CN110866030A (zh) * | 2019-10-23 | 2020-03-06 | 中国科学院信息工程研究所 | 一种基于无监督学习的数据库异常访问检测方法 |
CN110995748A (zh) * | 2019-12-17 | 2020-04-10 | 杭州安恒信息技术股份有限公司 | 一种防暴力破解方法、装置、设备、介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111541687A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Benavides et al. | Classification of phishing attack solutions by employing deep learning techniques: A systematic literature review | |
JP6530786B2 (ja) | Webページの悪意のある要素を検出するシステム及び方法 | |
US11463476B2 (en) | Character string classification method and system, and character string classification device | |
US20200195667A1 (en) | Url attack detection method and apparatus, and electronic device | |
CN108156131B (zh) | Webshell检测方法、电子设备和计算机存储介质 | |
Torres et al. | FP-Block: usable web privacy by controlling browser fingerprinting | |
CN106357696B (zh) | 一种sql注入攻击检测方法及系统 | |
WO2019134334A1 (zh) | 网络异常数据检测方法、装置、计算机设备和存储介质 | |
RU2676021C1 (ru) | Система и способ определения DDoS-атак | |
CN108924118B (zh) | 一种撞库行为检测方法及系统 | |
US20100299292A1 (en) | Systems and Methods for Application-Level Security | |
CN110855676A (zh) | 网络攻击的处理方法、装置及存储介质 | |
CN108154029A (zh) | 入侵检测方法、电子设备和计算机存储介质 | |
CN111541687B (zh) | 一种网络攻击检测方法及装置 | |
KR102280845B1 (ko) | 네트워크 내의 비정상 행위 탐지 방법 및 그 장치 | |
CN111224941A (zh) | 一种威胁类型识别方法及装置 | |
Wu et al. | Detect repackaged android application based on http traffic similarity | |
Madhubala et al. | Survey on malicious URL detection techniques | |
RU2659482C1 (ru) | Способ защиты веб-приложений при помощи интеллектуального сетевого экрана с использованием автоматического построения моделей приложений | |
Crişan et al. | Detecting malicious URLs based on machine learning algorithms and word embeddings | |
Aminuddin et al. | The rise of website fingerprinting on Tor: Analysis on techniques and assumptions | |
Alidoosti et al. | Evaluating the web‐application resiliency to business‐layer DoS attacks | |
CN112613027B (zh) | 一种基于机器学习的多密码管理方法、设备及存储介质 | |
US10152465B2 (en) | Security-focused web application crawling | |
US10313127B1 (en) | Method and system for detecting and alerting users of device fingerprinting attempts |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |