CN116938587A - 基于溯源图行为语义提取的威胁检测方法及*** - Google Patents
基于溯源图行为语义提取的威胁检测方法及*** Download PDFInfo
- Publication number
- CN116938587A CN116938587A CN202311078954.XA CN202311078954A CN116938587A CN 116938587 A CN116938587 A CN 116938587A CN 202311078954 A CN202311078954 A CN 202311078954A CN 116938587 A CN116938587 A CN 116938587A
- Authority
- CN
- China
- Prior art keywords
- event
- interest
- sub
- attack
- subgraph
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 60
- 238000010586 diagram Methods 0.000 title claims abstract description 24
- 238000000605 extraction Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000012549 training Methods 0.000 claims abstract description 21
- 238000012550 audit Methods 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 claims description 26
- 238000005070 sampling Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 125000000205 L-threonino group Chemical group [H]OC(=O)[C@@]([H])(N([H])[*])[C@](C([H])([H])[H])([H])O[H] 0.000 claims description 2
- 238000010276 construction Methods 0.000 claims description 2
- 239000007787 solid Substances 0.000 claims description 2
- 230000011218 segmentation Effects 0.000 abstract 1
- 230000006399 behavior Effects 0.000 description 43
- 230000004044 response Effects 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 2
- 238000004880 explosion Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000016571 aggressive behavior Effects 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
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
-
- 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/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于溯源图行为语义提取的威胁检测方法及***,其方法包括:S1:从主机收集***审计日志,提取其中事件并构建溯源图G;S2:在G中找到所有定义的兴趣事件,依据标签和设定跳数从G中划分出一组兴趣子图Gi;S3:为Gi的事件边和实体节点分配对应的文本描述,得到具有文本描述的兴趣子图,将实体节点和事件边的文本描述信息进行排序并连接,为每个Gi生成文本描述;S4:将已知的攻击子图以及非攻击子图生成文本描述用于训练检测模型;将Gi输入检测模型,输出威胁得分,判断Gi是否为攻击子图。本发明提供了的方法,对溯源图进行行为分割,为实体节点和事件边分配文本描述,并提取其与攻击的关联程度,从而判断行为的性质。
Description
技术领域
本发明涉及主机入侵检测领域,具体涉及一种基于溯源图行为语义提取的威胁检测方法及***。
背景技术
随着信息网络技术的发展,网络资源共享的趋势越来越明显,在快速获取信息的同时,安全问题也在不断增长。尽管大多数企业、机构都会部署各种安全***,如IDS、IPS、防火墙、反病毒软件、蜜罐等,来检测并告警异常行为,但是攻击者会采用各种绕过规避手段,将攻击行为隐藏在正常的行为中,让安全***难以察觉。同时,这些安全***给出的安全警告都是孤立的,没有明确的关联性,并且缺乏充分证据对警告响应的恶意行为进行说明,安全分析人员针对这些警告难以作进一步分析,做出明确判断与响应。
由于审计日志详细记录了主机***的各种操作行为,攻击者虽然会使用各手段将恶意行为隐藏在日常行为中,但总会在***中留下足迹。图结构具有强大的语义表达和历史关联能力,所以近些年不少威胁检测研究是基于审计日志构建溯源图来开展的,一般分为基于统计、基于规则、基于学习三类。在基于统计方法中,将***中不常见的行为标记为恶意的观点容易导致误报的可能性高;在基于规则的方法中,规则定义具有局限性,虽然检测的假阳性率低,但是对于一些未知的攻击行为难以识别;而基于学习的方法中,构建模型学习***中常见的行为,将偏离学习模型的行为识别为异常,这种方法可能缺乏对攻击事件特有语义的利用,导致检测效果可能不佳。
因此,当前威胁检测存在以下问题:
1)***产生的事件都是服务其特定的目标,同一目标的事件可以归为一个行为,缺乏对这个行为整体进行考量。
2)攻击行为底层的事件集合包含的语义与上层的攻击意图和攻击手法之间存在关系,缺乏对***事件语义表述的利用。
3)威胁告警结果仅仅是攻击行为的一个点,与***事件上下文之间缺乏可解释性,安全分析人员对告警的研判还需要进一步分析***行为事件。
发明内容
为了解决上述技术问题,本发明提供一种基于溯源图行为语义提取的威胁检测方法及***。
本发明技术解决方案为:一种基于溯源图行为语义提取的威胁检测方法,包括:
步骤S1:从主机收集***审计日志,将所述***审计日志数据处理成规定格式的事件Event,根据Event的关系构建溯源图G=<V,E>;
步骤S2:在G中找到所有定义的兴趣事件,即事件边,从所述事件边出发,依据标签和设定跳数从G中划分出兴趣子图,并将重合的所述兴趣子图合并,从而得到一组兴趣子图{G1,G2,…,Gn},其中,所述跳数为搜索G中实体节点的距离;
步骤S3:对于每个兴趣子图Gi,从最早时间戳开始,依据预定义的匹配规则,为Gi的事件边和实体节点分配对应的文本描述,得到具有文本描述的兴趣子图,并按照所述事件边主客体顺序和时间戳顺序,将所述实体节点和所述事件边的文本描述信息进行排序并连接,为每个Gi生成了一个文本描述Texti;
步骤S4:利用NLP方法,从已知的攻击子图以及非攻击子图进行采样后,执行步骤S3,生成攻击子图文本描述和非攻击子图的文本描述作为训练数据用于训练检测模型;将所述兴趣子图Gi输入所述检测模型,输出威胁得分Scorei,判断Gi是否为攻击子图。
本发明与现有技术相比,具有以下优点:
1、本发明公开了一种基于溯源图行为语义提取的威胁检测方法,根据溯源图从不同的兴趣事件出发,对溯源图进行了分割,并将重合节点的子图合并,将同一行为的事件划分到一起,后续以整个行为作为检测的对象,避免了关联无关行为或依赖***问题。
2、本发明通过定义语义规则,为溯源图中的事件边和实体节点分配语义,综合这些语义来判断行为的性质,考虑了其与上层攻击目的和手段的关系,有助于提高检测的准确度。
3、本发明通过将攻击行为的场景图从整个溯源图中提取出一个子图进行检测,并赋予该子图一定的语义描述信息,有效提高了安全分析人员对告警的研判和响应。
附图说明
图1为本发明实施例中一种基于溯源图行为语义提取的威胁检测方法的流程图;
图2为本发明实施例中向后搜索的流程示意图;
图3为本发明实施例中基于溯源图行为语义提取的威胁检测流程示意图;
图4为本发明实施例中一种基于溯源图行为语义提取的威胁检测***的结构框图。
具体实施方式
本发明提供了一种基于溯源图行为语义提取的威胁检测方法,对溯源图进行行为分割,为实体节点和事件边分配文本描述,利用NLP的技术从文本描述提取其与攻击的关联程度,从而判断行为的性质。
为了使本发明的目的、技术方案及优点更加清楚,以下通过具体实施,并结合附图,对本发明进一步详细说明。
实施例一
如图1所示,本发明实施例提供的一种基于溯源图行为语义提取的威胁检测方法,包括下述步骤:
步骤S1:从主机收集***审计日志,将***审计日志数据处理成规定格式的事件Event,根据Event的关系构建溯源图G=<V,E>;
步骤S2:在G中找到所有定义的兴趣事件,即事件边,从事件边出发,依据标签和设定跳数从G中划分出兴趣子图,并将重合的兴趣子图合并,从而得到一组兴趣子图{G1,G2,…,Gn},其中,跳数为搜索G中实体节点的距离;
步骤S3:对于每个兴趣子图Gi,从最早时间戳开始,依据预定义的匹配规则,为Gi的事件边和实体节点分配对应的文本描述,得到具有文本描述的兴趣子图,并按照事件边主客体顺序和时间戳顺序,将实体节点和事件边的文本描述信息进行排序并连接,为每个Gi生成了一个文本描述Texti;
步骤S4:利用NLP方法,从已知的攻击子图以及非攻击子图进行采样后,执行步骤S3,生成攻击子图文本描述和非攻击子图的文本描述作为训练数据用于训练检测模型;将兴趣子图Gi输入检测模型,输出威胁得分Scorei,判断Gi是否为攻击子图。
在一个实施例中,上述步骤S1:从主机收集***审计日志,将***审计日志数据处理成规定格式的事件Event,根据Event的关系构建溯源图G=<V,E>,具体包括:
步骤S11:将从***审计日志处理成规定的事件格式,事件Event由四元组构成:Event=<sub,obj,time,type>,其中sub表示事件的主体,obj表示事件的客体,Time表示时间戳,即事件发生的时间,type表示事件的类型,即***调用类型(如read,write,fork等),本发明将事件Event中的主体和客体统称为实体;
步骤S12:构建溯源图G=<V,E>,其中V是实体节点的集合,其中,实体节点v包含属性v.untrust_tag,E是事件边的集合,事件边e包含属性e.time和e.type;
本发明按照溯源图定义,将事件中的实体映射成实体节点,事件中主客体关系映射成事件边,time和type作为事件边的属性,同时考虑实体节点的可疑性,为实体节点设置untrust_tag属性;
溯源图G的构建步骤如下:
步骤S121:将实体节点集V和边集E初始化为空集
步骤S122:对一个事件Eventi=<subi,obji,timei,typei>,将Eventi的主体subi和客体obji加入实体节点集合V,即V=V∪{subi,obji},将Eventi中主客体关系作为事件边ei=<subi,obji>加入事件边集合E,即E=E∪<subi,obji>,且事件边的方向由subi指向obji,同时赋予事件边属性:<subi,obji>.type=typei表示事件类型,<subi,obji>.time=timei表示事件发生时间;
步骤S123:为溯源图G中实体节点v设置untrust_tag属性遵循下述两个规则:
a.如果事件边ei=<subi,obji>中主体subi或客体obji节点是ip或域名,且不在预设的白名单中,设置实体节点subi或obji的untrust_tag=1,同时设置subi对应的客体节点untrust_tag=1,或obji对应的主体节点untrust_tag=1;
b.如果事件边ei中满足 则设置obji.untrust_tag=1,其中subi-1是以subi为客体的事件边ei-1的主体,Ttag是设置的时间窗口大小;
由于两个时序相连的事件在Ttag窗口内才会传播标签,从不可信白名单出发设置标签是因为默认良性的***中出现攻击都是来自与外界,因此攻击行为一定出现在这些标签事件中。
在一个实施例中,上述步骤S2:在G中找到所有定义的兴趣事件,即事件边,从事件边出发,依据标签和设定跳数从G中划分出兴趣子图,并将重合的兴趣子图合并,从而得到一组兴趣子图{G1,G2,…,Gn},其中,跳数为搜索G中实体节点的距离,具体包括:
步骤S21:根据事件的类型,创建兴趣事件列表iEvent_list,包括4种类型:网络连接、新文件创建、文件权限更改和进程创建;从溯源图G中找到符合在iEvent_list中类型的事件,且该事件的主体或客体中至少一个标签untrust_tag=1,将该事件边加入All_iEvent;
本发明的兴趣事件可以针对不同类型的攻击选择不同的事件,本发明对此不做限定。在本发明实施例中,定义的兴趣事件的具体类型如下:
网络连接对应的事件类型为:bind、connect、sendto、recvfrom;
新文件创建对应的事件类型为:create;
文件更改可执行权限对应的事件类型为:chmod、fchmod;
进程创建对应的事件类型为:fork、clone、exec;
上述事件类型构成兴趣事件类型列表iEvent_List;
从溯源图G中找到符合在iEvent_list所包含类型的事件,且该事件的主体或客体中至少一个标签untrust_tag=1,将该事件加入All_iEvent;
为了减少开销,这一步也可以放在构建溯源图的步骤S12中完成,对于事件Eventi,如果Eventi.type∈iEvent_list and(Eventi.subi.untrust_tag=1orEventi.obji.untrust_tag=1),将兴趣事件iEventi加入到列表All_iEvent中All_iEvent=All_iEvent∪{iEventi}。
步骤S22:在溯源图G中,对于兴趣事件边iEventi∈All_iEvent,从iEventi.sub出发向后搜索,从iEventi.obj出发向前搜索,将搜索到边和实体节点加入到初始子图G'i中;对All_iEvent列表中的每个兴趣事件边iEventi(1≤i≤k),其中k是事件边个数,执行上述向后和向前搜索后,可从溯源图G中分割出k个初始子图集合{G'1,G'2,…,G'k};
如图2所示,为向后搜索的流程示意图,本发明实施例定义向后搜索操作为back_search(b,t),其中b是溯源图G中某兴趣事件的主体节点,t是该兴趣事件(边)的时间戳。该操作完成从b的所有邻居节点中找到节点{a1,a2,…,an}及其与b构成的事件边{e1,e2,…,en},满足条件:①对ai.untrust_tag=1;②对/> 边方向由ai到b;③/>ei.time<t and t-ei.time≤Tback其中Tback功能类似于上述的Ttag,是设置的时间窗口,只找与当前兴趣事件时间窗口在Tback内的前因关联事件。则从iEventi.sub向后搜索:第1跳执行back_search(iEventi.sub,iEventi.time),将搜索到的节点Pa1,a2,…,an}和事件边{e1,e2,…,en}加入到子图G'i中;第2跳执行back_search(aj,tej)其中1≤j≤n,对于每个j将找到的节点和相应事件边加入到子图G'i中;后续依次将每一跳找到的边和节点输入到back_search中将找到的节点和响应边加入到子图G'i中,直到第hop back跳,hop back是定义从iEventi.sub开始向后搜索的最远跳数距离,用于限制向后搜索的范围。
对于向前搜索,类似于向后搜索,定义操作为front_search(a,t),其中a是溯源图G中某兴趣事件的客体节点,t是该兴趣事件的时间戳。该操作完成从a的所有邻居节点中找到节点{b1,b2,…,bn}及其与a构成的事件边{e1,e2,…,en},满足条件:①对 bi.untrust_tag=1;②对/>边方向由a到bi;③/>ei.time>t and ei.time-t≤Tfront,其中Tfront功能等同于上述的Tback,是设置的时间窗口,只找与当前兴趣事件时间窗口在Tfront内的后续关联事件。则从iEventi.obj出发向前搜索:第1跳执行front_search(iEventi.obj,iEventi.time),将搜索到的节点b1,b2,…,bn}和事件边{e1,e2,…,en}加入到子图G'i中;第2跳执行/>其中1≤j≤n,对于每个j将找到的节点和相应事件边加入到子图G'i中;后续依次将每一跳找到的边和节点输入到front_search中将找到的节点和响应边加入到子图G'i中,直到第hop front跳,hop front是定义从iEventi.obj开始向前搜索的最远跳数距离,用于限制向前搜索的范围。
遍历All_iEvent列表中的所有事件iEventi(1≤i≤k),对每个兴趣事件iEventi执行向后和向前搜索后,可从溯源图G中分割出k个初始子图集合{G'1,G'2,…,G'k};
步骤S23:将{G'1,G'2,…,G'k}中重合的子图进行合并,即一个子图是另一个子图的子图,此时只保留更大的子图,将小的子图删除,最终保留兴趣子图集合{G1,G2,…,Gn}。
在一个实施例中,上述步骤S3:对于每个兴趣子图Gi,从最早时间戳开始,依据预定义的匹配规则,为Gi的事件边和实体节点分配对应的文本描述,得到具有文本描述的兴趣子图,并按照事件边主客体顺序和时间戳顺序,将实体节点和事件边的文本描述信息进行排序并连接,为每个Gi生成了一个文本描述Texti,具体包括:
步骤S31:为兴趣子图中实体节点:进程、文件和网络连接以及事件边的文本描述规则进行如下定义:
抽取进程的文本信息为“process$process_type$$process_attribute$”;
抽取文件的文本信息为“file$file_type$$file_attribute$”;
抽取网络连接的文本信息为“socket$net_type$$port$”;
抽取事件边的文本信息为“$event_type$$time_diff$”;
为兴趣子图Gi中的进程、文件、网络连接、事件边进行的文本描述的语义规则的定义,如下表1所示。
表1文本描述的语义规则
其中,进程实体抽取出的文本信息为“process$process_type$$process_attribute$”,其中process用于标识这是个进程,$process_type$表示一个变量,具体内容就是该进程的类型包括system_process(***进程)、shell_process(交互进程)、service_process(服务性进程)、other_process(其他进程),$process_attribute$是进程的属性用于标识该进程是可识别的常见进程(用“common_process”标识)还是未知进程(用“unknow_process”标识),这种属性标识可以在文本中将进程的可疑程度体现出来。
文件实体抽取出的文本信息为“file$file_type$$file_attribute$”,其中file用于标识该实体是文件,$file_type$具体内容是文件的类型包括system_file(***文件)、config_file(配置文件)、exce_file(可执行文件)、user_file(用户文件),$file_attribute$是文件属性用于标识该文件的机密程度,包含机密(用“confidence”标识)、普通(用“common_file”标识)、未知(用“unknow_file”标识),这种属性标识可以在文本中将文本的可疑程度体现处理。
网络连接实体抽取的文本信息为“socket$net_type$$port$”,socket用于标识该实体是网络连接,$net_type$用于表示该网络连接的形式包含ip地址(内网ip使用“internal_ip”外网ip使用“exteranl_ip”)、domain_name,$port$具体内容就是该网络连接的端口服务信息,主要用于标识常见协议。
事件边抽取的文本信息为“$event_type$$time_diff$”,其中$event_type$具体内容就是事件类型或边类型,包括read、write、fork、connect等这些***调用类型,$time_diff$表示当前一个事件与其后面发生最近一个事件的时间差程度。时间差有4种程度,相应地为其设置3种时间值t1,t2,t3用于区分:time_same表示两个事件发生在相同秒即tpost-tpre≤t1,time_close表示两个事件发生时间非常接近即t1≤tpost-tpre≤t2,time_little_far表示两个事件发生时间间隔较远即t2≤tpost-tpre≤t3,time_far表示两个事件间隔很久即tpost-tpre>t3。在文本表述时间差程度是为了在文本体现出事件之间的紧密程度,处于同一攻击阶段的事件通常会在短时间内发生。
步骤S32:对于每个兴趣子图Gi,从时间戳最小的事件边的主体节点出发,遍历整个子图Gi,根据文本描述规则为Gi每个实体节点和事件边赋予相应的文本描述信息;
对于每个子图Gi,从时间戳最小的事件边主体节点出发,遍历整个子图,根据语义规则格式为每个节点和事件边赋予相应的的文本描述信息。如对于一个进程节点,获取其进程属于哪种类型并判断进程是否为常见进程来为进程赋予common_process或者unknow_process,将process和这些信息以空格为间隔连接在一起组成对该进程节点的描述。其他类型节点类似获取描述信息,但对于事件边来说,$event_type$直接使用事件类型即可,而$time_diff$在对不同事件的节点信息和事件边信息进行排序时根据前后事件的时间差tpost-tpre生成。
步骤S33:将每个兴趣子图Gi的实体节点和事件边的文本描述信息按时间进行排序,得到Gi的文本描述Texti。
按时间戳顺序将每个子图Gi中的事件从早到晚进行排序,从最早事件开始,依次获取主体节点sub的文本信息、事件边e的文本信息$event_type$、客体节点obj的文本信息,这些文本信息通过事件边的$time_diff$连接组合在一起,其中$time_diff$通过前一个事件时间戳tpre和后一个事件时间戳tpost的差tpost-tpre与步骤S31中的时间t1,t2,t3以及比较关系生成。这样对于每个子图Gi能够得到对其的文本表述Texti。
在一个实施例中,上述步骤S4:利用NLP方法,从已知的攻击子图以及非攻击子图进行采样后,执行步骤S3,生成攻击子图文本描述和非攻击子图的文本描述作为训练数据用于训练检测模型;将兴趣子图Gi输入检测模型,输出威胁得分Scorei,判断Gi是否为攻击子图,具体包括:
步骤S41:利用NLP技术,将已知的攻击子图以及非攻击子图作为训练数据;使用相似度阈值对非攻击子图进行欠采样;对攻击子图的采样进行预设比例的随机缺失采样和补充采样;
采样已知的攻击子图和非攻击子图作为训练数据。对于已知包含攻击和各种正常行为模式的数据,从中划分出完整的攻击子图以及各种正常行为子图。但由于攻击数据与非攻击数据的不平衡性,并且考虑到在对检测图进行划分时,划分出行为子图会不完整或者包含一些冗余节点和边,即与缺少部分行为相关或包含与行为无关的事件和实体。这里使用一定的相似度阈值对非攻击子图进行欠采样,而对与攻击子图的采样进行一定百分比的随机缺失采样和补充采样。攻击子图的百分比缺失采样是指对完整的攻击子图随机的挑选一定百分比的边从子图中删除后的子图作为训练样本,并删除与子图不再相连的节点;而补充采样是指从攻击子图直接连接的边中随机选取一定的比例将其与相应的节点加入子图中。这里的缺失百分比不宜过大,设置为2%到5%;
步骤S42:对所有攻击子图和非攻击子图利用步骤S3获取对应的文本描述并使用word2vec对其中词汇进行词嵌入,获取嵌入后的向量序列,以提高模型的学习能力;将攻击子图的文本描述标记为attack,将非攻击子图的文本描述标记为regular,将攻击子图和非攻击子图的嵌入后的向量序列及其相应的标记输入检测模型进行训练,得到训练好的检测模型;
本发明实施例采用LSTM作为检测模型;
步骤S43:对Gi的文本描述Texti进行词嵌入,得到Gi嵌入后的文本描述向量序列,输入训练好的检测模型,得到威胁得分Scorei,如果Scorei超过阈值threat_thres,则对兴趣子图Gi发起告警。
图3展示了本发明的基于溯源图行为语义提取的威胁检测流程示意图。
本发明公开了一种基于溯源图行为语义提取的威胁检测方法,根据溯源图从不同的兴趣事件出发,对溯源图进行了分割,并将重合节点的子图合并,将同一行为的事件划分到一起,后续以整个行为作为检测的对象,避免了关联无关行为或依赖***问题。本发明通过定义语义规则,为溯源图中的事件边和实体节点分配语义,综合这些语义来判断行为的性质,考虑了其与上层攻击目的和手段的关系,有助于提高检测的准确度。本发明通过将攻击行为的场景图从整个溯源图中提取出一个子图进行检测,并赋予该子图一定的语义描述信息,有效提高了安全分析人员对告警的研判和响应。
实施例二
如图4所示,本发明实施例提供了一种基于溯源图行为语义提取的威胁检测***,包括下述模块:
构建溯源图模块51,用于从主机收集***审计日志,将***审计日志数据处理成规定格式的事件Event,根据Event的关系构建溯源图G=<V,E>;
构建兴趣子图模块52,用于在G中找到所有定义的兴趣事件,即事件边,从事件边出发,依据标签和设定跳数从G中划分出兴趣子图,并将重合的兴趣子图合并,从而得到一组兴趣子图{G1,G2,…,Gn},其中,跳数为搜索G中实体节点的距离;
生成兴趣子图文本描述模块53,用于对于每个兴趣子图Gi,从最早时间戳开始,依据预定义的匹配规则,为Gi的事件边和实体节点分配对应的文本描述,得到具有文本描述的兴趣子图,并按照事件边主客体顺序和时间戳顺序,将实体节点和事件边的文本描述信息进行排序并连接,为每个Gi生成了一个文本描述Texti;
攻击子图检测模块54,用于利用NLP方法,从已知的攻击子图以及非攻击子图进行采样后,执行生成兴趣子图文本描述模块,生成攻击子图文本描述和非攻击子图的文本描述作为训练数据用于训练检测模型;将兴趣子图Gi输入检测模型,输出威胁得分Scorei,判断Gi是否为攻击子图。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
Claims (6)
1.一种基于溯源图行为语义提取的威胁检测方法,其特征在于,包括:
步骤S1:从主机收集***审计日志,将所述***审计日志数据处理成规定格式的事件Event,根据Event的关系构建溯源图G=<V,E>;
步骤S2:在G中找到所有定义的兴趣事件,即事件边,从所述事件边出发,依据标签和设定跳数从G中划分出兴趣子图,并将重合的所述兴趣子图合并,从而得到一组兴趣子图{G1,G2,…,Gn},其中,所述跳数为搜索G中实体节点的距离;
步骤S3:对于每个兴趣子图Gi,从最早时间戳开始,依据预定义的匹配规则,为Gi的事件边和实体节点分配对应的文本描述,得到具有文本描述的兴趣子图,并按照所述事件边主客体顺序和时间戳顺序,将所述实体节点和所述事件边的文本描述信息进行排序并连接,为每个Gi生成了一个文本描述Texti;
步骤S4:利用NLP方法,从已知的攻击子图以及非攻击子图进行采样后,执行步骤S3,生成攻击子图文本描述和非攻击子图的文本描述作为训练数据用于训练检测模型;将所述兴趣子图Gi输入所述检测模型,输出威胁得分Scorei,判断Gi是否为攻击子图。
2.根据权利要求1所述的基于溯源图行为语义提取的威胁检测方法,其特征在于,所述步骤S1:从主机收集***审计日志,将所述***审计日志数据处理成规定格式的事件Event,根据Event的关系构建溯源图G=<V,E>,具体包括:
步骤S11:将从所述***审计日志处理成规定的事件格式,事件Event由四元组构成:Event=<sub,obj,time,type>,其中sub表示事件的主体,obj表示事件的客体,Time表示时间戳,即事件发生的时间,type表示事件的类型,将所述主体和客体统称为实体;
步骤S12:构建溯源图G=<V,E>,其中V是实体节点的集合,其中,实体节点v包含属性v.untrust_tag,E是事件边的集合,事件边e包含属性e.time和e.type;G的构建步骤如下:
步骤S121:将实体节点集V和边集E初始化为空集
步骤S122:对一个事件Eventi=<subi,obji,timei,typei>,将Eventi的主体subi和客体obji加入实体节点集合V,即V=V∪subi,obji,将Eventi中主客体关系作为事件边ei=<subi,obji>加入事件边集合E,即E=E∪<subi,obji>,且事件边的方向由subi指向obji,同时赋予事件边属性:<subi,obji>.type=typei表示事件类型,<subi,obji>.time=timei表示事件发生时间;
步骤S123:为溯源图G中实体节点v设置untrust_tag属性遵循下述两个规则:
a.如果事件边ei=<subi,obji>中主体subi或客体obji节点是ip或域名,且不在预设的白名单中,设置实体节点subi或obji的untrust_tag=1,同时设置subi对应的客体节点untrust_tag=1,或obji对应的主体节点untrust_tag=1;
b.如果事件边ei中满足 则设置obji.untrust_tag=1,其中subi-1是以subi为客体的事件边ei-1的主体,Ttag是设置的时间窗口大小。
3.根据权利要求2所述的基于溯源图行为语义提取的威胁检测方法,其特征在于,所述步骤S2:在G中找到所有定义的兴趣事件,即事件边,从所述事件边出发,依据标签和设定跳数从G中划分出兴趣子图,并将重合的所述兴趣子图合并,从而得到一组兴趣子图{G1,G2,…,Gn},其中,所述跳数为搜索G中实体节点的距离,具体包括:
步骤S21:根据所述事件的类型,创建兴趣事件列表iEvent_list,包括4种类型:网络连接、新文件创建、文件权限更改和进程创建;从所述溯源图G中找到符合在iEvent_list中类型的事件,且该事件的主体或客体中至少一个标签untrust_tag=1,将该事件加入All_iEvent;
步骤S22:在所述溯源图G中,对于兴趣事件边iEventi∈All_iEvent,从iEventi.sub出发向后搜索,从iEventi.obj出发向前搜索,将搜索到边和实体节点加入到初始子图G'i中;对All_iEvent列表中的每个兴趣事件边iEventi(1≤i≤k),其中k是事件边个数,执行上述向后和向前搜索后,可从所述溯源图G中分割出k个初始子图集合{k'1,G'2,…,G'k};
步骤S23:将{G'1,G'2,…,G'k}中重合的子图进行合并,即一个子图是另一个子图的子图,此时只保留更大的子图,将小的子图删除,最终保留兴趣子图集合{G1,G2,…,Gn}。
4.根据权利要求3所述的基于溯源图行为语义提取的威胁检测方法,其特征在于,所述步骤S3:对于每个兴趣子图Gi,从最早时间戳开始,依据预定义的匹配规则,为Gi的事件边和实体节点分配对应的文本描述,得到具有文本描述的兴趣子图,并按照所述事件边主客体顺序和时间戳顺序,将所述实体节点和所述事件边的文本描述信息进行排序并连接,为每个Gi生成了一个文本描述Texti,具体包括:
步骤S31:为所述兴趣子图中实体节点:进程、文件和网络连接以及事件边的文本描述规则进行如下定义:
抽取进程的文本信息为“process$process_type$$process_attribute$”;
抽取文件的文本信息为“file$file_type$$file_attribute$”;
抽取网络连接的文本信息为“socket$net_type$$port$”;
抽取事件边的文本信息为“$event_type$$time_diff$”;
步骤S32:对于每个兴趣子图Gi,从时间戳最小的事件边的主体节点出发,遍历整个子图Gi,根据所述文本描述规则为Gi每个实体节点和事件边赋予相应的文本描述信息;
步骤S33:将每个兴趣子图Gi的实体节点和事件边的文本描述信息按时间进行排序,得到Gi的文本描述Texti。
5.根据权利要求4所述的基于溯源图行为语义提取的威胁检测方法,其特征在于,所述步骤S4:利用NLP方法,从已知的攻击子图以及非攻击子图进行采样后,执行步骤S3,生成攻击子图文本描述和非攻击子图的文本描述作为训练数据用于训练检测模型;将所述兴趣子图Gi输入所述检测模型,输出威胁得分Scorei,判断Gi是否为攻击子图,具体包括:
步骤S41:利用NLP技术,将已知的攻击子图以及非攻击子图作为训练数据;使用相似度阈值对所述非攻击子图进行欠采样;对所述攻击子图的采样进行预设比例的随机缺失采样和补充采样;
步骤S42:对所有所述攻击子图和非攻击子图利用步骤S3获取对应的文本描述并使用word2vec对其中词汇进行词嵌入,获取嵌入后的向量序列;将所述攻击子图的文本描述标记为attack,将所述非攻击子图的文本描述标记为regular,将所述攻击子图和非攻击子图的嵌入后的向量序列及其相应的标记输入检测模型进行训练,得到训练好的检测模型;
步骤S43:对Gi的文本描述Texti进行词嵌入,得到Gi嵌入后的文本描述向量序列,并输入所述训练好的检测模型,得到威胁得分Scorei,如果Scorei超过阈值threat_thres,则对兴趣子图Gi发起告警。
6.一种基于溯源图行为语义提取的威胁检测***,其特征在于,包括下述模块:
构建溯源图模块,用于从主机收集***审计日志,将所述***审计日志数据处理成规定格式的事件Event,根据Event的关系构建溯源图G=<V,E>;
构建兴趣子图模块,用于在G中找到所有定义的兴趣事件,即事件边,从所述事件边出发,依据标签和设定跳数从G中划分出兴趣子图,并将重合的所述兴趣子图合并,从而得到一组兴趣子图{G1,G2,…,Gn},其中,所述跳数为搜索G中实体节点的距离;
生成兴趣子图文本描述模块,用于对于每个兴趣子图Gi,从最早时间戳开始,依据预定义的匹配规则,为Gi的事件边和实体节点分配对应的文本描述,得到具有文本描述的兴趣子图,并按照所述事件边主客体顺序和时间戳顺序,将所述实体节点和所述事件边的文本描述信息进行排序并连接,为每个Gi生成了一个文本描述Texti;
攻击子图检测模块,用于利用NLP方法,从已知的攻击子图以及非攻击子图进行采样后,执行所述生成兴趣子图文本描述模块,生成攻击子图文本描述和非攻击子图的文本描述作为训练数据用于训练检测模型;将所述兴趣子图Gi输入所述检测模型,输出威胁得分Score,判断Gi是否为攻击子图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311078954.XA CN116938587A (zh) | 2023-08-25 | 2023-08-25 | 基于溯源图行为语义提取的威胁检测方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311078954.XA CN116938587A (zh) | 2023-08-25 | 2023-08-25 | 基于溯源图行为语义提取的威胁检测方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116938587A true CN116938587A (zh) | 2023-10-24 |
Family
ID=88389865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311078954.XA Pending CN116938587A (zh) | 2023-08-25 | 2023-08-25 | 基于溯源图行为语义提取的威胁检测方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116938587A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117560228A (zh) * | 2024-01-10 | 2024-02-13 | 西安电子科技大学杭州研究院 | 基于标签和图对齐的流式溯源图实时攻击检测方法及*** |
-
2023
- 2023-08-25 CN CN202311078954.XA patent/CN116938587A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117560228A (zh) * | 2024-01-10 | 2024-02-13 | 西安电子科技大学杭州研究院 | 基于标签和图对齐的流式溯源图实时攻击检测方法及*** |
CN117560228B (zh) * | 2024-01-10 | 2024-03-19 | 西安电子科技大学杭州研究院 | 基于标签和图对齐的流式溯源图实时攻击检测方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Aljawarneh et al. | Anomaly-based intrusion detection system through feature selection analysis and building hybrid efficient model | |
Alasmary et al. | Analyzing and detecting emerging Internet of Things malware: A graph-based approach | |
CN112738015B (zh) | 一种基于可解释卷积神经网络cnn与图检测的多步攻击检测方法 | |
Sahu et al. | Network intrusion detection system using J48 Decision Tree | |
Namanya et al. | Similarity hash based scoring of portable executable files for efficient malware detection in IoT | |
CN111355697B (zh) | 僵尸网络域名家族的检测方法、装置、设备及存储介质 | |
De Souza et al. | Two-step ensemble approach for intrusion detection and identification in IoT and fog computing environments | |
CN110474885B (zh) | 基于时间序列与ip地址的报警关联分析方法 | |
CN112333195B (zh) | 基于多源日志关联分析的apt攻击场景还原检测方法及*** | |
CN115296924A (zh) | 一种基于知识图谱的网络攻击预测方法及装置 | |
CN113422763B (zh) | 基于攻击场景构建的报警关联分析方法 | |
CN113821793B (zh) | 基于图卷积神经网络的多阶段攻击场景构建方法及*** | |
CN112115183B (zh) | 一种基于图的蜜罐***威胁情报分析方法 | |
Alanazi et al. | Anomaly Detection for Internet of Things Cyberattacks. | |
CN116938587A (zh) | 基于溯源图行为语义提取的威胁检测方法及*** | |
CN116915450A (zh) | 基于多步网络攻击识别和场景重构的拓扑剪枝优化方法 | |
Liu et al. | Mltracer: Malicious logins detection system via graph neural network | |
CN114662096A (zh) | 一种基于图核聚类的威胁狩猎方法 | |
Kalyan et al. | Detection of malware using cnn | |
CN115567325B (zh) | 一种基于图匹配的威胁狩猎方法 | |
Martins et al. | Automatic detection of computer network traffic anomalies based on eccentricity analysis | |
CN111901137A (zh) | 一种利用蜜罐告警日志挖掘多步攻击场景的方法 | |
KR100638480B1 (ko) | 침입 탐지 경고 메시지의 연관성을 이용한 침입 탐지시각화 방법 | |
CN111079145B (zh) | 基于图处理的恶意程序检测方法 | |
Jia et al. | MAGIC: Detecting Advanced Persistent Threats via Masked Graph Representation Learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |