1.本发明涉及网络信息安全技术领域,尤其涉及一种网络攻击检测方法、硬件芯片及电子设备。
背景技术:2.现有ddos检测与阻断技术,往往依赖于人工专家知识建立的ddos异常检测软件模型,主要基于对网络服务异常状态、网络连接异常状态等进行建模分析,及时发现网络的通信量突然急增等异常情况,来综合判定ddos攻击,然后利用包过滤方法进行相关连接的过滤和阻断。由于其需要在软件层面建立异常模型,使得异常模型只能在设备的操作系统已经接收到攻击数据后才能获得到相应的攻击数据,使得检测阻断的时效性上往往比较滞后。
技术实现要素:3.有鉴于此,本发明提供一种网络攻击检测方法、硬件芯片及电子设备,至少部分解决现有技术中存在的问题。
4.根据本技术的一个方面,提供一种网络攻击检测方法,应用于目标芯片,所述目标芯片设置于电子设备内,所述目标芯片与所述电子设备内的硬件通信模块连接;
5.所述方法包括:
6.持续对所述硬件通信模块接收到的数据包进行获取;
7.确定所述硬件通信模块接收数据包的当前接收频率;
8.根据所述当前接收频率,确定所述电子设备是否受到网络攻击。
9.在本技术的一种示例性实施例中,所述确定所述硬件通信模块接收数据包的当前接收频率,包括:
10.确定每一接收到数据包的目标标签;
11.确定每一目标标签对应的当前接收频率;
12.所述根据所述当前接收频率,确定所述电子设备是否受到网络攻击,包括:
13.根据每一所述目标标签对应的当前接收频率,确定所述电子设备是否受到网络攻击。
14.在本技术的一种示例性实施例中,所述目标标签包括至少两个子标签,每一所述子标签对应的标签类别互异。
15.在本技术的一种示例性实施例中,所述目标芯片与所述电子设备的硬件模块连接;
16.所述方法还包括:
17.获取所述硬件模块的目标参数;
18.所述根据所述当前接收频率,确定所述电子设备是否受到网络攻击,包括:
19.根据所述当前接收频率和所述目标参数,确定所述电子设备是否受到网络攻击。
20.在本技术的一种示例性实施例中,所述硬件模块为多个;每一所述硬件模块均具有对应的目标参数;
21.所述根据所述当前接收频率和所述目标参数,确定所述电子设备是否受到网络攻击,包括:
22.根据所述当前接收频率和每一硬件模块对应的目标参数,确定所述电子设备是否受到网络攻击。
23.在本技术的一种示例性实施例中,所述方法还包括:
24.在确定所述电子设备受到网络攻击的情况下,向所述硬件通信模块发送控制指令,以调整所述硬件通信模块的数据包接收策略和/或数据包转发策略。
25.在本技术的一种示例性实施例中,所述硬件通信模块在接收到数据包后,将所述数据包发送至所述电子设备的操作系统和所述目标芯片;或,
26.所述硬件通信模块在接收到数据包后,将所述数据包发送至所述目标芯片,且在所述目标芯片确定所述电子设备未受到网络攻击的情况下,将所述数据包发送至所述电子设备的操作系统。
27.在本技术的一种示例性实施例中,所述方法还包括:
28.在确定所述电子设备受到网络攻击的情况下,将本次网络攻击对应的异常数据储存至所述电子设备或所述目标芯片的非易失性存储器内。
29.根据本技术的一个方面,提供一种硬件芯片,所述硬件芯片用于执行上述任一项所述方法的步骤。
30.根据本技术的一个方面,提供一种电子设备,所述电子设备包括硬件芯片和硬件通信模块,所述硬件芯片和所述硬件通信模块连接,所述硬件芯片用于执行上述任一项所述方法的步骤。
31.本技术提供的网络攻击检测方法,能够通过设置于电子设备内且直接与硬件通信模块连接的目标芯片,直接获取硬件通信模块接收到的数据包,从而根据硬件通信模块接收数据包的当前接收频率确定所述电子设备是否受到网络攻击。本技术中,目标芯片由于直接从硬件通信模块获取数据包,从而能够同时或先于电子设备的操作系统获取到相关数据,并及时地判断电子设备是否受到了网络攻击。相较于设置在软件层面的异常模型,能够更早地获取数据且及时地进行判断,从而提高了检测阻断的时效性。
附图说明
32.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
33.图1为本实施例提供的一种网络攻击检测方法的流程图;
34.图2为另一实施例提供的一种网络攻击检测方法的流程图;
35.图3为本实施例提供的一种硬件芯片的使用状态结构示意图。
具体实施方式
36.下面结合附图对本发明实施例进行详细描述。
37.需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本发明,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
39.请参考图1所示,根据本技术的一个方面,提供一种网络攻击检测方法,应用于目标芯片,所述目标芯片设置于电子设备内,所述目标芯片与所述电子设备内的硬件通信模块连接。其中,目标芯片可以为可编程的硬件芯片,其可以通过pci-e接口连接于电子设备的主板上,同时目标芯片区别于电子设备的中央处理器(cpu),能够在不依靠中央处理器的算力的情况下独立完成工作。硬件通信模块可以为电子设备的网卡。目标芯片和硬件通信模块的连接可以通过主板上的总线进行连接,也可以设置单独的线缆完成两者的连接。
40.本实施例提供的网络攻击检测方法,具体包括以下步骤:
41.步骤s100,持续对所述硬件通信模块接收到的数据包进行获取。
42.步骤s200,确定所述硬件通信模块接收数据包的当前接收频率。
43.步骤s300,根据所述当前接收频率,确定所述电子设备是否受到网络攻击。
44.其中,步骤s100-步骤s300的执行主体均为目标芯片。
45.本实施例中,目标芯片对所述硬件通信模块接收到的数据包进行获取在具体实施时,可以是硬件通信模块在接收到数据包后,直接将数据包转发给目标芯片。
46.目标芯片确定所述硬件通信模块接收数据包的当前接收频率的方法可以包括,目标芯片在每接收到一个数据包后,通过自身的计数器或计数单元进行计数,且在一个设定的单位时间(第一时间间隔)结束时,根据计数器或计数单元的计数结果,确定该单位时间内接收到的数据包的数量,从而根据该单位时间的长度和该单位时间内接收到的数据包的数量,确定出当前接收频率。单位时间的取值范围为1纳秒-3秒。具体实施时,可以根据需求实时调整该单位时间的取值,也可以同时设置多个单位时间,并在每个单位时间结束时得到对应的当前接收频率,以应对不同情况下的网络攻击。
47.确定所述电子设备是否受到网络攻击可以包括在当前接收频率大于第一频率阈值的情况下,确定为电子设备受到了网络攻击。在单位时间设置了多个的情况下则可以为,在至少一个单位时间对应的当前接收频率大于对应的第一频率阈值的情况下,确定为电子设备受到了网络攻击。
48.本实施例提供的网络攻击检测方法,能够通过设置于电子设备内且直接与硬件通信模块连接的目标芯片,直接获取硬件通信模块接收到的数据包,从而根据硬件通信模块接收数据包的当前接收频率确定所述电子设备是否受到网络攻击。本实施例中,目标芯片由于直接与硬件通信模块连接,故而可以不通过电子设备的操作系统而直接从硬件通信模块获取数据包,从而能够同时或先于电子设备的操作系统获取到相关数据。这样就能够及
时地判断电子设备是否受到了网络攻击,并在判断为电子设备受到网络攻击的情况下做出相应的防御措施。相较于设置在软件层面的异常模型,能够更早地获取数据且及时地进行判断,从而提高了检测阻断的时效性。同时,本实施例中的目标芯片由于能够不调用中央处理器而独立工作,故而在进行网络攻击检测时,不会影响中央处理器的性能,避免了由于进行网络攻击检测造成操作系统变慢或卡顿的情况。
49.在本技术的一种示例性实施例中,所述方法还包括:
50.步骤s400,在确定所述电子设备受到网络攻击的情况下,向所述硬件通信模块发送控制指令,以调整所述硬件通信模块的数据包接收策略和/或数据包转发策略。
51.本实施例中,在确定了电子设备正在受到网络攻击的情况下,可以通过目标芯片直接对硬件通信模块发送控制指令,这样能够绕过操作系统快速的调整硬件通信模块的数据包接收策略和/或数据包转发策略,以进行防御。其中调整后的数据包接收策略可以为控制硬件通信模块停止接收数据包,以达到对网络攻击的防御。调整后的数据包转发策略可以为不再将接收到的数据包发送给操作系统,以达到对网络攻击的防御。通过以上两种方式,均可以使得操作系统不再接收到过大的数据量,从而避免数据冲击导致的系统崩溃等问题。
52.在本技术的一种示例性实施例中,所述步骤s200,具体包括以下步骤:
53.确定每一接收到数据包的目标标签;
54.确定每一目标标签对应的当前接收频率;
55.相应的,所述根据所述当前接收频率,确定所述电子设备是否受到网络攻击,包括:
56.根据每一所述目标标签对应的当前接收频率,确定所述电子设备是否受到网络攻击。
57.目标芯片在每接收到一个数据包后,可以对数据包进行分析,并根据分类规则确定出数据包的目标标签。目标标签用于指示该数据包的类型。分类规则可以为通信协议分类、通信阶段分类和数据源分类中的一种或多种。其中通信阶段可以包括连接建立过程数据包、连接建立后通信数据包,区分粒度可精确到连接请求数据包、连接应答数据包、连接关闭数据包等。
58.由于恶意用户在进行网络攻击时,为了攻击方便可能只通过一种或少数几种协议发送大量的恶意数据包或只大量发送某一或少数几个通信阶段的恶意数据包来进行攻击。此时若是直接控制硬件通信模块对所有的数据包进行停止接收或停止发送,则会出现“误伤”的情况。故而本实施例中,能够通过确定每一目标标签对应的当前接收频率,确定出恶意用户使用的通信协议或通讯阶段等,从而实现精准防御。
59.相应的,根据每一所述目标标签对应的当前接收频率,确定所述电子设备是否受到网络攻击。可以为确定每一目标标签对应的当前接收频率是否大于对应的第一频率阈值,若有至少一个当前接收频率大于对应的第一频率阈值,则确定为电子设备正在受到网络攻击。
60.相应的,调整后的数据包接收策略可以为控制硬件通信模块停止接收目标标签(当前接收频率大于对应的第一频率阈值)对应的数据包,以达到对网络攻击的防御。调整后的数据包转发策略可以为不再将接收到的目标标签(当前接收频率大于对应的第一频率
阈值)对应数据包发送给操作系统,以达到对网络攻击的防御。
61.在本技术的一种示例性实施例中,所述目标标签包括至少两个子标签,每一所述子标签对应的标签类别互异。本实施例中,目标标签的确定过程包括了多个分类规则,多个分类规则分别确定对应的子标签,并将得到的所有子标签组成目标标签。每一标签类别对应于一个分类规则。故而目标标签的形式可以为“a协议、b阶段、c数据源”或“a协议、a阶段、b数据源”等。如此,使得目标标签对应的颗粒度能够更小,在进行攻击判断和防御时能够更加精准,减少“误伤”的情况发生。
62.请参考图2所示,在本技术的一种示例性实施例中,所述目标芯片与所述电子设备的硬件模块连接;
63.所述方法还包括:
64.步骤s500,获取所述硬件模块的目标参数;
65.相应地,所述步骤s300,包括:
66.步骤s310,根据所述当前接收频率和所述目标参数,确定所述电子设备是否受到网络攻击。
67.本实施例中,目标芯片还可以与电子设备内的硬件模块连接,从而直接获取或通过操作系统获取相应硬件模块的目标参数。目标参数根据硬件模块的实际类别的不同可以选择不同的目标参数。例如,当硬件模块为网卡时,目标参数可以为网卡的半连接数;当硬件模块为中央处理器时,目标参数可以为中央处理器的使用率或使用率增幅;当硬件模块为内存时,目标参数可以为内存的使用率或使用率增幅。
68.相应的,根据所述当前接收频率和所述目标参数,确定所述电子设备是否受到网络攻击,可以为,在当前接收频率大于第一频率阈值且目标参数大于其对应的第二参数阈值时,确定为电子设备正在受到网络攻击。或者将所述当前接收频率和所述目标参数输入预先设置的判断模块或判断函数内,根据判断模块或判断函数的输出值,确定电子设备是否正在受到网络攻击。
69.本实施例提供的网络攻击检测方法,能够综合硬件通信模块接收数据包的情况和硬件模块当前的目标参数,综合判断电子设备是否正在受到网络攻击,相较于一般的只通过网络流量判断是否受到网络攻击,判断结果更加精确。能够有效降低只是因为用户个人正常使用导致数据包接收频率过高而产生误判的情况发生。
70.在本技术的一种示例性实施例中,所述硬件模块为多个;每一所述硬件模块均具有对应的目标参数;
71.所述根据所述当前接收频率和所述目标参数,确定所述电子设备是否受到网络攻击,包括:
72.根据所述当前接收频率和每一硬件模块对应的目标参数,确定所述电子设备是否受到网络攻击。
73.具体的,硬件模块为三个,分别为网卡、中央处理器和内存。本实施例中,通过多个不同类型的硬件模块的目标参数,和硬件通信模块接收数据包的情况综合确定电子设备是否受到网络攻击。进一步降低了只是因为用户个人正常使用导致数据包接收频率过高而产生误判的情况发生。
74.本实施例中,根据所述当前接收频率和每一硬件模块对应的目标参数,确定所述
电子设备是否受到网络攻击的具体实施方式可以为:
75.预先设置原始的综合判断模块,在综合判断模块中,为每一类硬件模块的目标参数和接收频率设置相应的原始权重,然后通过模拟不同类型的ddos攻击,让监测单元进行实际异常判定(即执行前述的方法,判断电子设备是否收到网络攻击),并在每次异常判定后(即判断错误)与人工判定结果的进行对比,不断迭代反馈调整原始权重最终得到每一目标参数对应的目标权重。
76.在应用时,可以将当前接收频率和每一硬件模块对应的目标参数输入综合判断模块,综合判断模块根据每一数据的目标权重对相应数据进行处理后累加,再将累加结果与综合判断阈值做比较,确定出电子设备是否受到网络攻击,使得判断结果更加精准。同时在综合判断模块的使用过程中,也可以在获取到新的类型的ddos攻击后,再次进行攻击模拟,从而根据模拟结果调整目标参数。避免因新类型的攻击方式出现后,无法进行准确判断的问题。
77.在本技术的一种示例性实施例中,所述硬件通信模块在接收到数据包后,将所述数据包发送至所述电子设备的操作系统和所述目标芯片。
78.硬件通信模块在接收到新的数据包后,将数据包同时发送至所述电子设备的操作系统和所述目标芯片,一方面可以使得目标芯片尽可能早的获取到数据包从而进行攻击判断;另一方面也可以避免目标芯片获取数据包的行为导致操作系统获取数据包延迟,降低操作系统的运行流畅性。
79.在本技术的一种示例性实施例中,所述硬件通信模块在接收到数据包后,将所述数据包发送至所述目标芯片,且在所述目标芯片确定所述电子设备未受到网络攻击的情况下,将所述数据包发送至所述电子设备的操作系统。
80.本实施例中,相较于前一种实施例,硬件通信模块在接收到数据包后,会先将所述数据包发送至所述目标芯片,而不直接发送至操作系统。此时可以避免在接收到恶意攻击时,攻击直接冲击操作系统,而是在目标芯片确定当前安全的情况下(所述电子设备未受到网络攻击的情况下)才会将数据包发送至操作系统。即所有数据包均是在目标芯片判断为安全后才会发送给操作系统,进一步提高操作系统的安全性。
81.在本技术的一种示例性实施例中,硬件通信模块的第一管脚与目标芯片的第二管脚连接。在正常情况下(即未受到攻击),第二管脚持续向第一管脚输出高电平,此时,硬件通信模块在接收到新的数据包后,将数据包同时发送至所述电子设备的操作系统和所述目标芯片。当目标芯片确定所述电子设备遭受到网络攻击后,截断第二管脚的电平输出,此时,硬件通信模块在接收到新的数据包后,只将数据包发送至所述目标芯片,只有在第一管脚接收到高电平后才会恢复对操作系统的数据包发送。此方法相较于目标芯片通过发送控制指令控制硬件通信模块调整数据包接收或转发策略,减少了指令生成和指令解析的过程,使得攻击响应效率更高。
82.在本技术的一种示例性实施例中,所述方法还包括:
83.在确定所述电子设备受到网络攻击的情况下,将本次网络攻击对应的异常数据储存至所述电子设备或所述目标芯片的非易失性存储器内。
84.具体的,本实施例中芯片内置的存储单元,可以在遭受到网络攻击后将异常数据记录到非易失性存储器中进行存储,方便人工确认分析、历史异常追溯等。
85.请参考图3所示,根据本技术的一个方面,提供一种硬件芯片,所述硬件芯片用于执行上述任一项所述方法的步骤。该硬件芯片可以通过pci-e端口连接到电子设备的主板上,从而执行上述任一项所述方法的步骤,以实现对电子设备的保护。
86.根据本技术的一个方面,提供一种电子设备,所述电子设备包括硬件芯片和硬件通信模块,所述硬件芯片和所述硬件通信模块连接,所述硬件芯片用于执行上述任一项所述方法的步骤。
87.根据本发明的这种实施方式的电子设备。电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
88.电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:上述至少一个处理器、上述至少一个储存器、连接不同系统组件(包括储存器和处理器)的总线。
89.其中,所述储存器存储有程序代码,所述程序代码可以被所述处理器执行,使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
90.储存器可以包括易失性储存器形式的可读介质,例如随机存取储存器(ram)和/或高速缓存储存器,还可以进一步包括只读储存器(rom)。
91.储存器还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
92.总线可以为表示几类总线结构中的一种或多种,包括储存器总线或者储存器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
93.电子设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器通过总线与电子设备的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
94.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本发明实施方式的方法。
95.在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发
明各种示例性实施方式的步骤。
96.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
97.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
98.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
99.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
100.此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
101.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
102.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。