CN109255238B - 终端威胁检测与响应方法及引擎 - Google Patents
终端威胁检测与响应方法及引擎 Download PDFInfo
- Publication number
- CN109255238B CN109255238B CN201810973711.5A CN201810973711A CN109255238B CN 109255238 B CN109255238 B CN 109255238B CN 201810973711 A CN201810973711 A CN 201810973711A CN 109255238 B CN109255238 B CN 109255238B
- Authority
- CN
- China
- Prior art keywords
- suspicious
- action
- process pid
- list
- rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Abstract
本发明公开了终端威胁检测与响应方法及引擎,所述引擎包括动作检测模块、基础信息模块、行为分析模块、威胁报警模块及自动处置模块,各个相互之间配合工作,由动作检测模块和基础信息模块提供数据,行为分析模块进行判断,如果发现威胁,则由威胁报警模块进行报警,并由自动处置模块根据实际情况按照规则指定的条件进行自动响应。本发明实施例公开的引擎与当前的大多数检测软件所使用的正则、YARA、特征等常规检测手段不同,采用了LUA语言进行引擎编写,使得引擎可以在不需要修改任何代码的情况下跨平台运行。当检测规则发生改变的时候只需要对LUA的脚本进行动态替换,而不需要重新编译整个系统。
Description
技术领域
本发明涉及终端威胁检测技术领域,具体涉及终端威胁检测与响应方法及引擎。
背景技术
终端侦测与响应(Endpoint Detection and Response)是未知威胁以及APT检测领域的一个关键趋势,在终端检测威胁行为需要依托于规则,而在传统的检测手段中使用正则表达式、YARA、程序内置硬编码等方式比较多。但无论是正则、YARA还是硬编码的方式都显得过于死板不灵活,修改某一个规则之后都甚至需要对程序进行重新编译才能生效,而YARA和正则表达式虽然比较灵活,但是对于动态数据的检测就显得有点力不从心。
发明内容
本发明的目的在于提供终端威胁检测与响应方法及引擎,用以解决目前的终端威胁检测不能满足动态数据的检测的技术问题。
为实现上述目的,本发明实施例提供了终端威胁检测与响应方法,所述方法包括:获取系统发生事件的数据以及附加信息;检测所述事件行为规则包含的所有动作规则,利用进程属性标示所述动作规则的进程是否存在威胁;针对被标示的可疑行为规则包含的所有动作规则形成至少一个动作检测标志;对每个可疑行为规则所包含的所有动作检测标志进行行为匹配分析;如果所述可疑行为规则所包含的所有动作检测标志全部与至少一个标志位匹配,所述可疑行为规则确定存在威胁;其中,每个动作检测标志为由每个动作规则的所有的进程PID作为元素形成的一个可疑进程PID列表,所述标志位为所述可疑进程PID列表中的某个进程PID元素。
进一步地,利用进程属性标示所述动作规则的进程是否有确定的威胁之后,所述方法还包括:实时判断获取的系统发生事件的数据以及附加信息的去向,其包括:判断所述事件的行为规则是否包含多个动作规则;若所述行为规则包含多个动作规则,判断所述多个动作规则之间是否存在时序性;若所述行为规则的所有动作规的进程均未被标示,则丢弃所述行为规则对应的所述事件的数据以及附加信息;若所述行为规则包含一个动作规则并所述动作规则被标示,则直接确定所述行为规则存在威胁;若所述行为规则包含彼此之间存在时序性的多个动作规则并所述多个动作规则被标示,则缓存所述行为规则对应的所述事件的数据以及附加信息并进行行为匹配分析;若所述行为规则包含彼此之间不存在时序性的多个动作规则并所述多个动作规则被标示,则对所述行为规则对应的所述事件的数据以及附加信息进行行为匹配分析。
进一步地,所述事件包括:注册进程信息、网络通信、文件访问、动态库加载和注册表访问。
进一步地,所述进程属性包括:MD5、SHA-1、SHA-256、创建/修改/访问时间、签名信息、文件尺寸、文件头、文件类型、图标和可见字符串。
进一步地,以树形的方式保存每一个所述可疑行为规则的所有动作规则以及每个所述动作规则的所有进程PID。
进一步地,所述可疑行为规则经行为匹配分析确定存在威胁后,所述方法还包括:自动调用行为规则的自动响应脚本进行响应处理,针对所述行为规则相关的文件、注册表、网络、模块/动态库、进程进行微粒度控制,防止威胁攻击行为的达成;和/或发出威胁报警并将所述行为规则对应的所述事件的数据以及附加信息上传至服务器。
进一步地,所述对每个可疑行为规则所包含的所有动作检测标志进行行为匹配分析的行为匹配算法包括:利用所述可疑行为规则所包含的所有动作规则的可疑进程PID列表组合匹配计算交集,其包括:对每个可疑行为规则所包含的所有动作规则进行编号;根据编号顺序选取前两个动作规则的可疑进程PID列表进行组合计算交集;若前两个动作规则的可疑进程PID列表不存在交集,则停止计算,所述可疑行为规则确定暂时不存在威胁;若前两个动作规则的可疑进程PID列表存在交集,利用前次计算得出的可疑进程PID交集列表与下一个编号的动作规则的可疑进程PID列表组合计算交集;若前次计算得出的可疑进程PID交集列表与下一个编号的动作规则的可疑进程PID列表不存在交集,则停止计算,所述可疑行为规则确定暂时不存在威胁;若前次计算得出的可疑进程PID交集列表与下一个编号的动作规则的可疑进程PID列表存在交集,直到所述可疑行为规则所包含的所有动作规则的可疑进程PID列表组合计算完毕;若存在交集,则所述可疑行为规则确定存在威胁。
进一步地,所述动作规则的可疑进程PID列表与所述动作规则的可疑进程PID列表或所述前次计算得出的可疑进程PID交集列表组合计算交集的方法包括:将两个动作规则的可疑进程PID列表分别定义为第一可疑进程PID匹配列表和第二可疑进程PID匹配列表,或将所述动作规则的可疑进程PID列表和所述前次计算得出的可疑进程PID交集列表分别定义为第一可疑进程PID匹配列表和第二可疑进程PID匹配列表;从第一可疑进程PID匹配列表中从前至后依次选取尚未匹配的进程PID元素L1(i);用选出的进程PID元素L1(i)与所述第二可疑进程PID匹配列表中的尚未匹配的进程PID元素L2(i)从前至后依次进行比较,其中,0≤i≤第一可疑进程PID匹配列表的长度或第二可疑进程PID匹配列表的长度;若从第二可疑进程PID匹配列表中尚未匹配的进程PID元素L2(i)中找到了一个与选出的进程PID元素L1(i)相同的进程PID元素L2(j),则在所述第二可疑进程PID匹配列表中将进程PID元素L2(j)与进程PID元素L2(i)交换位置,及i=i+1,进行下次迭代,其中,i≤j≤第二可疑进程PID匹配列表的长度;若从第二可疑进程PID匹配列表中尚未匹配的进程PID元素L2(i)中直到结尾也未找到与选出的进程PID元素L1(i)相同的元素,则在所述第一可疑进程PID匹配列表中将选出的进程PID元素L1(i)与尚未匹配的最后一个进程PID元素L1(k)交换位置,及将进程PID元素L1(k)交换位置后的作为新选出的进程PID元素L1(i),其中,k=第二可疑进程PID匹配列表的长度;用新选出的进程PID元素L1(i)与所述第二可疑进程PID匹配列表中的尚未匹配的进程PID元素L2(i)从前至后依次进行比较;若从第二可疑进程PID匹配列表中尚未匹配的进程PID元素L2(i)中找到了一个与新选出的进程PID元素L1(i)相同的进程PID元素L2(j),则在所述第二可疑进程PID匹配列表中将进程PID元素L2(j)与进程PID元素L2(i)交换位置,及将i=i+1,进行下次迭代,其中,i≤j≤第二可疑进程PID匹配列表的长度;若从第二可疑进程PID匹配列表中尚未匹配的进程PID元素L2(i)中直到结尾也未找到与新选出的进程PID元素L1(i)相同的元素,则将k=k-n,1≤n≤k-1,依次进行迭代;直到i=k-n时,迭代完成,此时,计算出的所述第一可疑进程PID匹配列表和所述第二可疑进程PID匹配列表的交集为{L1(0)、L1(1)、…L1(k-n-1)}或{L2(0)、L2(1)、…L2(k-n-1)}。
进一步地,从所述两个动作规则的可疑进程PID列表或所述动作规则的可疑进程PID列表与所述动作规则的可疑进程PID列表中选取列表长度较短的一个作为第一可疑进程PID匹配列表,及选取列表长度较长的另一个作为第二可疑进程PID匹配列表。
本发明实施例还提供了终端威胁检测与响应引擎,所述引擎包括:动作检测模块,用于获取系统发生事件的数据以及附加信息,检测所述事件行为规则包含的所有动作规则,对可疑行为规则包含的每个动作规则的进程PID形成动作检测标志;基础信息模块,用于存储标识动作规则的进程是否存在威胁的进程属性并以存储的进程属性形成关于进程是否存在威胁的黑白名单列表;行为分析模块,用于对每个可疑行为规则所包含的所有动作检测标志进行行为匹配分析,如果所述可疑行为规则所包含的所有动作检测标志全部与至少一个标志位匹配,所述可疑行为规则确定存在威胁;威胁报警模块,用于在确定所述可疑行为规则存在威胁后发出威胁报警并将所述行为规则对应的所述事件的数据以及附加信息上传至服务器;及自动处置模块,用于在确定所述可疑行为规则存在威胁后自动调用行为规则的自动响应脚本进行响应处理,针对所述行为规则相关的文件、注册表、网络、模块/动态库、进程进行微粒度控制,防止威胁攻击行为的达成。
本发明具有如下优点:
本发明实施例公开的引擎包括动作检测模块、基础信息模块、行为分析模块、威胁报警模块及自动处置模块,各个相互之间配合工作,由动作检测模块和基础信息模块提供数据,行为分析模块进行判断,如果发现威胁,则由威胁报警模块进行报警,并由自动处置模块根据实际情况按照规则指定的条件进行自动响应。本发明实施例公开的引擎与当前的大多数检测软件所使用的正则、YARA、特征等常规检测手段不同,采用了LUA语言进行引擎编写,使得引擎可以在不需要修改任何代码的情况下跨平台运行。当检测规则发生改变的时候只需要对LUA的脚本进行动态替换,而不需要重新编译整个系统。
附图说明
图1为本发明实施例公开的终端威胁检测与响应引擎的结构示意图。
图2为本发明实施例公开的终端威胁检测与响应方法的流程图。
图3为本发明实施例公开的以树形的方式保存每一个所述可疑行为规则的所有动作规则以及每个所述动作规则的所有进程PID的示意图。
图4为采用本发明实施例公开的终端威胁检测与响应方法的检测威胁并自动调用行为规则的自动响应脚本进行响应处理的示意图。
图5为本发明实施例公开的利用所述可疑行为规则所包含的所有动作规则的可疑进程PID列表组合匹配计算交集的流程图。
图6为本发明实施例公开的动作规则的可疑进程PID列表与动作规则的可疑进程PID列表或前次计算得出的可疑进程PID交集列表组合计算交集的方法的流程图。
图7为采用数组说明本发明实施例公开的动作规则的可疑进程PID列表与动作规则的可疑进程PID列表或前次计算得出的可疑进程PID交集列表组合计算交集的方法的流程示意图。
具体实施方式
以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例1
参考图1,本实施例公开的终端威胁检测与响应引擎包括:动作检测模块01、基础信息模块02、行为分析模块03、威胁报警模块04和自动处置模块05;其中,动作检测模块01用于获取系统发生事件的数据以及附加信息,检测所述事件行为规则包含的所有动作规则,对可疑行为规则包含的每个动作规则的进程PID形成动作检测标志;基础信息模块02用于存储标识动作规则的进程是否存在威胁的进程属性并以存储的进程属性形成关于进程是否存在威胁的黑白名单列表;行为分析模块03用于对每个可疑行为规则所包含的所有动作检测标志进行行为匹配分析,如果所述可疑行为规则所包含的所有动作检测标志全部与至少一个标志位匹配,所述可疑行为规则确定存在威胁;威胁报警模块04用于在确定所述可疑行为规则存在威胁后发出威胁报警并将所述行为规则对应的所述事件的数据以及附加信息上传至服务器;及自动处置模块05用于在确定所述可疑行为规则存在威胁后自动调用行为规则的自动响应脚本进行响应处理,针对所述行为规则相关的文件、注册表、网络、模块/动态库、进程进行微粒度控制,防止威胁攻击行为的达成。
参考图2,本实施例公开的终端威胁检测与响应方法包括:动作检测模块01获取系统发生事件的数据以及附加信息,将接收到的原始数据收集之后进行二次处理为引擎需要的格式;动作检测模块01检测所述事件行为规则包含的所有动作规则,利用进程属性标示所述动作规则的进程是否存在威胁;动作检测模块01针对被标示的可疑行为规则包含的所有动作规则形成至少一个动作检测标志;当动作检测模块01检测之后形成的动作检测标志传给行为分析模块03进行多种动作的组合判断,行为分析模块03对每个可疑行为规则所包含的所有动作检测标志进行行为匹配分析;如果所述可疑行为规则所包含的所有动作检测标志全部与至少一个标志位匹配,所述可疑行为规则确定存在威胁;多种动作规则的组合判断可以根据规则中定义的某种动作规则先后顺序、达标条件等情况实际做出调整,当所有的动作规则都被行为分析模块03判定为“匹配”的情况下,将由自动处置模块05自动调用行为规则中的自动响应脚本,并且传给威胁报警模块04进行报警,以此循环。其中,每个动作检测标志为由每个动作规则的所有的进程PID作为元素形成的一个可疑进程PID列表,所述标志位为所述可疑进程PID列表中的某个进程PID元素。
进一步地,利用进程属性标示所述动作规则的进程是否有确定的威胁之后,所述方法还包括:实时判断获取的系统发生事件的数据以及附加信息的去向,其包括:判断所述事件的行为规则是否包含多个动作规则;若所述行为规则包含多个动作规则,判断所述多个动作规则之间是否存在时序性;若所述行为规则的所有动作规的进程均未被标示,则丢弃所述行为规则对应的所述事件的数据以及附加信息;若所述行为规则包含一个动作规则并所述动作规则被标示,则直接确定所述行为规则存在威胁;若所述行为规则包含彼此之间存在时序性的多个动作规则并所述多个动作规则被标示,则缓存所述行为规则对应的所述事件的数据以及附加信息并进行行为匹配分析;若所述行为规则包含彼此之间不存在时序性的多个动作规则并所述多个动作规则被标示,则对所述行为规则对应的所述事件的数据以及附加信息进行行为匹配分析。
进一步地,引擎集成到系统中之后是运行与操作系统的Ring3级别连接,所以最底层的数据是由处于Ring0级的驱动程序进行主动/被动获取,并且通过接口返回给Ring3的程序之后,将数据按照一定的格式组织好之后交给动作检测模块01,引擎在启动的时候会向Ring3的服务程序中要求注册进程信息、网络通信、文件访问、动态库加载、注册表访问(Windows系统)这五个基础的回调通知。当发生这些事件的时候Ring3主动将发生这些事件的数据以及附加信息传递给引擎的动作检测模块01,由动作检测模块01对数据进行二次加工以及必要的丢弃或者是缓存。
每个进程都有些自己独特的一些属性,比如:MD5、SHA-1、SHA-256、创建/修改/访问时间、签名信息、文件尺寸、文件头、文件类型、图标、可见字符串等信息。利用这些信息可以用来标示某一个进程是否有确定的威胁,当这样的数据足够多的时候就可以得到一个关于进程是否存在威胁的黑白名单列表,通过这些信息就可以快速的判断某一个文件是否含有威胁,并且通过这个进程在各种痕迹中找到与之相关的任何可用信息,以便于预判潜在威胁。上述进程属性以及关于进程是否存在威胁的黑白名单列表均作为基础信息存储在基础信息模块02中,如果某一种已知/未知的行为需要用到基础信息,则引擎会调用基础信息模块02中的基础信息进行判断。
参考图3,本发明实施例中以树形的方式保存每一个所述可疑行为规则的所有动作规则以及每个所述动作规则的所有进程PID。通过图3可以看到,每一个Rule(即行为规则)在引擎中以树形的方式保存了有关的所有Action(动作规则),当将这些动作规则匹配之前,会记录其进程信息(图中利用进程PID表示)。从Rule1来解释的话,即:进程PID1同时匹配了Action1、Action2、Action3这三个动作规则,而这三个动作规则又组成了Rule1这个行为规则,所以Rule1这个行为规则被触发存在威胁,当触发行为规则之后,行为分析模块03调用威胁报警模块04向服务器发起报警。
由于在行为分析模块03中保存了每一个触发可疑动作的进程信息,当这些信息被动作检测模块01捕获之后,会随之记录其进程信息、网络通信、文件访问、注册表、动态库加载列表等一系列相关的所有信息。如果行为分析模块03中关于某个行为规则的所有动作规则全部匹配之后,威胁报警模块04将会认为这个行为规则被触发(所有动作规则匹配),这个时候引擎会调用威胁报警模块04的上报威胁的功能将记录的所有信息一并上报到服务器,并调用自动处置模块05对发生该威胁之后的后续进行处理,如图4所示。
在每一个可疑行为规则中,被划分成了三个大的部分,其中第一个部分是对行为规则的描述,第二部分为匹配数据,第三部分为自动响应脚本。在所有动作规则都成功匹配的情况下,自动处置模块05会自动的调用对应行为规则的自动响应脚本进行响应处理,而在处理的时候脚本可以针对文件、注册表、网络、模块/动态库、进程进行微粒度的控制,从而用最低的开销以及对系统最小的影响达到防止威胁攻击行为的达成。
本实施例中公开的终端威胁检测与响应方法中的所述对每个可疑行为规则所包含的所有动作检测标志进行行为匹配分析的行为匹配算法包括:利用所述可疑行为规则所包含的所有动作规则的可疑进程PID列表组合匹配计算交集,参考图5,其包括:对每个可疑行为规则所包含的所有动作规则进行编号;根据编号顺序选取前两个动作规则的可疑进程PID列表进行组合计算交集;若前两个动作规则的可疑进程PID列表不存在交集,则停止计算,所述可疑行为规则确定暂时不存在威胁;若前两个动作规则的可疑进程PID列表存在交集,利用前次计算得出的可疑进程PID交集列表与下一个编号的动作规则的可疑进程PID列表组合计算交集;若前次计算得出的可疑进程PID交集列表与下一个编号的动作规则的可疑进程PID列表不存在交集,则停止计算,所述可疑行为规则确定暂时不存在威胁;若前次计算得出的可疑进程PID交集列表与下一个编号的动作规则的可疑进程PID列表存在交集,继续计算直到所述可疑行为规则所包含的所有动作规则的可疑进程PID列表组合计算完毕;若存在交集,则所述可疑行为规则确定存在威胁。
要实现报警会面临一个比较棘手的问题,那就是如果动作、规则过多,数据结构过于复杂,那么用平时的方式的话,只能是从第一个行为规则的第一个匹配标记一直到最后一个行为规则的最后一个动作规则进行遍历,最难以接受的是这种遍历的动作规则会在实际应用中每一个操作系统动作规则都会进行一次遍历,例如:某个进程发生了五次文件操作事件(读取、写入、打开、关闭、删除都各算一次),而当前系统中有10条行为规则,每条规则有20个动作规则,而每个动作规则记录了10个进程信息,那么要这五次文件操作所需要付出的引擎开销则是10×20×10×5=10000次,这意味着引擎需要在内存中查找1万次才能将这五次文件操作消化掉。而操作系统在实际工作的时候,各种动作的总和可能会达到每秒上万次,在这种数量级的压力下,引擎中保存的数据会爆炸性增长,而且遍历速度异常缓慢,从而造成系统卡顿、引擎丢失数据、处理队列过快等一系列的问题。
所以,为了节约系统的开销,提高引擎的运行速度,操作系统报告的每一个事件不可能做到每一项都要保存,在引擎中只是用动作检测模块01为行为规则的某一个项打上一个“已匹配”的标志,与此同时需要一个合适的行为匹配算法进行行为动作的匹配,而不降低速度。经过研究,本实施例先给每一种动作规则进行编号(实际应用中“动作”的数量并不多,为动作规则打标志其实属于顺手一做的事情),当每一个“标志”被打上之后,数据就有了规律,利用这些规律,我们就可以在行为分析模块03中使用比较科学的方式对行为规则进行判断。
参考图6,本发明实施例公开的所述动作规则的可疑进程PID列表与所述动作规则的可疑进程PID列表或所述前次计算得出的可疑进程PID交集列表组合计算交集的方法包括:将两个动作规则的可疑进程PID列表分别定义为第一可疑进程PID匹配列表和第二可疑进程PID匹配列表,或将所述动作规则的可疑进程PID列表和所述前次计算得出的可疑进程PID交集列表分别定义为第一可疑进程PID匹配列表和第二可疑进程PID匹配列表,优选地,从所述两个动作规则的可疑进程PID列表或所述动作规则的可疑进程PID列表与所述动作规则的可疑进程PID列表中选取列表长度较短的一个作为第一可疑进程PID匹配列表,及选取列表长度较长的另一个作为第二可疑进程PID匹配列表;从第一可疑进程PID匹配列表中从前至后依次选取尚未匹配的进程PID元素L1(i);用选出的进程PID元素L1(i)与所述第二可疑进程PID匹配列表中的尚未匹配的进程PID元素L2(i)从前至后依次进行比较,其中,0≤i≤第一可疑进程PID匹配列表的长度或第二可疑进程PID匹配列表的长度;若从第二可疑进程PID匹配列表中尚未匹配的进程PID元素L2(i)中找到了一个与选出的进程PID元素L1(i)相同的进程PID元素L2(j),则在所述第二可疑进程PID匹配列表中将进程PID元素L2(j)与进程PID元素L2(i)交换位置,及i=i+1,进行下次迭代,其中,i≤j≤第二可疑进程PID匹配列表的长度;若从第二可疑进程PID匹配列表中尚未匹配的进程PID元素L2(i)中直到结尾也未找到与选出的进程PID元素L1(i)相同的元素,则在所述第一可疑进程PID匹配列表中将选出的进程PID元素L1(i)与尚未匹配的最后一个进程PID元素L1(k)交换位置,及将进程PID元素L1(k)交换位置后的作为新选出的进程PID元素L1(i),其中,k=第二可疑进程PID匹配列表的长度;用新选出的进程PID元素L1(i)与所述第二可疑进程PID匹配列表中的尚未匹配的进程PID元素L2(i)从前至后依次进行比较;若从第二可疑进程PID匹配列表中尚未匹配的进程PID元素L2(i)中找到了一个与新选出的进程PID元素L1(i)相同的进程PID元素L2(j),则在所述第二可疑进程PID匹配列表中将进程PID元素L2(j)与进程PID元素L2(i)交换位置,及将i=i+1,进行下次迭代,其中,i≤j≤第二可疑进程PID匹配列表的长度;若从第二可疑进程PID匹配列表中尚未匹配的进程PID元素L2(i)中直到结尾也未找到与新选出的进程PID元素L1(i)相同的元素,则将k=k-n,1≤n≤k-1,从小至大依次取值进行迭代;直到i=k-n时,迭代完成,此时,计算出的所述第一可疑进程PID匹配列表和所述第二可疑进程PID匹配列表的交集为{L1(0)、L1(1)、…L1(k-n-1)}或{L2(0)、L2(1)、…L2(k-n-1)}。
参考图7,采用数组说明本发明实施例公开的动作规则的可疑进程PID列表与动作规则的可疑进程PID列表或前次计算得出的可疑进程PID交集列表组合计算交集的方法,图中使用1-9数字代表可疑行为规则中包含的动作规则的进程PID元素,利用由1-9数字形成的数组表示可疑进程PID列表以及可疑进程PID交集列表。图7中举例的两个数组分别代表定义后的第一可疑进程PID匹配列表和第二可疑进程PID匹配列表,首先从代表第一可疑进程PID匹配列表的第一个数组中选取第一个尚未匹配的数字7;用选出的数字7与代表第二可疑进程PID匹配列表的第二个数组中的尚未匹配的数字从前至后依次进行比较,此时,第二个数组中没有与数字7与相同的元素,因此,将7与第一个数组的最后一个数字6交换,用交换后的数字6与第二个数组中的尚未匹配的数字从前至后依次进行比较,在第二个数组中第17个数字也为6,这样,在第二个数组中将第17个数字6与第1个数字8进行交换,之后,将从第一个数组中依次选取下一个数字进行下次迭代;若第二个数组中存在与数字7与相同的元素,便直接第一个数组中依次选取下一个数字进行下次迭代;若第二个数组中不存在与数字6与相同的元素,便第一个数组的最后一个数字6依次向前选取数字交换与数字6进行交换进行下次迭代;直到所有的数字交换完毕,若第一个数组和第二个数组存在交集,便计算出第一个数组和第二个数组的交集。
本实施例中公开的上述行为匹配算法仅需要两个可疑进程PID列表便可实现行为匹配分析,而不需要另外两个进程PID列表来存储每次迭代对比计算的结果,另外,也进一步优化了迭代对比计算,本实施例公开的上述行为匹配算法,一旦第二可疑进程PID匹配列表中的进程PID元素被对比后与第一可疑进程PID匹配列表中的进程PID元素相同,在下次迭代计算中将会被排除,这样,将不用重复对其计算,优化了迭代计算过程,节省了迭代计算的时间,使行为匹配算法更快。
本发明实施例中上述描述的动作规则用于描述一个“威胁”的最低单位,是组成行为规则的一些最微观的描述,这些动作规则使用规则表述语言对操作系统、网络、文件等系统行为进行描述,并进行记录,以此作为依据提供给行为分析模块使用。本发明实施例中上述描述的行为规则为由一个或者多个动作规则组成的一套规则,这个规则中将没有任何业务逻辑的动作规则组合,并且限定(或不限定)每个动作规则的发生时序、次数,并且将动作规则组合之后,用于描述一个“威胁行为”。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (10)
1.终端威胁检测与响应方法,其特征在于,所述方法包括:
获取系统发生事件的数据以及附加信息;
检测所述事件行为规则包含的所有动作规则,利用进程属性标示所述动作规则的进程是否存在威胁;
针对被标示的可疑行为规则包含的所有动作规则形成至少一个动作检测标志;
对每个可疑行为规则所包含的所有动作检测标志进行行为匹配分析;
如果所述可疑行为规则所包含的所有动作检测标志全部与至少一个标志位匹配,所述可疑行为规则确定存在威胁;
其中,每个动作检测标志为由每个动作规则的所有的进程PID作为元素形成的一个可疑进程PID列表,所述标志位为所述可疑进程PID列表中的某个进程PID元素;
所述可疑行为规则经行为匹配分析确定存在威胁后,所述方法还包括:
自动调用行为规则的自动响应脚本进行响应处理,针对所述行为规则相关的文件、注册表、网络、模块/动态库、进程进行微粒度控制,防止威胁攻击行为的达成。
2.根据权利要求1所述的终端威胁检测与响应方法,其特征在于,利用进程属性标示所述动作规则的进程是否存在威胁之后,所述方法还包括:
实时判断获取的系统发生事件的数据以及附加信息的去向,其包括:
判断所述事件的行为规则是否包含多个动作规则;
若所述行为规则包含多个动作规则,判断所述多个动作规则之间是否存在时序性;
若所述行为规则的所有动作规则的进程均未被标示,则丢弃所述行为规则对应的所述事件的数据以及附加信息;
若所述行为规则包含一个动作规则并所述动作规则被标示,则直接确定所述行为规则存在威胁;
若所述行为规则包含彼此之间存在时序性的多个动作规则并所述多个动作规则被标示,则缓存所述行为规则对应的所述事件的数据以及附加信息并进行行为匹配分析;
若所述行为规则包含彼此之间不存在时序性的多个动作规则并所述多个动作规则被标示,则对所述行为规则对应的所述事件的数据以及附加信息进行行为匹配分析。
3.根据权利要求2所述的终端威胁检测与响应方法,其特征在于,所述事件包括:注册进程信息、网络通信、文件访问、动态库加载和注册表访问。
4.根据权利要求1所述的终端威胁检测与响应方法,其特征在于,所述进程属性包括:MD5、SHA-1、SHA-256、创建/修改/访问时间、签名信息、文件尺寸、文件头、文件类型、图标和可见字符串。
5.根据权利要求1所述的终端威胁检测与响应方法,其特征在于,以树形的方式保存每一个所述可疑行为规则的所有动作规则以及每个所述动作规则的所有进程PID。
6.根据权利要求1所述的终端威胁检测与响应方法,其特征在于,所述可疑行为规则经行为匹配分析确定存在威胁后,所述方法还包括:
发出威胁报警并将所述行为规则对应的所述事件的数据以及附加信息上传至服务器。
7.根据权利要求1所述的终端威胁检测与响应方法,其特征在于,所述对每个可疑行为规则所包含的所有动作检测标志进行行为匹配分析的行为匹配算法包括:
利用所述可疑行为规则所包含的所有动作规则的可疑进程PID列表组合匹配计算交集,其包括:
对每个可疑行为规则所包含的所有动作规则进行编号;
根据编号顺序选取前两个动作规则的可疑进程PID列表进行组合计算交集;
若前两个动作规则的可疑进程PID列表不存在交集,则停止计算,所述可疑行为规则确定暂时不存在威胁;
若前两个动作规则的可疑进程PID列表存在交集,利用前次计算得出的可疑进程PID交集列表与下一个编号的动作规则的可疑进程PID列表组合计算交集;
若前次计算得出的可疑进程PID交集列表与下一个编号的动作规则的可疑进程PID列表不存在交集,则停止计算,所述可疑行为规则确定暂时不存在威胁;
若前次计算得出的可疑进程PID交集列表与下一个编号的动作规则的可疑进程PID列表存在交集,直到所述可疑行为规则所包含的所有动作规则的可疑进程PID列表组合计算完毕;
若存在交集,则所述可疑行为规则确定存在威胁。
8.根据权利要求7所述的终端威胁检测与响应方法,其特征在于,所述动作规则的可疑进程PID列表与所述动作规则的可疑进程PID列表或所述前次计算得出的可疑进程PID交集列表组合计算交集的方法包括:
将两个动作规则的可疑进程PID列表分别定义为第一可疑进程PID匹配列表和第二可疑进程PID匹配列表,或将所述动作规则的可疑进程PID列表和所述前次计算得出的可疑进程PID交集列表分别定义为第一可疑进程PID匹配列表和第二可疑进程PID匹配列表;
从第一可疑进程PID匹配列表中从前至后依次选取尚未匹配的进程PID元素L1(i);
用选出的进程PID元素L1(i)与所述第二可疑进程PID匹配列表中的尚未匹配的进程PID元素L2(i)从前至后依次进行比较,其中,0≤i≤第一可疑进程PID匹配列表的长度或第二可疑进程PID匹配列表的长度;
若从第二可疑进程PID匹配列表中尚未匹配的进程PID元素L2(i)中找到了一个与选出的进程PID元素L1(i)相同的进程PID元素L2(j),则在所述第二可疑进程PID匹配列表中将进程PID元素L2(j)与进程PID元素L2(i)交换位置,及i=i+1,进行下次迭代,其中,i≤j≤第二可疑进程PID匹配列表的长度;
若从第二可疑进程PID匹配列表中尚未匹配的进程PID元素L2(i)中直到结尾也未找到与选出的进程PID元素L1(i)相同的元素,则在所述第一可疑进程PID匹配列表中将选出的进程PID元素L1(i)与尚未匹配的最后一个进程PID元素L1(k)交换位置,及将进程PID元素L1(k)交换位置后的作为新选出的进程PID元素L1(i),其中,k=第二可疑进程PID匹配列表的长度;
用新选出的进程PID元素L1(i)与所述第二可疑进程PID匹配列表中的尚未匹配的进程PID元素L2(i)从前至后依次进行比较;
若从第二可疑进程PID匹配列表中尚未匹配的进程PID元素L2(i)中找到了一个与新选出的进程PID元素L1(i)相同的进程PID元素L2(j),则在所述第二可疑进程PID匹配列表中将进程PID元素L2(j)与进程PID元素L2(i)交换位置,及将i=i+1,进行下次迭代,其中,i≤j≤第二可疑进程PID匹配列表的长度;
若从第二可疑进程PID匹配列表中尚未匹配的进程PID元素L2(i)中直到结尾也未找到与新选出的进程PID元素L1(i)相同的元素,则将k=k-n,1≤n≤k-1,依次进行迭代;
直到i=k-n时,迭代完成,此时,计算出的所述第一可疑进程PID匹配列表和所述第二可疑进程PID匹配列表的交集为{L1(0)、L1(1)、…L1(k-n-1)}或{L2(0)、L2(1)、…L2(k-n-1)}。
9.根据权利要求8所述的终端威胁检测与响应方法,其特征在于,从所述两个动作规则的可疑进程PID列表或所述动作规则的可疑进程PID列表与所述动作规则的可疑进程PID列表中选取列表长度较短的一个作为第一可疑进程PID匹配列表,及选取列表长度较长的另一个作为第二可疑进程PID匹配列表。
10.终端威胁检测与响应引擎,其特征在于,所述引擎包括:
动作检测模块,用于获取系统发生事件的数据以及附加信息,检测所述事件行为规则包含的所有动作规则,对可疑行为规则包含的每个动作规则的进程PID形成动作检测标志;
基础信息模块,用于存储标识动作规则的进程是否存在威胁的进程属性并以存储的进程属性形成关于进程是否存在威胁的黑白名单列表;
行为分析模块,用于对每个可疑行为规则所包含的所有动作检测标志进行行为匹配分析,如果所述可疑行为规则所包含的所有动作检测标志全部与至少一个标志位匹配,所述可疑行为规则确定存在威胁;其中,每个动作检测标志为由每个动作规则的所有的进程PID作为元素形成的一个可疑进程PID列表,所述标志位为所述可疑进程PID列表中的某个进程PID元素;
威胁报警模块,用于在确定所述可疑行为规则存在威胁后发出威胁报警并将所述行为规则对应的所述事件的数据以及附加信息上传至服务器;及
自动处置模块,用于在确定所述可疑行为规则存在威胁后自动调用行为规则的自动响应脚本进行响应处理,针对所述行为规则相关的文件、注册表、网络、模块/动态库、进程进行微粒度控制,防止威胁攻击行为的达成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810973711.5A CN109255238B (zh) | 2018-08-24 | 2018-08-24 | 终端威胁检测与响应方法及引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810973711.5A CN109255238B (zh) | 2018-08-24 | 2018-08-24 | 终端威胁检测与响应方法及引擎 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109255238A CN109255238A (zh) | 2019-01-22 |
CN109255238B true CN109255238B (zh) | 2022-01-28 |
Family
ID=65050424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810973711.5A Active CN109255238B (zh) | 2018-08-24 | 2018-08-24 | 终端威胁检测与响应方法及引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109255238B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111030968A (zh) * | 2019-01-24 | 2020-04-17 | 哈尔滨安天科技集团股份有限公司 | 一种可自定义威胁检测规则的检测方法、装置及存储介质 |
CN112187700A (zh) * | 2019-07-02 | 2021-01-05 | 网宿科技股份有限公司 | 一种waf安全规则匹配方法、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350052A (zh) * | 2007-10-15 | 2009-01-21 | 北京瑞星国际软件有限公司 | 发现计算机程序的恶意行为的方法和装置 |
CN105871883A (zh) * | 2016-05-10 | 2016-08-17 | 上海交通大学 | 基于攻击行为分析的高级持续性威胁检测方法 |
CN106656991A (zh) * | 2016-10-28 | 2017-05-10 | 上海百太信息科技有限公司 | 一种网络威胁检测系统及检测方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9336385B1 (en) * | 2008-02-11 | 2016-05-10 | Adaptive Cyber Security Instruments, Inc. | System for real-time threat detection and management |
CN101827080A (zh) * | 2010-02-04 | 2010-09-08 | 蓝盾信息安全技术股份有限公司 | 一种阻止网络攻击的方法及装置 |
IL219597A0 (en) * | 2012-05-03 | 2012-10-31 | Syndrome X Ltd | Malicious threat detection, malicious threat prevention, and a learning systems and methods for malicious threat detection and prevention |
CN103065093B (zh) * | 2012-12-27 | 2014-09-17 | 中国人民解放军国防科学技术大学 | 一种恶意软件行为特征标识方法 |
US9418222B1 (en) * | 2013-09-27 | 2016-08-16 | Symantec Corporation | Techniques for detecting advanced security threats |
US9756074B2 (en) * | 2013-12-26 | 2017-09-05 | Fireeye, Inc. | System and method for IPS and VM-based detection of suspicious objects |
CN104468632A (zh) * | 2014-12-31 | 2015-03-25 | 北京奇虎科技有限公司 | 防御漏洞攻击的方法、设备及系统 |
US10033759B1 (en) * | 2015-09-28 | 2018-07-24 | Fireeye, Inc. | System and method of threat detection under hypervisor control |
CN107315952A (zh) * | 2016-04-26 | 2017-11-03 | 华为技术有限公司 | 用于确定应用程序可疑行为的方法和装置 |
CN106384048B (zh) * | 2016-08-30 | 2021-05-07 | 北京奇虎科技有限公司 | 一种威胁信息处理方法与装置 |
CN106650436B (zh) * | 2016-12-29 | 2019-09-27 | 北京奇虎科技有限公司 | 一种基于局域网的安全检测方法和装置 |
CN107992751B (zh) * | 2017-12-21 | 2020-05-08 | 苏州浪潮智能科技有限公司 | 一种基于分支行为模型的实时威胁检测方法 |
-
2018
- 2018-08-24 CN CN201810973711.5A patent/CN109255238B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350052A (zh) * | 2007-10-15 | 2009-01-21 | 北京瑞星国际软件有限公司 | 发现计算机程序的恶意行为的方法和装置 |
CN105871883A (zh) * | 2016-05-10 | 2016-08-17 | 上海交通大学 | 基于攻击行为分析的高级持续性威胁检测方法 |
CN106656991A (zh) * | 2016-10-28 | 2017-05-10 | 上海百太信息科技有限公司 | 一种网络威胁检测系统及检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109255238A (zh) | 2019-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853303B1 (en) | Data stream generation based on sourcetypes associated with messages | |
US9679139B1 (en) | System and method of performing an antivirus scan of a file on a virtual machine | |
CN110012037B (zh) | 基于不确定性感知攻击图的网络攻击预测模型构建方法 | |
EP4246895A2 (en) | Distributed digital security system | |
AU2019307885B2 (en) | Systems and methods for reporting computer security incidents | |
CN110912908B (zh) | 网络协议异常检测方法、装置、计算机设备和存储介质 | |
US11593473B2 (en) | Stack pivot exploit detection and mitigation | |
WO2019144548A1 (zh) | 安全测试方法、装置、计算机设备和存储介质 | |
CN109255238B (zh) | 终端威胁检测与响应方法及引擎 | |
JP6282217B2 (ja) | 不正プログラム対策システムおよび不正プログラム対策方法 | |
US8407187B2 (en) | Validating files using a sliding window to access and correlate records in an arbitrarily large dataset | |
CN107330031A (zh) | 一种数据存储的方法、装置及电子设备 | |
CN116361153A (zh) | 固件代码的测试方法、装置、电子设备、存储介质 | |
CN116094849A (zh) | 应用访问鉴权方法、装置、计算机设备和存储介质 | |
JP4849941B2 (ja) | ソフトウェア動作モデル化装置 | |
CN113765852B (zh) | 数据包的检测方法、系统、存储介质和计算设备 | |
CN114356560B (zh) | 资源对象获取方法及系统 | |
CN114745336B (zh) | 基于rfc的报文分类方法、装置、计算机设备和存储介质 | |
WO2022113355A1 (ja) | システム監視装置、システム監視方法、及びコンピュータ読み取り可能な記録媒体 | |
EP4296872A1 (en) | Distributed digital security system for predicting malicious behavior | |
EP4339817A1 (en) | Anomalous command line entry detection | |
CN116842526A (zh) | 漏洞检测方法、装置、计算机设备和存储介质 | |
CN116860359A (zh) | 接口调用信息返回方法、装置、计算机设备和存储介质 | |
CN115834204A (zh) | 一种操作异常的分析方法及装置 | |
US20200184069A1 (en) | Detecting Stack Pivots Using Stack Artifact Verification |
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 |