CN111049819A - 一种基于威胁建模的威胁情报发现方法及计算机设备 - Google Patents
一种基于威胁建模的威胁情报发现方法及计算机设备 Download PDFInfo
- Publication number
- CN111049819A CN111049819A CN201911245887.XA CN201911245887A CN111049819A CN 111049819 A CN111049819 A CN 111049819A CN 201911245887 A CN201911245887 A CN 201911245887A CN 111049819 A CN111049819 A CN 111049819A
- Authority
- CN
- China
- Prior art keywords
- threat
- data
- attack
- sql
- method based
- 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
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/1441—Countermeasures against malicious traffic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Medical Informatics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明属于软件开发设计技术领域,具体涉及一种基于威胁建模的威胁情报发现方法及计算机设备;本发明采用大数据进行分析综合业务、应用程度、数据库、操作系统、安全设备和人员操作等日志作为待检测的数据源,并采用梳理SQL注入和XSS攻击流程,重构安全威胁检测模型,并基于人工提供的恶意特征向量,将待测数据片段分类为是否恶意,安全分析专家决策如何应对,进而够自学习恶意特征,高精度、实时判断待检测数据片段是否恶意,进一步准实时的发现企业网络中的SQL注入和XSS攻击安全威胁情报。
Description
技术领域
本发明属于软件开发设计技术领域,具体涉及一种基于威胁建模的威胁情报发现方法及计算机设备。
背景技术
目前SQL注入和XSS安全检测实现的技术方法主要有以下三种:
1、特征检测:待测代码同已知的恶意代码进行比对,如FW、IDS、IPS、WAF、DPI等传统的安全设备;
2、流量分析:通过网络流量的时间、峰值、参数等的异常来判断,如流量审计、日志审计等;
3、行为分析:在虚拟环境下执行代码,观察行为,如沙箱检测;
但是,针对SQL和XSS注入安全检测现有的检测手段无法做到全方位、全覆盖检测,漏报率高且安全检测精准性不够,容易产生误报,甚至阻碍业务正常使用。目前提升SQL和XSS注入安全检测的准确率,降低误报率为所属领域难题;
为此本发明提供一种基于威胁建模的威胁情报发现方法及计算机设备以解决上述问题。
发明内容
为解决上述背景技术中提出的问题。本发明提供了一种基于威胁建模的威胁情报发现方法及计算机设备
为实现上述目的,本发明提供如下技术方案:一种基于威胁建模的威胁情报发现方法,在软件设计阶段通过UML活动图分解应用程序或系统,该方法包括如下步骤:
S1、数据集获取——训练测试建模所用的恶意样本来自于公司大量业务实践积累的SQL注入和XSS样本,正常数据来自于运营商关键网络节点抓取的普通互联网用户的HTTP访问信息;
应当理解的是:所述网络节点包括业务、应用程序、数据库、操作系统、安全设备和人员操作的一种或多种的组合,所述S1中训练集和测试集中的数据比例分配为3:7,训练集和测试集中正常数据和恶意数据为1:1;其中:分析URL文本主要就是分析URL参数字符串,根据URL命名规则,一个完整的URL包括协议、域名、端口、目录、文件、参数。其中参数部分又是以键值对的形式表示,键和值中间用“=”分隔,不同键值对中间用“&”分隔。
S2、URL解码——利用包装的命令去实施攻击Web入侵攻击,利用包装命令的攻击方法主要是以使注入内容安全通过WAF的检测为目的,以达到绕过WAF的效果;
其中:利用包装的命令去实施攻击是Web入侵攻击的常用手法,甚至一些自动化攻击工具中也实现了其中的部分功能;
这种利用包装命令的攻击方法主要是以使注入内容安全通过WAF的检测为目的,以达到绕过WAF的效果。
S3、威胁模型——所述威胁模型包括S31、机器学习-模型训练和S32、基于深度学习-威胁模型;
S31、机器学习-模型训练——基于传统机器学习的方法,先对原始数据进行特征提取,根据设计好的特征提取器对原数据进行处理后得到的特征,用作训练数据,作为输入来训练一个二分类器,用来分辨数据是属于攻击行为或非攻击行为,而分辨的结果即为这个二分类器的输出;
S32、基于深度学习-威胁模型——深度学习的方法不仅可以学习得到一个分类器中每个特征对应的参数,也可以通过学习的方式,自己学到特征提取的设计;
S4、特征提取——SQL注入和XSS攻击行为在URL上具备不同于正常URL的特点,包括SQL和XSS相关的关键字,源于攻击者对参数的精心构造,使得参数到达服务器后可以顺利执行达成恶意目的;
S5、归一化——采用最大值-最小值标准化法,特征值保留三位小数;
S6、标记——将恶意样本产生的特征向量标记为1,将正常样本产生的特征向量标记为0;
S7、向量表达——文本处理中的词被表达成空间向量的形式,被数学模型理解,并进行对应的分析;
S8、模型训练——经过分词处理,并被表达为向量后的数据,会成为接下来深度学习模型的输入;
S9、输入和输出——SQL注入和XSS攻击检测模块的数据输入包括以下字段:用户帐号、网络协议类型、攻击源IP、攻击源端口、攻击目的IP、攻击目的端口、URL和UTC时间。
作为本发明的一种基于威胁建模的威胁情报发现方法优选技术方案,所述网络节点包括业务、应用程序、数据库、操作系统、安全设备和人员操作的一种或多种的组合,所述S1中训练集和测试集中的数据比例分配为3:7,训练集和测试集中正常数据和恶意数据为1:1。
作为本发明的一种基于威胁建模的威胁情报发现方法优选技术方案,所述S2中,主要的方法包括关键字大小写混编,多重编码以及等价字符的替换。
作为本发明的一种基于威胁建模的威胁情报发现方法优选技术方案,所述S4还包括S41、SQL和XSS关键字权值和;S42、空格个数所占百分比;S43、特殊字符的个数所占百分比。
作为本发明的一种基于威胁建模的威胁情报发现方法优选技术方案,所述S41、SQL和XSS关键字权值和——SQL语句关键字是SQL注入语句的关键,没有关键词的注入语句即使被传递到后端也很难影响数据库的正常操作,SQL注入的URL文本分析首要就是分析内部是否含有SQL和XSS语句关键字;
所述S42、空格个数所占百分比——URL参数值为数字或者简单的字符串,即其中的空格个数为零或者较少;
所述S43、特殊字符的个数所占百分比——包含一些SQL和XSS语句常用的运算和条件符号。
作为本发明的一种基于威胁建模的威胁情报发现方法优选技术方案,所述S5中,为了减少向量空间,需要把所有的数字和超链接规范化。
作为本发明的一种基于威胁建模的威胁情报发现方法优选技术方案,所述S6中,包括将一串经过范化url的字符串分解成不同的组成词。
作为本发明的一种基于威胁建模的威胁情报发现方法优选技术方案,所述S9中,SQL注入和XSS攻击检测模块的数据输出包括以下字段:SQL注入和XSS攻击序列号、URL、网络协议类型、攻击源IP、攻击源IP个数、攻击源端口、攻击目的IP、攻击目的IP个数、攻击目的端口、UTC时间和攻击类型。
作为本发明的一种基于威胁建模的威胁情报发现方法的计算机设备优选技术方案,包括存储器和处理器,所述存储器,用于存储操作人员数据和态势感知画像,以及所述处理器的可执行程序;所述处理器被配置为执行以下程序步骤:将操作人员数据划分成群体数据集和个人数据集;对群体数据集和个人数据集中的所述操作人员数据添加行为标记,所述行为标记至少包括异常行为标记;以所述群体数据集和所述个人数据集作为两个训练维度,训练异常行为分析模型;根据所述异常行为分析模型生成操作人员的态势感知画像。
与现有技术相比,本发明的有益效果是:
1、大数据分析:综合业务、应用程序、数据库、操作系统、安全设备、人员操作等日志作为待检测的数据源;
2、威胁建模:梳理SQL注入和XSS攻击流程,重构安全威胁检测模型;
3、机器学习:基于人工提供的恶意特征向量,将待测数据片段分类为是否恶意,安全分析专家决策如何应对;
4、深度学习:能够自学习恶意特征,高精度、实时判断待检测数据片段是否恶;
5、URL解码:利用提交URL内容编码的攻击方法主要是以使注入内容安全绕过安全检测为目的,比如:关键字大小写混编,多重编码,等价字符的替换,URL递归解码:方法采用递归解码的方法,将输入的各种可能编码,例如querystring、urlencode、json、phpserialize、base64等全部解码,解码到最终应用程序所接受的输入为止;
6、安全情报:准实时的发现企业网络中的SQL注入攻击安全威胁情报。
附图说明
图1为本发明的流程图;
图2为本发明的预处理部分的流程图;
图3为本发明XSS攻击检测的机器学习方法流程图;
图4为本发明XSS攻击检测的深度学习方法流程图
图5为本发明的步骤图;
具体实施方式
本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于威胁建模的威胁情报发现方法,在软件设计阶段通过UML活动图分解应用程序或系统,该方法包括如下步骤:
S1、数据集获取——训练测试建模所用的恶意样本来自于公司大量业务实践积累的SQL注入和XSS样本,正常数据来自于运营商关键网络节点抓取的普通互联网用户的HTTP访问信息。
在一个可选的实施例中:所述网络节点包括业务、应用程序、数据库、操作系统、安全设备和人员操作的一种或多种的组合,所述S1中训练集和测试集中的数据比例分配为3:7,训练集和测试集中正常数据和恶意数据为1:1。
恶意数据样本均为URL解析后的参数payload,示意如下:
正常数据样本为完整URL,示意如下:
需要说明的是:分析URL文本主要就是分析URL参数字符串。根据URL命名规则,一个完整的URL包括协议、域名、端口、目录、文件、参数。其中参数部分又是以键值对的形式表示,键和值中间用“=”分隔,不同键值对中间用“&”分隔。以下面一个URL为例:
http://hdns.ksyun.com/d?dn=jsmov2.a.yximgs.com&ttl=1
其中参数部分为“dn=jsmov2.a.yximgs.com&ttl=1”,表示该URL含有两个参数“dn”和“ttl”,参数值分别为“jsmov2.a.yximgs.com”和“1”。本文对URL文本的分析即是对每个参数值的分析。
S2、URL解码——利用包装的命令去实施攻击Web入侵攻击,利用包装命令的攻击方法主要是以使注入内容安全通过WAF的检测为目的,以达到绕过WAF的效果。
在一个可选的实施例中:所述S2中,主要的方法包括关键字大小写混编,多重编码以及等价字符的替换。
需要说明的是:利用包装的命令去实施攻击是Web入侵攻击的常用手法,甚至一些自动化攻击工具中也实现了其中的部分功能;
这种利用包装命令的攻击方法主要是以使注入内容安全通过WAF的检测为目的,以达到绕过WAF的效果;
比如,and1=1这个SQL注入常用的片段,通过大小写混编后可以写成ANd1=1;通过URL编码后为and+1+%3d+1;通过Unicode编码后为\u0061\u006e\u0064\u0020\u0031\u0020\u003d\u0020\u0031\u000d\u000a;通过16进制编码后为616e642031203d2031;
除此之外,还有很多种编码方式和几种编码组成的混合编码,而通过等价字符替换,还可以写成and+1+=+1,and%0b1%0b=%0b1,and--s%0a1--s%0a=--s%0a1等形式,利用深度学习的检测系统很难完全检测出这些包装后的SQL语句,但后台处理的时候却会尽可能的去解读这些编码后的字符串,导致攻击的发生;
因此,在处理这些用户输入之前,充分的解析这些输入,是保证检测系统准确性的重要前提条件;
我们使用递归解码的方法,将输入的各种可能编码,例如urlencode、json、phpserialize、base64等,全部解码,一直解码到最终应用程序所接受的输入为止。
例如以下一段用户输入:
/index.php?controller=site&action=getProduct&specJson=%7B%20%22people%22:%221’%20and%201=2%20union%20select%20md5(1122),2,3,4,5,6,7,8,9%20’1’=’1%22%7D
经过querystring解码后,结果为:
%7B%20%22people%22:%221’%20and%201=2%20union%20select%20md5(1122),2,3,4,5,6,7,8,9%20and%20’1’=’1%22%7D
经过urldecode之后的结果为:
{“people”:”1\’and1=2unionselectmd5(1122),2,3,4,5,6,7,8,9and\’1\’=\’1”}
经过json解码之后的结果为:
1'and1=2unionselectmd5(1122),2,3,4,5,6,7,8,9and'1'='1
在进行解码处理之前可以先简单判断一下编码类型,以下是对几种常用的编码方式对应的解码函数和判断条件进行阐述;
urlencode编码。urlencode将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每两位做一位,前面加上%,编码成%XY格式。具体又分为三种编码方式escape、encodeURI、encodeURIComponent。进行解码时也需要根据编码方式采用不同的解码函数。其中,escape编码的特征最为明显,用正则表达式可以将值小与255的字符编码为%[a-zA-Z0-9]{2},值大于255的字符编码为%u[a-zA-Z0-9]{4},escape不进行编码的字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z;ncodeURI编码格式为%[a-zA-Z0-9]{2},encodeURI不进行编码的字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z;ecodeURIComponent的编码格式为%[a-zA-Z0-9]{2},encodeURIComponent不进行编码的字符有71个:!,',(,),*,-,.,_,~,0-9,a-z,A-Z。从中可以提取出三种编码方式不同的部分:当字符的值小于255时,三种编码方式结果相同,可以任意使用一种解码方式;当字符的值大于255时,escape编码的结果与另外两者不同,可根据其编码特征来处理,即当编码格式为%u[a-zA-Z0-9]{4}时,使用unescape解码;当编码格式为%[a-zA-Z0-9]{2}时,因为encodeURIComponent不进行编码的字符少于encodeURI,则可判断decodeURIComponent可以同时针对encodeURI和encodeURIComponent两种编码方式进行解码。记录解码结果,如果解码后的字符串与原字符串相同,则递归结束。
querystring()函数。querystring()是nodejs中函数,通常用request.querystring来获取“=”号之后的内容,许多程序中都调用了这个函数来获取用户输入。在调用这个函数时,后台程序会自动进行一次urldecode。应对这个函数的相应工作在处理urlencode编码是已经解决,并不需要重复工作。之所以单独列出这个函数,是因为在实验过程中发现大量前台代码在发送数据时都采用了这个函数。
base64编码。base64加密先将一个字符转换成ASCII码,再转换成2进制,再将转换后的2进制码6个一组分为4组,高位补两个0后重新转换为10进制,最后按照表中对应的字符进行替换。URL编码器会把标准base64比那么中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSISQL中已将“%”号用作通配符。因此,标准的base64编码并不会在URL中直接使用。通常的方法是将+和/替换为-和_,并且在字符串的末位加上=符号。解码过程只需要将上述步骤反过来执行一遍即可。判断时首先判断字符串长度是否为4的倍数,是否仅包含(A~Z,a~z,+,/,=),再判断末尾是否以数量小于4的等于号结尾。如果都符合,则解码后记录解码内容,在进行一次base64编码,如果结果相同,则判断为base64编码。
json。json一般以“名称/值”对的集合形式或者数组的形式存在。SQL注入攻击中,也有将SQL字符以json形式传送到后台拼接成SQL命令的技巧,这种技巧中通常是使用json的“名称/值”对的形式,McAfee就暴露过此类漏洞。json的编码函数为json_encode(),解码函数为json_decode()。判断一个字符串是否经过了json编码并不是一个简单的正则表达式就能成功的,需要考虑的因素很多,包括键与值的识别,有无嵌套,有无双引号,空格、换行、回车键的处理等。作者采用了遍历字符,记录状态的的方法进行处理,取得的结果也基本准确。出现在URL中的json格式的编码通常还要经过URL编码或者base64编码后才进行传输,所以出现此类情况后通常需要多重解码。
综合以上几种解码方式,按照编码概率大小进行排序,最后所得的预处理部分的流程图如图2所示。
SQL注入攻击是通过构造恶意SQL语句并在Web页面以表单的形式提交给服务器,服务器执行恶意SQL语句后会返回攻击者想要的隐私数据或者达到其他恶意目的。Web页面在提交表单时的一种形式是使用HTTP的GET方法,此时表单数据会以参数的形式添加到原始URL后面。
SQL注入攻击给网站带来极大危害。一方面,攻击者可以简单地在用户输入框中注入语句,使得逻辑判断恒成立,从而绕过了服务器对未授权用户的访问控制,不仅造成用户隐私数据的泄漏,甚至有可能给用户带来巨大的经济损失;另一方面,攻击者可以注入错误的SQL语句,导致数据库出现语法错误或逻辑错误,造成数据库的崩溃,无法正常地给网站提供数据。
在本平台中,SQL注入攻击检测测模块首先对训练及测试数据进行特征提取->归一化->特征标记->训练建模,再使用生成的模型去发现该web系统中的SQL注入攻击,最终将所获得的SQL注入攻击分析结果队列存储到MySQL数据库中。
以下两种方案路径,均针对decode后的url。使用的均为有监督学习方法,故需要充分的已标记过的数据集。
S3、威胁模型——所述威胁模型包括S31、机器学习-模型训练和S32、基于深度学习-威胁模型。
S31、机器学习-模型训练——基于传统机器学习的方法,先对原始数据进行特征提取,根据设计好的特征提取器对原数据进行处理后得到的特征,用作训练数据,作为输入来训练一个二分类器,用来分辨数据是属于攻击行为或非攻击行为,而分辨的结果即为这个二分类器的输出
上一步已经将所有的原始url做好了特征提取,这些提取出来的特征会成为接下来机器学习模型的训练数据。从概念上来理解,接下来的机器学习模型的训练即为给这些特征找到一个合适的权重,以此得到一个二分类器,可以帮助分辨出攻击与非攻击行为。
推荐用于评估的模型有:随机森林,支持向量机。随机森林(RandomForest)属于集成学习(EnsembleLearning)中的bagging算法,是一个由多颗决策树组成的分类器[L.Breiman,“RandomForests”,MachineLearning,45(1),5-32,2001.]。其集成学习特性保证了在其建造森林时,可以在内部对于单个决策树的误差长生不偏差的估计;其bagging算法特性带来随机性的引入,是的随机森林不容易过拟合,同时也有很好的抗噪能力。支持向量机(SupportVectorMachine)是在小样本的基础上,使用核函数构造一个超平面,在高维的特征空间中进行有效的非线性分类的一种数学模型(NelloCristianini,JohnShawe-Taylor,AnIintroductiontoSupportVectorMachinesandotherKernel-BasedLearningMethods)。以上两种算法是常用来解决分类问题的经典有监督机器学习模型,效果经过多年得以验证。用于评测性能的metrics为accuracy(=检测正确url个数/数据集总数)。
基于传统机器学习的方法,需要先对原始数据进行特征提取,所以特征的设计是机器学习算法的第一步。根据设计好的特征提取器对原数据进行处理后得到的特征,会用作训练数据,作为输入来训练一个二分类器,用来分辨数据是属于攻击行为或非攻击行为,而分辨的结果即为这个二分类器的输出。本质上,这个分类器学习的是每个特征在数学模型中的对应权重。
XSS攻击检测的机器学习方法流程图如图3所示:
S32、基于深度学习-威胁模型——深度学习的方法不仅可以学习得到一个分类器中每个特征对应的参数,也可以通过学习的方式,自己学到特征提取的设计。
经过分词处理,并被表达为向量后的数据,会成为接下来深度学习模型的输入。此处可用于评估的模型有:多层感知机(MLP),卷积神经网络(ConvolutionalNeuralNetworks)。循环神经网络(RecurrentNeuralNetworks)在此处不建议使用的原因是:RNN更为强调的是理解文本中词与词之间的先后顺序、上下文语义关系,虽然在NLP(NaturalLangurageProcessing,自然语言处理)领域中是不可或缺的一个考量,但是在本次处理的文本数据中,并不是一个重要因素。模型的输出将是对于url是否为攻击行为的判别结果。用于评测性能的metrics为accuracy(=检测正确url个数/数据集总数)。
不同于传统机器学习的方法,深度学习的方法不仅可以学习得到一个分类器中每个特征对应的参数,也可以通过学习的方式,自己学到特征提取的设计。所以当没有某一领域足够的专家知识,无法作出很好的特征提取的设计时,深度学习就成为了一个很好的端到端学习的选择。但是,也因此深度学习有着自己对应的缺陷,因为这是一个连特征设计也需要自己学习的模型,所以这个模型的参数量会非常庞大。模型参数量庞大也就意味着:计算速度会相对慢,除非有强力的硬件设施配套提供;同时,当训练数据并不充分的时候,模型在真实世界中出现过拟合现象的可能性也会大幅增加。所以在数据量不是非常充分,并且特征设计相对较为肯定的情况下,还是建议使用基于机器学习的算法。
XSS攻击检测的深度学习方法流程图如图4所示:
S4、特征提取——SQL注入和XSS攻击行为在URL上具备不同于正常URL的特点,包括SQL和XSS相关的关键字,源于攻击者对参数的精心构造,使得参数到达服务器后可以顺利执行达成恶意目的。
本实施方案中:SQL注入攻击行为在URL上具备不同于正常URL的特点,其中不仅包括SQL相关的关键字,在参数的形式上也比普通参数更为复杂,这源于攻击者对参数的精心构造,使得参数到达服务器后可以顺利执行达成恶意目的。
(1)SQL关键字权值和
SQL语句关键字是SQL注入语句的关键,没有关键词的注入语句即使被传递到后端也很难影响数据库的正常操作。因此SQL注入的URL文本分析首要就是分析内部是否含有SQL语句关键字。
SQL注入常用的关键字有:
在上述关键字中有些并不独特,比如“update”和“count”等,经常在数据库以外的语句中使用,有可能出现在表单提交的参数中。通常地,仅含有一个甚至两个关键字,并无法确定该URL语句是否可疑。因此,本文给上述关键字赋予不同权重。
为了方便分析,将组合关键字进行拆开,使得拆开的关键字权值下降,而如果同时出现则权值相加依然较大。权重的分配根据经验,对于经常出现的词语分配较低的权重,对于不常出现的词语分配较高的权重,权重最高为5,最低为1。本文将参数值中出现的SQL关键字进行加权求和,所得结果作为第一个特征。
(2)空格个数所占百分比
大多数情况下,URL参数值为数字或者简单的字符串,即其中的空格个数为零或者较少。虽然也有少数利用URL来传递较长信息的情况,但是在URL中包含SQL语句使得其中空格个数要明显多于正常URL,因此将分析数据中空格的个数占URL参数值长度的百分比。
(3)特殊字符的个数所占百分比
正常URL中很少含有特殊字符,而SQL攻击者为了混淆服务器对SQL语句的组合,常常精心构造含有恶意SQL的语句。其中包含一些SQL语句常用的运算和条件符号,如等号、括号和单引号等。
另一方面,攻击者会构造含有注释的SQL语句,当参数传入服务器后,这些注释语句会改变原有SQL的结构,使得查询条件缩小,从而得到更大权限。SQL语句中常用的注释包括“--”、“#”、“/**/”等,这些符号会在一定程度上增加URL为SQL注入的可能性。因此将分析数据中特殊字符个数占URL参数值长度的百分比。
基于对刘焱《Web安全之机器学习入门》的学习,需要对url提取的特征有:
·url中包含第三方域名的个数:
1)http域名个数
2)https域名个数
·敏感字符的个数:
1)<的个数
2)>的个数
3)'的个数
4)"的个数
5)//的个数
·敏感关键字的个数:
1)alert的个数
2)script的个数
3)onerror的个数
4)onload的个数
5)eval的个数
6)src的个数
7)prompt的个数
8)javascript的个数
9)fromCharCode的个数
S5、归一化——采用最大值-最小值标准化法,特征值保留三位小数。
本实施方案中:采用最大值-最小值标准化法,特征值保留三位小数。
基于深度学习的方法,不需要先将原始数据提取成特征数值,但是原始的url还是需要相对应的预处理后才能作为一个深度学习模型的输入。首先,为了减少向量空间,需要把所有的数字和超链接规范化,具体原则为:
#数字常量替换成0
line,number=re.subn(r'\d+',"0",line)
#超链接替换成http://u
line,number=re.subn(r'(http|https)://[a-zA-Z0-9\.@&/#!#\?:=]+',"http://u",line)
#去掉注释
line,number=re.subn(r'\/\*.?\*\/',"",line)
S6、标记——将恶意样本产生的特征向量标记为1,将正常样本产生的特征向量标记为0。
本实施方案中:将恶意样本产生的特征向量标记为1,将正常样本产生的特征向量标记为0。
然后,需要将一串经过范化url的字符串分解成不同的组成词。分词的依据可以有:
·单双引号内包含的内容;
‘XSS’
·http/https链接;
http://u
·<>及其内标签;
<script>
·<,>开头;
<BODY
·参数名/属性标签;
ONLOAD=
·<>标签结尾;
>
·函数体;
“javescript:alert(‘XSS’);”
·字符数字组成的词(字符数字标量)。
分词处理后,一串的字符串就变成了可以进行文本处理的一个个组成词。
S7、向量表达——文本处理中的词被表达成空间向量的形式,被数学模型理解,并进行对应的分析。
本实施方案中:文本处理中的词需要被表达成空间向量的形式,才可以被数学模型理解,并进行对应的分析。词向量表达模型有很多种,比如:词袋模型(BOW:bag ofwords),词汇表模型(vocabulary),N-gram模型等。由于这次处理的文本数据更偏向于编程语言特点,不同于常规NLP(Natural Langurage Processing,自然语言处理)问题的处理,词与词之间的先后顺序关系、前后语义关系并不重要。因此,在多层感知机(MLP)训练中使用词袋模型,词袋模型还保证了模型的输入维度保持一致;而在卷积神经网络(Convolutional Neural Networks)训练中使用了词汇表模型。
S8、模型训练——经过分词处理,并被表达为向量后的数据,会成为接下来深度学习模型的输入。
本实施方案中:经过分词处理,并被表达为向量后的数据,会成为接下来深度学习模型的输入。此处可用于评估的模型有:多层感知机(MLP),卷积神经网络(ConvolutionalNeural Networks)。循环神经网络(Recurrent Neural Networks)在此处不建议使用的原因是:RNN更为强调的是理解文本中词与词之间的先后顺序、上下文语义关系,虽然在NLP(Natural Langurage Processing,自然语言处理)领域中是不可或缺的一个考量,但是在本次处理的文本数据中,并不是一个重要因素。模型的输出将是对于url是否为攻击行为的判别结果。用于评测性能的metrics为accuracy(=检测正确url个数/数据集总数)。
S9、输入和输出——SQL注入和XSS攻击检测模块的数据输入包括以下字段:用户帐号、网络协议类型、攻击源IP、攻击源端口、攻击目的IP、攻击目的端口、URL和UTC时间。
本实施方案中:SQL注入和XSS攻击检测模块的数据输入包括以下字段:用户帐号、网络协议类型、攻击源IP、攻击源端口、攻击目的IP、攻击目的端口、URL和UTC时间。
输出:
SQL注入和XSS攻击检测模块的数据输出包括以下字段:SQL注入和XSS攻击序列号、URL、网络协议类型、攻击源IP、攻击源IP个数、攻击源端口、攻击目的IP、攻击目的IP个数、攻击目的端口、UTC时间和攻击类型。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于威胁建模的威胁情报发现方法,在软件设计阶段通过UML活动图分解应用程序或系统,该方法包括如下步骤:
S1、数据集获取——训练测试建模所用的恶意样本来自于公司大量业务实践积累的SQL注入和XSS样本,正常数据来自于运营商关键网络节点抓取的普通互联网用户的HTTP访问信息;
S2、URL解码——利用包装的命令去实施攻击Web入侵攻击,利用包装命令的攻击方法主要是以使注入内容安全通过WAF的检测为目的,以达到绕过WAF的效果;
S3、威胁模型——所述威胁模型包括S31、机器学习-模型训练和S32、基于深度学习-威胁模型;
S31、机器学习-模型训练——基于传统机器学习的方法,先对原始数据进行特征提取,根据设计好的特征提取器对原数据进行处理后得到的特征,用作训练数据,作为输入来训练一个二分类器,用来分辨数据是属于攻击行为或非攻击行为,而分辨的结果即为这个二分类器的输出;
S32、基于深度学习-威胁模型——深度学习的方法不仅可以学习得到一个分类器中每个特征对应的参数,也可以通过学习的方式,自己学到特征提取的设计;
S4、特征提取——SQL注入和XSS攻击行为在URL上具备不同于正常URL的特点,包括SQL和XSS相关的关键字,源于攻击者对参数的精心构造,使得参数到达服务器后可以顺利执行达成恶意目的;
S5、归一化——采用最大值-最小值标准化法,特征值保留三位小数;
S6、标记——将恶意样本产生的特征向量标记为1,将正常样本产生的特征向量标记为0;
S7、向量表达——文本处理中的词被表达成空间向量的形式,被数学模型理解,并进行对应的分析;
S8、模型训练——经过分词处理,并被表达为向量后的数据,会成为接下来深度学习模型的输入;
S9、输入和输出——SQL注入和XSS攻击检测模块的数据输入包括以下字段:用户帐号、网络协议类型、攻击源IP、攻击源端口、攻击目的IP、攻击目的端口、URL和UTC时间。
2.根据权利要求1所述的一种基于威胁建模的威胁情报发现方法,其特征在于:所述网络节点包括业务、应用程序、数据库、操作系统、安全设备和人员操作的一种或多种的组合,所述S1中训练集和测试集中的数据比例分配为3:7,训练集和测试集中正常数据和恶意数据为1:1。
3.根据权利要求1所述的一种基于威胁建模的威胁情报发现方法,其特征在于:所述S2中,主要的方法包括关键字大小写混编,多重编码以及等价字符的替换。
4.根据权利要求1所述的一种基于威胁建模的威胁情报发现方法,其特征在于:所述S4还包括S41、SQL和XSS关键字权值和;S42、空格个数所占百分比;S43、特殊字符的个数所占百分比。
5.根据权利要求4所述的一种基于威胁建模的威胁情报发现方法,其特征在于:
所述S41、SQL和XSS关键字权值和——SQL语句关键字是SQL注入语句的关键,没有关键词的注入语句即使被传递到后端也很难影响数据库的正常操作,SQL注入的URL文本分析首要就是分析内部是否含有SQL语句关键字;
所述S42、空格个数所占百分比——URL参数值为数字或者简单的字符串,即其中的空格个数为零或者较少;
所述S43、特殊字符的个数所占百分比——包含一些SQL语句常用的运算和条件符号。
6.根据权利要求1所述的一种基于威胁建模的威胁情报发现方法,其特征在于:所述S5中,为了减少向量空间,需要把所有的数字和超链接规范化。
7.根据权利要求1所述的一种基于威胁建模的威胁情报发现方法,其特征在于:所述S6中,包括将一串经过范化url的字符串分解成不同的组成词。
8.根据权利要求1所述的一种基于威胁建模的威胁情报发现方法,其特征在于:所述S9中,SQL注入和XSS攻击检测模块的数据输出包括以下字段:SQL注入攻击序列号、URL、网络协议类型、攻击源IP、攻击源IP个数、攻击源端口、攻击目的IP、攻击目的IP个数、攻击目的端口、UTC时间和攻击类型。
9.如根据权利要求1-9任意一项所述的一种基于威胁建模的威胁情报发现方法的计算机设备,其特征在于:包括存储器和处理器,所述存储器,用于存储操作人员数据和态势感知画像,以及所述处理器的可执行程序;所述处理器被配置为执行以下程序步骤:将操作人员数据划分成群体数据集和个人数据集;对群体数据集和个人数据集中的所述操作人员数据添加行为标记,所述行为标记至少包括异常行为标记;以所述群体数据集和所述个人数据集作为两个训练维度,训练异常行为分析模型;根据所述异常行为分析模型生成操作人员的态势感知画像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911245887.XA CN111049819A (zh) | 2019-12-07 | 2019-12-07 | 一种基于威胁建模的威胁情报发现方法及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911245887.XA CN111049819A (zh) | 2019-12-07 | 2019-12-07 | 一种基于威胁建模的威胁情报发现方法及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111049819A true CN111049819A (zh) | 2020-04-21 |
Family
ID=70235008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911245887.XA Pending CN111049819A (zh) | 2019-12-07 | 2019-12-07 | 一种基于威胁建模的威胁情报发现方法及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111049819A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488590A (zh) * | 2020-05-29 | 2020-08-04 | 深圳易嘉恩科技有限公司 | 一种基于用户行为可信分析的sql注入检测方法 |
CN111639277A (zh) * | 2020-05-22 | 2020-09-08 | 杭州安恒信息技术股份有限公司 | 机器学习样本集的自动化提取方法和计算机可读存储介质 |
CN111818018A (zh) * | 2020-06-18 | 2020-10-23 | 北京邮电大学 | 一种基于机器学习模型的sql注入攻击检测方法 |
CN112491784A (zh) * | 2020-10-14 | 2021-03-12 | 新浪网技术(中国)有限公司 | Web网站的请求处理方法及装置、计算机可读存储介质 |
CN113312891A (zh) * | 2021-04-22 | 2021-08-27 | 北京墨云科技有限公司 | 一种基于生成模型的payload自动生成方法、装置、系统 |
CN114615074A (zh) * | 2022-03-25 | 2022-06-10 | 山石网科通信技术股份有限公司 | 网络报文解码方法及网络攻击检测方法、装置和存储介质 |
CN116663022A (zh) * | 2023-08-02 | 2023-08-29 | 深圳海云安网络安全技术有限公司 | 一种基于多库融合的场景化威胁建模方法 |
US11792162B1 (en) * | 2023-01-30 | 2023-10-17 | Cloudflare, Inc. | Machine learning based web application firewall |
CN118555153A (zh) * | 2024-07-29 | 2024-08-27 | 杭州海康威视数字技术股份有限公司 | 基于运行模态融合度量的物联网未知攻击方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577755A (zh) * | 2013-11-01 | 2014-02-12 | 浙江工业大学 | 一种基于支持向量机的恶意脚本静态检测方法 |
CN105656886A (zh) * | 2015-12-29 | 2016-06-08 | 北京邮电大学 | 一种基于机器学习的网站攻击行为的检测方法及装置 |
CN107864110A (zh) * | 2016-09-22 | 2018-03-30 | 中国电信股份有限公司 | 僵尸网络主控端检测方法和装置 |
CN108549814A (zh) * | 2018-03-24 | 2018-09-18 | 西安电子科技大学 | 一种基于机器学习的sql注入检测方法、数据库安全系统 |
CN109413028A (zh) * | 2018-08-29 | 2019-03-01 | 集美大学 | 基于卷积神经网络算法的sql注入检测方法 |
CN109831460A (zh) * | 2019-03-27 | 2019-05-31 | 杭州师范大学 | 一种基于协同训练的Web攻击检测方法 |
EP3503498A1 (en) * | 2017-12-19 | 2019-06-26 | The Boeing Company | Method and system for vehicle cyber-attack event detection |
US20190215330A1 (en) * | 2018-01-07 | 2019-07-11 | Microsoft Technology Licensing, Llc | Detecting attacks on web applications using server logs |
CN110233849A (zh) * | 2019-06-20 | 2019-09-13 | 电子科技大学 | 网络安全态势分析的方法及系统 |
-
2019
- 2019-12-07 CN CN201911245887.XA patent/CN111049819A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577755A (zh) * | 2013-11-01 | 2014-02-12 | 浙江工业大学 | 一种基于支持向量机的恶意脚本静态检测方法 |
CN105656886A (zh) * | 2015-12-29 | 2016-06-08 | 北京邮电大学 | 一种基于机器学习的网站攻击行为的检测方法及装置 |
CN107864110A (zh) * | 2016-09-22 | 2018-03-30 | 中国电信股份有限公司 | 僵尸网络主控端检测方法和装置 |
EP3503498A1 (en) * | 2017-12-19 | 2019-06-26 | The Boeing Company | Method and system for vehicle cyber-attack event detection |
US20190215330A1 (en) * | 2018-01-07 | 2019-07-11 | Microsoft Technology Licensing, Llc | Detecting attacks on web applications using server logs |
CN108549814A (zh) * | 2018-03-24 | 2018-09-18 | 西安电子科技大学 | 一种基于机器学习的sql注入检测方法、数据库安全系统 |
CN109413028A (zh) * | 2018-08-29 | 2019-03-01 | 集美大学 | 基于卷积神经网络算法的sql注入检测方法 |
CN109831460A (zh) * | 2019-03-27 | 2019-05-31 | 杭州师范大学 | 一种基于协同训练的Web攻击检测方法 |
CN110233849A (zh) * | 2019-06-20 | 2019-09-13 | 电子科技大学 | 网络安全态势分析的方法及系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639277A (zh) * | 2020-05-22 | 2020-09-08 | 杭州安恒信息技术股份有限公司 | 机器学习样本集的自动化提取方法和计算机可读存储介质 |
CN111488590A (zh) * | 2020-05-29 | 2020-08-04 | 深圳易嘉恩科技有限公司 | 一种基于用户行为可信分析的sql注入检测方法 |
CN111818018A (zh) * | 2020-06-18 | 2020-10-23 | 北京邮电大学 | 一种基于机器学习模型的sql注入攻击检测方法 |
CN112491784A (zh) * | 2020-10-14 | 2021-03-12 | 新浪网技术(中国)有限公司 | Web网站的请求处理方法及装置、计算机可读存储介质 |
CN113312891A (zh) * | 2021-04-22 | 2021-08-27 | 北京墨云科技有限公司 | 一种基于生成模型的payload自动生成方法、装置、系统 |
CN114615074A (zh) * | 2022-03-25 | 2022-06-10 | 山石网科通信技术股份有限公司 | 网络报文解码方法及网络攻击检测方法、装置和存储介质 |
US11792162B1 (en) * | 2023-01-30 | 2023-10-17 | Cloudflare, Inc. | Machine learning based web application firewall |
US20240259347A1 (en) * | 2023-01-30 | 2024-08-01 | Cloudflare, Inc. | Machine learning based web application firewall |
CN116663022A (zh) * | 2023-08-02 | 2023-08-29 | 深圳海云安网络安全技术有限公司 | 一种基于多库融合的场景化威胁建模方法 |
CN116663022B (zh) * | 2023-08-02 | 2024-03-08 | 深圳海云安网络安全技术有限公司 | 一种基于多库融合的场景化威胁建模方法 |
CN118555153A (zh) * | 2024-07-29 | 2024-08-27 | 杭州海康威视数字技术股份有限公司 | 基于运行模态融合度量的物联网未知攻击方法及系统 |
CN118555153B (zh) * | 2024-07-29 | 2024-09-24 | 杭州海康威视数字技术股份有限公司 | 基于运行模态融合度量的物联网未知攻击方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111049819A (zh) | 一种基于威胁建模的威胁情报发现方法及计算机设备 | |
US11936667B2 (en) | Cyber security system applying network sequence prediction using transformers | |
US20240121263A1 (en) | Autonomous report composer | |
Kim et al. | AI-IDS: Application of deep learning to real-time Web intrusion detection | |
US20220094713A1 (en) | Malicious message detection | |
US11818170B2 (en) | Detection of phishing campaigns based on deep learning network detection of phishing exfiltration communications | |
Tsukerman | Machine Learning for Cybersecurity Cookbook: Over 80 recipes on how to implement machine learning algorithms for building security systems using Python | |
CN111758098B (zh) | 利用遗传编程的命名实体识别和提取 | |
US11544575B2 (en) | Machine-learning based approach for malware sample clustering | |
CN112685738B (zh) | 一种基于多级投票机制的恶意混淆脚本静态检测方法 | |
CN112199677A (zh) | 一种数据处理方法和装置 | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
US12118087B2 (en) | Machine learning methods and systems for determining file risk using content disarm and reconstruction analysis | |
EP3913882A1 (en) | Method, computer program and information processing apparatus for flagging anomalies in text data | |
Andriu | Adaptive Phishing Detection: Harnessing the Power of Artificial Intelligence for Enhanced Email Security | |
Harbola et al. | Improved intrusion detection in DDoS applying feature selection using rank & score of attributes in KDD-99 data set | |
CN113918936A (zh) | Sql注入攻击检测的方法以及装置 | |
CN113067792A (zh) | 一种xss攻击识别方法、装置、设备及介质 | |
CN117914555A (zh) | 一种智能网关的训练及流量检测方法和设备 | |
Aliero et al. | Review on SQL injection protection methods and tools | |
Lai | Intrusion Detection Technology Based on Large Language Models | |
Li et al. | D a N uo Y i: Evolutionary Multi-Task Injection Testing on Web Application Firewalls | |
CN113821448A (zh) | 一种Webshell代码的检测方法及装置、可读存储介质 | |
Guichang et al. | CNNPayl: an intrusion detection system of cross-site script detection | |
Kissner | Hacking neural networks: A short introduction |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200421 |