CN106899435B - 一种面向无线入侵检测***的复杂攻击识别方法 - Google Patents
一种面向无线入侵检测***的复杂攻击识别方法 Download PDFInfo
- Publication number
- CN106899435B CN106899435B CN201710092708.8A CN201710092708A CN106899435B CN 106899435 B CN106899435 B CN 106899435B CN 201710092708 A CN201710092708 A CN 201710092708A CN 106899435 B CN106899435 B CN 106899435B
- Authority
- CN
- China
- Prior art keywords
- attack
- alarm
- chain
- frame
- node
- 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
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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/12—Detection or prevention of fraud
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及面向无线入侵检测***的复杂攻击识别技术,包括如下步骤:步骤一、数据采集;步骤二、单步攻击识别;步骤三、复杂攻击识别;步骤四、信息展示界面;本发明的有益效果是:1)对单步攻击的识别采用hybird架构,增强了单步攻击识别准确率,减少误报漏报;2)对复杂攻击识别采用评估机制,而非单纯的是或否来判断单步攻击行为,进而生成攻击序列,有效减少模块间信息失真造成最终结果失真;3)设计了一种识别复杂攻击并预测攻击者最终意图的算法,对于存在明显特征行为的复杂攻击意图具有较好的预测结果。
Description
技术领域
本发明涉及复杂攻击识别技术,更具体说,它涉及一种识别复杂攻击并预测攻击者最终意图的识别技术。
背景技术
近几年来无线网络越来越普及,无论是在公司内部,公共场所还是消费者家中都会部署无线局域网WLAN,而非常丰富的接入点AP也极大的方便了人们尤其是使用移动终端的用户。移动端的用户量这些年一直在增长,而很多应用如社交、游戏、影音、新闻、金融等也越来越偏向于让用户使用移动端来交互,这是移动端的天然优势。但由于无线通信协议本身的缺陷,或者这些移动端设备制造时留下的漏洞,使得用户的信息、财产甚至生命都会受到潜在的威胁。这些设备所使用的移动网络成了入侵的门路,而移动端特别是手机端就成了不法者获取非法信息的来源或实施攻击、诈骗的载体。所以如何尽量填补移动互联网中的漏洞,以及如何检测和防范针对它的各种已知和未知的入侵,是一件相当重要的事情。为此已经发展了很多相关技术,其中主要有防火墙、入侵检测和防御技术,它们已经在有线网络环境安全中有了很大的应用。而针对无线网络环境的则是无线入侵检测和防御***WIDS\WIPS。另一事实是攻防两方都是在发展的,攻击者为了达到他们的目的,也在开发更加复杂的攻击技术。目前针对无线网络环境的攻击者往往会实施很多的攻击步骤来接近目标,这大大增加了入侵检测或防御难度,而传统的误用检测如Snort rules等只适用于单步攻击,针对复杂攻击的研究,目前主要还集中在有线入侵检测领域,而无线网络和有线网络在攻击行为上存在很大差异,比如攻击目标不同,有线网络攻击目标多为主机,而无线网络则包含AP、PC端和移动终端等;攻击层次不同,有线网络攻击多为网络层及以上,而无线网络攻击涉及物理层和逻辑链路层;攻击手段不同,有线网络攻击往往探测主机漏洞来入侵,而无线网络攻击主要是破解密钥,非法接入或伪装来对流量进行操作,由于无线攻击的这些特殊性,尚无有效的适用复杂攻击的多步无线攻击检测技术。
发明内容
本发明的目的是克服现有技术中的不足,提供一种识别复杂攻击并预测攻击者最终意图的面向无线入侵检测***的复杂攻击识别方法。
为实现上述技术目的,本发明采用了以下技术方案:
面向无线入侵检测***的复杂攻击识别方法,包括如下步骤:
步骤一、数据采集
***数据采集来源为线上线下两种,线上采用kismet分布式采集或libpcap,接口一般为monitor mode的USB网卡,或者是kismet写入的tun/tap虚拟接口;采集到的数据包根据数据链路层类型又分为三种格式,正确解析可得到各个层各字段信息,其中radiotap和PPI将包含诸如接收信号强度指示器(Received Signal Strength Indicator,RSSI)等物理层特征;
步骤二、单步攻击识别
由两个部分组成,一个是一种通用的无需训练的检测方法(General Detector),对于各个攻击行为,只需设定所需metric即可;另外针对特定攻击行为,使用误用检测技术,通过配置攻击签名库(Signature Database)来判断的方法(SpecificationDetector);本单步攻击识别模块将结合两种识别方法来判断单步攻击是否发生,以及攻击者影响到的帧;
步骤三、复杂攻击识别
步骤二产生一系列的单步攻击信息SAI存入到攻击数据库(Attack Database)中,供复杂攻击识别模块进行分析;复杂攻击识别对应入侵检测***IDS的告警关联阶段,而攻击图用于告警关联;复杂攻击识别就使用了逻辑攻击图(logic attack graph,LAG),和虚拟拓扑图(virtual topology graph,VTG)搭配去挖掘攻击路径(Attack Path);复杂攻击识别包含告警精简、虚拟拓扑图VTG生成器、LAG生成器、签名数据库、攻击路径解析器、复杂攻击评估等子模块,其架构如图4所示;
步骤二得到的单步攻击的告警,在复杂攻击识别模块中,将有两个主要步骤;首先需要预处理,去除无关告警和重复告警,精简告警数量;第二步需要通过整理得到的超告警hyper alert去识别攻击者易采取的攻击序列,并预测攻击者后续动作和最终意图;
识别攻击序列时,从逻辑上将告警(Alert)分为三类;一类是已检测到的告警(Alert Detected,ADE),这类告警明确属于某种单步攻击;一类是未检测到的告警(AlertUndetected,AUD),即可能丢失的告警;一类是未来将发生的告警(Alert Predicted,APR),即预测结果;第一类告警还分为属于真实意图的告警(Alert Real,AR)以及扰乱告警(Alert Disturbed,AD);
步骤四、信息展示界面
信息展示界面包含VTG可视化图,排序攻击链以及攻击目标预测;无线入侵检测***实时显示当前VTG,通过VTG让用户观察出当前网络是否有攻击行为发生,以及通过对虚拟节点间流量的统计来突出攻击者和受害者等重要节点的位置;排序攻击链则实时显示当前估计的所有可能的攻击链,其中排在前面的1个或几个攻击链对应的攻击意图则为当前预测攻击者意图。
所述步骤二具体包括:
(一)识别方法
对于一个帧而言,有Θ={NF,MF},其中{NF|MF}=UF(uncertain frame);对于每一个metric,维持一个滑动窗口(sliding window,SW),其长度为n,则有n个NF帧在其中组成profile dataset;若检测到一个帧为MF,则不会将其放入SW中,若检测为NF则更新SW;
该方法对的基本概率分配(BPA)如下:
BeliefMF:SW中metric重复最大次数F,均值mean,最大Euclidean距离Dmax,角度α计算方法见公式1;
而对于每一个进入的帧,角度β计算方法见公式2;
其中D是该帧的metric对应mean的Euclidean距离,值为
BeliefNF:将SW中的数据按metric大小顺序排列后,根据进入帧的metric值所在位置分配固定值;离中位数越近取值越高,最高为0.5;
BeliefUF:根据前面两种分配数值有以下四种情形:
(1)MF取低值,NF取低值;
(2)MF取低值,NF取高值;
(3)MF取高值,NF取低值;
(4)MF取高值,NF取高值;
在(2)(3)种情形下,MF和NF没有冲突则分配UF一个较小值;在(1)(4)种情形下则需要分配较高值;分配方法是先按公式3计算出BeliefUF,而后按公式4和公式5重新分配各个Belief值使其和为1;
m(x)=Beliefx-μ 公式(5)
之后合成各个metric的BPA,并设定阈值,用于判定进入帧是MF还是NF;
要使得该方法有效有三个需要满足的条件;第一,正常流量占总流量大部分;第二,NF、MF的metrics值有明显差异;第三,滑动窗口长度n的设置;n取值过小,则无法包含足够信息,取值过大,则增加误入MF风险,同时延长检测过程;
(二)攻击签名
单步攻击检测中的误用检测,使用攻击签名模型EDL来描述攻击行为,而Specification Detector据此签名数据库signature database来进行检测;若检测到单步攻击,则有8元组s_attack(name,src,dst,tran,ftime,etime,bssid,rframes);其中name为攻击名,src为AN地址,dst为VN地址,tran为SN地址,ftime为检测出时间,etime为估计攻击最早发生时间,bssid为VN所在网络BSSID,rframes为相关MF帧集合;
(三)单步攻击决策
根据上述两种检测方法得到的结果,综合判断攻击是否发生;两种检测方法均建立内存数据库,存储所有检测的历史数据;General Detector存储每个帧的信任区间,Specification Detector存储每个检测到s_attack;单步攻击决策函数为s_decsion(t):int->[0,1],t为某时刻,结果为攻击发生可能性(attack possiblility,AP);s_decsion将从内存数据库中分别根据帧的时间戳和ftime查找t附近的数据;
若某种攻击行为只进行了其中一种检测方法,则以其为准;若两者均处于检测中则对某时刻t有如下情形:
(1)General Detector检测到,Specification Detector检测到;
(2)General Detector检测到,Specification Detector未检测到;
(3)General Detector未检测到,Specification Detector检测到;
(4)General Detector未检测到,Specification Detector未检测到;
在(1)(4)情形下,两者结果一致则直接以此为结果,为1和0;
在(2)情形下,认为有攻击A发生,对应该MF,结果为公式6所示;
αBelMF(A)+βPlMF(A) 公式(6)
在(3)情形下,对应该攻击和帧的信任区间或拒绝证据区间较大,此时认为有攻击A发生,对应s_attack;此时,计算s_attack中r_frames的所有信任区间的均值如公式7、8所示;
若均值满足General Detector设定的阈值,则结果为1,否则结果按公式9计算;
αBelr_frames(A)+βPlr_frames(A) 公式(9)
上述有参数α+β=1,α,β∈[0,1],通常取值α=β=0.5;
单步攻击决策中,需要对帧的分类,单步攻击结果输出进行统一化;在(1)情形下,将General Detector对应的MF加入到rframes中,在(2)情形下,根据MF构造出s_attack(A,MF.mac_src,MF.mac_dst,MF.mac_reciever,MF.timestamp,MF.bssid,{MF}),其中的name为A,src为MF数据链路层的源地址,dst为MF的目的地址,tran为接收端地址,ftime和etime为timestamp,rframes为{MF},bssid为MF的BSSID;最终单步攻击识别模块输出对象single-step attack information(SAI)为二元组(AP,s_attack);另外,上述描述针对某一攻击行为A进行识别,而某个MF则可能识别后与多个攻击行为相关;所以该模型需要假设如下;
假设条件1:实际情形下,当某一个数据帧对应几种不同的攻击行为,则这些攻击行为互不干扰,且有一定的关联关系。
所述步骤3具体包括:
(一)告警精简
步骤二中产生的单步攻击告警,由于其General Detector细化到帧的程度,将可能产生大量的告警,所以有必要对这些告警进行精简处理,以减少告警数量,消除无关告警和重复告警;告警精简流程如图5所示;无关告警和重复告警描述如下:
(1)无关告警:有一些告警指示的是与无线攻击行为无关的其他攻击,或者该告警明显错误;
(2)重复告警:同一攻击行为产生的告警,且没有在单步攻击识别模块中合并,通常是具有相同攻击路径由同一攻击者发出的同一类型攻击行为,或者时间上存在连续性、周期性的表现;
处理单步攻击识别模块产生的数据库SAIs时,比较算子cmp(SAI1,SAI2)比较两者是否可以合并,若可以则放入同一个集合Merging SAIs中;于是将SAIs分类成一组MergingSAIs,对每一个SAIs进行合并;
合并规则如下:依据SAI.AP,SAI.ftime,averge[SAI.rframes.timestamps]进行K-means聚类,将Merging SAIs细分后进行合并;对于集合SAI sai_same合并后生成新的SAI_new(AP,A,src,dst,tran,ftime,etime,bssid,rframes);其中A,src,dst,tran,bssid不变;有ftimeSAI_new=min(ftimess),etimeSAI_new=min(etimess),rframesSAI_new=∪rframesss;
特别的是AP的选择,如果以元组形式保存所有合并项的AP值,则会造成合并后的告警在这一字段拥有不同的维度;为了统一方便后续处理,有APSAI_new==median(APss),即选取AP的中位数;
告警精简过后得到超告警hyper alert,这些告警之间存在关联关系,即可能的攻击链;复杂攻击识别模块接下来的部分包含VTG生成器,LAG生成器,攻击路径解析,复杂攻击评估等子模块;
(二)攻击链签名
攻击链签名描绘了常见复杂攻击场景,攻击链基于因果关系建立攻击之间的链接;一个攻击发生需要前置条件,发生后产生一些后果;从前一步攻击到达后一步攻击需要满足conditions;最后的一项攻击节点为最终攻击者所实施的攻击,通常蕴含着攻击者的攻击真实意图;复杂攻击识别模块的签名数据库包含了一系列经典攻击链,供生成LAG所需;
(三)LAG生成
上述动态生成的攻击图包含了所有已检测到单步攻击和它们所可能存在的攻击链;简单攻击场景会生成简单的攻击图,复杂攻击场景会生成复杂的攻击图;
(四)VTG生成
上述动态生成的虚拟拓扑图包含了所有已检测到单步攻击涉及的节点,以及节点之间的连接;虚拟拓扑图定义VTG=(VNs,VNt,VNm,AE),其中VNs为攻击者所在虚拟节点集合,VNt为受害者所在虚拟节点集合,VNm为过渡者所在虚拟节点集合,AE为虚拟节点之间的攻击流量集合;虚拟节点VN拥有攻击者、受害者、过渡者三个角色;虚拟节点VN并不代表真实的物理设备,一个VN可包含不同的地址,一个物理设备也可分出几个VN,而一个VN对应不同攻击所扮演的角色也可以不同;
为了合理简化***复杂性,VN的生成和合并需要有以下假设条件:
假设条件2:攻击设备不会映射为受害者VN;
假设条件3:一个VN对应一个攻击所关联的角色是唯一的;
假设条件4:若一个VN拥有多个地址,表明使用了地址欺骗,认为其是攻击者;
VN的地址为addr_vn(mac_addr,ip_addr,ssid,vendor),如果两个地址的mac_addr、ip_addr至少有一个相同和一个不相同,则认为其属于同一个VN;如果mac_addr、ip_addr相同但却拥有不同的ssid或vendor,也认为其属于同一个VN;
判断VN所属角色的方法:
(1)VN之间的地址产生冲突;
(2)VN地址包含SAI的src属于VNs,包含dst属于VNt,包含trans属于VNm;
步骤三将计算VN之间对应单步攻击的关联度;对于某个攻击A,VN1到VN2的关联度为公式10所示;
其中k为VN1到VN2的单步攻击告警集合的告警数目;
VTG示例如图9所示;该示例存在2个VNs,其中一个是由两个VNs合并而来,还有3个VNm以及2个VNt;这个VTG中一共包含了4种单步攻击,分别是:attack1:VNs1->VNm1->VNm2->VNt2;attack2:VNs1->VNm2->VNt2;attack3:VNs1->VNm1->VNt1+VNs21->VNm3->VNt2;attack4:VNs2[VNs21+VNs22]->VNm3->VNt2;
(五)攻击路径解析
结合VTG和LAG可以进行攻击路径解析;
当数据规模增大后,换用遗传算法寻找解;每一条路径代表一个攻击链;攻击链需要满足LAG中各个边设置的发生条件;在DFS过程中,每经过一个攻击节点A,代表在VTG中走过一条攻击路径;从VTG的攻击者节点出发,选择属于A的攻击边,若形成一条攻击路径,到达受害者节点B;则将其对应的SAI信息放入LAG攻击节点中,并判断从该攻击节点到下一个攻击节点是否满足条件,若满足则递归下去并使LAG边生效;在这个过程中,VTG中所寻找到的SAI的ftime必须是在上一个攻击节点ftime之后;
在VTG上找寻到一条的攻击路径时,将计算其关联度如公式11所示;
并将其对应到候选攻击链的相应节点上;
(六)复杂攻击评估
上一步中针对每一个目标攻击节点,都将生成一组候选攻击链;假定攻击者的实际发生攻击链和攻击意图将是这些攻击链中的某一个;
候选攻击链评分由两部分组成;一个代表每个节点自身的告警有效性,一个代表告警之间的相关度;前者个数同所有候选攻击链中节点个数,若所有单步攻击个数为K,则后者为K*K矩阵;
对每个目标攻击节点,分别按公式12计算出其每个候选攻击链的评分要素assc1;
其中averge_assd表示候选攻击全局中为该攻击类型的节点assd的平均值;
对攻击A1到攻击A2的相关度,计算方法如下:
找到VTG中所有攻击类型为A1和A2的边集合E1和E2,边个数分别为n和m;公式13为两个边之间的关联度,公式14则是攻击链中两相邻单步攻击的关联度;
则整条攻击链的assc2值计算方式为公式15,其中k为攻击链长度;
候选攻击链的总评分为公式16所示;其中assc1是一个正数,assc2是一个[0,1]范围取值的数;
assc(Attack_chain)=ln(assc1(Attack_chain))+assc2(Attack_chain) 公式(16)
得到每个攻击链评分后,针对每个目标攻击节点按评分进行排序;
然后丢弃下列攻击链和目标攻击节点:
(1)没有攻击链的目标攻击节点;
(2)攻击链评分低于阈值0.5的;
(3)若目标攻击节点所有的候选攻击链均处于低值水平,则删除整个攻击链集合;
排序所有剩余攻击链,从中找出评分最高的前N个目标攻击节点及其攻击链,并将其输出为multi-step attack information。
本发明的有益效果是:1)对单步攻击的识别采用hybird架构,增强了单步攻击识别准确率,减少误报漏报;2)对复杂攻击识别采用评估机制,而非单纯的是或否来判断单步攻击行为,进而生成攻击序列,有效减少模块间信息失真造成最终结果失真;3)设计了一种识别复杂攻击并预测攻击者最终意图的算法,对于存在明显特征行为的复杂攻击意图具有较好的预测结果。
附图说明
图1是本发明提出的无线入侵检测***的总体结构图;
图2是本发明描述的数据采集框架图;
图3是本发明描述的单步攻击识别框架图;
图4是本发明描述的复杂攻击识别框架图;
图5是本发明描述的单步攻击告警精简流程图;
图6是本发明定义的攻击链模型;
图7是本发明描述的逻辑攻击图LAG生成流程图;
图8是本发明描述的虚拟拓扑图VTG生成流程图;
图9是本发明描述的虚拟拓扑图VTG示例图;
图10是本发明描述的多步攻击路径解析流程图;
图11是本发明描述的候选攻击链集合示例图;
图12是本发明描述的信息展示界面框架图;
图13是本发明设计的kismet的分布式采集架构图;
图14是本发明描述的Kismet drone关键配置项说明图;
图15是本发明描述的Kismet server关键配置项说明图;
图16是本发明描述的libpcap主要函数接口说明图;
图17是本发明实现的无线入侵检测***实验平台的网络拓扑架构图;
图18是本发明实现的无线入侵检测***实验平台的实验设备配置图;
图19是本发明实现的无线入侵检测***实验平台的实验环境说明图。
具体实施方式
下面结合实施例对本发明做进一步描述。下述实施例的说明只是用于帮助理解本发明。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
如图1至图19所示,本发明的无线网络中的复杂攻击识别方法,包括四个步骤:数据采集、单步攻击识别、复杂攻击识别和信息展示界面。
(1)数据采集:数据采集的来源和度量(metrics)的选择对于入侵检测***来说非常重要。选取合适的metrics可以有效的控制产生告警的质量,避免过高的假正率(falsepositive rate)。本专利采用基于kismet drone的分布式采集方法,为后续分析提供数据来源。
(2)单步攻击识别:在单步攻击识别阶段,误用检测***根据步骤一得到的数据、预设单步攻击签名signature以及一种基于Dempster-Shafer Theory的无需训练的检测方法来综合判定某种单步攻击是否发生,以及与它相关的数据帧。
(3)复杂攻击识别:在复杂攻击识别阶段,***对步骤二产生的一系列原始告警进行精简和处理,根据预设的攻击链数据库动态生成攻击图并依据评估得到前K个候选攻击链,其中每个攻击链的根节点为候选的最终攻击意图。
(4)信息展示界面:实时显示当前***评估出的前K个攻击链以及攻击意图的预测。
该方法的总体结构如图1所示,具体实现步骤如下:
步骤一、数据采集
数据采集如图2所示。***数据采集来源可以是线上线下两种,线上可采用kismet分布式采集或libpcap,接口一般为monitor mode的USB网卡,或者是kismet写入的tun/tap虚拟接口。采集到的数据包根据数据链路层类型又分为三种格式,正确解析可得到各个层各字段信息,其中radiotap和PPI将包含诸如接收信号强度指示器(Received SignalStrength Indicator,RSSI)等物理层特征。
步骤二、单步攻击识别
本专利的单步攻击识别方法主要由两个部分组成,一个是一种通用的无需训练的检测方法(General Detector),对于各个攻击行为,只需设定所需metric即可;另外针对特定攻击行为,使用误用检测技术,通过配置攻击签名库(Signature Database)来判断的方法(Specification Detector)。本模块将结合两种识别方法来判断单步攻击是否发生,以及攻击者影响到的帧。单步攻击识别如图3所示。
从逻辑分类的角度可以将帧(frame),攻击(attack)和网络节点(network node)进行分类。从数据帧的粒度来说,根据是否攻击者发出或影响可以将之分为正常帧(normalframe,NF)和非正常帧(malicious frame,MF)。从攻击对网络流量是否影响,可以将攻击分为显性攻击(explicit attack,EA)和隐性攻击(hidden attack,HA)。显然AF来自于EA。而网络节点则分为攻击者(attacker node,AN),受害者(victim node,VN),过渡者(springboard node,SN)。一个实际发生的攻击行为对应一条从攻击者到受害者的攻击路径(attack path)。攻击识别其实就是识别出数据帧、攻击行为和场景角色这三个对象。
(四)一种基于D-S理论识别方法
General Detector所使用的识别方法,是一种针对帧的基于Dempster-Shafer证据理论的识别方法。对于一个帧而言,有Θ={NF,MF},其中{NF|MF}=UF(uncertain frame)。对于每一个metric,维持一个滑动窗口(sliding window,SW),其长度为n,则有n个NF帧在其中组成profile dataset。若检测到一个帧为MF,则不会将其放入SW中,若检测为NF则更新SW。
该方法对的基本概率分配(BPA)如下:
BeliefMF:SW中metric重复最大次数F,均值mean,最大Euclidean距离Dmax,角度α计算方法见公式1。
而对于每一个进入的帧,角度β计算方法见公式2。
其中D是该帧的metric对应mean的Euclidean距离,值为
BeliefNF:将SW中的数据按metric大小顺序排列后,根据进入帧的metric值所在位置分配固定值。离中位数越近取值越高,最高为0.5。
BeliefUF:根据前面两种分配数值有以下四种情形:
(1)MF取低值,NF取低值;
(2)MF取低值,NF取高值;
(3)MF取高值,NF取低值;
(4)MF取高值,NF取高值。
在(2)(3)种情形下,MF和NF没有冲突则分配UF一个较小值。在(1)(4)种情形下则需要分配较高值。分配方法是先按公式3计算出BeliefUF,而后按公式4和公式5重新分配各个Belief值使其和为1。
m(x)=Beliefx-μ 公式(5)
之后合成各个metric的BPA,并设定阈值,用于判定进入帧是MF还是NF。
要使得该方法有效有三个需要满足的条件。第一,正常流量占总流量大部分;第二,NF、MF的metrics值有明显差异;第三,滑动窗口长度n的设置。n取值过小,则无法包含足够信息,取值过大,则增加误入MF风险,同时延长检测过程。
(五)攻击签名
单步攻击检测中的误用检测,使用攻击签名模型EDL来描述攻击行为,而Specification Detector据此签名数据库signature database来进行检测。若检测到单步攻击,则有8元组s_attack(name,src,dst,tran,ftime,etime,bssid,rframes)。其中name为攻击名,src为AN地址,dst为VN地址,tran为SN地址,ftime为检测出时间,etime为估计攻击最早发生时间,bssid为VN所在网络BSSID,rframes为相关MF帧集合。
(六)单步攻击决策
根据上述两种检测方法得到的结果,综合判断攻击是否发生。两种检测方法均建立内存数据库,存储所有检测的历史数据。General Detector存储每个帧的信任区间,Specification Detector存储每个检测到s_attack。单步攻击决策函数为s_decsion(t):int->[0,1],t为某时刻,结果为攻击发生可能性(attack possiblility,AP)。s_decsion将从内存数据库中分别根据帧的时间戳和ftime查找t附近的数据。
若某种攻击行为只进行了其中一种检测方法,则以其为准。若两者均处于检测中则对某时刻t有如下情形:
(1)General Detector检测到,Specification Detector检测到;
(2)General Detector检测到,Specification Detector未检测到;
(3)General Detector未检测到,Specification Detector检测到;
(4)General Detector未检测到,Specification Detector未检测到。
在(1)(4)情形下,两者结果一致则直接以此为结果,为1和0。
在(2)情形下,认为有攻击A发生,对应该MF,结果为公式6所示。
αBelMF(A)+βPlMF(A) 公式(6)
在(3)情形下,对应该攻击和帧的信任区间或拒绝证据区间较大,此时认为有攻击A发生,对应s_attack。此时,计算s_attack中r_frames的所有信任区间的均值如公式7、8所示。
若均值满足General Detector设定的阈值,则结果为1,否则结果按公式9计算。
αBelr_frames(A)+βPlr_frames(A) 公式(9)
上述有参数α+β=1,α,β∈[0,1],通常取值α=β=0.5。
单步攻击决策中,需要对帧的分类,单步攻击结果输出进行统一化。在(1)情形下,将General Detector对应的MF加入到rframes中,在(2)情形下,根据MF构造出s_attack(A,MF.mac_src,MF.mac_dst,MF.mac_reciever,MF.timestamp,MF.bssid,{MF}),其中的name为A,src为MF数据链路层的源地址,dst为MF的目的地址,tran为接收端地址,ftime和etime为timestamp,rframes为{MF},bssid为MF的BSSID。最终单步攻击识别模块输出对象single-step attack information(SAI)为二元组(AP,s_attack)。另外,上述描述针对某一攻击行为A进行识别,而某个MF则可能识别后与多个攻击行为相关。所以该模型需要假设如下。
假设条件1:实际情形下,很可能某一个数据帧对应几种不同的攻击行为,则这些攻击行为互不干扰,且有一定的关联关系。
步骤三、复杂攻击识别
步骤二产生一系列的单步攻击信息SAI存入到攻击数据库(Attack Database)中,供复杂攻击识别模块进行分析。复杂攻击识别对应IDS的告警关联阶段,而攻击图可用于告警关联。复杂攻击识别就使用了逻辑攻击图(logic attack graph,LAG),和虚拟拓扑图(virtual topology graph,VTG)搭配去挖掘攻击路径(Attack Path)。复杂攻击识别包含告警精简,VTG生成器,LAG生成器,签名数据库,攻击路径解析器,复杂攻击评估等子模块,其架构如图4所示。
上一步得到的单步攻击的告警,在这一模块中,将有两个主要步骤。首先需要预处理,去除无关告警和重复告警,精简告警数量。第二步需要通过整理得到的超告警hyperalert去识别攻击者易采取的攻击序列,并预测攻击者后续动作和最终意图。
识别攻击序列时,从逻辑上将告警(Alert)分为三类。一类是已检测到的告警(Alert Detected,ADE),这类告警明确属于某种单步攻击;一类是未检测到的告警(AlertUndetected,AUD),即可能丢失的告警;一类是未来将发生的告警(Alert Predicted,APR),即预测结果。另外考虑到攻击者可能会在攻击过程中进行一些无意义攻击来混淆其真实目的,第一类告警还将分为属于真实意图的告警(Alert Real,AR)以及扰乱告警(AlertDisturbed,AD)。
(七)告警精简
步骤二中产生的单步攻击告警,由于其General Detector细化到帧的程度,将可能产生大量的告警,所以有必要对这些告警进行精简处理,以减少告警数量,消除无关告警和重复告警。告警精简流程如图5所示。无关告警和重复告警描述如下:
(1)无关告警:有一些告警指示的是与无线攻击行为无关的其他攻击,或者该告警明显错误。
(2)重复告警:同一攻击行为产生的告警,且没有在单步攻击识别模块中合并,通常是具有相同攻击路径由同一攻击者发出的同一类型攻击行为,或者时间上存在连续性、周期性的表现。
处理单步攻击识别模块产生的数据库SAIs时,比较算子cmp(SAI1,SAI2)比较两者是否可以合并,若可以则放入同一个集合Merging SAIs中。于是将SAIs分类成一组MergingSAIs,对每一个SAIs进行合并。
合并规则如下:依据SAI.AP,SAI.ftime,averge[SAI.rframes.timestamps]进行K-means聚类,将Merging SAIs细分后进行合并。对于集合SAI sai_same合并后生成新的SAI_new(AP,A,src,dst,tran,ftime,etime,bssid,rframes)。其中A,src,dst,tran,bssid不变。有ftimeSAI_new=min(ftimess),etimeSAI_new=min(etimess),rframesSAI_new=∪rframesss。
特别的是AP的选择,如果以元组形式保存所有合并项的AP值,则会造成合并后的告警在这一字段拥有不同的维度。为了统一方便后续处理,有APSAI_new==median(APss),即选取AP的中位数。
告警精简过后得到超告警hyper alert,这些告警之间存在关联关系,即可能的攻击链。复杂攻击识别模块接下来的部分即是本发明针对复杂攻击进行识别的关键组件,包含VTG生成器,LAG生成器,攻击路径解析,复杂攻击评估等子模块。
(八)攻击链签名
攻击链签名描绘了常见复杂攻击场景,攻击链基于因果关系建立攻击之间的链接。一个攻击发生需要前置条件,发生后产生一些后果。从前一步攻击到达后一步攻击需要满足conditions。最后的一项攻击节点为最终攻击者所实施的攻击,通常蕴含着攻击者的攻击真实意图。复杂攻击识别模块的签名数据库包含了一系列经典攻击链,供生成LAG所需。其模型如图6所示。
(九)LAG生成
上述动态生成的攻击图包含了所有已检测到单步攻击和它们所可能存在的攻击链。从签名库中选择相关攻击链而后合并生成攻击树、攻击图是因为签名库规模增大后,整个签名库生成的完整攻击图将会变得比较复杂,不利于后续挖掘。简单攻击场景会生成简单的攻击图,复杂攻击场景会生成复杂的攻击图,这样比较匹配。LAG生成流程如图7所示。
(十)VTG生成
上述动态生成的虚拟拓扑图包含了所有已检测到单步攻击涉及的节点,以及节点之间的连接。虚拟拓扑图定义VTG=(VNs,VNt,VNm,AE),其中VNs为攻击者所在虚拟节点集合,VNt为受害者所在虚拟节点集合,VNm为过渡者所在虚拟节点集合,AE为虚拟节点之间的攻击流量集合。虚拟节点VN可能拥有攻击者、受害者、过渡者三个角色。虚拟节点VN并不代表真实的物理设备,一个VN可能包含不同的地址,一个物理设备也可能分出几个VN,而一个VN对应不同攻击所扮演的角色也可以是不同的。VTG生成流程如图8所示。
为了合理简化***复杂性,VN的生成和合并需要有以下假设条件:
假设条件2:攻击设备不会映射为受害者VN。
假设条件3:一个VN对应一个攻击所关联的角色是唯一的。
假设条件4:若一个VN拥有多个地址,表明使用了地址欺骗,认为其是攻击者。
VN的地址为addr_vn(mac_addr,ip_addr,ssid,vendor),如果两个地址的mac_addr、ip_addr至少有一个相同和一个不相同,则认为其属于同一个VN;如果mac_addr、ip_addr相同但却拥有不同的ssid或vendor,也认为其属于同一个VN。
判断VN所属角色的方法:
(1)VN之间的地址产生冲突;
(2)VN地址包含SAI的src属于VNs,包含dst属于VNt,包含trans属于VNm。
步骤三将计算VN之间对应单步攻击的关联度。对于某个攻击A,VN1到VN2的关联度为公式10所示。
其中k为VN1到VN2的单步攻击告警集合的告警数目。
VTG示例如图9所示。该示例存在2个VNs,其中一个是由两个VNs合并而来,还有3个VNm以及2个VNt。这个VTG中一共包含了4种单步攻击,分别是:attack1:VNs1->VNm1->VNm2->VNt2;attack2:VNs1->VNm2->VNt2;attack3:VNs1->VNm1->VNt1+VNs21->VNm3->VNt2;attack4:VNs2[VNs21+VNs22]->VNm3->VNt2。
(十一)攻击路径解析
结合VTG和LAG可以进行攻击路径解析,其流程图如图10所示。
流程中DFS问题可转换为有向图LAG经过一些必经节点的路径。这是一个NP问题。当数据规模增大后,可换用遗传算法寻找解。每一条路径代表一个攻击链。攻击链需要满足LAG中各个边设置的发生条件。在DFS过程中,每经过一个攻击节点A,代表在VTG中走过一条攻击路径。从VTG的攻击者节点出发,选择属于A的攻击边,若形成一条攻击路径,到达受害者节点B。则将其对应的SAI信息放入LAG攻击节点中,并判断从该攻击节点到下一个攻击节点是否满足条件,若满足则递归下去并使LAG边的impact生效。在这个过程中,VTG中所寻找到的SAI的ftime必须是在上一个攻击节点ftime之后。
在VTG上找寻到一条的攻击路径时,将计算其关联度如公式11所示。
并将其对应到候选攻击链的相应节点上。
(十二)复杂攻击评估
上一步中针对每一个目标攻击节点,都将生成一组候选攻击链。假定攻击者的实际发生攻击链和攻击意图将是这些攻击链中的某一个,如图11所示。
候选攻击链评分由两部分组成。一个代表每个节点自身的告警有效性,一个代表告警之间的相关度。前者个数同所有候选攻击链中节点个数,若所有单步攻击个数为K,则后者为K*K矩阵。
对每个目标攻击节点,分别按公式12计算出其每个候选攻击链的评分要素assc1。
其中averge_assd表示候选攻击全局中为该攻击类型的节点assd的平均值。
对攻击A1到攻击A2的相关度,计算方法如下:
找到VTG中所有攻击类型为A1和A2的边集合E1和E2,边个数分别为n和m。公式13为两个边之间的关联度,公式14则是攻击链中两相邻单步攻击的关联度。
则整条攻击链的assc2值计算方式为公式15,其中k为攻击链长度。
候选攻击链的总评分为公式16所示。其中assc1是一个正数,assc2是一个[0,1]范围取值的数。
assc(Attack_chain)=αln(assc1(Attack_chain))+βassc2(Attack_chain)公式(16)
本发明中参数α,β均为1。
得到每个攻击链评分后,针对每个目标攻击节点按评分进行排序。
然后丢弃下列攻击链和目标攻击节点:
(1)没有攻击链的目标攻击节点;
(2)攻击链评分低于阈值0.5的;
(3)若目标攻击节点所有的候选攻击链均处于低值水平,则删除整个攻击链集合。
排序所有剩余攻击链,从中找出评分最高的前K个目标攻击节点及其攻击链,并将其输出为multi-step attack information(MAI)。
步骤四、信息展示界面
信息展示界面包含VTG可视化图,排序攻击链以及攻击目标预测。无线入侵检测***实时显示当前VTG,通过VTG可以让用户观察出当前网络是否有攻击行为发生,以及通过对虚拟节点间流量的统计来突出攻击者和受害者等重要节点的位置。排序攻击链则实时显示当前估计的所有可能的攻击链,其中排在前面的1个或几个攻击链对应的攻击意图则为当前预测攻击者意图。信息展示界面如图12所示。
本发明的一个具体的实例为:
步骤一、数据采集
数据采集使用开源库libpcap和开源工具kismet的分布式采集来获取所在无线环境数据包,同时也可线下分析存储的pcap历史文件。Pcap格式数据,根据数据链路层类型本发明可识别三种格式,分别是80211、带有radiotap的80211以及PPI(Per-PacketInformation)。其中,kismet的分布式采集架构如图13所示。若干个装有kismet drone的传感器将数据汇总到一台kismet server中,而后可以落地成pcap文件供后续分析,或透过tun/tap虚拟接口被第三方程序如libpcap、wireshark捕获。Kismet drone及kismetserver关键配置项分别如图14和图15所示。libpcap则提供API捕获数据包并供程序后续使用,其主要函数如图16所示。其中,使用int pcap_loop(pcap_t*p,int cnt,pcap_handlercallback,u_char*user)循环获取数据包,并在每一个报文到达时传递给回调函数voidcallback(u_char*userarg,const struct pcap_pkthdr*pkthdr,const u_char*packet)。该回调函数属于静态函数,不可为类成员函数,而处理报文的过程将作用到自定义的对象userarg里。数据包头是pcap_pkthdr格式数据结构,它包含三个字段,分别是timestamp,caplen和len,其中timestamp是抓包时间,caplen是抓包数据长度,len是数据包实际长度。当caplen小于len时表示不是完整抓包。数据包则根据linktype进行分层解析。
步骤二、单步攻击识别
单步攻击识别对每一种攻击行为,采取两种识别方法相结合的方式来判断,本发明中这两种方法分别设计为General Detector和Specification Detector。GeneralDetector以报文为检测粒度,根据设置好的对该攻击相关的度量进行检测。依据D-S决策理论,程序对该攻击的每一个度量计算当前帧的BPA,然后合成所有度量BPA得到该帧是否涉及该种攻击的信任区间。Specification Detector则使用攻击签名语言EDL来描述特定攻击行为,所有攻击签名构成签名数据库signature database,Specification Detector就将依据该签名数据库实施对一定时间窗口内的所有帧进行处理判断是否符合该签名特征。而后Decision Maker模块将综合两者结果对某一攻击行为的发生进行估值,存储为含有8个成员变量的对象s_attack(name,src,dst,tan,ftime,etime,bssid,rframes),而后和所在AP一同组成二元组Single-step Attack Information(SAI)输出至数据库中,供步骤三使用。
步骤三、复杂攻击识别
对步骤二得到的SAI进行告警精简后,将构造虚拟拓扑图VTG以及逻辑攻击图LAG。VTG对象的生成依据所有的SAI,为单例类。LAG则对应一个时间窗口,在这个时间窗口内根据处于时间窗口内的SAI和攻击链数据库,搜索所有检测到的单步攻击类型,而后从攻击链数据库中筛选出所有存有这些单步攻击的攻击链,进而根据这些攻击链生成包含相关目标攻击节点的列表,再对列表中每一个元素生成其攻击树,而后合并攻击树成为攻击图。而后程序将实时结合VTG和LAG进行攻击路径解析,生成候选攻击链。最后对候选攻击链进行评估,将其输出为Multi-step Attack Information(MAI)并存入数据库。
步骤四、信息展示界面
步骤三输出的MAI信息将实时显示在信息展示界面。本发明采用WEB端进行显示,包含VTG的可视化图,前K个攻击链以及攻击目标预测等信息。
本发明在实现提出的复杂攻击识别技术时建立了无线入侵检测***MSWIDS(Multi-Step Wireless Intrusion Detection System),并对其进行了实验验证,实验平台的网络拓扑架构如图17所示。该实验使用了1台台式机win7,2台笔记本win8以及其上的3台kali linux虚拟机,另外攻击者和MSWIDS采集器所需的USB网卡3张,实验室无线网络环境AP。实验设备和环境情况如图18和图19所示。
Claims (3)
1.一种面向无线入侵检测***的复杂攻击识别方法,其特征在于:包括如下步骤:
步骤一、数据采集
***数据采集来源为线上线下两种,线上采用kismet分布式采集或libpcap,接口为monitor mode的USB网卡,或者是kismet写入的tun/tap虚拟接口;采集到的数据包根据数据链路层类型又分为三种格式,正确解析可得到各个层各字段信息,其中radiotap和PPI包含接收信号强度指示器物理层特征;
步骤二、单步攻击识别
由两个部分组成,一个是一种通用的无需训练的检测方法,对于各个攻击行为,只需设定所需度量metric即可;另外针对特定攻击行为,使用误用检测技术,通过配置攻击签名库来判断的方法;本单步攻击识别模块将结合两种识别方法来判断单步攻击是否发生,以及攻击者影响到的帧;
步骤三、复杂攻击识别
步骤二产生一系列的单步攻击信息SAI存入到攻击数据库中,供复杂攻击识别模块进行分析;复杂攻击识别对应入侵检测***IDS的告警关联阶段,而攻击图用于告警关联;复杂攻击识别就使用了逻辑攻击图和虚拟拓扑图搭配去挖掘攻击路径;复杂攻击识别模块包含告警精简、虚拟拓扑图VTG生成器、逻辑攻击图LAG生成器、签名数据库、攻击路径解析器、复杂攻击评估子模块;
步骤二得到的单步攻击的告警,在复杂攻击识别模块中,将有两个主要步骤;首先需要预处理,去除无关告警和重复告警,精简告警数量;第二步需要通过整理得到的超告警去识别攻击者易采取的攻击序列,并预测攻击者后续动作和最终意图;
识别攻击序列时,从逻辑上将告警分为三类;一类是已检测到的告警,这类告警明确属于某种单步攻击;一类是未检测到的告警,即可能丢失的告警;一类是未来将发生的告警,即预测结果;第一类告警还分为属于真实意图的告警以及扰乱告警;
步骤四、信息展示界面
信息展示界面包含VTG可视化图、排序攻击链以及攻击目标预测;无线入侵检测***实时显示当前VTG,通过VTG让用户观察出当前网络是否有攻击行为发生,以及通过对虚拟节点间流量的统计来突出攻击者和受害者重要节点的位置;排序攻击链则实时显示当前估计的所有可能的攻击链,其中排在前面的1个或几个攻击链对应的攻击意图则为当前预测攻击者意图。
2.根据权利要求1所述的面向无线入侵检测***的复杂攻击识别方法,其特征在于,所述步骤二具体包括:
(一)识别方法
对于一个帧而言,有Θ={NF,MF},其中{NF|MF}=UF不确定帧(uncertain frame);对于每一个度量metric,维持一个滑动窗口(sliding window,SW),其长度为n,则有n个正常帧NF在其中组成配置数据集profiledataset;若检测到一个帧为非正常帧MF,则不会将其放入SW中,若检测为NF则更新SW;
该方法对的基本概率分配(BPA)如下:
非正常帧信任函数BeliefMF:SW中度量metric重复最大次数F,均值mean,最大Euclidean距离Dmax,角度α计算方法见公式1;
而对于每一个进入的帧,角度β计算方法见公式2;
其中D是该帧的度量metric对应mean的Euclidean距离,BPA值为
正常帧信任函数BeliefNF:将SW中的数据按度量metric大小顺序排列后,根据进入帧的度量metric值所在位置分配固定值;离中位数越近取值越高,最高为0.5;
不确定帧信任函数BeliefUF:根据前面两种分配数值有以下四种情形:
(1)MF取低值,NF取低值;
(2)MF取低值,NF取高值;
(3)MF取高值,NF取低值;
(4)MF取高值,NF取高值;
在(2)(3)种情形下,MF和NF没有冲突则分配UF一个较小值;在(1)(4)种情形下则需要分配较高值;分配方法是先按公式3计算出不确定帧信任函数BeliefUF,而后按公式4和公式5重新分配各个信任函数Belief值使其和为1;
m(x)=Beliefx-μ 公式(5)
m(x)为mass函数;Beliefx为x帧的信任函数;
之后合成各个度量metric的BPA,并设定阈值,用于判定进入帧是MF还是NF;
要使得该方法有效有三个需要满足的条件;第一,正常流量占总流量大部分;第二,NF、MF的度量metrics值有明显差异;第三,滑动窗口长度n的设置;n取值过小,则无法包含足够信息,取值过大,则增加误入MF风险,同时延长检测过程;
(二)攻击签名
单步攻击检测中的误用检测,使用攻击签名模型EDL来描述攻击行为,而规则检测器Specification Detector据此签名数据库signature database来进行检测;若检测到单步攻击,则有8元组s_attack(name,src,dst,tran,ftime,etime,bssid,rframes);其中name为攻击名,src为攻击者AN地址,dst为受害者VN地址,tran为过渡者SN地址,ftime为检测出时间,etime为估计攻击最早发生时间,bssid为VN所在网络BSSID,BSSID是一个BSS的标识,BSSID是指AP的MAC地址,rframes为相关MF帧集合;
(三)单步攻击决策
根据上述两种检测方法得到的结果,综合判断攻击是否发生;两种检测方法均建立内存数据库,存储所有检测的历史数据;通用的无需配置攻击签名数据库的检测方法GeneralDetector存储每个帧的信任区间,需要配置攻击签名数据库的检测方法SpecificationDetector存储每个检测到s_attack;单步攻击决策函数为s_decsion(t):int->[0,1],t为某时刻,结果为攻击发生可能性;s_decsion(t)将从内存数据库中分别根据帧的时间戳和ftime查找t附近的数据;
若某种攻击行为只进行了其中一种检测方法,则以其为准;若两者均处于检测中则对某时刻t有如下情形:
(1)General Detector检测到,Specification Detector检测到;
(2)General Detector检测到,Specification Detector未检测到;
(3)General Detector未检测到,Specification Detector检测到;
(4)General Detector未检测到,Specification Detector未检测到;
在(1)(4)情形下,两者结果一致则直接以此为结果,为1和0;
在(2)情形下,认为有攻击A发生,对应该MF,结果为公式6所示,BelMF(A)指非正常帧信任度函数,PlMF(A)指非正常帧似然函数;
αBelMF(A)+βPlMF(A) 公式(6)
在(3)情形下,对应该攻击和帧的信任区间或拒绝证据区间较大,此时认为有攻击A发生,对应s_attack;此时,计算s_attack中相关MF帧r_frames的所有信任区间的均值如公式7、8所示;num_of_r_frames为相关MF帧的数量;Belr_frames(A)指相关MF帧信任度函数,Belf(A)指r_frames中f帧的信任度函数,Plr_frames(A)指相关MF帧似然函数,Plf(A)指r_frames中f帧的似然函数;
若均值满足General Detector设定的阈值,则结果为1,否则结果按公式9计算;
αBelr_frames(A)+βPlr_frames(A) 公式(9)
上述有参数α+β=1,α,β∈[0,1];
单步攻击决策中,需要对帧的分类,单步攻击结果输出进行统一化;在(1)情形下,将GeneralDetector对应的MF加入到rframes中,在(2)情形下,根据MF构造出s_attack(A,MF.mac_src,MF.mac_dst,MF.mac_reciever,MF.timestamp,MF.bssid,{MF}),其中的name为A,src为MF数据链路层的源地址,dst为MF的目的地址,tran为接收端地址,ftime和etime为timestamp,rframes为{MF},bssid为MF的BSSID;最终单步攻击识别模块输出对象single-step attack information(SAI)为二元组(AP,s_attack);另外,上述描述针对某一攻击行为A进行识别,而某个MF则可能识别后与多个攻击行为相关;所以该模型需要假设如下;
假设条件1:实际情形下,当某一个数据帧对应几种不同的攻击行为,则这些攻击行为互不干扰,且有一定的关联关系。
3.根据权利要求2所述的面向无线入侵检测***的复杂攻击识别方法,其特征在于:所述步骤三具体包括:
(一)告警精简
步骤二中产生的单步攻击告警,由于其GeneralDetector细化到帧的程度,将可能产生大量的告警,所以有必要对这些告警进行精简处理,以减少告警数量,消除无关告警和重复告警;无关告警和重复告警描述如下:
(1)无关告警:有一些告警指示的是与无线攻击行为无关的其他攻击,或者该告警明显错误;
(2)重复告警:同一攻击行为产生的告警,且没有在单步攻击识别模块中合并,通常是具有相同攻击路径由同一攻击者发出的同一类型攻击行为,或者时间上存在连续性、周期性的表现;
处理单步攻击识别模块产生的数据库SAIs时,比较算子cmp(SAI1,SAI2),SAI1和SAI2指数据库SAIs中的任意两个SAI,比较两者是否可以合并,若可以则放入同一个集合合并SAI集合Merging SAIs中;于是将SAIs分类成一组Merging SAIs,对每一个SAIs进行合并;
合并规则如下:依据SAI.AP,SAI.ftime,averge[SAI.rframes.timestamps]进行K-means聚类,SAI.AP指单步攻击信息中的被攻击AP,SAI.ftime指单步攻击信息中的检测出攻击时间,averge[SAI.rframes.timestamps指单步攻击信息中相关MF帧获取时间的平均值,将Merging SAIs细分后进行合并;对于sai_same合并后生成新的SAI_new(AP,A,src,dst,tran,ftime,etime,bssid,rframes);sai_same指合并后属于相同SAI的单步攻击信息,其中A,src,dst,tran,bssid不变;有ftimeSAI_new=min(ftimess),etimeSAI_new=min(etimess),rframesSAI_new=∪rframesss;
特别的是AP的选择,为了统一方便后续处理,有APSAI_new==median(APss),即选取AP的中位数;
告警精简过后得到超告警hyper alert,这些告警之间存在关联关系,即可能的攻击链;复杂攻击识别模块接下来的部分包含虚拟拓扑图VTG生成器、逻辑攻击图LAG生成器、攻击路径解析、复杂攻击评估子模块;
(二)攻击链签名
攻击链签名描绘了常见复杂攻击场景,攻击链基于因果关系建立攻击之间的链接;一个攻击发生需要前置条件,发生后产生一些后果;从前一步攻击到达后一步攻击需要满足前置条件;最后的一项攻击节点为最终攻击者所实施的攻击,通常蕴含着攻击者的攻击真实意图;复杂攻击识别模块的签名数据库包含了一系列经典攻击链,供生成LAG所需;
(三)LAG生成
上述动态生成的攻击图包含了所有已检测到单步攻击和它们所可能存在的攻击链;简单攻击场景会生成简单的攻击图,复杂攻击场景会生成复杂的攻击图;
(四)VTG生成
上述动态生成的虚拟拓扑图包含了所有已检测到单步攻击涉及的节点,以及节点之间的连接;虚拟拓扑图定义VTG=(VNs,VNt,VNm,AE),其中VNs为攻击者所在虚拟节点集合,VNt为受害者所在虚拟节点集合,VNm为过渡者所在虚拟节点集合,AE为虚拟节点之间的攻击流量集合;虚拟节点VN拥有攻击者、受害者、过渡者三个角色;虚拟节点VN并不代表真实的物理设备,一个VN可包含不同的地址,一个物理设备也可分出几个VN,而一个VN对应不同攻击所扮演的角色也可以不同;
VN的生成和合并需要有以下假设条件:
假设条件2:攻击设备不会映射为受害者VN;
假设条件3:一个VN对应一个攻击所关联的角色是唯一的;
假设条件4:若一个VN拥有多个地址,表明使用了地址欺骗,认为其是攻击者;
VN的地址为addr_vn(mac_addr,ip_addr,ssid,vendor),mac_addr指VN的物理地址,ip_addr指VN的IP地址,ssid指VN的服务集标识符SSID,vendor指VN的生产商,如果两个地址的mac_addr、ip_addr至少有一个相同和一个不相同,则认为其属于同一个VN;如果mac_addr、ip_addr相同但却拥有不同的ssid或vendor,也认为其属于同一个VN;
判断VN所属角色的方法:
(1)VN之间的地址产生冲突;
(2)VN地址包含SAI的src属于VNs,包含dst属于VNt,包含tran属于VNm;
步骤三将计算VN之间对应单步攻击的关联度;对于某个攻击A,VN1到VN2的关联度为公式10所示;
其中k为VN1到VN2的单步攻击告警集合的告警数目;
(五)攻击路径解析
结合VTG和LAG可以进行攻击路径解析;
当数据规模增大后,换用遗传算法寻找解;每一条路径代表一个攻击链;攻击链需要满足LAG中各个边设置的发生条件;在DFS过程中,每经过一个攻击节点A,代表在VTG中走过一条攻击路径;从VTG的攻击者节点出发,选择属于A的攻击边,若形成一条攻击路径,到达受害者节点B;则将其对应的SAI信息放入LAG攻击节点中,并判断从该攻击节点到下一个攻击节点是否满足条件,若满足则递归下去并使LAG边生效;在这个过程中,VTG中所寻找到的SAI的ftime必须是在上一个攻击节点ftime之后;
在VTG上找寻到一条的攻击路径时,将计算其关联度如公式11所示;
k为攻击链长度,VNk为第k个VN,assd(VNk)为第k个VN的关联度;
并将其对应到候选攻击链的相应节点上;
(六)复杂攻击评估
上一步中针对每一个目标攻击节点,都将生成一组候选攻击链;假定攻击者的实际发生攻击链和攻击意图将是这些攻击链中的某一个;
候选攻击链评分由两部分组成;一个代表每个节点自身的告警有效性,一个代表告警之间的相关度;前者个数同所有候选攻击链中节点个数,若所有单步攻击个数为K,则后者为K*K矩阵;
对每个目标攻击节点,分别按公式12计算出其每个候选攻击链Attack_chain的评分要素assc1;Attack_chain为攻击链,Attack_chain(i)为该攻击链中的第i步攻击,assd(Attack_chain(i))为Attack_chain(i)的关联度;
其中averge_assd表示候选攻击全局中为该攻击类型的节点assd的平均值;
对攻击A1到攻击A2的相关度,计算方法如下:
找到VTG中所有攻击类型为A1和A2的边集合E1和E2,边个数分别为n和m;公式13为两个边之间的关联度,公式14则是攻击链中两相邻单步攻击的关联度;e1指E1边集合中的一个边,e2指E2边集合中的一个边;e1.ftime指e1的检测出时间,e2.ftime指e2的检测出时间;E1(i)指E1边集合中的第i个边,E2(j)指E2边集合中的第j个边;
则整条攻击链的assc2值计算方式为公式15,其中k为攻击链长度;
候选攻击链的总评分为公式16所示;其中assc1是一个正数,assc2是一个[0,1]范围取值的数;
assc(Attack_chain)=ln(assc1(Attack_chain))+assc2(Attack_chain) 公式(16)
得到每个攻击链评分后,针对每个目标攻击节点按评分进行排序;
然后丢弃下列攻击链和目标攻击节点:
(1)没有攻击链的目标攻击节点;
(2)攻击链评分低于阈值0.5的;
(3)若目标攻击节点所有的候选攻击链均处于低值水平,则删除整个攻击链集合;
排序所有剩余攻击链,从中找出评分最高的前N个目标攻击节点及其攻击链,并将其输出为多步攻击信息multi-step attack information。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710092708.8A CN106899435B (zh) | 2017-02-21 | 2017-02-21 | 一种面向无线入侵检测***的复杂攻击识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710092708.8A CN106899435B (zh) | 2017-02-21 | 2017-02-21 | 一种面向无线入侵检测***的复杂攻击识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106899435A CN106899435A (zh) | 2017-06-27 |
CN106899435B true CN106899435B (zh) | 2019-10-29 |
Family
ID=59184168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710092708.8A Active CN106899435B (zh) | 2017-02-21 | 2017-02-21 | 一种面向无线入侵检测***的复杂攻击识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106899435B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109286511B (zh) * | 2017-07-19 | 2021-10-08 | 东软集团股份有限公司 | 数据处理的方法及装置 |
CN109347807B (zh) * | 2018-09-20 | 2021-03-19 | 北京计算机技术及应用研究所 | 一种基于信任度的差异化入侵防御方法 |
WO2020110234A1 (ja) * | 2018-11-28 | 2020-06-04 | 三菱電機株式会社 | 攻撃打消装置、攻撃打消方法および攻撃打消プログラム |
CN109548030B (zh) * | 2019-01-17 | 2021-05-18 | 西安电子科技大学 | 基于行为认知的无线自组织网络恶意节点检测方法 |
CN109547504B (zh) * | 2019-01-25 | 2021-05-25 | 黑龙江大学 | 一种移动传感器网络入侵检测与自适应响应方法 |
CN110213077B (zh) * | 2019-04-18 | 2022-02-22 | 国家电网有限公司 | 一种确定电力监控***安全事件的方法、装置及*** |
CN111294618B (zh) * | 2020-03-12 | 2022-04-01 | 周光普 | 一种广播电视数据安全的监测***及方法 |
CN111711604B (zh) * | 2020-05-15 | 2022-02-18 | 中国人民解放军国防科技大学 | 基于距离度量的无线网络干扰攻击场景识别方法 |
CN111858482B (zh) * | 2020-07-15 | 2021-10-15 | 北京市燃气集团有限责任公司 | 一种攻击事件追踪溯源方法、***、终端及存储介质 |
JP7366860B2 (ja) * | 2020-08-17 | 2023-10-23 | 株式会社日立製作所 | 攻撃シナリオシミュレーション装置、攻撃シナリオ生成システム、および攻撃シナリオ生成方法 |
CN113179256B (zh) * | 2021-04-12 | 2022-02-08 | 中国电子科技集团公司第三十研究所 | 一种时间同步***时间信息安全融合方法及*** |
CN114553580B (zh) * | 2022-02-28 | 2024-04-09 | 国网新疆电力有限公司博尔塔拉供电公司 | 基于规则泛化和攻击重构网络攻击检测方法及装置 |
CN114465822B (zh) * | 2022-04-08 | 2022-07-22 | 北京网藤科技有限公司 | 针对plc的攻击向量的自动生成方法及*** |
CN114726654B (zh) * | 2022-05-25 | 2022-12-06 | 北京徽享科技有限公司 | 应对云计算网络攻击的数据分析方法及服务器 |
CN115396169B (zh) * | 2022-08-18 | 2024-06-25 | 上海交通大学 | 基于ttp的多步骤攻击检测与场景还原的方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242278A (zh) * | 2008-02-18 | 2008-08-13 | 华中科技大学 | 网络多步攻击意图在线识别方法 |
CN103748991B (zh) * | 2010-06-09 | 2012-02-08 | 北京理工大学 | 基于多级事件关联的网络攻击识别*** |
CN103944919A (zh) * | 2014-05-06 | 2014-07-23 | 浙江大学城市学院 | 一种面向wlan的无线多步攻击模式挖掘方法 |
CN104009870A (zh) * | 2014-05-30 | 2014-08-27 | 浙江大学城市学院 | Wlan无线入侵告警聚合方法 |
CN105554762A (zh) * | 2015-12-10 | 2016-05-04 | 广东工业大学 | 基于rss的无线欺骗攻击定位方法 |
-
2017
- 2017-02-21 CN CN201710092708.8A patent/CN106899435B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242278A (zh) * | 2008-02-18 | 2008-08-13 | 华中科技大学 | 网络多步攻击意图在线识别方法 |
CN103748991B (zh) * | 2010-06-09 | 2012-02-08 | 北京理工大学 | 基于多级事件关联的网络攻击识别*** |
CN103944919A (zh) * | 2014-05-06 | 2014-07-23 | 浙江大学城市学院 | 一种面向wlan的无线多步攻击模式挖掘方法 |
CN104009870A (zh) * | 2014-05-30 | 2014-08-27 | 浙江大学城市学院 | Wlan无线入侵告警聚合方法 |
CN105554762A (zh) * | 2015-12-10 | 2016-05-04 | 广东工业大学 | 基于rss的无线欺骗攻击定位方法 |
Non-Patent Citations (2)
Title |
---|
A Wireless Intrusion Detection System for 802.11 networks;Zeeshan Afzal 等;《2016 International Conference on Wireless Communications, Signal Processing and Networking (WiSPNET)》;20160915;828-834 * |
面向WLAN的分布式无线多步攻击模式挖掘方法研究;陈观林 等;《电信科学》;20131130(第11期);38-44 * |
Also Published As
Publication number | Publication date |
---|---|
CN106899435A (zh) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106899435B (zh) | 一种面向无线入侵检测***的复杂攻击识别方法 | |
Roschke et al. | A new alert correlation algorithm based on attack graph | |
Zhang et al. | Random-forests-based network intrusion detection systems | |
Yu et al. | Traffic flooding attack detection with SNMP MIB using SVM | |
Brauckhoff et al. | Anomaly extraction in backbone networks using association rules | |
US20210243226A1 (en) | Lifelong learning based intelligent, diverse, agile, and robust system for network attack detection | |
Paudel et al. | Detecting dos attack in smart home iot devices using a graph-based approach | |
CN108632269A (zh) | 基于c4.5决策树算法的分布式拒绝服务攻击检测方法 | |
CN106686264A (zh) | 一种诈骗电话筛选分析方法及*** | |
CN103944887B (zh) | 基于隐条件随机场的入侵事件检测方法 | |
US11115823B1 (en) | Internet-of-things device classifier | |
CN113904881B (zh) | 一种入侵检测规则误报处理方法和装置 | |
Li et al. | Theoretical basis for intrusion detection | |
Stiawan et al. | Ping flood attack pattern recognition using a K-means algorithm in an Internet of Things (IoT) network | |
Sharma et al. | WLI-FCM and artificial neural network based cloud intrusion detection system | |
CN113904795A (zh) | 一种基于网络安全探针的流量快速精确检测方法 | |
Huang et al. | Socialwatch: detection of online service abuse via large-scale social graphs | |
Choi et al. | Wireless intrusion prevention system using dynamic random forest against wireless MAC spoofing attack | |
Ramalingam et al. | An effective social internet of things (SIoT) model for malicious node detection in wireless sensor networks | |
Kosamkar et al. | Data Mining Algorithms for Intrusion Detection System: An Overview | |
CN116527307A (zh) | 一种基于社区发现的僵尸网络检测算法 | |
Moulad et al. | Implementation of a hierarchical hybrid intrusion detection mechanism in wireless sensors network | |
Protic et al. | WK-FNN design for detection of anomalies in the computer network traffic | |
Hoque et al. | An alert analysis approach to DDoS attack detection | |
CN104702609B (zh) | 基于朋友机制的移动Ad Hoc网络路由入侵检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |