CN118233111A - 攻击检测方法、***及存储介质 - Google Patents
攻击检测方法、***及存储介质 Download PDFInfo
- Publication number
- CN118233111A CN118233111A CN202211633931.6A CN202211633931A CN118233111A CN 118233111 A CN118233111 A CN 118233111A CN 202211633931 A CN202211633931 A CN 202211633931A CN 118233111 A CN118233111 A CN 118233111A
- Authority
- CN
- China
- Prior art keywords
- data stream
- cpu
- address
- detection system
- sampling ratio
- 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 277
- 238000005070 sampling Methods 0.000 claims abstract description 275
- 238000000034 method Methods 0.000 claims abstract description 82
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000012512 characterization method Methods 0.000 claims description 184
- 230000004913 activation Effects 0.000 claims description 53
- 230000009849 deactivation Effects 0.000 claims description 48
- 230000008859 change Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 238000013519 translation Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 10
- 230000005540 biological transmission Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000002155 anti-virotic effect Effects 0.000 description 2
- 238000005336 cracking Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000004606 Fillers/Extenders Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种攻击检测方法、***及存储介质。本申请实现了基于专用芯片采样检测攻击,专用芯片基于第一采样比以及检测***接收到的第一数据流,获取第一信息;专用芯片向CPU发送第一信息;CPU基于第一采样比以及第一信息,检测第一数据流的目的设备是否受到攻击。由于CPU检测攻击时,利用的数据是经过采样获得的信息,经过采样获得的信息的速率显著少于原始数据流的速率,因此大大减少了CPU检测攻击时所需处理的速率,降低了CPU的负载,进而降低了CPU负载过重对检测性能的影响。
Description
技术领域
本申请涉及网络安全领域,特别涉及一种攻击检测方法、***及存储介质。
背景技术
为了检测受保护的服务器是否受到攻击,可以在受保护的服务器前部署路由器和检测设备。路由器接收到流量后,对流量进行复制,以获得两份流量。路由器将一份流量发送至检测设备,并将另一份流量发送至受保护的服务器。检测设备接收到流量后,通过中央处理器(central processing unit,CPU)对流量中的每个报文逐个进行检测,从而判断受保护的服务器是否受到攻击。然而,当流量的带宽或者速率过大时,CPU检测攻击的负载较重,导致影响检测性能。
发明内容
本申请提供了一种攻击检测方法、***及存储介质,能够降低CPU检测攻击的负载,提升检测性能。
第一方面,提供了一种攻击检测方法,应用于检测***,所述检测***包括中央处理器CPU和专用芯片,所述方法包括:
所述专用芯片基于第一采样比以及所述检测***接收到的第一数据流,获取第一信息;
所述专用芯片向所述CPU发送所述第一信息;
所述CPU基于所述第一采样比以及所述第一信息,检测所述第一数据流的目的设备是否受到攻击。
第一方面提供的方法中,通过专用芯片与CPU联动检测攻击,由专用芯片对数据流进行采样,由CPU基于专用芯片采样后上送的信息检测攻击。由于CPU检测攻击时,利用的数据是经过采样获得的信息,经过采样获得的信息的速率显著少于原始数据流的速率,因此大大减少了CPU检测攻击时所需处理的速率,降低了CPU的负载,进而降低了CPU负载过重对检测性能的影响。此外,充分发挥了专用芯片高效快速的优势以及CPU完善的攻击检测能力,提升了检测***整体攻击检测的效果。
在一些实施方式中,所述第一信息包括所述第一数据流中的报文;或者,
所述第一信息包括对所述第一数据流包括的报文进行复制从而获得的报文;或者,
所述第一信息包括所述第一数据流包括的报文的元数据,所述元数据包括报文头、报文头携带的数据、载荷、载荷中的数据中任一项。
在一些实施方式中,所述第一数据流的速率表征值满足第一条件;或者,
所述第一数据流的目的互联网协议IP地址为所述检测***上已配置的第一类IP地址;或者,
所述第一数据流的目的IP地址经过网络地址转换NAT后得到的IP地址为所述检测***上已配置的第一类IP地址;或者,
所述第一数据流的目的IP地址不为所述检测***上已配置的第二类IP地址;或者,
所述第一数据流的目的IP地址经过NAT后得到的IP地址不为所述检测***上已配置的第二类IP地址。
在一些实施方式中,所述第一数据流的速率表征值满足第一条件,包括:
所述第一数据流的速率表征值超过第一速率表征值;或者,
所述第一数据流的速率表征值在所述检测***接收到的多条数据流中排在前第一位数;或者,
所述第一数据流的速率表征值超过第一速率表征值的持续时长超过第一时长。
在一些实施方式中,所述专用芯片基于第一采样比以及所述检测***接收到的第一数据流,获取第一信息之前,所述方法还包括:
所述CPU或者所述专用芯片,基于所述检测***接收到的多条数据流中每条数据流的速率表征值以及每条数据流的IP地址中至少一项,从所述多条数据流中确定所述第一数据流。
在一些实施方式中,所述方法还包括:
基于所述检测***的负载表征值以及第一对应关系,确定所述第一采样比,所述第一对应关系为负载表征值与采样比之间的对应关系;或者,
基于所述第一数据流的速率表征值以及第二对应关系,确定所述第一采样比,所述第二对应关系为数据流的速率表征值与采样比之间的对应关系;或者,
基于所述第一数据流的目的IP地址以及第三对应关系,确定所述第一采样比,所述第三对应关系为IP地址与采样比之间的对应关系;或者,
基于所述第一数据流的目的IP地址经过NAT后得到的IP地址以及所述第三对应关系,确定所述第一采样比;或者,
基于管理员的配置操作,确定所述第一采样比。
在一些实施方式中,所述第一采样比由所述CPU确定或所述专用芯片确定。
在一些实施方式中,所述方法还包括:
当所述第一采样比由所述CPU确定时,所述CPU向所述专用芯片发送所述第一采样比。
在一些实施方式中,所述专用芯片基于第一采样比以及所述检测***接收到的第一数据流,获取第一信息之前,所述方法还包括:
所述CPU向所述专用芯片发送激活指令,所述激活指令指示所述专用芯片获取所述第一信息。
在一些实施方式中,所述CPU向所述专用芯片发送激活指令,包括:
若所述检测***的负载表征值超过第一负载表征值,所述CPU向所述专用芯片发送所述激活指令;或者,
若所述检测***的负载表征值超过第一负载表征值的持续时长超过第二时长,所述CPU向所述专用芯片发送所述激活指令;或者,
若所述第一数据流的速率表征值超过第二速率表征值,所述CPU向所述专用芯片发送所述激活指令;或者,
若所述第一数据流的速率表征值超过第二速率表征值的持续时长超过第三时长,所述CPU向所述专用芯片发送所述激活指令。
在一些实施方式中,所述方法还包括:
所述CPU向所述专用芯片发送去激活指令;
所述专用芯片响应于所述去激活指令,向所述CPU发送所述第一数据流;
所述CPU基于所述第一数据流,检测所述第一数据流的目的设备是否受到攻击。
在一些实施方式中,所述CPU向所述专用芯片发送去激活指令包括:
若所述检测***的负载表征值小于第二负载表征值,所述CPU向所述专用芯片发送所述去激活指令;或者,
若所述检测***的负载表征值小于第二负载表征值的持续时长超过第四时长,所述CPU向所述专用芯片发送所述去激活指令;或者,
若所述第一数据流的速率表征值小于第三速率表征值,所述CPU向所述专用芯片发送所述去激活指令;或者,
若所述第一数据流的速率表征值小于第三速率表征值的持续时长超过第五时长,所述CPU向所述专用芯片发送所述去激活指令。
在一些实施方式中,所述方法还包括:
响应于所述第一数据流的速率表征值发生变化或者所述检测***的负载表征值发生变化,更新所述第一采样比。
在一些实施方式中,所述方法还包括:
所述专用芯片向所述CPU发送第二数据流;
所述CPU基于所述第二数据流,检测所述第二数据流的目的设备是否受到攻击;
其中,所述第二数据流的速率表征值不满足第二条件;或者,
所述第二数据流的目的IP地址不为所述检测***上已配置的第一类IP地址;或者,
所述第二数据流的目的IP地址经过NAT后得到的IP地址不为所述检测***上已配置的第一类IP地址;或者,
所述第二数据流的目的IP地址为所述检测***上已配置的第二类IP地址;或者,
所述第二数据流的目的IP地址经过NAT后得到的IP地址为所述检测***上已配置的第二类IP地址。
在一些实施方式中,所述CPU基于所述第一采样比以及所述第一信息,检测所述第一数据流的目的设备是否受到攻击,包括:
所述CPU基于所述第一采样比以及所述第一信息,检测所述第一数据流的目的设备是否受到分布式拒绝服务DDoS攻击。
在一些实施方式中,所述方法还包括:
当所述第一采样比由所述专用芯片确定时,所述第一信息还包括所述第一采样比。
第二方面,提供了一种检测***,所述检测***包括中央处理器CPU和专用芯片。
所述专用芯片,用于基于第一采样比以及所述检测***接收到的第一数据流,获取第一信息,向所述CPU发送所述第一信息;
所述CPU,用于基于所述第一采样比以及所述第一信息,检测所述第一数据流的目的设备是否受到攻击。
在一些实施方式中,所述第一信息包括所述第一数据流中的报文;或者,
所述第一信息包括对所述第一数据流包括的报文进行复制从而获得的报文;或者,
所述第一信息包括所述第一数据流包括的报文的元数据,所述元数据包括报文头、报文头携带的数据、载荷、载荷中的数据中任一项。
在一些实施方式中,所述第一数据流的速率表征值满足第一条件;或者,
所述第一数据流的目的互联网协议IP地址为所述检测***上已配置的第一类IP地址;或者,
所述第一数据流的目的IP地址经过网络地址转换NAT后得到的IP地址为所述检测***上已配置的第一类IP地址;或者,
所述第一数据流的目的IP地址不为所述检测***上已配置的第二类IP地址;或者,
所述第一数据流的目的IP地址经过NAT后得到的IP地址不为所述检测***上已配置的第二类IP地址。
在一些实施方式中,所述第一数据流的速率表征值满足第一条件,包括:
所述第一数据流的速率表征值超过第一速率表征值;或者,
所述第一数据流的速率表征值在所述检测***接收到的多条数据流中排在前第一位数;或者,
所述第一数据流的速率表征值超过第一速率表征值的持续时长超过第一时长。
在一些实施方式中,所述CPU或者所述专用芯片,还用于基于所述检测***接收到的多条数据流中每条数据流的速率表征值以及每条数据流的IP地址中至少一项,从所述多条数据流中确定所述第一数据流。
在一些实施方式中,所述CPU或者所述专用芯片,还用于:
基于所述检测***的负载表征值以及第一对应关系,确定所述第一采样比,所述第一对应关系为负载表征值与采样比之间的对应关系;或者,
基于所述第一数据流的速率表征值以及第二对应关系,确定所述第一采样比,所述第二对应关系为数据流的速率表征值与采样比之间的对应关系;或者,
基于所述第一数据流的目的IP地址以及第三对应关系,确定所述第一采样比,所述第三对应关系为IP地址与采样比之间的对应关系;或者,
基于所述第一数据流的目的IP地址经过NAT后得到的IP地址以及所述第三对应关系,确定所述第一采样比;或者,
基于管理员的配置操作,确定所述第一采样比。
在一些实施方式中,所述第一采样比由所述CPU确定或所述专用芯片确定。
在一些实施方式中,当所述第一采样比由所述CPU确定时,所述CPU还用于向所述专用芯片发送所述第一采样比。
在一些实施方式中,所述CPU,还用于向所述专用芯片发送激活指令,所述激活指令指示所述专用芯片获取所述第一信息。
在一些实施方式中,所述CPU,用于若所述检测***的负载表征值超过第一负载表征值,向所述专用芯片发送所述激活指令;或者,若所述检测***的负载表征值超过第一负载表征值的持续时长超过第二时长,向所述专用芯片发送所述激活指令;或者,若所述第一数据流的速率表征值超过第二速率表征值,向所述专用芯片发送所述激活指令;或者,若所述第一数据流的速率表征值超过第二速率表征值的持续时长超过第三时长,向所述专用芯片发送所述激活指令。
在一些实施方式中,所述CPU,还用于向所述专用芯片发送去激活指令;
所述专用芯片,还用于响应于所述去激活指令,向所述CPU发送所述第一数据流;
所述CPU,还用于基于所述第一数据流,检测所述第一数据流的目的设备是否受到攻击。
在一些实施方式中,所述CPU,用于若所述检测***的负载表征值小于第二负载表征值,向所述专用芯片发送所述去激活指令;或者,若所述检测***的负载表征值小于第二负载表征值的持续时长超过第四时长,向所述专用芯片发送所述去激活指令;或者,若所述第一数据流的速率表征值小于第三速率表征值,向所述专用芯片发送所述去激活指令;或者,若所述第一数据流的速率表征值小于第三速率表征值的持续时长超过第五时长,向所述专用芯片发送所述去激活指令。
在一些实施方式中,所述专用芯片或者所述CPU,还用于响应于所述第一数据流的速率表征值发生变化或者所述检测***的负载表征值发生变化,更新所述第一采样比。
在一些实施方式中,所述专用芯片,还用于向所述CPU发送第二数据流;
所述CPU,还用于基于所述第二数据流,检测所述第二数据流的目的设备是否受到攻击;
其中,所述第二数据流的速率表征值不满足第二条件;或者,
所述第二数据流的目的IP地址不为所述检测***上已配置的第一类IP地址;或者,
所述第二数据流的目的IP地址经过NAT后得到的IP地址不为所述检测***上已配置的第一类IP地址;或者,
所述第二数据流的目的IP地址为所述检测***上已配置的第二类IP地址;或者,
所述第二数据流的目的IP地址经过NAT后得到的IP地址为所述检测***上已配置的第二类IP地址。
在一些实施方式中,所述CPU,用于基于所述第一采样比以及所述第一信息,检测所述第一数据流的目的设备是否受到分布式拒绝服务DDoS攻击。
在一些实施方式中,当所述第一采样比由所述专用芯片确定时,所述第一信息还包括所述第一采样比。
第三方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令在检测***上运行时,使得检测***执行上述第一方面或第一方面任一种可选方式所提供的方法。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被检测***加载并运行时,使得所述检测***执行上述第一方面或第一方面任一种可选方式所提供的方法。
第五方面,提供一种专用芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第一方面及其第一方面任意可能的实现方式中由专用芯片执行的方法。
第六方面,提供一种专用芯片,包括可编程逻辑电路和/或程序指令,当该专用芯片运行时用于实现如上述第一方面及其第一方面任意可能的实现方式中由专用芯片执行的方法。
第七方面,提供一种CPU,包括可编程逻辑电路和/或程序指令,当该CPU运行时用于实现如上述第一方面及其第一方面任意可能的实现方式中由CPU执行的方法。
第八方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令在专用芯片上运行时,使得专用芯片执行上述第一方面或第一方面任一种可选方式中由专用芯片执行的方法。
第九方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令在CPU上运行时,使得CPU执行上述第一方面或第一方面任一种可选方式中由CPU执行的方法。
第十方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被专用芯片加载并运行时,使得所述专用芯片执行上述第一方面或第一方面任一种可选方式中由专用芯片执行的方法。
第十一方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被CPU加载并运行时,使得所述CPU执行上述第一方面或第一方面任一种可选方式中由CPU执行的方法。
附图说明
图1是本申请实施例提供的一种网络部署场景的示意图;
图2是本申请实施例提供的一种检测设备的结构示意图;
图3是本申请实施例提供的一种攻击检测方法的流程图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
针对由于CPU基于数据流包括的所有报文统计带宽或者速率来判断是否发生攻击导致负载过重进而影响检测性能,本申请的一些实施例中,提供了一种基于专用芯片采样检测攻击的方法。在该实施例中,由专用芯片与CPU联动检测攻击,由专用芯片对数据流进行采样,由CPU基于专用芯片采样后上送的信息检测攻击。由于CPU检测攻击时,利用的数据是经过采样获得的信息,经过采样获得的信息的速率显著少于原始数据流的速率,因此大大减少了CPU检测攻击时所需处理的速率,降低了CPU的负载,进而降低了CPU负载过重对检测性能的影响。此外,充分发挥了专用芯片高效快速的优势以及CPU完善的攻击检测能力,提升了检测***整体攻击检测的效果。
本申请实施例适用的攻击检测场景包括很多种场景。可选地,本申请实施例应用于检测发起大流量以耗尽受保护设备的资源的攻击场景。例如,本申请实施例应用于检测分布式拒绝服务攻击(distributed denial-of-service attack,DDoS)攻击的场景。例如,本申请实施例应用于检测泛洪(flood)攻击的场景。例如,本申请实施例应用于检测传输控制协议(transmission control protocol,TCP)flood攻击、用户数据报协议(userdatagram protocol,UDP)flood攻击、超文本传输协议(hyper text transfer protocol,HTTP)flood攻击、超文本传输安全协议(hyper text transfer protocol secure,HTTPS)flood攻击、域名***(domain name system,DNS)flood攻击、因特网控制报文协议(internet control message protocol,ICMP)flood攻击、会话初始协议(sessioninitiation protocol,SIP)flood攻击等。例如,本申请实施例应用于检测同步(synchronize,SYN)flood攻击、确认(acknowledgement,ACK)flood攻击、同步序列编号确认(synchronize sequence numbers acknowledgement,SYN ACK)flood攻击、重置连接(reset the connection,RST)flood攻击的场景。
在上述列举的场景下,一方面,由于攻击流量的特征主要在于流量的大小(如带宽或速率),而与流量中特定报文以及报文承载的业务数据关系不大,而基于本申请实施例提供的采样检测的方式,CPU基于经过采样的信息以及采样比,也能够估计出流量的大小,进而基于流量的大小判断是否发生攻击,因此采样对攻击检测的准确性的影响较小,一定程度上保证攻击检测的准确性。另一方面,由于检测上述攻击时对CPU原本所需处理的速率很大,基于本申请实施例提供的采样检测方式,能够显著减少CPU所需处理的速率,使得降低CPU负载、提升检测性能的效果更加突出。
下面对本申请实施例的网络部署场景举例说明。
附图1是本申请实施例提供的一种网络部署场景的示意图,附图所示的场景包括位于外部网络的攻击者设备12-a、位于外部网络的用户设备12-b、转发设备13、转发设备14、检测设备16、位于受保护网络的服务器11-a、位于受保护网络的客户端11-b。
位于外部网络的攻击者设备12-a或者用户设备12-b为流量的发起方,也即是流量的源设备。攻击者设备12-a例如是攻击者控制的用于发起攻击的设备。
转发设备13、转发设备14以及检测设备16位于外部网络与受保护网络之间。
转发设备13以及转发设备14为流量的转发路径经过的两跳设备。转发设备13以及转发设备14用于对流量进行路由转发。转发设备13以及转发设备14包括而不限于路由器或三层交换机。
转发设备13用于接收来自外部网络的流量,将流量发送至转发设备14。此外,转发设备13还会对流量进行复制,获得复制后的流量,将复制后的流量发送至检测设备16,从而将流量引导至检测设备16。转发设备13复制流量的方式包括而不限于分光或者镜像的方式。分光是指转发设备13中设有分光器,流量通过分光器后,原始的流量正常传输至转发设备14,复制流量传输至检测设备16。镜像例如是将检测设备13特定接口输入或者输出的所有报文复制到目标接口,该目标接口例如是与检测设备16通信的出接口。
转发设备14用于接收来自转发设备13的流量,将流量转发至受保护网络中。
检测设备16用于检测流量中是否存在攻击。检测设备16包括而不限于防火墙、安全网关(如路由器或交换机)、入侵检测***(intrusion detection system,IDS)类设备、入侵防御***(intrusion prevention system,IPS)类设备、统一威胁管理(unifiedthreat management,UTM)设备、反病毒(anti-virus,AV)设备、抗分布式拒绝服务攻击(distributed denial-of-service attack,DDoS)(anti-DDoS)设备、下一代防火墙(Nextgeneration firewall,NGFW)、深度报文检测(Deep packet inspection,DPI)中一项或多项的集成。
外部网络例如为互联网,受保护网络例如为局域网。又如,外部网络为第一城域网,受保护网络为第二城域网。再如,受保护网络为数据中心。
外部网络与受保护网络之间可以部署一个检测设备,也可以部署多个检测设备。例如参考附图1,可选地还部署检测设备17,检测设备17与检测设备16通信。
下面对检测设备的基本硬件结构举例说明。
附图2是本申请实施例提供的一种检测设备的结构示意图。可选地,附图2中的检测设备200是附图1所示的检测设备16。
检测设备200包括CPU 201、专用芯片202和至少一个网络接口203。
CPU 201是指通用的中央处理器,其扩展性和灵活性较高。CPU 201例如是一个单核处理器(single-CPU),又如是一个多核处理器(multi-CPU)。
专用芯片202是一个高性能处理的硬件模块。专用芯片202包括专用集成电路(application-specific integrated circuit,ASIC)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)或者网络处理器(network processer,NP)中的至少一项。
至少一个网络接口203例如包括附图2中的网络接口1、网络接口2、网络接口3……网络接口n。网络接口203使用任何收发器一类的装置,用于与其它设备或通信网络通信。例如,附图2中的网络接口1与第一网络设备通信,附图2中的网络接口2与第二网络设备通信。网络接口203可选地包括有线网络接口或者无线网络接口中的至少一项。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口,电接口或其组合。无线网络接口例如为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络接口或其组合等。
至少一个网络接口203与专用芯片202之间,以及专用芯片202与CPU 201之间通过内部连接204相连。内部连接204包括一通路,在网络接口203、专用芯片202与CPU201之间传输数据。可选的,内部连接204是单板或总线。例如,内部连接204为以太网、光纤信道(fibrechannel)、PCI-E(peripheral component interconnect express,PCI Express,一种高速串行计算机总线)、RapidIO(一种高性能、低引脚数、基于数据包交换的互连体系结构)、无限带宽(InfiniBand)或XAUI总线(一个接口扩展器,特点是把以太网介质访问控制层(media access control,MAC)层与物理层相连)。
可选地,检测设备还包括内容可寻址存储器(content addressable memory,CAM)205。CAM 205例如三态内容寻址存储器(ternary content addressable memory,TCAM)等。
在一些实施例中,CAM 205用于存储专用芯片202进行检测时所需使用的数据,例如采样比或者目的互联网协议(Internet Protocol,IP)地址等。专用芯片202访问CAM205,从而获得采样比或者目的IP地址。可选地,CAM 205独立存在,并通过上述内部连接204与专用芯片202相连接。或者可选地,CAM 205和专用芯片202集成在一起,即CAM 205作为专用芯片202内部的存储器。
可选地,检测设备还包括存储器206。存储器206中存储有操作***207和程序代码208。可选地,该至少一个处理器从存储器206中读取操作***207并运行该操作***207,专用芯片202从存储器206读取程序代码208,通过在该操作***207上运行该程序代码208,执行附图3实施例中由专用芯片202执行的流程。或者,专用芯片202在运行程序代码208的过程中,执行附图3实施例中由专用芯片202执行的方法流程。可替代地,专用芯片202通过运行内部存储的程序代码208实现本申请实施例提供的方法。例如,将对流量进行采样的计算机指令预先烧录在专用芯片202中。
存储器206例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的程序代码208并能够由计算机存取的任何其它介质,但不限于此。存储器206例如是独立存在,并通过内部连接204与CPU 201相连接。或者可选地存储器206和CPU 201集成在一起。
下面对本申请实施例的方法流程举例说明。
附图3是本申请实施例提供的一种攻击检测方法的流程图。附图3所示方法应用于检测***。附图3所示方法的交互主体包括专用芯片以及CPU。
附图3所示方法中的检测***可以是一***立的设备,该设备内部的CPU和专用芯片通过交互执行附图3所示方法。也即是,图3中的CPU和专用芯片可以集成在同一个检测设备上,CPU和专用芯片例如通过图2中内部连接204交互第一信息等攻击检测涉及的信息。
附图3所示方法中的检测***也可以为包括多个设备的***,例如该检测***为集群或者分布式***,不同设备中的CPU和专用芯片相互通信,协同执行附图3所示方法。也即是,附图3中的CPU和专用芯片分布在不同设备上,CPU和专用芯片可以通过设备之间的通信链路交互第一信息等攻击检测涉及的信息。
例如,在图1所示场景中,附图3所示方法中的检测***可以是图1中检测设备16。检测设备16中的专用芯片执行附图3所示方法中S301和S302,检测设备16中的CPU执行附图3所示方法中S303。又如,在图1所示场景中,附图3所示方法中的检测***可以包括图1中检测设备16以及检测设备17,检测设备16中的专用芯片执行附图3所示方法中S301和S302,检测设备17中的CPU执行附图3所示方法中S303。
附图3所示方法以针对第一数据流进行攻击检测为例描述。通过执行附图3所示方法,可以确定第一数据流的目的设备是否受到攻击。可选地,第一数据流是外部网络中的设备生成、发送至受保护网络中设备的数据流。例如,在图1所示场景中,第一数据流是附图1中攻击者设备12-a或者用户设备12-b生成并发起的,第一数据流由附图1中转发设备13转发至检测***。第一数据流的目的设备为附图1中服务器11-a或者客户端11-b。
附图3所示方法所基于的硬件架构可参考图2。例如,附图3所示方法中第一数据流是通过图2中网络接口203从检测***外部接收到的,附图3所示方法中的专用芯片为图2中专用芯片202,附图3所示方法中的CPU为图2中CPU 201。
附图3所示方法包括以下步骤S301至步骤S303。
步骤S301、专用芯片基于第一采样比以及检测***接收到的第一数据流,获取第一信息。
第一采样比例如为对第一数据流进行采样时使用的采样比。例如,第一采样比的形式是N:1,则专用芯片每N个报文中取一个报文,基于该报文获取第一信息。其中,N为大于或等于1的正整数。
第一数据流为检测***接收到的一条数据流。例如,第一数据流为检测***通过网络接口从其他设备接收到的数据流。例如,在图1所示的场景中,第一数据流为检测***16从转发设备13接收到的数据流。可选地,第一数据流的目的方位于受保护网络,第一数据流的发起方位于外部网络。例如,在图1所示的场景中,第一数据流的目的设备为图1中服务器11-a或者客户端11-b。第一数据流的源设备为图1中攻击者设备12-a或者用户设备12-b。第一数据流包括而不限于TCP数据流、UDP数据流、HTTP数据流或者DNS数据流等。
第一信息例如为专用芯片基于第一采样比对第一数据流进行采样后发送至CPU的信息。第一信息可以是第一数据流的报文中包含的信息,也可以不在第一数据流的报文中。下面结合三种专用芯片采样上送的方式,对第一信息举例说明。
实现方式一、专用芯片将第一数据流包括的原始报文发送至CPU。
例如,专用芯片基于采样比,从第一数据流中选择报文;专用芯片将选中的报文(第一数据流包括的原始报文)发送至CPU。专用芯片发送至CPU的第一数据流的报文数量与检测***的网络接口接收到的第一数据流的报文数量之间的比值可选地等于或者近似等于采样比。专用芯片基于采样比选择和发送的报文是第一信息的具体示例。
以采样比为128:1为例,例如,专用芯片每当接收到第一数据流中128个报文,则专用芯片从128个报文中选择一个报文,将该报文发送至CPU,使得CPU接收到的第一数据流的大小(如带宽和速率)相较于检测***的网络接口接收到的第一数据流的大小(如带宽和速率)而言,大约降低了127倍,从而显著降低了CPU所需处理的速率,减轻CPU的负载。
以采样比为64:1为例,专用芯片每当接收到第一数据流中64个报文,则专用芯片从64个报文中选择一个报文,将该报文发送至CPU。
可选地,专用芯片丢弃第一数据流中未选中的报文,从而节省报文在检测***中占用的存储空间。以采样比为128:1为例,例如,专用芯片每当接收到第一数据流中128个报文,则专用芯片从128个报文中选择一个报文,并丢弃剩余的127个报文。
实现方式二、专用芯片将第一数据流包括的原始报文的复制报文发送至CPU。
例如,专用芯片基于采样比,从第一数据流中选择报文;专用芯片对选中的报文(第一数据流包括的原始报文)进行复制,从而获得复制报文。专用芯片将复制报文发送至CPU。专用芯片发送的复制报文是第一信息的具体示例。专用芯片发送至CPU的复制报文的数量与检测***的网络接口接收到的第一数据流的报文数量之间的比值可选地等于或者近似等于采样比。
以采样比为128:1为例,例如,专用芯片每当接收到第一数据流中128个报文,则专用芯片从128个报文中选择一个报文,对该报文进行复制,从而获得一个复制报文,专用芯片将该复制报文发送至CPU。
此外可选地,专用芯片丢弃第一数据流中每个报文,从而节省报文在检测***中占用的存储空间。
实现方式三、专用芯片将第一数据流的元数据发送至CPU。
第一数据流的元数据例如是用于描述第一数据流的属性的任意信息。第一数据流的元数据是第一信息的具体示例。第一数据流的元数据包括而不限于第一数据流中报文的报文头、第一数据流中报文的报文头携带的数据、第一数据流中报文的载荷、第一数据流中报文载荷中的数据(例如载荷的前N个字节)中任一项。专用芯片发送至CPU的元数据的份数与检测***的网络接口接收到的第一数据流的报文数量之间的比值可选地等于或者近似等于采样比。
例如,专用芯片基于采样比从第一数据流选择报文;专用芯片对选择的报文进行解析,从而获得第一数据流的元数据;专用芯片将第一数据流的元数据发送至CPU。以采样比为128:1为例,例如,专用芯片每当接收到第一数据流中128个报文,则专用芯片从128个报文中选择一个报文,对该报文进行解析,从而获得第一数据流的元数据,专用芯片将第一数据流的元数据发送至CPU。
专用芯片通过将第一数据流的元数据发送至CPU,一方面,由于元数据相较于原始报文而言速率更小,从而进一步减少了CPU所需处理的速率,因此节省了CPU的处理资源和存储空间。另一方面,由于专用芯片代替CPU承担了解析报文的工作,CPU无需解析报文获得元数据,而是利用专用芯片解析后上送的元数据进行检测即可,从而进一步降低了CPU的负载,有助于提升CPU的检测性能。
在一些实施例中,专用芯片向CPU发送的第一信息包括第一数据流的目的设备的标识,使得CPU统计流量大小的维度能够更加细化,如支持CPU分别统计到达每个设备的流量的大小,进而分别判断每个设备是否受到攻击。
上述目的设备的标识可选地是目的设备的IP地址。也即是,专用芯片向CPU发送的第一信息包括目的设备的IP地址,使得CPU能够将IP地址作为统计的维度,分别统计发往每个IP地址的流量的大小,进而分别判断每个IP地址是否受到攻击。例如,专用芯片对第一数据流的报文中的IP头中的目的IP地址字段进行解析,获得目的IP地址字段携带的第一数据流的目的IP地址,专用芯片将第一数据流的目的IP地址(即目的设备的IP地址)发送至CPU。又如,专用芯片对第一数据流的目的IP地址字段携带的IP地址进行NAT,将NAT后的IP地址发送至CPU。比如,专用芯片上保存私网地址与公网地址之间的对应关系,第一数据流的目的IP地址字段携带了IP地址1,专用芯片基于IP地址1查找私网地址与公网地址之间的对应关系,获得IP地址1对应的地址,即NAT后的IP地址。
通过上述方式,考虑到通常专用芯片解析IP头获得IP地址的速率较快,能够充分发挥专用芯片的硬件优势,降低实现复杂度并提升效率。
可替代地,专用芯片向CPU发送的第一信息不是包括目的设备的IP地址,而是替换为包括目的设备的编号、目的设备的多协议标签交换(multi protocol label switching,MPLS)标签、目的设备的主机号或者其他能够标识目的设备的信息。
可替代地,专用芯片向CPU发送的第一信息不是包括目的设备的IP地址,而是替换为包括目的设备的IP地址所属的IP地址段,该IP地址段用于标识包含目的设备的一组设备或者一个网络,使得CPU能够将IP地址段作为统计流量大小的维度。
在一些实施例中,专用芯片向CPU发送的第一信息包括第一数据流的目的设备的标识以及目的设备的端口号,使得CPU统计的维度能够是设备的标识和端口号,如支持CPU分别统计发往各个设备的各个端口的流量的大小,进而分别检测各个设备的各个端口是否受到攻击,使得统计的粒度更加细化,进而使得攻击检测的更加精细化。
在一些实施例中,专用芯片向CPU发送的第一信息包括第一数据流的流标识,使得CPU统计的维度可以是数据流,如支持CPU分别统计每条数据流的带宽或者速率,进而判断每条数据流是否存在攻击。第一数据流的流标识包括而不限于第一数据流的五元组、三元组、七元组、flow label(流标签)或者其他能够标识流的信息。五元组包括源IP地址、源端口号、目的IP地址、目的端口号和传输层协议。七元组包括接口索引、源IP地址、目的IP地址、源端口号、目的端口号、传输层协议和服务类型。三元组包括源IP地址、目的IP地址和传输层协议。
在一些实施例中,专用芯片向CPU发送的第一信息包括第一数据流中报文的总长度,以便CPU基于报文的总长度以及第一采样比,确定第一数据流的带宽,进而基于第一数据流的带宽判断第一数据流是否存在攻击。
在一些实施例中,专用芯片向CPU发送的第一信息包括第一数据流中报文的入接口的标识。入接口例如是检测***接收到第一数据流的网络接口。专用芯片通过将入接口的标识发送至CPU,使得CPU统计的维度可以更加细化,例如CPU分别统计每个入接口接收的、到每个IP地址的流量的大小。
在一些实施例中,专用芯片向CPU发送的第一信息包括第一数据流中报文的协议类型,该协议类型例如基于报文头中protocol type(协议类型)字段的内容确定,该协议类型包括而不限于TCP、UDP或者HTTP等,专用芯片通过将协议类型上报给CPU,使得CPU能够分别统计不同协议类型的数据流的带宽或者速率,进而判断攻击对应的协议类型,例如,CPU分别统计TCP数据流的速率以及UDP数据流的速率,从而判断攻击类型为TCP flood攻击还是UDP flood攻击,有助于攻击检测更加精细化。
本申请实施例中,采样检测的范围包括多种情况,下面通过如下实现方式A和实现方式B举例说明。
实现方式A、针对指定的数据流进行采样。
实现方式A相当于一种选择性采样的机制,即,针对检测***接收到的所有数据流中指定的数据流,专用芯片对该数据流进行采样,将采样获得的信息发送至CPU,针对检测***接收到的所有数据流中未指定的数据流,专用芯片无需进行采样,可以将数据流中的每个原始报文发送至CPU。选择哪些数据流进行采样包括多种方式,下面通过实现方式A-1至实现方式A-2举例说明。
实现方式A-1、基于速率表征值选择待进行采样的数据流。
例如,确定检测***接收到的至少一条数据流中每条数据流的速率表征值,基于至少一条数据流中每条数据流的速率表征值,从至少一条数据流中选择速率表征值满足第一条件的第一数据流,由专用芯片针对第一数据流进行采样,由CPU基于采样获得的信息检测第一数据流中是否存在攻击。
针对基于速率表征值选择数据流的执行主体,本实施例通过下述情况(1)和情况(2)举例说明。
情况(1)由CPU基于速率表征值选择待进行采样的数据流。
例如,CPU统计每条数据流的速率表征值,CPU基于每条数据流的速率表征值,从至少一条数据流中选择速率表征值满足第一条件的第一数据流。
可选地,CPU选择第一数据流后,CPU获取第一数据流的目的IP地址,得到第一IP地址;CPU将第一IP地址发送至专用芯片,以便专用芯片针对目的IP地址为第一IP地址的数据流(即第一数据流)进行采样。可替代地,CPU不是将第一IP地址发送至专用芯片,而是将第一IP地址保存至专用芯片能够访问的存储器中,以便专用芯片从该存储器读取第一IP地址,针对目的IP地址为第一IP地址的数据流(即第一数据流)进行采样。可替代地,CPU向专用芯片发送的不是第一数据流的目的IP地址,而是其他能够标识第一数据流的信息,如第一数据流的五元组、流标签等。
情况(2)由专用芯片基于速率表征值选择待进行采样的数据流。
例如,专用芯片统计每条数据流的速率表征值,专用芯片基于每条数据流的速率表征值,从至少一条数据流中选择速率表征值满足第一条件的第一数据流。通过由专用芯片统计速率表征值和选择待进行采样的数据流,一方面,代替CPU承担统计速率表征值和选择待数据流的负载,减轻CPU的处理压力;另一方面,由于专用芯片接收到的每条数据流是未经过采样的原始数据流,专用芯片统计出的速率表征值与数据流实际的速率表征值匹配,也即是专用芯片统计出的速率表征值的精确度更高。
速率表征值用于表征数据流的传输速率。速率表征值的表达方式包括而不限于下述方式(1)和方式(2)。
表达方式(1)速率表征值为单位时间段内接收到的数据流的数据量。
单位时间段内接收到的数据流的数据量也即是数据流的带宽速率。单位时间段例如是秒、分钟、小时或者具有其他时间长度。数据量的单位包括而不限于比特、字节、兆字节、千兆字节等。例如,速率表征值为每秒钟接收到的数据流的比特数量,例如,速率表征值的单位为比特每秒(bits per second,bps)、千比特每秒(kilo bits pro second,Kbps)或者百万比特每秒(million bits pro second,Mbps)等。又如,速率表征值为每秒钟接收到的数据流的字节数量,例如,速率表征值的单位为BPS。
在采用表达方式(1)时,选择待进行采样的数据流的过程包括:确定单位时间段内检测***接收到的每条数据流的数据量(即每条数据流占用的带宽),基于每条数据流在单位时间段的数据量,从每条数据流中选择单位时间段内数据量满足第一条件的第一数据流,由专用芯片针对第一数据流进行采样。
在以占用带宽为手段的攻击场景下,例如UDP flood攻击场景下,发往受攻击的IP地址的数据流中报文的数据量通常比较大,发往受攻击的IP地址的数据流的数据量在检测***收到的所有流量中占用很大的比例,容易造成CPU由于对受攻击的IP地址的数据流进行检测而耗费大量的处理资源,影响到达其他IP地址的数据流的检测。基于本实施例提供的选择数据流的方式,到达受攻击的IP地址的数据流大概率会由于数据量满足条件从而被选中,进而在经过采样后再上送给CPU,从而减少CPU针对受攻击的IP地址的数据流进行检测时所需处理的数据量,因此减少CPU的检测负担,也降低对到达这些IP地址的数据流进行检测而造成的对到达其他IP地址的数据流的检测的影响。此外,由于到达受攻击的IP地址的数据流中报文的数据量本身就比较大,所以采样比与数据流在单位时间段内报文数量之间的偏差对于这些数据流的影响比较小,所以针对这些数据流采用采样检测的方式,检测的精确度也几乎不会降低,因此能够在检测负担与检测的精确性之间取得权衡和折中。
在CPU统计每条数据流的数据量的情况下,由于CPU接收到的可能是未经过采样的数据流,也可能是数据流经过采样后获得的信息,CPU可以基于数据流是否经过采样,采用不同的统计方式。
例如,对于未经过采样的数据流,CPU可以确定单位时间段内CPU接收到的该数据流的数据量,作为该数据流的速率表征值。例如,CPU确定单位时间段内CPU接收到的该数据流中报文的数量以及每个报文的总长度,基于数据流中报文的数量以及每个报文的总长度,确定单位时间段内接收到的该数据流的数据量。对于经过采样的数据流,CPU可以基于单位时间段内专用芯片发送的该数据流的信息的数量、专用芯片发送的该数据流中报文的总长度以及采样比,确定单位时间段内数据流的数据量。
例如,CPU对单位时间段内专用芯片发送的该数据流的信息的数量、专用芯片发送的该数据流中报文的总长度以及采样比进行相乘,将获得的乘积作为单位时间段内数据流的数据量。例如,如果一秒钟内专用芯片向CPU发送了一条数据流中K个报文,每个报文的总长度为M个比特,采样比为N:1,则CPU确定该数据流的传输速率为(K*M*N)bps。
在专用芯片统计每条数据流的速率的情况下,专用芯片可以确定单位时间段内专用芯片接收到的每条数据流的速率,作为每条数据流的速率。
表达方式(2)速率表征值为数据流在单位时间段内传输的报文数量。
上述单位时间段例如是秒、分钟、小时或者具有其他时间长度。例如,速率表征值为每秒钟接收到的数据流中报文的数量,例如,速率表征值的单位为包每秒(packets persecond,PPS)。
在采用表达方式(2)时,选择待进行采样的数据流的过程包括:确定单位时间段内检测***接收到的每条数据流中报文的数量,基于每条数据流中报文的数量,从每条数据流中选择单位时间段内报文数量满足第一条件的第一数据流,由专用芯片针对第一数据流进行采样。
在以短时间内发送大量报文为手段的攻击场景下,例如TCP SYN flood攻击场景下,发往受攻击的IP地址的数据流中报文的速率可能不是很大,但是发往受攻击的IP地址的数据流中报文的数量比较多,容易造成CPU由于对受攻击的IP地址的数据流进行检测导致需要处理的报文数量过多而耗费大量的处理资源,影响到达其他IP地址的数据流的检测。基于本实施例提供的选择数据流的方式,到达受攻击的IP地址的数据流大概率会由于单位时间段内报文的数量满足条件从而被选中,进而在经过采样后再上送给CPU从而减少CPU针对受攻击的IP地址的数据流进行检测时所需处理的报文数量,因此减少CPU的检测负担,也降低对到达这些IP地址的数据流进行检测而造成的对到达其他IP地址的数据流的检测的影响。此外,由于到达受攻击的IP地址的数据流中报文数量本身就比较多,所以采样比与数据流在单位时间段内报文数量之间的偏差对于这些数据流的影响比较小,所以针对这些数据流采用采样检测的方式,检测的精确度也几乎不会降低,因此能够在检测负担与检测的精确性之间取得权衡和折中。
在CPU统计每条数据流的传输速率的情况下,由于CPU接收到的可能是未经过采样的数据流,也可能是数据流经过采样后获得的信息,CPU可以基于数据流是否经过采样,采用不同的传输速率的统计方式。
例如,对于未经过采样的数据流,CPU可以确定单位时间段内CPU接收到的该数据流的报文数量,作为该数据流的传输速率。例如,如果一秒钟内专用芯片向CPU发送了一条数据流中K个报文,则CPU确定该数据流的传输速率为K pps。
例如,对于经过采样的数据流,CPU可以基于单位时间段内专用芯片发送的该数据流的信息的数量以及采样比,确定单位时间段内数据流的传输速率。例如,CPU对单位时间段内专用芯片发送的该数据流的信息的数量以及采样比进行相乘,将获得的乘积作为数据流的传输速率。例如,如果一秒钟内专用芯片向CPU发送了一条数据流中K个报文,且采样比为N:1,则CPU确定该数据流的传输速率为(K*N)pps。
在专用芯片统计每条数据流的传输速率的情况下,专用芯片可以确定单位时间段内专用芯片接收到的每条数据流的报文数量,作为每条数据流的传输速率。
针对基于速率表征值选择数据流的方式,本实施例通过以下实现方式(1)和实现方式(2)举例说明。
实现方式(1)对数据流的速率表征值与阈值进行比较,从而选择待进行采样的数据流。
在一些实施例中,对检测***接收到的至少一条数据流的速率表征值分别与阈值进行比较,选择速率表征值超过阈值的数据流,针对速率表征值超过阈值的数据流进行采样。
以速率表征值的阈值为第一速率表征值为例,例如,判断每条数据流的速率表征值是否超过第一速率表征值,如果数据流的速率表征值超过第一速率表征值,则由专用芯片针对该数据流进行采样。其中,速率表征值超过第一速率表征值的数据流是对第一数据流的举例说明。
可选地,考虑到数据流的速率表征值可能发生波动,可以统计每条数据流的速率表征值超过阈值的持续时长,基于速率表征值超过阈值的持续时长选择待进行采样的数据流。
以速率表征值的阈值为第一速率表征值为例,例如,统计每条数据流的速率表征值超过第一速率表征值的持续时长,如果数据流的速率表征值超过第一速率表征值的持续时长超过第一时长,则由专用芯片针对该数据流进行采样。其中,速率表征值超过第一速率表征值的持续时长超过第一时长的数据流是对第一数据流的举例说明。
实现方式(2)对各条数据流的速率表征值进行排序,从而选择待进行采样的数据流。
在一些实施例中,对检测***接收到的至少一条数据流按照速率表征值从大到小的顺序进行排序,从检测***接收到的多条数据流中,选择排在前第一位数的数据流,作为待进行采样的数据流。速率表征值中排在前第一位数的数据流是对第一数据流的举例说明。
第一位数可以是大于或等于1的任意正整数。例如,如果第一位数为5,则选择接收到的所有数据流中速率表征值排在前5位的数据流,将这5条数据流作为待进行采样的数据流。又如,如果第一位数为1,则选择接收到的所有数据流中速率表征值最大的数据流,将这条数据流作为待进行采样的数据流。第一位数的具体取值可以由管理员确定,也可以由CPU根据CPU的负载确定,例如,CPU保存CPU的负载与第一位数之间的对应关系,基于CPU当前的负载确定与负载对应的第一位数。通过这种方式,使得CPU的负载较高的情况下,选择更多数据流进行采样检测,CPU的负载较低的情况下,选择更少数据流进行采样检测。
实现方式A-2、基于数据流的目的IP地址选择待进行采样的数据流。
通过实现方式A-2,能够针对指定的目的IP地址的数据流进行采样,从而降低指定的目的IP地址的数据流对CPU的处理负担,或者,针对指定的目的IP地址的数据流不进行采样,从而满足指定的目的IP地址的数据流的检测的精准度。
为了区分描述,下面将指定的要进行采样的目的IP地址称为第一类IP地址,将指定的不进行采样的目的IP地址称为第二类IP地址。
例如,专用芯片保存第一类IP地址。当专用芯片接收到数据流时,如果数据流的目的IP地址为第一类IP地址,则专用芯片对数据流进行采样,将采样获得的信息上送至CPU。目的IP地址为第一类IP地址的数据流是第一数据流的具体示例。
针对专用芯片获取第一类IP地址的方式,在一些实施例中,由检测***自动确定第一类IP地址。例如,由检测***中的CPU确定第一类IP地址,CPU将第一类IP地址发送至专用芯片,专用芯片接收CPU发送的第一类IP地址。又如,CPU将第一类IP地址写入至专用芯片能够访问的存储器中,专用芯片从该存储器读取第一类IP地址。又如,由专用芯片自动确定第一类IP地址。
针对确定第一类IP地址的方式,在一些实施例中,基于数据流的速率表征值,确定速率表征值满足条件的数据流的IP地址,作为第一类IP地址,具体的实现方式可参考实现方式A-1;在另一些实施例中,读取受保护网络中每个IP地址的历史记录,基于每个IP地址的历史记录,选择历史时间段没有受到过攻击,或者未发生可疑事件(如域名生成算法(domain generation algorithm,DGA)事件、内网暴力破解事件)的IP地址,作为第一类IP地址。具体地,由于这些IP地址没有受到过攻击或者未发生可疑事件,这些IP地址受攻击的风险相对较低,因此可以对这些IP地址的流量进行采样检测,从而降低检测这些IP地址的流量带来的负担。
在另一些实施例中,由管理员配置第一类IP地址。例如,由管理员通过web界面或者命令行等方式,将第一类IP地址配置到检测***。当将第一类IP地址配置到检测***后,检测***中的CPU或者专用芯片均可以获取到已配置的第一类IP地址。
在再一些实施例中,第一类IP地址预先烧录在专用芯片上;或者,第一类IP地址预先保存在云端服务器上,且检测***上保存有用于指示第一类IP地址在服务器上存储位置的资源路径统一资源***(uniform resource locator,URL)。
针对专用芯片获取第二类IP地址的方式,在一些实施例中,由检测***自动确定第二类IP地址。例如,由检测***中的CPU确定第二类IP地址,CPU将第二类IP地址发送至专用芯片,专用芯片接收CPU发送的第二类IP地址。又如,CPU将第二类IP地址写入至专用芯片能够访问的存储器中,专用芯片从该存储器读取第二类IP地址。又如,由专用芯片自动确定第二类IP地址。
针对确定第二类IP地址的方式,在一些实施例中,基于受保护网络中每个IP地址对应的服务等级协议(Service-Level Agreement,SLA),选择SLA满足条件的IP地址,如重要的IP地址,作为第二类IP地址,从而能够针对不同SLA对应的IP地址,采用不同方式检测,如针对重要用户的IP地址,以不采样而是基于数据流中每个报文进行检测的方式,保证攻击检测的精确性,针对非重要的IP地址,以采样的方式进行检测,从而降低检测产生的负载。在另一些实施例中,读取受保护网络中每个IP地址的历史记录,基于每个IP地址的历史记录,选择历史时间段受到过攻击次数高于第一次数,或者发生可疑事件(如DGA事件、内网暴力破解事件)的数量高于第一事件数量的IP地址,作为第一类IP地址。具体地,由于这些IP地址历史受到过攻击或者发生可疑事件,这些IP地址再次受攻击的风险相对较高,因此对于这些目的IP地址的流量,可以不经过采样,而是通过流量包括的全部报文检测攻击,从而保证检测这些IP地址的精确度。
在另一些实施例中,由管理员配置第二类IP地址。例如,由管理员通过web界面或者命令行等方式,将第二类IP地址配置到检测***。当将第二类IP地址配置到检测***后,检测***中的CPU或者专用芯片均可以获取到已配置的第二类IP地址。
在再一些实施例中,第二类IP地址预先烧录在专用芯片上;或者,第二类IP地址预先保存在云端服务器上,且检测***上保存有用于指示第二类IP地址在服务器上存储位置的资源路径统一资源***(uniform resource locator,URL)。
以上描述的指定的目的IP地址(如第一类IP地址或者第二类IP地址),例如是公网IP地址,又如是私网IP地址。在指定的目的IP地址为私网IP地址,而数据流的目的IP地址是公网IP地址的情况下,可以对数据流的目的IP地址进行网络地址转换(network addresstranslation,NAT),基于数据流经过NAT后得到的IP地址是否为上述第一类IP地址或者第二类IP地址,判断是否对数据流进行采样。例如,对于检测***接收到的任一条数据流,如果该数据流的目的IP地址经过NAT后得到的IP地址为第一类IP地址,则由专用芯片对该数据流进行采样。又如,如果该数据流的目的IP地址经过NAT后得到的IP地址不为第二类IP地址,则由专用芯片对该数据流进行采样。
实现方式B、针对所有数据流进行采样。
例如,专用芯片对接收到的所有数据流均进行采样,获得每个数据流对应的第一信息,向CPU分别发送每个数据流对应的第一信息。
关于专用芯片对数据流进行采样时使用的采样比,本申请实施例提供了多种确定采样比的方式,下面通过四种确定方式举例说明。
采样比的确定方式一、基于检测***的负载表征值,确定专用芯片对数据流进行采样时使用的采样比。
负载表征值用于表征检测***的负载。负载表征值包括而不限于CPU、内存以及IO***这三类元件的性能指标。例如,负载表征值包括而不限于CPU的利用率、内存利用率、硬盘的每秒读写次数(input output per second,IOPS)、硬盘的吞吐量等。
通过基于负载表征值确定采样比,使得确定出的采样比适配于检测***的负载,能够兼容负载不同的场景,且在负载发生波动的场景下,能够在负载发生变化时,基于检测***当前的负载动态地调整使用的采样比,灵活性比较强,有助于在减少检测负担以及保证检测精确性之间取得平衡。
在一些实施例中,基于检测***的负载表征值以及第一对应关系,确定第一采样比。第一对应关系为负载表征值与采样比之间的对应关系。例如,第一对应关系包括至少一组负载表征值以及对应的至少一组采样比。又如,第一对应关系包括至少一组负载表征值的区间范围以及对应的至少一组采样比。
可选地,采样比与第一对应关系中对应的负载表征值具有正相关的关系。也即是,负载表征值越大,对应的采样比越大。通过这种方式,在CPU负载逐渐上升时,使用的采样比能够随着CPU负载的上升而增大,从而通过更大的采样比更大幅度地降低CPU的负载,在CPU负载逐渐下降时,使用的采样比能够随着CPU负载的下降而降低,从而降低采样比过大时可能对检测精度的影响,从而兼容于不同负载的场景,提高灵活性。
第一对应关系的数据形式包括多种情况。在一些实施例中,第一对应关系是表格的形式,该表格在使用时,查找的索引是负载表征值,查找的结果是采样比。例如,专用芯片基于检测***的负载表征值,查找第一对应关系,获得与负载表征值对应的第一采样比。
例如,以负载表征值为CPU利用率为例,第一对应关系可以具有下表1所示的形式。例如,如果CPU利用率为92%,则专用芯片对第一数据流采样时使用的第一采样比为采样比A;如果CPU利用率为50%,则专用芯片对第一数据流采样时使用的第一采样比为采样比C;如果CPU利用率为30%,则专用芯片对第一数据流采样时使用的第一采样比为1,即不进行采样,将第一数据流中每个报文均发送至CPU。
表1
CPU利用率 | 采样比 |
90%-100% | 采样比A |
60%-90% | 采样比B |
40%-60% | 采样比C |
0-40% | 1(不进行采样) |
可选地,表1中的采样比A大于采样比B,采样比B大于采样比C,也即是,CPU利用率处于(90%,100%)时对数据流进行采样时使用的采样比大于CPU利用率处于(60%,90%)时对数据流进行采样时使用的采样比,CPU利用率处于(60%,90%)时对数据流进行采样时使用的采样比大于CPU利用率处于(40%,60%)时对数据流进行采样时使用的采样比。
可替代地,第一对应关系不是表格的形式,而是函数、公式或者模型的形式,例如第一对应关系是一个函数,该函数的输入参数包括CPU利用率,该函数的输出参数包括采样比,本实施例对第一对应关系的形式不做限定。
采样比的确定方式二、基于数据流的速率表征值,确定专用芯片对该数据流进行采样时使用的采样比。
通过基于速率表征值确定采样比,使得确定出的采样比适配于数据流的速率,能够针对不同速率的数据流采用不同的采样比,且能够在数据流的速率发生变化时,基于数据流当前的速率动态地调整使用的采样比,灵活性比较强,有助于在减少检测负担以及保证检测精确性之间取得平衡。
在一些实施例中,基于第一数据流的速率表征值以及第二对应关系,确定第一采样比。第二对应关系为数据流的速率表征值与采样比之间的对应关系。例如,第二对应关系包括数据流的至少一组速率表征值以及对应的至少一组采样比。又如,第二对应关系包括数据流的至少一组速率表征值的区间范围以及对应的至少一组采样比。
可选地,采样比与第二对应关系中对应的速率表征值具有正相关的关系。也即是,数据流的速率表征值越大,对应的采样比越大。通过这种方式,能够针对不同速率的数据流采用不同的采样比,针对速率偏小的数据流采用偏小的采样比,针对速率偏大的数据流采用偏大的采样比,使得采样检测的方式适配不同速率的数据流,兼容性更好。此外,考虑到同一条数据流的速率可能发生变化,在数据流的速率逐渐上升时,使用的采样比能够随着数据流的速率的上升而增大,从而更大幅度地减小CPU检测该数据流时所需处理的数据量或者报文数量,在数据流的速率逐渐下降时,使用的采样比能够随着数据流的速率的下降而减小,使得CPU能够利用更多的数据或者报文检测该数据流,从而能够随着数据流速率的变化而动态地调整采样比,且尽可能在检测负担与检测精度之间取得平衡。
第二对应关系的数据形式包括多种情况。在一些实施例中,第二对应关系是表格的形式,该表格在使用时,查找的索引是第一数据流的速率表征值,查找的结果是第一采样比。例如,专用芯片基于第一数据流的速率表征值,查找第二对应关系,获得与第一数据流的速率表征值对应的第一采样比。
例如,在根据数据流占用的带宽(或者说数据流在单位时间段传输的数据量)检测攻击的场景下,第二对应关系可以具有表2的形式,基于下表2,当第一数据流每秒传输的比特数量处于(X bps,Y bps)的范围内,则采用采样比a对第一数据流进行采样,当第一数据流每秒传输的比特数量处于(Y bps,Z bps)的范围内,则采用采样比b对第一数据流进行采样。
表2
速率表征值 | 采样比 |
(X bps,Y bps) | 采样比a |
(Y bps,Z bps) | 采样比b |
又如,在根据数据流的速率检测攻击的场景下,第二对应关系可以具有表3的形式,基于下表3,当第一数据流每秒传输的报文数量处于(X’pps,Y’pps)的范围内,则采用采样比a’对第一数据流进行采样,当第一数据流每秒传输的比特数量处于(Y’pps,Z’pps)的范围内,则采用采样比b’对第一数据流进行采样。
表3
速率表征值 | 采样比 |
(X’pps,Y’pps) | 采样比a’ |
(Y’pps,Z’pps) | 采样比b’ |
可替代地,第二对应关系不是表格的形式,而是函数、公式或者模型的形式,例如第二对应关系是一个函数,该函数的输入参数包括CPU利用率,该函数的输出参数包括采样比,本实施例对第二对应关系的形式不做限定。
采样比的确定方式三、基于数据流的目的IP地址,确定专用芯片对该数据流进行采样时使用的采样比。
通过基于数据流的目的IP地址确定采样比,能够针对发往不同IP地址的数据流采用不同的采样比,例如针对速率表征值偏大的数据流采用偏大的采样比,针对速率表征值偏小的数据流采用偏小的采样比,从而降低采样比大于单位时间段内报文数量时引起的误差,有助于在检测负担与检测精度之间取得平衡。又如,针对重要IP地址的数据流采用偏小的采样比或者采样比为1(相当于不采样),针对非重要IP地址的数据流采用偏大的采样比,从而满足不同用户的差异化需求。
在一些实施例中,基于第一数据流的目的IP地址以及第三对应关系,确定第一采样比。第三对应关系为IP地址与采样比之间的对应关系。例如,第三对应关系包括至少一组IP地址以及对应的至少一组采样比。
在一些实施例中,第三对应关系是表格的形式,该表格在使用时,查找的索引是第一数据流的目的IP地址,查找的结果是第一采样比。例如,专用芯片基于第一数据流的目的IP地址,查找第三对应关系,获得与第一数据流的目的IP地址对应的第一采样比。例如,第三对应关系可以具有下表4示出的形式。基于下表4,当第一数据流的目的IP地址为1.1.1.1时,则采用采样比1对第一数据流进行采样,当第一数据流的目的IP地址为2.2.2.2时,则采用采样比2对第一数据流进行采样。
表4
IP地址 | 采样比 |
1.1.1.1 | 采样比1 |
2.2.2.2 | 采样比2 |
在一些实施例中,基于第一数据流的目的IP地址经过NAT后得到的IP地址以及第三对应关系,确定第一采样比。
采样比的确定方式四、基于管理员的配置操作,确定专用芯片对数据流进行采样时使用的采样比。
例如,由管理员通过web界面或者命令行等方式,将采样比配置到检测***。当将采样比配置到检测***后,检测***中的CPU或者专用芯片均可以获取到已配置采样比。
以上列举的四种采样比的确定方式的执行主体可以是检测***中的任意元件。在一些实施例中,由CPU基于上述四种采样比的确定方式中的任意一种方式,确定针对第一数据流采用的第一采样比,CPU向专用芯片发送确定出的第一采样比;在另一些实施例中,由专用芯片基于上述四种采样比的确定方式中的任意一种方式,确定针对第一数据流采用的第一采样比,专用芯片向CPU发送确定出的第一采样比。例如,专用芯片在发送上述第一信息中,不仅包括原始报文、复制报文或者元数据其中任意一项,还包括第一采样比。
在一些实施例中,响应于第一数据流的速率表征值发生变化,更新第一采样比。例如,基于第一数据流的更新后的速率表征值以及确定方式一中描述的第一对应关系,获得更新后的速率表征值对应的第一采样比。
在一些实施例中,响应于检测***的负载表征值发生变化,更新第一采样比。例如,基于检测***的更新后的负载表征值以及确定方式二中描述的第二对应关系,获得更新后的负载表征值对应的第一采样比。
步骤S302、专用芯片向CPU发送第一信息。
步骤S303、CPU基于第一采样比以及第一信息,检测第一数据流的目的设备是否受到攻击。
在一些实施例中,CPU基于第一采样比以及第一信息,获得第一数据流的速率表征值;CPU基于第一数据流的速率表征值检测第一数据流的目的设备是否受到攻击。
针对获得第一数据流的速率表征值的方式,例如,CPU确定第一信息的传输速率,确定第一信息的传输速率与第一采样比的乘积,作为第一数据流的速率表征值。例如,CPU统计从专用芯片接收到第一数据流的第一信息的数量;CPU确定单位时间段内接收到第一信息的数量与第一采样比的乘积,作为第一数据流的用于表征速率的速率表征值。又如,CPU确定单位时间段内接收到第一信息的数量、报文总长度与第一采样比的乘积,作为第一数据流的用于表征带宽的速率表征值。
CPU通过将第一信息的传输速率与第一采样比相乘,相当于根据第一采样比将第一信息的传输速率还原为第一数据流实际的传输速率。例如,如果采样比为N:1,则CPU每当接收到一个第一信息,则记录有N个报文到达第一数据流的目的设备。
以上描述了检测第一数据流的目的设备是否受到攻击的流程,在需要检测多个设备是否受到攻击的场景下,CPU例如分别统计到达每个设备的数据流的传输速率,基于每条数据流的传输速率分别检测每个设备是否受到攻击。
以分别检测K个设备是否受到攻击为例,在一种可能的实现中,CPU建立K个记录表。每个记录表对应于K个设备中一个设备,通过K个记录表分别统计到达K个设备中每个设备的数据流的速率表征值。
在一些实施例中,上述记录表用于记录到达对应设备的报文数量。CPU每当从专用芯片中接收到一个信息后,如果该信息中包括K个设备中第i个设备的IP地址,且第i个设备对应的采样比为N:1,则CPU向第i个设备对应的记录表中记录的报文数量加N;当经过一个单位时间段时,CPU确定第i个设备对应的记录表中记录的报文数量,作为一个单位时间段内到达第i个设备的数据流的报文数量,也即是第i个设备对应的数据流的速率表征值。
在另一些实施例中,上述记录表用于记录到达对应设备的数据量。CPU每当从专用芯片中接收到一个信息后,如果该信息中包括K个设备中第i个设备的IP地址以及报文总长度(如M个比特),且第i个设备对应的采样比为N:1,则CPU向第i个设备对应的记录表中记录的数据量加上M*N;当经过一个单位时间段时,CPU确定第i个设备对应的记录表中记录的数据量,作为到达第i个设备的数据流的数据量,也即是第i个设备对应的数据流的速率表征值。
可选地,CPU分别记录每个入接口接收的、到达受保护网络中每个设备的数据流速率。例如,CPU为检测***的每个入接口分别建立对应的记录表。当CPU从专用芯片中接收到第一信息后,基于第一信息中的入接口以及目的IP地址,向该入接口以及该目的IP地址对应的记录表记录报文数量或者数据量。
可选地,CPU分别记录每种协议对应的数据流速率,以便基于协议类型进一步确定攻击类型。例如,对于同一个目的IP地址,为该目的IP地址建立多个记录表,每个记录表对应一种协议,如TCP协议对应于第一记录表,UDP协议对应于第二记录表。当CPU从专用芯片中接收到第一信息后,基于第一信息中的协议类型以及目的IP地址,向该协议类型以及该目的IP地址对应的记录表中记录报文数量或者数据量。或者,不是为每种协议分别建立记录表,而是在记录表中设置协议类型字段,当CPU从专用芯片中接收到第一信息后,基于第一信息中的协议类型以及目的IP地址,向该目的IP地址对应的记录表记录报文数量或者数据量,并向记录表中记录协议类型。
关于检测攻击的方式,在一些实施例中,如果第一数据流的速率表征值超过速率阈值的持续时长超过时长阈值,则CPU确定第一数据流的目的设备受到攻击。例如,速率阈值为1000pps,时长阈值为3秒,如果到达目的地址128.1.1.2的SYN报文流量连续3秒内超过1000pps,则确定目的地址128.1.1.2受到了SYN flood攻击。
上述速率阈值以及时长阈值的来源包括多种方式。在一些实施例中,由管理面或者控制面预先将速率阈值以及时长阈值配置至检测***。在另一些实施例中,由检测设备通过动态流量基线技术,对受保护网络的流量进行周期性的统计学习,从而得到速率阈值以及时长阈值。
本实施例实现了一种基于专用芯片采样检测攻击的方法,通过由专用芯片与CPU联动检测攻击,由专用芯片对数据流进行采样,由CPU基于专用芯片采样后上送的信息检测攻击。由于CPU检测攻击时,利用的数据是经过采样获得的信息,经过采样获得的信息的速率显著少于原始数据流的速率,因此大大减少了CPU检测攻击时所需处理的速率,降低了CPU的负载,进而降低了CPU负载过重对检测性能的影响。此外,充分发挥了专用芯片高效快速的优势以及CPU完善的攻击检测能力,提升了检测***整体攻击检测的效果。
针对专用芯片启动采样的方式,在一些实施例中,CPU向专用芯片发送激活指令。专用芯片接收激活指令,响应于激活指令执行S301。上述激活指令相当于一个开关,使得专用芯片启动执行采样的动作。例如,激活指令指示专用芯片获取第一信息。通过上述交互激活指令的机制,使得CPU能够灵活地控制专用芯片是否进行采样。
可选地,激活指令携带第一采样比,激活指令用于指示专用芯片使用激活指令携带的第一采样比进行采样。专用芯片接收到激活指令后,从激活指令中获得第一采样比,保存激活指令携带的第一采样比。或者,预先在专用芯片上保存第一采样比,则CPU无需在激活指令中携带第一采样比。
针对CPU发送激活指令的时机,在一些实施例中,CPU在检测***过载时,发送激活指令来触发专用芯片进行采样。例如,若检测***的负载表征值超过第一负载表征值,CPU向专用芯片发送激活指令;又如,若检测***的负载表征值超过第一负载表征值的持续时长超过第二时长,CPU向专用芯片发送激活指令;由于在检测***过载时才下发激活指令从而触发采样,使得检测***不过载时无需进行采样,也即是检测***不过载时CPU能够利用流量中所有原始报文进行检测,从而尽可能保证检测结果的准确性。
以负载表征值为CPU利用率,第一负载表征值为90%为例,例如,如果CPU确定CPU利用率超过90%的持续时长超过第二时长,CPU向专用芯片发送激活指令。
上述激活指令可以用于触发专用芯片对所有数据流进行采样,也可以用于触发专用芯片对到达部分IP地址的数据流进行采样。例如,如果激活指令不携带目的IP地址,默认触发专用芯片对所有数据流进行采样。如果激活指令携带第一IP地址,则指示专用芯片针对目的IP地址为第一IP地址的数据流进行采样,而无需对第一IP地址的之外其他IP地址的数据流进行采样。
可选地,激活指令携带的IP地址的数量与检测***的负载表征值相关。例如,如果检测***的负载表征值越大,则CPU在发送激活指令时,在激活指令携带的IP地址的数量越多,从而触发专用芯片针对到达更多IP地址的数据流进行采样。可选地,CPU保存负载表征值与IP地址数量之间的对应关系,CPU基于检测***当前的负载表征值以及该对应关系,获得负载表征值对应的IP地址数量,将该数量个IP地址携带在激活指令中,发送至专用芯片。以负载表征值为CPU利用率为例,例如,CPU利用率处于(40%,60%)的范围内,对应的IP地址数量为a;CPU利用率处于(60%,80%)的范围内,对应的IP地址数量为b,也即是,如果CPU利用率处于(40%,60%)的范围内,针对a个IP地址的数据流进行采样,如果CPU利用率处于(60%,80%))的范围内,针对b个IP地址的数据流进行采样。
在另一些实施例中,CPU在数据流的速率过快时,发送激活指令来触发专用芯片进行采样。例如,若第一数据流的速率表征值超过第二速率表征值,CPU向专用芯片发送激活指令;又如,若第一数据流的速率表征值超过第二速率表征值的持续时长超过第三时长,CPU向专用芯片发送激活指令。由于在数据流的速率过大时才下发激活指令从而触发采样,使得数据流速率偏小时无需针对其进行采样,从而降低数据流速率小于采样比引起的误差。
针对专用芯片取消采样的方式,在一些实施例中,CPU向专用芯片发送去激活指令;专用芯片响应于去激活指令,取消基于第一数据流获得第一信息的步骤,而是向CPU发送第一数据流;CPU基于第一数据流,检测第一数据流的目的设备是否受到攻击。
可选地,去激活指令携带第一IP地址,去激活指令用于指示专用芯片针对目的IP地址为第一IP地址的数据流取消采样;而针对第一IP地址之外的第二IP地址,如果专用芯片之前采用采样的方式,将第二IP地址的数据流的信息发送至CPU,可以继续采用采样的方式,将第二IP地址的数据流的信息发送至CPU。
针对CPU发送去激活指令的时机,在一些实施例中,CPU在检测***不过载时,通过发送去激活指令来触发专用芯片取消采样。例如,若检测***的负载表征值小于第二负载表征值,CPU向专用芯片发送去激活指令;在一些实施例中,若检测***的负载表征值小于第二负载表征值的持续时长超过第四时长,CPU向专用芯片发送去激活指令。由于在检测***不过载时下发去激活指令从而取消采样,使得检测***不过载时无需进行采样,也即是检测***不过载时CPU能够利用流量中所有原始报文进行检测,从而尽可能保证检测结果的准确性。
上述第二负载表征值和第一负载表征值可以是相同的值,也可以是不同的值。上述第四时长与第二时长可以是相同的值,也可以是不同的值。
以负载表征值为CPU利用率,第二负载表征值为90%为例,例如,如果CPU确定CPU利用率低于90%的持续时长超过第四时长,CPU向专用芯片发送去激活指令。
可选地,去激活指令携带的IP地址的数量与检测***的负载表征值相关。例如,如果检测***的负载表征值越小,则CPU在发送去激活指令时,在去激活指令携带的IP地址的数量越多,从而触发专用芯片针对到达更多IP地址的数据流取消采样。可选地,CPU保存负载表征值与IP地址数量之间的对应关系,CPU基于检测***当前的负载表征值以及该对应关系,获得负载表征值对应的IP地址数量,将该数量个IP地址携带在去激活指令中,发送至专用芯片。以负载表征值为CPU利用率为例,例如,CPU利用率处于(40%,60%)的范围内,对应的IP地址数量为c;CPU利用率处于(60%,80%)的范围内,对应的IP地址数量为d,也即是,如果CPU利用率处于(40%,60%)的范围内,针对c个IP地址的数据流取消采样,如果CPU利用率处于(60%,80%))的范围内,针对d个IP地址的数据流取消采样。
在一些实施例中,若第一数据流的速率表征值小于第三速率表征值,CPU向专用芯片发送去激活指令;或者,若第一数据流的速率表征值小于第三速率表征值的持续时长超过第五时长,CPU向专用芯片发送去激活指令。由于在数据流的速率过大时下发去激活指令从而取消采样,使得数据流速率偏小时无需针对其进行采样,从而降低数据流速率小于采样比引起的误差。
上述第三速率表征值和第二速率表征值可以是相同的值,也可以是不同的值。上述第五时长与第三时长可以是相同的值,也可以是不同的值。
可选地,去激活指令用于指示专用芯片删除目的IP地址。例如,去激活指令携带第一IP地址,则专用芯片删除已保存的第一IP地址,从而后续不会对第一IP地址的数据流进行采样。可选地,CPU确定检测***接收到的多条数据流中速率表征值满足第三条件的数据流,将满足第三条件的每个数据流的目的IP地址作为待删除的目的IP地址,将待删除的目的IP地址携带在去激活指令中,发送至专用芯片。满足第三条件例如是数据流的速率表征值在检测***接收到的多条数据流中排在前第二位数的数据流,又如是数据流的速率表征值大于第三速率表征值。
在一些实施例中,专用芯片向CPU发送第二数据流;CPU基于第二数据流,检测第二数据流的目的设备是否受到攻击;其中,第二数据流的目的IP地址不为检测***上已配置的第一类IP地址;或者,第二数据流的目的IP地址经过NAT后得到的IP地址不为检测***上已配置的第一类IP地址;或者,第二数据流的目的IP地址为检测***上已配置的第二类IP地址;或者,第二数据流的目的IP地址经过NAT后得到的IP地址为检测***上已配置的第二类IP地址。或者,第二数据流的速率表征值不满足第二条件;通过上述方式,实现针对指定的目的IP地址不进行采样,或者速率表征值不满足条件的数据流不进行采样,从而满足更多场景的需求。比如,为了满足一些重要用户对检测精确度的要求,指定以重要用户的IP地址为目的IP地址的数据流不进行采样。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (34)
1.一种攻击检测方法,其特征在于,应用于检测***,所述检测***包括中央处理器CPU和专用芯片,所述方法包括:
所述专用芯片基于第一采样比以及所述检测***接收到的第一数据流,获取第一信息;
所述专用芯片向所述CPU发送所述第一信息;
所述CPU基于所述第一采样比以及所述第一信息,检测所述第一数据流的目的设备是否受到攻击。
2.根据权利要求1所述的方法,其特征在于,所述第一信息包括所述第一数据流中的报文;或者,
所述第一信息包括对所述第一数据流包括的报文进行复制从而获得的报文;或者,
所述第一信息包括所述第一数据流包括的报文的元数据,所述元数据包括报文头、报文头携带的数据、载荷、载荷中的数据中任一项。
3.根据权利要求1或2所述的方法,其特征在于,所述第一数据流的速率表征值满足第一条件;或者,
所述第一数据流的目的互联网协议IP地址为所述检测***上已配置的第一类IP地址;或者,
所述第一数据流的目的IP地址经过网络地址转换NAT后得到的IP地址为所述检测***上已配置的第一类IP地址;或者,
所述第一数据流的目的IP地址不为所述检测***上已配置的第二类IP地址;或者,
所述第一数据流的目的IP地址经过NAT后得到的IP地址不为所述检测***上已配置的第二类IP地址。
4.根据权利要求3所述的方法,其特征在于,所述第一数据流的速率表征值满足第一条件,包括:
所述第一数据流的速率表征值超过第一速率表征值;或者,
所述第一数据流的速率表征值在所述检测***接收到的多条数据流中排在前第一位数;或者,
所述第一数据流的速率表征值超过第一速率表征值的持续时长超过第一时长。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述专用芯片基于第一采样比以及所述检测***接收到的第一数据流,获取第一信息之前,所述方法还包括:
所述CPU或者所述专用芯片,基于所述检测***接收到的多条数据流中每条数据流的速率表征值以及每条数据流的IP地址中至少一项,从所述多条数据流中确定所述第一数据流。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
基于所述检测***的负载表征值以及第一对应关系,确定所述第一采样比,所述第一对应关系为负载表征值与采样比之间的对应关系;或者,
基于所述第一数据流的速率表征值以及第二对应关系,确定所述第一采样比,所述第二对应关系为数据流的速率表征值与采样比之间的对应关系;或者,
基于所述第一数据流的目的IP地址以及第三对应关系,确定所述第一采样比,所述第三对应关系为IP地址与采样比之间的对应关系;或者,
基于所述第一数据流的目的IP地址经过NAT后得到的IP地址以及所述第三对应关系,确定所述第一采样比;或者,
基于管理员的配置操作,确定所述第一采样比。
7.根据权利要求6所述的方法,其特征在于,所述第一采样比由所述CPU确定或所述专用芯片确定。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当所述第一采样比由所述CPU确定时,所述CPU向所述专用芯片发送所述第一采样比。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述专用芯片基于第一采样比以及所述检测***接收到的第一数据流,获取第一信息之前,所述方法还包括:
所述CPU向所述专用芯片发送激活指令,所述激活指令指示所述专用芯片获取所述第一信息。
10.根据权利要求9所述的方法,其特征在于,所述CPU向所述专用芯片发送激活指令,包括:
若所述检测***的负载表征值超过第一负载表征值,所述CPU向所述专用芯片发送所述激活指令;或者,
若所述检测***的负载表征值超过第一负载表征值的持续时长超过第二时长,所述CPU向所述专用芯片发送所述激活指令;或者,
若所述第一数据流的速率表征值超过第二速率表征值,所述CPU向所述专用芯片发送所述激活指令;或者,
若所述第一数据流的速率表征值超过第二速率表征值的持续时长超过第三时长,所述CPU向所述专用芯片发送所述激活指令。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述方法还包括:
所述CPU向所述专用芯片发送去激活指令;
所述专用芯片响应于所述去激活指令,向所述CPU发送所述第一数据流;
所述CPU基于所述第一数据流,检测所述第一数据流的目的设备是否受到攻击。
12.根据权利要求11所述的方法,其特征在于,所述CPU向所述专用芯片发送去激活指令包括:
若所述检测***的负载表征值小于第二负载表征值,所述CPU向所述专用芯片发送所述去激活指令;或者,
若所述检测***的负载表征值小于第二负载表征值的持续时长超过第四时长,所述CPU向所述专用芯片发送所述去激活指令;或者,
若所述第一数据流的速率表征值小于第三速率表征值,所述CPU向所述专用芯片发送所述去激活指令;或者,
若所述第一数据流的速率表征值小于第三速率表征值的持续时长超过第五时长,所述CPU向所述专用芯片发送所述去激活指令。
13.根据权利要求1至12中任一项所述的方法,其特征在于,所述方法还包括:
响应于所述第一数据流的速率表征值发生变化或者所述检测***的负载表征值发生变化,更新所述第一采样比。
14.根据权利要求1至13中任一项所述的方法,其特征在于,所述方法还包括:
所述专用芯片向所述CPU发送第二数据流;
所述CPU基于所述第二数据流,检测所述第二数据流的目的设备是否受到攻击;
其中,所述第二数据流的速率表征值不满足第二条件;或者,
所述第二数据流的目的IP地址不为所述检测***上已配置的第一类IP地址;或者,
所述第二数据流的目的IP地址经过NAT后得到的IP地址不为所述检测***上已配置的第一类IP地址;或者,
所述第二数据流的目的IP地址为所述检测***上已配置的第二类IP地址;或者,
所述第二数据流的目的IP地址经过NAT后得到的IP地址为所述检测***上已配置的第二类IP地址。
15.根据权利要求1至14中任一项所述的方法,其特征在于,所述CPU基于所述第一采样比以及所述第一信息,检测所述第一数据流的目的设备是否受到攻击,包括:
所述CPU基于所述第一采样比以及所述第一信息,检测所述第一数据流的目的设备是否受到分布式拒绝服务DDoS攻击。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
当所述第一采样比由所述专用芯片确定时,所述第一信息还包括所述第一采样比。
17.一种检测***,其特征在于,所述检测***包括中央处理器CPU和专用芯片;
所述专用芯片,用于基于第一采样比以及所述检测***接收到的第一数据流,获取第一信息,向所述CPU发送所述第一信息;
所述CPU,用于基于所述第一采样比以及所述第一信息,检测所述第一数据流的目的设备是否受到攻击。
18.根据权利要求17所述的***,其特征在于,所述第一信息包括所述第一数据流中的报文;或者,
所述第一信息包括对所述第一数据流包括的报文进行复制从而获得的报文;或者,
所述第一信息包括所述第一数据流包括的报文的元数据,所述元数据包括报文头、报文头携带的数据、载荷、载荷中的数据中任一项。
19.根据权利要求17或18所述的***,其特征在于,所述第一数据流的速率表征值满足第一条件;或者,
所述第一数据流的目的互联网协议IP地址为所述检测***上已配置的第一类IP地址;或者,
所述第一数据流的目的IP地址经过网络地址转换NAT后得到的IP地址为所述检测***上已配置的第一类IP地址;或者,
所述第一数据流的目的IP地址不为所述检测***上已配置的第二类IP地址;或者,
所述第一数据流的目的IP地址经过NAT后得到的IP地址不为所述检测***上已配置的第二类IP地址。
20.根据权利要求19所述的***,其特征在于,所述第一数据流的速率表征值满足第一条件,包括:
所述第一数据流的速率表征值超过第一速率表征值;或者,
所述第一数据流的速率表征值在所述检测***接收到的多条数据流中排在前第一位数;或者,
所述第一数据流的速率表征值超过第一速率表征值的持续时长超过第一时长。
21.根据权利要求17至20中任一项所述的***,其特征在于,所述CPU或者所述专用芯片,还用于基于所述检测***接收到的多条数据流中每条数据流的速率表征值以及每条数据流的IP地址中至少一项,从所述多条数据流中确定所述第一数据流。
22.根据权利要求17至21中任一项所述的***,其特征在于,所述CPU或者所述专用芯片,还用于:
基于所述检测***的负载表征值以及第一对应关系,确定所述第一采样比,所述第一对应关系为负载表征值与采样比之间的对应关系;或者,
基于所述第一数据流的速率表征值以及第二对应关系,确定所述第一采样比,所述第二对应关系为数据流的速率表征值与采样比之间的对应关系;或者,
基于所述第一数据流的目的IP地址以及第三对应关系,确定所述第一采样比,所述第三对应关系为IP地址与采样比之间的对应关系;或者,
基于所述第一数据流的目的IP地址经过NAT后得到的IP地址以及所述第三对应关系,确定所述第一采样比;或者,
基于管理员的配置操作,确定所述第一采样比。
23.根据权利要求22所述的***,其特征在于,所述第一采样比由所述CPU确定或所述专用芯片确定。
24.根据权利要求23所述的***,其特征在于,当所述第一采样比由所述CPU确定时,所述CPU还用于向所述专用芯片发送所述第一采样比。
25.根据权利要求17至24中任一项所述的***,其特征在于,所述CPU,还用于向所述专用芯片发送激活指令,所述激活指令指示所述专用芯片获取所述第一信息。
26.根据权利要求25所述的***,其特征在于,所述CPU,用于若所述检测***的负载表征值超过第一负载表征值,向所述专用芯片发送所述激活指令;或者,若所述检测***的负载表征值超过第一负载表征值的持续时长超过第二时长,向所述专用芯片发送所述激活指令;或者,若所述第一数据流的速率表征值超过第二速率表征值,向所述专用芯片发送所述激活指令;或者,若所述第一数据流的速率表征值超过第二速率表征值的持续时长超过第三时长,向所述专用芯片发送所述激活指令。
27.根据权利要求17至26中任一项所述的***,其特征在于,所述CPU,还用于向所述专用芯片发送去激活指令;
所述专用芯片,还用于响应于所述去激活指令,向所述CPU发送所述第一数据流;
所述CPU,还用于基于所述第一数据流,检测所述第一数据流的目的设备是否受到攻击。
28.根据权利要求27所述的***,其特征在于,所述CPU,用于若所述检测***的负载表征值小于第二负载表征值,向所述专用芯片发送所述去激活指令;或者,若所述检测***的负载表征值小于第二负载表征值的持续时长超过第四时长,向所述专用芯片发送所述去激活指令;或者,若所述第一数据流的速率表征值小于第三速率表征值,向所述专用芯片发送所述去激活指令;或者,若所述第一数据流的速率表征值小于第三速率表征值的持续时长超过第五时长,向所述专用芯片发送所述去激活指令。
29.根据权利要求17至28中任一项所述的***,其特征在于,所述专用芯片或者所述CPU,还用于响应于所述第一数据流的速率表征值发生变化或者所述检测***的负载表征值发生变化,更新所述第一采样比。
30.根据权利要求17至29中任一项所述的***,其特征在于,所述专用芯片,还用于向所述CPU发送第二数据流;
所述CPU,还用于基于所述第二数据流,检测所述第二数据流的目的设备是否受到攻击;
其中,所述第二数据流的速率表征值不满足第二条件;或者,
所述第二数据流的目的IP地址不为所述检测***上已配置的第一类IP地址;或者,
所述第二数据流的目的IP地址经过NAT后得到的IP地址不为所述检测***上已配置的第一类IP地址;或者,
所述第二数据流的目的IP地址为所述检测***上已配置的第二类IP地址;或者,
所述第二数据流的目的IP地址经过NAT后得到的IP地址为所述检测***上已配置的第二类IP地址。
31.根据权利要求17至30中任一项所述的***,其特征在于,所述CPU,用于基于所述第一采样比以及所述第一信息,检测所述第一数据流的目的设备是否受到分布式拒绝服务DDoS攻击。
32.根据权利要求31所述的***,其特征在于,当所述第一采样比由所述专用芯片确定时,所述第一信息还包括所述第一采样比。
33.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令在检测***上运行时,使得检测***执行如权利要求1-16中任一项所述的方法。
34.一种计算机程序产品,其特征在于,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被检测***加载并运行时,使得所述检测***执行权利要求1-16中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211633931.6A CN118233111A (zh) | 2022-12-19 | 2022-12-19 | 攻击检测方法、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211633931.6A CN118233111A (zh) | 2022-12-19 | 2022-12-19 | 攻击检测方法、***及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118233111A true CN118233111A (zh) | 2024-06-21 |
Family
ID=91503348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211633931.6A Pending CN118233111A (zh) | 2022-12-19 | 2022-12-19 | 攻击检测方法、***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118233111A (zh) |
-
2022
- 2022-12-19 CN CN202211633931.6A patent/CN118233111A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10735379B2 (en) | Hybrid hardware-software distributed threat analysis | |
US10608992B2 (en) | Hybrid hardware-software distributed threat analysis | |
Kalkan et al. | JESS: Joint entropy-based DDoS defense scheme in SDN | |
US10498612B2 (en) | Multi-stage selective mirroring | |
CA2698255C (en) | Intelligent collection and management of flow statistics | |
JP4759389B2 (ja) | パケット通信装置 | |
EP1999890B1 (en) | Automated network congestion and trouble locator and corrector | |
US9917783B2 (en) | Method, system and non-transitory computer readable medium for profiling network traffic of a network | |
US10771363B2 (en) | Devices for analyzing and mitigating dropped packets | |
Giotis et al. | A scalable anomaly detection and mitigation architecture for legacy networks via an OpenFlow middlebox | |
Afaq et al. | Large flows detection, marking, and mitigation based on sFlow standard in SDN | |
JP2009231890A (ja) | パケット中継装置およびトラフィックモニタシステム | |
US20160248652A1 (en) | System and method for classifying and managing applications over compressed or encrypted traffic | |
CN107147585B (zh) | 一种流量控制方法及装置 | |
CN115017502A (zh) | 一种流量处理方法、及防护*** | |
Cho et al. | A sophisticated packet forwarding scheme with deep packet inspection in an openflow switch | |
CN118233111A (zh) | 攻击检测方法、***及存储介质 | |
Koay | Detecting high and low intensity distributed denial of service (DDoS) attacks | |
Oztoprak et al. | A hybrid asymmetric traffic classifier for deep packet inspection systems with route asymmetry | |
Xia et al. | Cids: Adapting legacy intrusion detection systems to the cloud with hybrid sampling | |
US20230113518A1 (en) | Distributed Network Flow Record | |
Zhang et al. | An End-to-end Online DDoS Mitigation Scheme for Network Forwarding Devices | |
US20240146655A1 (en) | Telemetry-based congestion source detection | |
Bakhareva et al. | SDN-based firewall implementation for large corporate networks | |
RU181257U1 (ru) | Межсетевой экран на основе кластеризации данных |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |