发明内容
本发明的目的是提供一种攻击结果检测方法、装置、***、计算机设备和介质,用于解决现有技术中的上述技术问题。
一方面,为实现上述目的,本发明提供了一种攻击结果检测方法。
该攻击结果检测方法包括:判断待检测的流量数据是否为攻击流量;当流量数据为攻击流量时,根据攻击流量确定被攻击地址和第三方地址,并确定攻击流量对应的协议类型;获取协议类型的流量日志;检测流量日志中是否包括由被攻击地址请求第三方地址的请求日志;以及当协议类型的流量日志中包括由被攻击地址请求第三方地址的请求日志时,确定攻击流量的攻击结果为攻击成功。
进一步地,根据攻击流量确定第三方地址的步骤包括:从攻击流量中提取请求数据;在请求数据中提取地址信息,以得到第三方地址。
进一步地,在请求数据中提取地址信息,以得到第三方地址的步骤包括:查询请求数据中的协议标识;提取协议标识后的地址信息,以得到第三方地址。
进一步地,在请求数据中提取地址信息,以得到第三方地址的步骤包括:查询请求数据中的预设命令;提取预设命令后的地址信息,以得到第三方地址。
进一步地,在请求数据中提取地址信息,以得到第三方地址的步骤包括:查询请求数据中满足预设数据格式的地址信息,以得到第三方地址。
进一步地,判断待检测的流量数据是否为攻击流量的步骤包括:流量检测设备的判断模块判断待检测的流量数据是否为攻击流量。
进一步地,攻击结果检测方法还包括:当流量数据为攻击流量时,流量检测设备的判断模块将攻击流量发送至流量检测设备的处理模块;当流量数据为攻击流量时,根据攻击流量确定被攻击地址和第三方地址,并确定攻击流量对应的协议类型的步骤包括:流量检测设备的处理模块根据攻击流量确定被攻击地址和第三方地址,并确定攻击流量对应的协议类型。
进一步地,攻击结果检测方法还包括:流量检测设备的处理模块生成告警信息,其中,告警信息包括攻击标志和附加信息,附加信息包括被攻击地址、第三方地址和协议类型;告警分析设备查找包括攻击标志的告警信息;获取协议类型的流量日志,检测流量日志中是否包括由被攻击地址请求第三方地址的请求日志,当协议类型的流量日志中包括由被攻击地址请求第三方地址的请求日志时,确定攻击流量的攻击结果为攻击成功的步骤包括:告警分析设备查找到包括攻击标志的告警信息时,根据附加信息中的协议类型获取协议类型的流量日志,检测流量日志中是否包括由被攻击地址请求第三方地址的请求日志,并当协议类型的流量日志中包括由被攻击地址请求第三方地址的请求日志时,确定攻击流量的攻击结果为攻击成功。
另一方面,为实现上述目的,本发明提供了一种攻击结果检测装置。
该攻击结果检测装置包括:判断模块,用于判断待检测的流量数据是否为攻击流量;处理模块,用于当流量数据为攻击流量时,根据攻击流量确定被攻击地址和第三方地址,并确定攻击流量对应的协议类型;获取模块,用于获取协议类型的流量日志;检测模块,用于检测流量日志中是否包括由被攻击地址请求第三方地址的请求日志;以及确定模块,用于当协议类型的流量日志中包括由被攻击地址请求第三方地址的请求日志时,确定攻击流量的攻击结果为攻击成功。
又一方面,为实现上述目的,本发明提供了一种攻击结果检测***。
该攻击结果检测***包括流量检测设备和告警分析设备,其中,流量检测设备包括判断模块和处理模块,其中:判断模块用于判断待检测的流量数据是否为攻击流量,当流量数据为攻击流量时,将攻击流量发送至处理模块;处理模块用于根据攻击流量确定被攻击地址和第三方地址,并确定攻击流量对应的协议类型,并生成告警信息,其中,告警信息包括攻击标志和附加信息,附加信息包括被攻击地址、第三方地址和协议类型;告警分析设备用于查找包括攻击标志的告警信息,并当查找到包括攻击标志的告警信息时,根据附加信息中的协议类型获取协议类型的流量日志,检测流量日志中是否包括由被攻击地址请求第三方地址的请求日志,并当协议类型的流量日志中包括由被攻击地址请求第三方地址的请求日志时,确定攻击流量的攻击结果为攻击成功。
又一方面,为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
又一方面,为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的攻击结果检测方法、装置、***、计算机设备和介质,对待检测的流量数据进行判断,先判断流量数据是否为攻击流量,如果属于攻击流量,再进一步对攻击流量的数据进行解析,确定出攻击流量对应的协议类型以获取该协议类型的流量日志,确定出被攻击地址和第三方地址,以检测上述流量日志中是否包括由被攻击地址请求第三方地址的请求日志,最终当检测到协议类型的流量日志中包括由被攻击地址请求第三方地址的请求日志时,便可确定攻击流量的攻击结果为攻击成功。通过本发明,能够对流量数据进行检测,在检测到攻击流量时,进一步确定出攻击结果。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了通过流量数据检测攻击以及攻击结果,发明人对现有技术进行了如下的研究:在现有技术中,通过流量实时检测引擎可根据攻击特征、攻击者IP、受害者IP以及单双向的流量方向等,能够检测出流量数据是否为攻击流量,但是,并不能直接检测出是否攻击成功。对此,发明人对一些攻击成功的请求进一步分析得到:对于需要访问外部目标的攻击手法,当攻击者发送恶意攻击流量到达被攻击的目标机器时,首先会产生第一条流量数据,也即攻击者到目标机器的攻击流量,然后如果攻击成功,还会产生第二条流量数据,也目标机器向第三方发起的请求流量。这些流量数据都会经过流量实时检测引擎,但是只有第一条流量数据由于携带显著的攻击特征而被检测,触发流量检测设备的告警规则,第二条流量数据并不能触发告警,发明人经过上述分析可以得出,如果能够同时检测到第一条流量数据和第二条流量数据,即可确定攻击者向目标机器发送了恶意攻击流量,且攻击成功。
基于此,本发明提供了一种攻击结果检测方法、装置、***、计算机设备和计算机可读存储介质,首先判断待检测的流量数据是否为攻击流量,当流量数据为攻击流量时,对攻击流量的数据进行解析,根据攻击流量确定被攻击地址和第三方地址,并确定攻击流量对应的协议类型,然后获取该协议类型的流量日志,检测流量日志中是否包括由被攻击地址请求第三方地址的请求日志,当协议类型的流量日志中包括由被攻击地址请求第三方地址的请求日志时,则可确定攻击流量的攻击结果为攻击成功。
从中可以看出,采用本发明提供的攻击结果检测方法、装置、***、计算机设备和计算机可读存储介质,能够检测出攻击流量并进一步确定攻击结果。
关于发明提供的攻击结果检测方法、装置、***、计算机设备和计算机可读存储介质的具体实施例,将在下文中详细描述。
实施例一
本发明实施例提供了一种攻击结果检测方法,通过该方法,能够确定攻击流量以及攻击流量对应的攻击结果,具体地,图1为本发明实施例一提供的攻击结果检测方法的流程图,如图1所示,该实施例提供的攻击结果检测方法包括如下的步骤S101至步骤S109。
步骤S101:判断待检测的流量数据是否为攻击流量。
具体地,设置流量检测设备对实时流量数据进行检测。当待检测的流量数据到达流量检测设备时,流量检测设备根据攻击特征判断该流量数据是否为攻击流量。其中,可依据攻击特征设置多种攻击判断模型,应对流量数据进行检测判断,具体的检测方式可参考现有技术中的相关检测方法,该处不再赘述。
当流量数据不为攻击流量时,流量检测设备可不做任何处理,当流量数据为攻击流量时,执行如下的步骤S103。
步骤S103:当流量数据为攻击流量时,根据攻击流量确定被攻击地址和第三方地址,并确定攻击流量对应的协议类型。
当流量数据为攻击流量时,需要进一步判断该攻击流量的攻击结果。对于需要访问外部目标的攻击,攻击类型包含但不限于命令执行、代码执行、SQL注入、XSS、SSRF、XXE注入、反序列化等。可选地,攻击流量包括源地址、请求的目标地址以及请求数据等,其中,源地址为攻击者的地址,请求的目标地址也即被攻击地址,因此,根据攻击流量即可确定出被攻击地址;请求数据包括请求方向、请求头、请求体、请求的负载等信息,其中,对于需要访问外部目标的攻击流量,请求数据中的请求头、请求体和/或请求的负载中包括欲使目标地址进一步请求的第三方地址,因此,根据攻击流量也可确定出第三方地址,同时,也可根据攻击流量确定出其对应的协议类型。
具体可选地,根据攻击流量确定第三方地址时,具体执行的步骤包括:从攻击流量中提取请求数据;在请求数据中提取地址信息,以得到第三方地址,即首先从攻击流量中提取出包括第三方地址的请求数据,将第三方地址与源地址和目标地址分离,然后在该请求数据中进一步提取地址信息,得到的地址即为第三方地址。
进一步可选地,在请求数据中提取地址信息,以得到第三方地址时,首先查询请求数据中的协议标识,然后提取协议标识后的地址信息,以得到第三方地址。具体而言,在一些攻击流量中,外部地址以协议标识(schema)开头,例如http/https/ftp/tftp/sftp/dict/gopher/file/ldap等等,在该实施例中,可通过正则表达式匹配这些协议标识,再找到这些协议标识之后,提取之后的地址,例如IP地址或域名等,比具体如请求数据中出现:http://192.168.1.1,可得到第三方地址为192.168.1.1。
进一步可选地,在请求数据中提取地址信息,以得到第三方地址时,首先查询请求数据中的预设命令,然后提取预设命令后的地址信息,以得到第三方地址。具体而言,在一些攻击流量的特定位置上,比如一些攻击中可能用到的命令后设置第三方地址,预设命令包括wget/curl/ping/dig/tracepath/net/nslookup等,可通过正则表达式匹配这些预设命令,通过找到这些命令然后提取之后的地址信息,比如:wget 1.2.3.4,可得到第三方地址为1.2.3.4。
进一步可选地,在请求数据中提取地址信息,以得到第三方地址时,通过查询请求数据中满足预设数据格式的地址信息,以得到第三方地址。具体而言,在一些攻击场景下,比如数据库连接、反弹shell等场景下,地址信息具有特定的格式如"jdbc:db2://1.2.3.4:5000/sample",对此,可根据该特定格式设置预设数据格式,对请求数据进行匹配,对满足该预设数据格式的地址信息进行地址提取,可得到第三方地址为1.2.3.4。
步骤S105:获取协议类型的流量日志。
步骤S107:检测流量日志中是否包括由被攻击地址请求第三方地址的请求日志。
具体地,在NTA/NDR设备中,要求流量日志实时留存,因此,可获取该协议类型的流量日志进行检测,判断该流量日志中是否包括由被攻击地址请求第三方地址的请求日志,具体可查询在预设时间段内源地址为被攻击地址的流量数据,然后再在上述查询到的流量数据中进一步确定是否包括请求地址为第三方地址的数据,如果包括,即可确定出流量日志中包括由被攻击地址请求第三方地址的请求日志。
步骤S109:当协议类型的流量日志中包括由被攻击地址请求第三方地址的请求日志时,确定攻击流量的攻击结果为攻击成功。
对于需要访问外部目标的攻击,也即攻击者希望被攻击者访问特定的第三方地址时,在攻击者发送恶意攻击流量到达被攻击地址后,如果被攻击地址如攻击者所愿,请求第三方地址,也即表明攻击成功。而被攻击地址请求第三方地址,会在流量日志中产生由被攻击地址请求第三方地址的请求日志,因此,通过检测协议类型的流量日志中包括由被攻击地址请求第三方地址的请求日志,即可确定出攻击流量的攻击结果为攻击成功。可选地,如果检测协议类型的流量日志中不包括由被攻击地址请求第三方地址的请求日志,确定攻击流量的攻击结果为攻击失败。
在该实施例提供的攻击结果检测方法中,对待检测的流量数据进行判断,先判断流量数据是否为攻击流量,如果属于攻击流量,再进一步对攻击流量的数据进行解析,确定出攻击流量对应的协议类型以获取该协议类型的流量日志,确定出被攻击地址和第三方地址,以检测上述流量日志中是否包括由被攻击地址请求第三方地址的请求日志,最终当检测到协议类型的流量日志中包括由被攻击地址请求第三方地址的请求日志时,便可确定攻击流量的攻击结果为攻击成功。采用该实施例提供的攻击结果检测方法,能够对流量数据进行检测,在检测到攻击流量时,进一步确定出攻击结果。
可选地,在一种实施例中,攻击结果检测方法包括如下的步骤:
步骤S101’:流量检测设备的判断模块判断待检测的流量数据是否为攻击流量。
流量检测设备设置判断模块和处理模块。
当攻击者攻击目标机器时,例如向目标机器发送恶意远程命令执行的攻击流量,到达目标机器时会经过流量检测设备,流量检测设备的判断模块判断对待检测的流量数据进行判断,即可判断出上述攻击流量。
攻击流量会触发流量检测设备的告警规则,流量检测设备根据攻击特征判断是否为攻击流量并输出初步结果,但此时的初步结果仅为受到了攻击,还不能明确攻击是成功还是失败。
步骤S102’:当流量数据为攻击流量时,判断模块将攻击流量发送至流量检测设备的处理模块。
当流量数据为攻击流量时,需要对攻击流量的攻击结果进一步分析,此时,判断模块将攻击流量发送至处理模块,使得攻击流量再次传入流量检测设备的引擎进行二次判断。
步骤S103’:处理模块从攻击流量中提取被攻击地址和第三方地址,并确定攻击流量对应的协议类型。
步骤S104’:处理模块生成告警信息。
其中,告警信息包括攻击标志和附加信息,附加信息包括被攻击地址、第三方地址和协议类型。
具体地,处理模块预先定义多种匹配策略和多种正则表达式,以根据攻击类型等条件,通过匹配策略,为攻击流量匹配特定的正则表达式,通过正则表达式在攻击流量中提取出附加信息。
比如,预先定义了某匹配策略如下:如果规则类型是命令执行,则采用在HTTP请求头和请求体中提取域名或IP地址的正则表达式,对攻击流量进行计算,以提取域名或IP地址作为第三方地址,同时确定被攻击地址和攻击流量对应的协议类型,并打上攻击标志,生成告警信息,之后将告警信息作为输入数据进入告警分析设备。
例如,附加信息包含:
1)“带外攻击”的攻击标签(带外攻击,也即意在使被攻击地址访问第三方地址的攻击);
2)从攻击数据中提取包含的第三方地址信息(IP或域名);
3)对应的在发起带外请求时的流量日志的协议类型。
具体如,对于攻击数据中包含:wget 1.2.3.4,那么我们提取的附加信息是:第三方地址信息,也即IP地址未1.2.3.4,协议类型为TCP。该处的协议类型也即来自于漏洞攻击成功后会发起TCP连接而生成TCP流量日志。
步骤S105’:告警分析设备查找包括攻击标志的告警信息,当告警分析设备查找到包括攻击标志的告警信息时,根据附加信息中的协议类型获取协议类型的流量日志。
步骤S107’:告警分析设备检测流量日志中是否包括由被攻击地址请求第三方地址的请求日志。
步骤S109’:当协议类型的流量日志中包括由被攻击地址请求第三方地址的请求日志时,确定攻击流量的攻击结果为攻击成功。
告警分析设备对告警信息进行处理,在处理时,针对包括攻击标志的告警信息,根据附加信息中的协议类型获取协议类型的流量日志,检测该流量日志中是否包括由被攻击地址请求第三方地址的请求日志。
具体例如当1.1.1.1对2.2.2.2发起攻击,攻击数据中携带了:wget 1.2.3.4,那么过程如下:
1)告警分析设备查找存在“带外攻击”的攻击标签的告警信息,找到则对该条告警信息进行的下一步动作;
2)根据告警信息提供的协议类型,去对应的类型的流量日志中查找流量日志,比如是TCP,则去TCP流量日志里查找,是HTTP则去HTTP日志里查找,查找的条件是源IP是2.2.2.2、目的IP是1.2.3.4的TCP请求日志;
3)一旦找到,则认为1.1.1.1对2.2.2.2发起攻击成功了,因为2.2.2.2对1.2.3.4确实发起了连接请求。
实施例二
对应于上述实施例一,本发明实施例二提供了一种攻击结果检测装置,相应地技术特征细节和对应的技术效果可参考上述实施例一,在该实施例中不再赘述。图2为本发明实施例二提供的攻击结果检测装置的框图,如图2所示,该装置包括:判断模块201、处理模块202、获取模块203、检测模块204和确定模块205。
判断模块201用于判断待检测的流量数据是否为攻击流量;处理模块202用于当流量数据为攻击流量时,从攻击流量中提取被攻击地址和第三方地址,并确定攻击流量对应的协议类型;获取模块203用于获取协议类型的流量日志;检测模块204用于检测流量日志中是否包括由被攻击地址请求第三方地址的请求日志;以及确定模块205用于当协议类型的流量日志中包括由被攻击地址请求第三方地址的请求日志时,确定攻击流量的攻击结果为攻击成功。
可选地,在一种实施例中,处理模块202在根据攻击流量确定第三方地址时,具体执行的步骤包括:从攻击流量中提取请求数据;在请求数据中提取地址信息,以得到第三方地址。
可选地,在一种实施例中,处理模块202包括第一处理单元,用于查询请求数据中的协议标识;提取协议标识后的地址信息,以得到第三方地址。
可选地,在一种实施例中,处理模块202包括第二处理单元,用于查询请求数据中的预设命令;提取预设命令后的地址信息,以得到第三方地址。
可选地,在一种实施例中,处理模块202包括第三处理单元,用于查询请求数据中满足预设数据格式的地址信息,以得到第三方地址。
实施例三
对应于上述实施例一,本发明实施例三提供了一种攻击结果检测***,相应地技术特征细节和对应的技术效果可参考上述实施例一,在该实施例中不再赘述。图3为本发明实施例三提供的攻击结果检测***的框图,如图3所示,该***包括流量检测设备301和告警分析设备302,其中,流量检测设备301包括判断模块3011和处理模块3012,其中:
判断模块3011用于判断待检测的流量数据是否为攻击流量,当流量数据为攻击流量时,将攻击流量发送至处理模块3012;处理模块3012用于从攻击流量中提取被攻击地址和第三方地址,并确定攻击流量对应的协议类型,并生成告警信息,其中,告警信息包括攻击标志和附加信息,附加信息包括被攻击地址、第三方地址和协议类型;告警分析设备302用于查找包括攻击标志的告警信息,并当查找到包括攻击标志的告警信息时,根据附加信息中的协议类型获取协议类型的流量日志,检测流量日志中是否包括由被攻击地址请求第三方地址的请求日志,并当协议类型的流量日志中包括由被攻击地址请求第三方地址的请求日志时,确定攻击流量的攻击结果为攻击成功。
可选地,在一种实施例中,处理模块3012根据攻击流量确定第三方地址的步骤包括:从攻击流量中提取请求数据;在请求数据中提取地址信息,以得到第三方地址。
可选地,在一种实施例中,处理模块3012包括第一处理单元,用于查询请求数据中的协议标识;提取协议标识后的地址信息,以得到第三方地址。
可选地,在一种实施例中,处理模块3012包括第二处理单元,用于查询请求数据中的预设命令;提取预设命令后的地址信息,以得到第三方地址。
可选地,在一种实施例中,处理模块3012包括第三处理单元,用于查询请求数据中满足预设数据格式的地址信息,以得到第三方地址。
实施例四
本实施例四还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图4所示,本实施例的计算机设备01至少包括但不限于:可通过***总线相互通信连接的存储器011、处理器012,如图4所示。需要指出的是,图4仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作***和各类应用软件,例如实施例二的攻击结果检测装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器012在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如攻击结果检测方法等。
实施例五
本实施例五还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储攻击结果检测装置,被处理器执行时实现实施例一的攻击结果检测方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。