CN110233849A - 网络安全态势分析的方法及系统 - Google Patents
网络安全态势分析的方法及系统 Download PDFInfo
- Publication number
- CN110233849A CN110233849A CN201910534662.XA CN201910534662A CN110233849A CN 110233849 A CN110233849 A CN 110233849A CN 201910534662 A CN201910534662 A CN 201910534662A CN 110233849 A CN110233849 A CN 110233849A
- Authority
- CN
- China
- Prior art keywords
- situation
- domain name
- network
- value
- security
- 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.)
- Granted
Links
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/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly 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
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及网络安全态势分析的方法及系统,方法包括:A.SQL注入检测:根据域名里是否带有SQL注入攻击的部分得到对应的词向量,建立用于检测SQL注入攻击的模型;B.DGA恶意域名检测:提取域名中的特征向量得到训练模型,将训练模型进行交叉验证得到精度和召回率;C.恶意脚本检测:通过训练模型检测网页脚本中是否存在恶意代码;D.网络安全态势评估:将所有主机的总态势值根据安全等级进行评估;E.网络安全态势预测:通过LSTM层和Bi‑LSTM层,以及三个完全连接层,输出预测结果。本发明能够明显提高对网络安全态势分析的准确性,并且能够通过多个角度对不同类型的网络安全进行测试和分析,有效提高了对网络安全态势分析和预测的全面性。
Description
技术领域
本发明涉及网络安全态势分析的方法及系统。
背景技术
网络安全态势感知是由Tim Bass在1999年的时候首次提出来的。他指出“下一代网络入侵检测系统应该融合从大量的异构分布式网络传感器采集的数据,实现网络空间的态势感知(Cyberspacesituational awareness)”。网络安全态势感知是在特定网络环境下,对那些可能影响网络安全态势变化的安全因素提取,对提取的安全因素信息进行解析、可视化等处理,来预测可能发展的态势趋势。网络安全态势感知是一个宏观的概念,它强调的是一个网络环境的整体状态和整体的发展趋势。它使用了数据融合的技术将各种可用的安全因素信息融合,生成一个整体而全面的网络安全态势的映射。这样,就能让网络安全人员对网络的了解和威胁的防范得到加强。而将机器学习和深度学习应用到网络安全态势感知,则会取得很好的效果。
网络安全态势感知是利用多元素数据的融合、海量数据的挖掘、基于人工智能的数据分析以及对数据进行可视化的技术,很直接的为网络安全人员提供可视化的网络环境实时的安全状况,感知出网络状态下可能存在的威胁和风险,给网络安全提供一个可靠及时的保障。通过使用网络安全态势感知技术,网络安全人员可以实时的了解当前的网络状态、受到的攻击类型、攻击发生的时间、攻击源、哪些网络设备容易受到攻击等各种攻击情况。这样,网络安全人员可以很清晰的对已有的网络攻击和可能发生的网络攻击进行防范。网络使用者可以对当前的网络状态和趋势有一个较为清晰的了解,这样就能对可能发生的威胁做好及时的防范准备,从而避免或尽量减少网络中的恶意攻击,这样就能将损失降到最低。
现有技术中,张勇等人提出了使用马尔科夫博弈的方法来分析当前的网络安全态势。他们将已收集的安全信息要素进行数据的融合和归一化处理后得到所需的规范化数据。通过对威胁、管理员和普通用户的行为进行博弈分析来评估安全态势。王春雷等人提出了将知识发现应用到网络安全态势感知研究中,他们是用知识发现挖掘出网络安全要素信息中的频繁模式和序列模式从而研究安全态势。孙义等人使用序列对比的方式进行SQL注入攻击检测。他们使用Needleman-Wunsch算法将不同的SQL语句进行P和Y的对比以判断SQL注入是否存在。赵飞宇等人通过分析流量特征,查找流量中的请求长度、连接数等,和正常流量中的特征就行对比,从而发现是否存在SQL注入。王红凯等人通过使用随机森林方法检测DGA(DGA是一种域名生成算法,作用生成随机数。DGA域名是用DGA算法生成的域名,这种域名通常硬编码在恶意软件中)。李小兵等人提出了SDN(一种软件集中控制、网络开放的三层体系架构)和机器学习技术对DGA域名进行检测,SDN使用控制分离的特点实时解析DGA恶意域名。张昊等人使用统计的方法对恶意脚本进行检测,他们判断矩阵法对不同的统计方法设置不同的权重,对脚本进行加权几何法的统计后,检测当前脚本是否是恶意脚本。毕硕本等人提出了层次分析的方法检测恶意脚本,他们使用内部静态特征和外部特征相结合的方式,使用层次分析法建立模型以检测恶意脚本。
Norbert Baumgartner等人通过在对象特征和关系之间的相互依赖性方面,利用本体知识来预测精度。并通过将多个距离描述与转换相关联程度构建态势感知系统。NukaNwiabu等人基于经验而非规则,相似性评估的问题解决预测的CBR模型和SA模型融合为基于案例的情境意识模型来应用到网络安全态势感知中。Halfond,William G.J.等人提出了一种新的技术来对抗SQL注入,该技术结合了保守的静态分析和运行时监控,以便在数据库上执行非法查询之前检测和阻止它们。Konstantinos Kemalis一方面利用由Web应用程序生成和执行的规范定义的SQL查询语法结构,另一方面通过监视应用程序的执行违反规范的查询来进行SQL注入检测。TrungDuc Nguyen等人提出了一种使用协同过滤和基于密度的聚类来检测DGA僵尸网络的新方法。它依赖于域名特征分布的相似性来消除噪声并对类似域进行分组。应用协同过滤(CF)技术来查找每个僵尸网络中的僵尸程序,帮助查找受感染机器的脱机恶意软件。Al-Taharwa等人提出了混淆因果关系发现(OCRF)来解决问题。包括特征提取,使用领域知识,不需要去混淆,组合混淆检测的恶意混淆代码检测。Sungsuk Kim等人使用概念图来定义恶意行为,然后通过测试代码中预定义图形生成的形式化值来比较恶意行为的相似性关系,从而达到检测恶意脚本的目的。
通常的网络安全态势感知针对海量的异构数据进行信息融合处理,从而进行相关的态势感知。而对于一般的安全信息规模巨大,这些海量的数据中可能夹杂着大量的误报信息。此外,那些真正的影响到当前网络安全状况的威胁信息很有可能淹没在海量的信息中难以识别,无法判定特定的安全威胁。
发明内容
本发明提供了一种网络安全态势分析的方法及系统,在对现有检测方法进行改进的基础上,提出了新的检测方式,以提高对网络安全态势分析的准确性和全面性。
本发明网络安全态势分析的方法及系统,其中方法包括:
A.SQL注入检测:根据数据集中数据项的域名payload部分是否包含SQL查询语句,分别选取出数据集中数据项的域名里带有SQL注入攻击的部分和不带有SQL注入攻击的部分,将每个数据项分割后得到每个数据项所拥有的词汇表,并将所述的词汇表输入至word2vec(用来产生词向量的相关模型)中得到所述的词汇表对应的词向量,通过所述的词向量建立用于检测SQL注入攻击的模型;
B.DGA恶意域名检测:提取所述域名中的特征向量,将得到的特征向量通过训练得到训练模型,将所述的训练模型进行交叉验证,得到精度和召回率;
C.恶意脚本检测:从HTML(超文本标记语言)、CSS(层叠样式表)和JavaScript(直译式脚本语言)的代码中提取用于训练的特征值,然后通过训练所述的特征值得到训练模型,将当前脚本输入至所述的训练模型中,通过训练模型检测脚本中是否存在恶意代码;
D.网络安全态势评估:对当前监控网络下所有的主机计算其对应的态势值,再对所有的态势值求和得到总态势值,然后将总态势值根据安全等级进行评估;
E.网络安全态势预测:通过LSTM(Long Short-Term Memory)层和Bi-LSTM(Bi-directional Long Short-Term Memory)层,以及三个完全连接层相结合,输出预测网络安全态势值的结果。
将SQL注入检测、DGA恶意域名检测和恶意脚本检测相结合来对网络安全态势感知是现有技术中不曾有的,而在对其中的各个安全事件的检测方法又是在现有技术的基础上进行了改进。
具体的,步骤A包括:
A1.数据集预处理:截取出数据集中数据项的域名的参数部分,对所述参数部分的字母进行小写化的泛化处理,然后分别选取出其中带有SQL注入攻击的参数部分和不带有SQL注入攻击的参数部分;
A2.字符串分割:将每个所述的数据项通过n-grams模型(一种大词汇连续语音识别的常用模型)进行分割,得到每个数据项所拥有的词汇表;
A3.构建词向量:将所述的词汇表输入至word2vec中得到所述的词汇表对应的词向量,默认情况下得到的是基于Skipgram模型的词向量;
A4.建立检测SQL注入攻击的模型:将得到的词向量输入至GRU神经网络中并建立检测SQL注入攻击的模型。GRU神经网络是LSTM神经网络的一种效果很好的变体,它较LSTM网络的结构更加简单,而且效果也很好。
具体的,步骤B包括:
B1.信息熵提取:提取出域名字符串的信息熵,用于识别DGA域名的特征向量之一,信息熵中字符的随机性越高,该域名是DGA域名的可能性越大;
B2.n-grams切分域名:将域名按照n-grams算法进行切分,通过将每个唯一的字节片段出现的次数和输入所述词汇表中所有的字节片段数量相除可以得到每个唯一字节片段的频率的特征向量;
B3.WHOIS数据库信息:使用WHOIS数据库中的信息用于识别DGA域名的另一特征向量,通过查询WHOIS数据库,对给定的域名是否在WHOIS数据库中注册,赋予不同的标识;
B4.域名类型判断:对数据项中类型为顶级域名的域名,判断其为正常域名;
B5.将步骤B1~B4得到的特征向量通过LightGBM模型进行训练,得到训练模型,将所述的训练模型进行交叉验证,得到精度和召回率。
具体的,步骤C包括:
C1.提取HTML特征:第一种特征来源于页面原始内容的统计信息;第二种特征来源于解析HTML代码得到的结构信息;
C2.提取CSS特征:提取CSS代码中的异常行为的标签;
C3.提取JavaScript特征:通过对JavaScript脚本静态分析,以及对在页面中每个引入的JavaScript脚本得分析,对JavaScript的特征统计并语义化;
C4.将步骤C1~C3得到的特征通过LightGBM模型进行训练,得到训练模型。
具体的,步骤D包括:
D1.计算各类安全事件的权重值Wt:其中t表示安全事件的类型,pt表示不同类型的安全事件占总体安全事件的比重,N表示当前网络下主机的个数;
D2.计算当前网络下各主机的态势值scoret:scoret=nt*Wt,其中nt表示在单位时间内安全事件发生的次数;
D3.计算整个网络下的总体安全态势值SA_VAL:
D4.将总态势值根据安全等级进行评估:
其中,ymin表示安全等级的最小值,ymax表示安全等级的最大值,xmax表示步骤D2得到的最大的态势值,xmin表示步骤D2得到的最小的态势值,x表示当前的态势值,Standard_Value标识评估后的总态势安全等级,其值处于ymin和ymax之间。
本发明还提供了一种用于上述方法的网络安全态势分析的系统,包括:与数据库连接的网络流量包捕获模块,用以获取网络中各网页的信息,以及接收所述数据库信息的应用层;在应用层中包括有:
应用数据库:与所述数据库对接,并对应用层的其他模块提供数据支持;
流量采集模块:对应用数据库接收到的数据进行流量采集、流量过滤、流量存储、流量清洗和流量切分;
流量分析模块:解析流量采集模块获取的流量,获取安全分析所需的安全要素信息;
特征提取模块:对流量分析模块获取的安全要素信息进行特征提取;
安全事件检测模块:通过检测模块进行SQL注入攻击检测、DGA域名检测、恶意脚本检测;
态势评估模块:根据检测网络环境下每个主机的态势值,得到表征当前网络环境态势状况的总态势值;
态势预测模块:根据每一个时间段内得到的总态势值,通过LSTM层和Bi-LSTM层,以及三个完全连接层相结合,输出预测网络安全态势值的结果。
本发明网络安全态势分析的方法及系统,能够明显提高对网络安全态势分析的准确性,并且能够通过多个角度对不同类型的网络安全进行测试和分析,有效提高了对网络安全态势分析和预测的全面性。
以下结合实施例的具体实施方式,对本发明的上述内容再作进一步的详细说明。但不应将此理解为本发明上述主题的范围仅限于以下的实例。在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本发明的范围内。
附图说明
图1为本发明网络安全态势分析的系统的框图。
图2为本发明网络安全态势分析的方法的流程图。
具体实施方式
如图1所示本发明网络安全态势分析的系统,包括:与数据库连接的网络流量包捕获模块,用以获取网络中各网页的信息,以及接收所述数据库信息的应用层;在应用层中包括有:
应用数据库:与所述数据库对接,并对应用层的其他模块提供数据支持;
流量采集模块:对应用数据库接收到的数据进行流量采集、流量过滤、流量存储、流量清洗和流量切分;
流量分析模块:解析流量采集模块获取的流量,获取安全分析所需的安全要素信息;
特征提取模块:对流量分析模块获取的安全要素信息进行特征提取,该模块的特征提取每隔一段时间进行,间隔时间可由用户设定;
安全事件检测模块:通过检测模块进行SQL注入攻击检测、DGA域名检测、恶意脚本检测;
态势评估模块:根据检测网络环境下每个主机的态势值,得到表征当前网络环境态势状况的总态势值。本实施例中将网络的安全等级分为9个等级,安全态势值分布在0~9内。其中0表示当前网络状态处于可信任状态,9表示当前网络处于严重威胁状态,数值越大表示当前网络的存在威胁性越严重;
态势预测模块:每一个时间段内得到的总态势值会存入到State-Value表中,根据该State-Value表记录的每一个时间段内得到的总态势值,通过LSTM(Long Short-TermMemory)层和Bi-LSTM(Bi-directional Long Short-Term Memory)层,以及三个完全连接层相结合,输出预测网络安全态势值的结果。
如图2所示,通过上述的系统,对网络安全态势进行分析,包括:
A.SQL注入检测:
A1.数据集预处理:数据集中的数据项是一个完整的带参数的域名,形如http://www.domain.com?query=a&name=b的格式。对这些数据项截取出域名的payload的部分,即query=a&name=b部分,再对其所有的字母进行小写化的泛化处理,如果所述的payload部分包含SQL查询语句,则认为该域名有可能带有SQL注入攻击,反之则没有。选取出带有SQL注入攻击的请求payload部分和不带有SQL注入攻击的请求payload部分;
例如,正常SQL语句:SELECT*FROM table_name WHERE name='a';输入为:
'a',输出为:满足name='a'的所有行;
带有SQL注入攻击的SQL语句:SELECT*FROM table_name WHERE name='a'or1=1;输入为:'a'or1=1,输出为:所有记录。
A2.字符串分割:将每个所述的数据项通过n-grams模型(一种大词汇连续语音识别的常用模型)进行分割,本实施例中n取3。得到每个数据项所拥有的词汇表;
A3.构建词向量:将所述的词汇表输入至word2vec中得到所述的词汇表对应的词向量,默认情况下得到的是基于Skipgram模型的词向量;
A4.建立检测SQL注入攻击的模型:将得到的词向量输入至GRU神经网络中并建立检测SQL注入攻击的模型。GRU神经网络是LSTM神经网络的一种效果很好的变体,它较LSTM网络的结构更加简单,而且效果也很好。建立检测SQL注入攻击的模型的算法为:
Input:V:词向量
Output:M:GRU构建的模型
1初始化M←使用Sequential构建;
2input←通过V的大小使用InputLayer构建;
3gru-layer←构建GRU层;
4output←构建Dense层;
5 M add input;
6 M add gru-layer;
7 M add Dropout;
8 M add output;
9 M.compile
B.DGA恶意域名检测:
B1.信息熵提取:提取出域名字符串的信息熵,用于识别DGA域名的特征向量之一,信息熵中字符的随机性越高,该域名是DGA域名的可能性越大。一般来说,在合法的域名中出现的字符随机化程度很低,描述性强,例如www.baidu.com,它的域名是baidu.com,我们可以很直观的知道它代表的是百度的域名。而通过DGA生成的域名,通常情况下它里面出现的字符随机化程度更高,例如heuxhnbk.ru,因此可以将信息熵作为识别DGA检测的特征向量之一;
B2.n-grams(3-grams)切分域名:将域名按照3-grams算法进行切分,通过将每个唯一的字节片段出现的次数和输入所述词汇表中所有的字节片段数量相除可以得到每个唯一字节片段的频率的特征向量;
B3.WHOIS数据库信息:使用WHOIS数据库中的信息用于识别DGA域名的另一特征向量,通过查询WHOIS数据库,判断给定的域名是否在WHOIS数据库中注册,对没有注册的域名(NXDomain),布尔型的特征值设为false、数值型的特征值设为0。相反的,对于注册过的域名,布尔型的特征值设为true、数值型的特征值设为1。将给定的域名,查询了WHOIS数据库以后,抽取了表1的字符串和布尔型的特征:
表1:
对于WHOIS数据库提供的信息并没有做了语义化的分析,只是关注WHOIS数据库中与DGA和C&C服务器(远程命令和控制服务器)有很强关联性的信息,例如注册的临时信息、以及域名本身是否被注册等。通过这些信息作为辅助的相关的特征向量,可以更好的用于对DGA产生的恶意域名的识别;
B4.域名类型判断:一般情况下,后缀为.com,.cn,.org等这些顶级域名,其价格昂贵,需要备案审批或者特定网站才可以使用。如果用这些常用后缀来作为C&C服务器的域名,那么网络攻击者可能是无法负担的,而且还可能导致C&C服务器容易被溯源,所以由DGA生成的域名一般会回避这些顶级域名后缀的使用。因此对数据项中类型为顶级域名的域名,判断其为正常域名。
上述步骤B1~B4的主要算法为:
B5.将步骤B1~B4得到的特征向量通过LightGBM模型进行训练,得到训练模型,将所述的训练模型进行交叉验证,得到精度和召回率。主要算法为:
C.恶意脚本检测:从HTML(超文本标记语言)、CSS(层叠样式表)和JavaScript(直译式脚本语言)的代码中提取用于训练的特征值,然后通过XGBoost算法(极端梯度提升算法)训练所述的特征值得到训练模型,将当前脚本输入至所述的训练模型中,通过训练模型检测脚本中是否存在恶意代码。其中包括:
C1.提取HTML特征:HTML的特征主要来源于两个方面,第一种特征来源于页面原始内容的统计信息,包括页面的长度,页面的字符数,空白字符的占比等;第二种特征来源于解析HTML代码得到的结构信息,包括特定元素在页面的位置等。本实施例主要提取了如下的特征:
1.r-space:空白字符在所有代码字符的占比。
2.r-script-content:脚本内容占比。
3.r-unknown:未知元素的占比。
4.n-out-place:统计位置异常的元素个数。一些元素会被攻击者放在其本身不应该放置的位置而不被使用者发现。这些元素则可能包含着一些恶意代码或者引用外部的恶意资源。
5.n-double-docs:统计两个或以上的html、head、title和body的个数。
6.n-embed-obj:统计embed和object标签的个数。
7.n-characters:统计代码中字符的个数。
8.n-mal-object:统计可疑嵌入对象元素的个数。这些元素的classid包含可能产生漏洞的ActiveX控制列表。
9.n-mal-content:统计包含可疑内容的元素个数。在元素的开始标签和结束标签之间的内容可能是shell代码。
10.n-out-script:引入外域资源的script标签个数。
11.n-mal-pattern:统计存在已知攻击模式的个数。一些XSS、CSRF攻击代码可能直接写在了JavaScript脚本中。
12.n-error-ext:统计引用文件后缀名错误的script标签个数。
13.n-script-tag:统计script标签的个数。
14.n-tiny-area:统计小于正常大小元素的个数。一般来说,如div,object等标签都有自己的默认大小。当HTML中这些元素小于默认大小时,一般会被攻击者用来设为隐藏模式。这样便于携带一些恶意的信息。
15.n-hidden:统计使用隐藏标签的个数。
16.n-iframe:统计iframe标签的个数。
17.n-urls:统计被引用的URL个数。script、iframe、frame、embed、form这些标签可以通过src包含外部资源的URL。而这些引入的资源可能是恶意的。
18.n-meta:统计meta标签的个数。
C2.提取CSS特征:提取CSS代码中的异常行为的标签。由于CSS本身只是针对HTML做样式和结构的调整,所以只对一些针对元素隐藏等行为异常的CSS标签做特征提取。
得到的CSS特征如下:
1.n-overflow-hidden:将元素或页面的溢出设置成hidden的个数。
2.n-visible-none:将元素的可见度设置为none的个数。
3.n-opacity-0:将元素的透明度设置为0的个数。
4.n-diplay-none:取消display样式的个数。这样设置也可以隐藏元素。
5.n-embed:设置embed元素样式的个数。
6.n-object:设置object元素样式的个数。
7.n-uppercase:设置字符为大写的个数。
8.n-fixed:将元素设置成固定布局的个数。
9.n-absolute:将元素设置成绝对定位的个数。
10.n-fz-0:将字体大小设为0的个数。
11.n-nz-idx:将n-index设置为负值的个数。
12.n-scale-0:将元素的变形属性设置为0的个数。
C3.提取JavaScript特征:JavaScript的特征主要来源于两个方面。第一类特征通过对JavaScript脚本静态分析得到,第二类特征通过分析每个在页面中使用<script>元素引入的JavaScript脚本得到。JavaScript特征是统计化并语义化。
为了达到难以分析的目的,大多数的JavaScript恶意脚本经过了混淆或者打包处理。在一些情况下,一些攻击者使用了加密的机制和技术让他们编写的恶意脚本难以调试和逆向。为了检测这些特性,本发明从统计测量的角度进行了一部分的特征提取,例如字符串信息熵、空白字符占比、平均代码行长度等。同时也考虑了JavaScript的代码结构,一些特征是基于解析JavaScript代码的得到的抽象语法树(Abstract Syntax Tree,AST)而得到的。通过分析代码的AST可以计算关键字和其他单词的比率、识别通用加密模式、以及计算特定类或函数,例如eval()调用的次数等。本实施例提取了如下特征:
1.r-key-word:关键词和其他字符串之间的比率。大多数JavaScript恶意脚本中关键词,如var,for,while等出现的频率比正常脚本高。
2.r-space:空白字符占比。
3.p-shell:脚本中包含shell代码的概率。判断标准为无法打印的ASCII字符个数,十六进制字符成分,字符串存在规律性重复。
4.e-declare-str:脚本中声明的字符串的信息熵。
5.e-whole:整个脚本的信息熵。
6.max-e-str:脚本字符串的最大信息熵。
7.max-l-str:脚本字符串的最大长度。
8.ave-l-str:平均字符串的长度。
9.avl-l:平均脚本长度。
10.n-eval:eval()函数的个数。
11.n-timeout-interval:setTimeout()和setInterval()的个数。
12.n-built-in:用于反混淆的内建函数的个数。
13.n-code-seg:与反混淆程序类似的代码段出现个数。该特征表示JavaScript脚本中是否包含类似于解码例程的代码片段。正准确的说,分析JavaScript代码的AST以识别使用长字符中的次数。
14.n-long-str:长字符串的个数。如果一行代码的长度超过了40,那么可以将其认为是长字符串。
15.n-long-var-func:长变量名和长函数名的个数。
16.n-str-assign:字符串直接赋值的个数。
17.n-alter-str-func:用于修改字符串函数的个数。
18.n-event-bind:事件绑定的个数。
19.n-finger-func:有指纹功能的函数个数。
20.n-sus-obj:可疑对象的个数。
21.n-sus-str:可疑字符串的个数。
22.n-dom-func:用于DOM修改的函数个数。
23.n-iframe-str:包含iframe的字符串个数。
24.n-tags-str:包含HTML标签的字符串个数。
C4.将步骤C1~C3得到的特征通过LightGBM模型进行训练,得到训练模型。主要算法为:
D.网络安全态势评估:对当前监控网络下所有的主机计算其对应的态势值,本实施例中态势值的取值范围为[0,9],安全态势的衡量标准为:0表示最优,当前状态是可信任的状态,9表示最严重,当前状态是高度危机的状态。然后对所有的态势值求和得到总态势值,然后将总态势值通过计算方法分布在0~9的安全等级范围内,对网络安全态势进行评估。具体包括:
D1.首先计算各类安全事件的权重值Wt:其中t表示安全事件的类型,此处可取sql,dga,code分别对应表示SQL注入安全事件、DGA恶意域名安全事件以及恶意脚本安全事件。通过实验中已有的数据表明,不同的安全事件占总体安全事件的比重不相同,因此用pt表示不同类型的安全事件占总体安全事件的比重,N表示当前网络下主机的个数;
D2.得到各类安全事件的权重值Wt之后,计算当前网络下各主机的态势值scoret:
scoret=nt*Wt
其中nt表示在单位时间内安全事件发生的次数;
D3.得到各个主机的安全态势值scoret之后,再对整个网络下的总体安全态势值进行计算:
D4.最后将总态势值根据安全等级映射到0~9的范围内进行评估:
其中,ymin表示安全等级的最小值,ymax表示安全等级的最大值,xmax表示步骤D2得到的最大的态势值,xmin表示步骤D2得到的最小的态势值,x表示当前的态势值,Standard_Value标识评估后的总态势安全等级,其值处于ymin和ymax之间。
E.网络安全态势预测:通过LSTM层和Bi-LSTM层,以及三个完全连接层相结合,输出预测网络安全态势值的结果。网络安全态势值来源于态势评估得到的态势值。LSTM层和Bi-LSTM层它们每个都有512个神经元,三个完全连接层中每一层也有512个神经元。最后使用一个神经元的全连接层输出预测网络安全态势值的结果。表2显示了每个层的输入和输出维度。
表2:
层 | 输出 |
LSTM | (None,8,128) |
Dropout | (None,8,128) |
Bi-LSTM | (None,8,128) |
Dropout | (None,8,128) |
Dense | (None,8,1) |
主要算法有:
测试得知,SQL注入攻击检测部分得到的准确率为0.917,精确率为0.901,召回率为0.919,F1-Score为0.911。
DGA恶意域名检测部分得到的准确率为0.933,精确率为0.936,召回率为0.956,F1-Score为0.945。
恶意脚本检测部分得到的准确率为0.936,精确率为0.924,召回率为0.941,F1-Score为0.932。
结合LSTM和Bi-LSTM得到的训练集RMSE为0.717,测试集的RMSE为0.806。
由此可知,本发明对网络安全态势分析的准确率比现有技术有了很明显的提高,并且对网络安全威胁的涉及类型也更加全面。
Claims (6)
1.网络安全态势分析的方法,其特征包括:
A.SQL注入检测:根据数据集中数据项的域名payload部分是否包含SQL查询语句,分别选取出数据集中数据项的域名里带有SQL注入攻击的部分和不带有SQL注入攻击的部分,将每个数据项分割后得到每个数据项所拥有的词汇表,并将所述的词汇表输入至word2vec中得到所述的词汇表对应的词向量,通过所述的词向量建立用于检测SQL注入攻击的模型;
B.DGA恶意域名检测:提取所述域名中的特征向量,将得到的特征向量通过训练得到训练模型,将所述的训练模型进行交叉验证,得到精度和召回率;
C.恶意脚本检测:从HTML、CSS和JavaScript的代码中提取用于训练的特征值,然后通过训练所述的特征值得到训练模型,将当前脚本输入至所述的训练模型中,通过训练模型检测脚本中是否存在恶意代码;
D.网络安全态势评估:对当前监控网络下所有的主机计算其对应的态势值,再对所有的态势值求和得到总态势值,然后将总态势值根据安全等级进行评估;
E.网络安全态势预测:通过LSTM层和Bi-LSTM层,以及三个完全连接层相结合,输出预测网络安全态势值的结果。
2.如权利要求1所述的网络安全态势分析的方法,其特征为:步骤A包括:
A1.数据集预处理:截取出数据集中数据项的域名的参数部分,对所述参数部分的字母进行小写化的泛化处理,然后分别选取出其中带有SQL注入攻击的参数部分和不带有SQL注入攻击的参数部分;
A2.字符串分割:将每个所述的数据项通过n-grams模型进行分割,得到每个数据项所拥有的词汇表;
A3.构建词向量:将所述的词汇表输入至word2vec中得到所述的词汇表对应的词向量;
A4.建立检测SQL注入攻击的模型:将得到的词向量输入至GRU神经网络中并建立检测SQL注入攻击的模型。
3.如权利要求1所述的网络安全态势分析的方法,其特征为:步骤B包括:
B1.信息熵提取:提取出域名字符串的信息熵,用于识别DGA域名的特征向量之一,信息熵中字符的随机性越高,该域名是DGA域名的可能性越大;
B2.n-grams切分域名:将域名按照n-grams算法进行切分,通过将每个唯一的字节片段出现的次数和输入所述词汇表中所有的字节片段数量相除可以得到每个唯一字节片段的频率的特征向量;
B3.WHOIS数据库信息:使用WHOIS数据库中的信息用于识别DGA域名的另一特征向量,通过查询WHOIS数据库,对给定的域名是否在WHOIS数据库中注册,赋予不同的标识;
B4.域名类型判断:对数据项中类型为顶级域名的域名,判断其为正常域名;
B5.将步骤B1~B4得到的特征向量通过LightGBM模型进行训练,得到训练模型,将所述的训练模型进行交叉验证,得到精度和召回率。
4.如权利要求1所述的网络安全态势分析的方法,其特征为:步骤C包括:
C1.提取HTML特征:第一种特征来源于页面原始内容的统计信息;第二种特征来源于解析HTML代码得到的结构信息;
C2.提取CSS特征:提取CSS代码中的异常行为的标签;
C3.提取JavaScript特征:通过对JavaScript脚本静态分析,以及对在页面中每个引入的JavaScript脚本得分析,对JavaScript的特征统计并语义化;
C4.将步骤C1~C3得到的特征通过LightGBM模型进行训练,得到训练模型。
5.如权利要求1所述的网络安全态势分析的方法,其特征为:步骤D包括:
D1.计算各类安全事件的权重值Wt:其中t表示安全事件的类型,pt表示不同类型的安全事件占总体安全事件的比重,N表示当前网络下主机的个数;
D2.计算当前网络下各主机的态势值scoret:scoret=nt*Wt,其中nt表示在单位时间内安全事件发生的次数;
D3.计算整个网络下的总体安全态势值SA_VAL:
D4.将总态势值根据安全等级进行评估:
其中,ymin表示安全等级的最小值,ymax表示安全等级的最大值,xmax表示步骤D2得到的最大的态势值,xmin表示步骤D2得到的最小的态势值,x表示当前的态势值,Standard_Value标识评估后的总态势安全等级,其值处于ymin和ymax之间。
6.用于权利要求1至5之一的网络安全态势分析的系统,其特征包括:与数据库连接的网络流量包捕获模块,用以获取网络中各网页的信息,以及接收所述数据库信息的应用层;在应用层中包括有:
应用数据库:与所述数据库对接,并对应用层的其他模块提供数据支持;
流量采集模块:对应用数据库接收到的数据进行流量采集、流量过滤、流量存储、流量清洗和流量切分;
流量分析模块:解析流量采集模块获取的流量,获取安全分析所需的安全要素信息;
特征提取模块:对流量分析模块获取的安全要素信息进行特征提取;
安全事件检测模块:通过检测模块进行SQL注入攻击检测、DGA域名检测、恶意脚本检测;
态势评估模块:根据检测网络环境下每个主机的态势值,得到表征当前网络环境态势状况的总态势值;
态势预测模块:根据每一个时间段内得到的总态势值,通过LSTM层和Bi-LSTM层,以及三个完全连接层相结合,输出预测网络安全态势值的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910534662.XA CN110233849B (zh) | 2019-06-20 | 2019-06-20 | 网络安全态势分析的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910534662.XA CN110233849B (zh) | 2019-06-20 | 2019-06-20 | 网络安全态势分析的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110233849A true CN110233849A (zh) | 2019-09-13 |
CN110233849B CN110233849B (zh) | 2020-05-01 |
Family
ID=67856891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910534662.XA Active CN110233849B (zh) | 2019-06-20 | 2019-06-20 | 网络安全态势分析的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110233849B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569032A (zh) * | 2019-09-16 | 2019-12-13 | 郑州昂视信息科技有限公司 | 脚本语言解释器应用标签裁决的方法及装置 |
CN111049819A (zh) * | 2019-12-07 | 2020-04-21 | 上海镕天信息科技有限公司 | 一种基于威胁建模的威胁情报发现方法及计算机设备 |
CN111083151A (zh) * | 2019-12-23 | 2020-04-28 | 深圳供电局有限公司 | 基于深度信念网络的攻击识别方法及风电管理系统 |
CN111198995A (zh) * | 2020-01-07 | 2020-05-26 | 电子科技大学 | 一种恶意网页识别方法 |
CN111277603A (zh) * | 2020-02-03 | 2020-06-12 | 杭州迪普科技股份有限公司 | 无监督异常检测系统和方法 |
CN111818067A (zh) * | 2020-07-14 | 2020-10-23 | 绿盟科技集团股份有限公司 | 流量特征提取方法及装置 |
CN111935097A (zh) * | 2020-07-16 | 2020-11-13 | 上海斗象信息科技有限公司 | 一种检测dga域名的方法 |
CN112069228A (zh) * | 2020-08-18 | 2020-12-11 | 之江实验室 | 一种面向事件序列的因果可视化方法及装置 |
CN112380514A (zh) * | 2020-11-13 | 2021-02-19 | 支付宝(杭州)信息技术有限公司 | 生物识别安全态势预测方法、装置和电子设备 |
CN112507337A (zh) * | 2020-12-18 | 2021-03-16 | 四川长虹电器股份有限公司 | 基于语义分析的恶意JavaScript代码检测模型的实现方法 |
CN112632549A (zh) * | 2021-01-06 | 2021-04-09 | 四川大学 | 一种基于语境分析的Web攻击检测方法 |
CN113259325A (zh) * | 2021-04-21 | 2021-08-13 | 桂林电子科技大学 | 基于麻雀搜索算法优化Bi-LSTM的网络安全态势预测方法 |
CN113642002A (zh) * | 2021-07-28 | 2021-11-12 | 上海纽盾科技股份有限公司 | 用于云数据安全事件的快速定位态势感知方法及系统 |
CN114168967A (zh) * | 2021-12-08 | 2022-03-11 | 重庆大唐国际彭水水电开发有限公司 | 一种工控系统安全态势预测方法和系统 |
CN114189350A (zh) * | 2021-10-20 | 2022-03-15 | 北京交通大学 | 一种基于LightGBM的列车通信网络入侵检测方法 |
CN114285627A (zh) * | 2021-12-21 | 2022-04-05 | 安天科技集团股份有限公司 | 流量检测方法及装置、电子设备和计算机可读存储介质 |
CN115378653A (zh) * | 2022-07-25 | 2022-11-22 | 中国电子科技集团公司第三十研究所 | 一种基于lstm和随机森林的网络安全态势感知与预测方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017160340A1 (en) * | 2016-03-14 | 2017-09-21 | Paxata, Inc. | Automatic content-based append detection |
CN107979601A (zh) * | 2017-11-30 | 2018-05-01 | 广州凡数信息科技有限公司 | 基于社交网络的安全态势感知系统 |
CN109246153A (zh) * | 2018-11-09 | 2019-01-18 | 中国银行股份有限公司 | 网络安全态势分析模型和网络安全评估方法 |
CN109714323A (zh) * | 2018-12-17 | 2019-05-03 | 清创网御(合肥)科技有限公司 | 一种全网危险感知平台及其工作方法 |
CN109889476A (zh) * | 2018-12-05 | 2019-06-14 | 国网冀北电力有限公司信息通信分公司 | 一种网络安全防护方法和网络安全防护系统 |
-
2019
- 2019-06-20 CN CN201910534662.XA patent/CN110233849B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017160340A1 (en) * | 2016-03-14 | 2017-09-21 | Paxata, Inc. | Automatic content-based append detection |
CN107979601A (zh) * | 2017-11-30 | 2018-05-01 | 广州凡数信息科技有限公司 | 基于社交网络的安全态势感知系统 |
CN109246153A (zh) * | 2018-11-09 | 2019-01-18 | 中国银行股份有限公司 | 网络安全态势分析模型和网络安全评估方法 |
CN109889476A (zh) * | 2018-12-05 | 2019-06-14 | 国网冀北电力有限公司信息通信分公司 | 一种网络安全防护方法和网络安全防护系统 |
CN109714323A (zh) * | 2018-12-17 | 2019-05-03 | 清创网御(合肥)科技有限公司 | 一种全网危险感知平台及其工作方法 |
Non-Patent Citations (1)
Title |
---|
牛伟纳: ""窃密型复杂网络攻击建模与识别方法研究"", 《CNKI优秀博士论文信息科技辑》 * |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569032A (zh) * | 2019-09-16 | 2019-12-13 | 郑州昂视信息科技有限公司 | 脚本语言解释器应用标签裁决的方法及装置 |
CN110569032B (zh) * | 2019-09-16 | 2023-03-14 | 郑州昂视信息科技有限公司 | 脚本语言解释器应用标签裁决的方法及装置 |
CN111049819A (zh) * | 2019-12-07 | 2020-04-21 | 上海镕天信息科技有限公司 | 一种基于威胁建模的威胁情报发现方法及计算机设备 |
CN111083151A (zh) * | 2019-12-23 | 2020-04-28 | 深圳供电局有限公司 | 基于深度信念网络的攻击识别方法及风电管理系统 |
CN111083151B (zh) * | 2019-12-23 | 2021-05-25 | 深圳供电局有限公司 | 基于深度信念网络的攻击识别方法及风电管理系统 |
CN111198995A (zh) * | 2020-01-07 | 2020-05-26 | 电子科技大学 | 一种恶意网页识别方法 |
CN111198995B (zh) * | 2020-01-07 | 2023-03-24 | 电子科技大学 | 一种恶意网页识别方法 |
CN111277603A (zh) * | 2020-02-03 | 2020-06-12 | 杭州迪普科技股份有限公司 | 无监督异常检测系统和方法 |
CN111277603B (zh) * | 2020-02-03 | 2021-11-19 | 杭州迪普科技股份有限公司 | 无监督异常检测系统和方法 |
CN111818067A (zh) * | 2020-07-14 | 2020-10-23 | 绿盟科技集团股份有限公司 | 流量特征提取方法及装置 |
CN111818067B (zh) * | 2020-07-14 | 2022-07-15 | 绿盟科技集团股份有限公司 | 流量特征提取方法及装置 |
CN111935097A (zh) * | 2020-07-16 | 2020-11-13 | 上海斗象信息科技有限公司 | 一种检测dga域名的方法 |
CN111935097B (zh) * | 2020-07-16 | 2022-07-19 | 上海斗象信息科技有限公司 | 一种检测dga域名的方法 |
CN112069228A (zh) * | 2020-08-18 | 2020-12-11 | 之江实验室 | 一种面向事件序列的因果可视化方法及装置 |
CN112069228B (zh) * | 2020-08-18 | 2023-12-19 | 之江实验室 | 一种面向事件序列的因果可视化方法及装置 |
CN112380514B (zh) * | 2020-11-13 | 2022-11-22 | 支付宝(杭州)信息技术有限公司 | 生物识别安全态势预测方法、装置和电子设备 |
CN112380514A (zh) * | 2020-11-13 | 2021-02-19 | 支付宝(杭州)信息技术有限公司 | 生物识别安全态势预测方法、装置和电子设备 |
CN112507337A (zh) * | 2020-12-18 | 2021-03-16 | 四川长虹电器股份有限公司 | 基于语义分析的恶意JavaScript代码检测模型的实现方法 |
CN112632549B (zh) * | 2021-01-06 | 2022-07-12 | 四川大学 | 一种基于语境分析的Web攻击检测方法 |
CN112632549A (zh) * | 2021-01-06 | 2021-04-09 | 四川大学 | 一种基于语境分析的Web攻击检测方法 |
CN113259325A (zh) * | 2021-04-21 | 2021-08-13 | 桂林电子科技大学 | 基于麻雀搜索算法优化Bi-LSTM的网络安全态势预测方法 |
CN113642002A (zh) * | 2021-07-28 | 2021-11-12 | 上海纽盾科技股份有限公司 | 用于云数据安全事件的快速定位态势感知方法及系统 |
CN113642002B (zh) * | 2021-07-28 | 2024-02-02 | 上海纽盾科技股份有限公司 | 用于云数据安全事件的快速定位态势感知方法及系统 |
CN114189350B (zh) * | 2021-10-20 | 2023-03-07 | 北京交通大学 | 一种基于LightGBM的列车通信网络入侵检测方法 |
CN114189350A (zh) * | 2021-10-20 | 2022-03-15 | 北京交通大学 | 一种基于LightGBM的列车通信网络入侵检测方法 |
CN114168967A (zh) * | 2021-12-08 | 2022-03-11 | 重庆大唐国际彭水水电开发有限公司 | 一种工控系统安全态势预测方法和系统 |
CN114285627A (zh) * | 2021-12-21 | 2022-04-05 | 安天科技集团股份有限公司 | 流量检测方法及装置、电子设备和计算机可读存储介质 |
CN114285627B (zh) * | 2021-12-21 | 2023-12-22 | 安天科技集团股份有限公司 | 流量检测方法及装置、电子设备和计算机可读存储介质 |
CN115378653A (zh) * | 2022-07-25 | 2022-11-22 | 中国电子科技集团公司第三十研究所 | 一种基于lstm和随机森林的网络安全态势感知与预测方法及系统 |
CN115378653B (zh) * | 2022-07-25 | 2024-04-23 | 中国电子科技集团公司第三十研究所 | 一种基于lstm和随机森林的网络安全态势感知与预测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110233849B (zh) | 2020-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110233849A (zh) | 网络安全态势分析的方法及系统 | |
CN108965245B (zh) | 基于自适应异构多分类模型的钓鱼网站检测方法和系统 | |
CN107241352A (zh) | 一种网络安全事件分类与预测方法及系统 | |
CN104767757B (zh) | 基于web业务的多维度安全监测方法和系统 | |
CN107786575A (zh) | 一种基于dns流量的自适应恶意域名检测方法 | |
CN109922052A (zh) | 一种结合多重特征的恶意url检测方法 | |
CN108667816A (zh) | 一种网络异常的检测定位方法及系统 | |
CN103577755A (zh) | 一种基于支持向量机的恶意脚本静态检测方法 | |
CN105956180B (zh) | 一种敏感词过滤方法 | |
CN107659570A (zh) | 基于机器学习与动静态分析的Webshell检测方法及系统 | |
CN102446255B (zh) | 一种检测页面篡改的方法及装置 | |
CN110266647A (zh) | 一种命令和控制通信检测方法及系统 | |
CN107360152A (zh) | 一种基于语义分析的Web威胁感知系统 | |
CN112541476B (zh) | 一种基于语义特征提取的恶意网页识别方法 | |
CN107341399A (zh) | 评估代码文件安全性的方法及装置 | |
CN110191096A (zh) | 一种基于语义分析的词向量网页入侵检测方法 | |
Yong et al. | Malicious Web traffic detection for Internet of Things environments | |
CN110830489B (zh) | 基于内容抽象表示的对抗式欺诈网站检测方法及系统 | |
CN109922065A (zh) | 恶意网站快速识别方法 | |
CN112199677A (zh) | 一种数据处理方法和装置 | |
CN107169360A (zh) | 一种源代码安全漏洞的检测方法及系统 | |
CN109614795A (zh) | 一种事件感知的安卓恶意软件检测方法 | |
CN107180190A (zh) | 一种基于混合特征的Android恶意软件检测方法及系统 | |
CN106874760A (zh) | 一种基于层次式SimHash的Android恶意代码分类方法 | |
CN112333128A (zh) | 一种基于自编码器的Web攻击行为检测系统 |
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 |