网络攻击的检测方法、装置、设备及存储介质与流程

文档序号:27761062发布日期:2021-12-03 23:43阅读:239来源:国知局
网络攻击的检测方法、装置、设备及存储介质与流程

1.本技术涉及网络技术领域,特别涉及一种网络攻击的检测方法、装置、设备及存储介质。


背景技术:

2.僵尸网络(botnet)是指采用一种或多种传播手段,将大量主机感染僵尸程序(bot程序) 病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。僵尸网络经常被用来作为分布式拒绝服务攻击(distributed denial of service attack,ddos)、垃圾邮件等网络攻击行为的基础架构,因此,需要从流量中识别出来自僵尸网络的报文,以避免僵尸网络的报文影响到网络的安全。
3.相关技术中,会预先设定入侵检测系统(intrusion detection system,ids)规则。当网络安全设备接收到报文时,网络安全设备会解析报文的载荷,判断载荷的内容是否满足预先设定的ids规则,如果载荷的内容满足ids规则,则确定报文是来自僵尸网络的报文。
4.由于上述方法需要解析和识别的内容很多,导致设备所需处理的数据量巨大,因此采用上述方法进行检测时支持的流量规模有限,一旦面对大流量攻击,会遭遇防护性能不足的问题。


技术实现要素:

5.本技术实施例提供了一种网络攻击的检测方法、装置、设备及存储介质,能够减少检测过程中所需处理的数据量。所述技术方案如下:
6.第一方面,提供了一种网络攻击的检测方法,在该方法中,
7.接收传输控制协议tcp报文;
8.对所述tcp报文的头部进行特征提取,得到第一头部特征;
9.对所述第一头部特征与第二头部特征进行匹配,所述第二头部特征为样本tcp报文的头部的特征,所述样本tcp报文来自于僵尸网络;
10.若所述第一头部特征与所述第二头部特征满足匹配条件,确定所述tcp报文来自于所述僵尸网络。
11.以上提供了一种基于tcp报文的头部特征识别僵尸网络的方法,通过tcp报文的头部特征与僵尸网络的样本tcp报文的头部特征进行匹配,从而识别tcp报文是否是来自僵尸网络的报文。由于不考虑报文的载荷方面的内容,减少了设备所需解析和识别的内容,降低了设备所需处理的数据量,实现了轻量化的识别,减少了识别的开销。
12.可选地,所述tcp报文的头部包括tcp头和互联网协议ip头,所述对所述tcp报文的头部进行特征提取,得到第一头部特征,包括:
13.分别对所述tcp头和所述ip头进行特征提取,得到所述第一头部特征。
14.通过这种方式,利用tcp头和ip头这2个头的特征,即可进行僵尸网络的识别,使得
识别更加轻量化。
15.可选地,所述第一头部特征用于指示以下至少一项:
16.ip协议的版本;
17.生成所述tcp报文的操作系统使用的初始生存时间ttl;
18.互联网协议第4版ipv4选项的长度或互联网协议第6版ipv6拓展头的长度;
19.最大段长度mss字段的取值;
20.窗口大小;
21.窗口缩放因子;
22.tcp选项的布局和tcp选项的排序;
23.额外特征序列;
24.载荷长度。
25.可选地,所述额外特征序列用于指示以下至少一项:
26.不分片df位设置;
27.df位设置且互联网协议身份标识ipid非零;
28.df位未设置且互联网协议身份标识ipid是零;
29.支持显式拥塞通知;
30.必须为零字段非零;
31.流标识;
32.序列号为零;
33.确认号非零且未设置确认标志;
34.确认号为零且设置了确认标志;
35.紧急指针非零且未设置紧急标志;
36.使用推送标志;
37.发送方将时间戳指定为零;
38.接收方的第一个同步序列编号syn报文的时间戳非零;
39.选项字段具有非零数据;
40.串口缩放系数大于阈值;
41.畸形的tcp选项。
42.可选地,所述确定所述tcp报文来自于所述僵尸网络之后,所述方法还包括:
43.丢弃所述tcp报文。
44.通过执行丢包的动作,tcp报文会传输中断,而不会传输至下一跳节点,因此阻断了tcp 报文的传输,实现了流量阻断的功能。
45.可选地,所述确定所述tcp报文来自于所述僵尸网络之后,所述方法还包括:
46.记录所述tcp报文的五元组,向网络安全设备发送所述tcp报文。
47.通过这种方式,可以结合网络安全设备共同防护流量安全,并且,由于记录了tcp报文的信息,可以作为威胁情报数据生产的来源,用于补充ip类威胁情报的上下文信息。
48.可选地,所述若所述第一头部特征与所述第二头部特征满足匹配条件,确定所述tcp报文来自于所述僵尸网络,包括:
49.若所述第一头部特征与所述第二头部特征相同,确定所述tcp报文来自于所述僵
尸网络。
50.第二方面,提供了一种网络攻击的检测装置,该装置具有实现上述第一方面或第一方面任一种可选方式中网络攻击的检测的功能。该装置包括至少一个模块,至少一个模块用于实现上述第一方面或第一方面任一种可选方式所提供的网络攻击的检测方法。第二方面提供的装置的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
51.第三方面,提供了一种检测设备,该检测设备包括处理器和通信接口,该处理器用于执行指令,使得该检测设备执行上述第一方面或第一方面任一种可选方式所提供的网络攻击的检测方法,所述通信接口用于接收tcp报文。第三方面提供的检测设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
52.第四方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使检测设备执行上述第一方面或第一方面任一种可选方式所提供的网络攻击的检测方法。
53.第五方面,提供了一种计算机程序产品,当该计算机程序产品在检测设备上运行时,使得检测设备执行上述第一方面或第一方面任一种可选方式所提供的网络攻击的检测方法。
54.第六方面,提供了一种芯片,当该芯片在检测设备上运行时,使得检测设备执行上述第一方面或第一方面任一种可选方式所提供的网络攻击的检测方法。
附图说明
55.图1是本技术实施例提供的一种检测设备的结构示意图;
56.图2是本技术实施例提供的一种检测设备的软件架构示意图;
57.图3是本技术实施例提供的一种网络攻击的检测方法的流程图;
58.图4是本技术实施例提供的一种基于tcp流量包特征的僵尸网络家族识别方法的流程图;
59.图5是本技术实施例提供的一种检测设备软件架构示意图;
60.图6是本技术实施例提供的一种检测设备软件架构示意图;
61.图7是本技术实施例提供的一种网络攻击的检测装置的结构示意图。
具体实施方式
62.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
63.本技术实施例提供的网络攻击的检测方法能够应用在需要识别僵尸网络的任意场景。下面对僵尸网络进行简单的介绍。
64.僵尸网络是当前较流行的一种网络攻击,可以为ddos攻击和垃圾邮件等攻击行为提供所需的带宽、计算机以及管理攻击所需的基础架构。而通常为了确保僵尸网络样本实施攻击的攻击效率(如调用操作系统的网络操作功能模块,只能通过约定的流程发送数据包,如linux 操作系统下的c语言开发程序,通过调用“sys/socket.h、linux/ip.h、linux/tcp.h”等网络操作功能模块发送数据包,数据包的包头标识位的内容,只能按照模块约定
的内容进行补充;而二次开发则可以定制化设计不同类型的攻击,如设置psh(push,表示推送)标志位发送 psh+ack洪水攻击),往往会对网络攻击操作功能模块进行二次开发和封装,如传输控制协议(transmission control protocol,tcp)攻击、用户数据报协议(user datagram protocol, udp)攻击等,而不是直接调用系统的网络操作功能模块。当僵尸网络样本通过调用二次开发和封装的网络攻击操作功能模块进行攻击操作时,在发送的tcp网络流量报文中,报文头部特征对比其他的通过调用操作系统网络接口发送的正常流量报文的头部存在一定的差异,这些差异可以作为特征用于识别来自僵尸网络样本的tcp攻击流量。
65.另外,诸多知名的僵尸网络家族变种主要通过修改公开的僵尸网络样本源代码中的功能逻辑代码,进行二次开发而成,但往往不会对源代码中提供的网络攻击操作功能模块代码进行较大修改,因此,僵尸网络样本发出的tcp流量包的头部特征还可以作为识别特定僵尸网络家族的特征。
66.在一种可能的实现方式中,基于ids检测僵尸网络,通过提取僵尸网络的特征,构建ids 签名,部署在ids系统中,来检测僵尸网络流量。具体地,在ids部署方面,可以进行直连部署或者旁路部署,均可以实现对僵尸网络的检测。在ids签名规则方面,以snort(一种入侵检测系统)为例,每条ids签名规则包括规则头和规则选项两部分,其中规则头包括:规则动作、协议、源互联网协议(internet protocol,ip)地址,源端口,方向,目的ip,目的端口。规则选项组成了snort入侵检测引擎的核心,既易用又强大还灵活。所有的snort规则选项用分号";"隔开。规则选项关键字和它们的参数用冒号":"分开。snort中有42个规则选项关键字,如下:
67.msg-在报警和包日志中打印一个消息。
68.logto-把包记录到用户指定的文件中而不是记录到标准输出。
69.ttl-检查ip头的生存时间(time to live,ttl)字段的值。
70.tos-检查ip头中服务类型(type of service,tos)字段的值。
71.id-检查ip头的分片id值。
72.ipoption-查看ip选项字段的特定编码。
73.fragbits-检查ip头的分段位。
74.dsize-检查包的净荷尺寸的值。
75.flags-检查tcp标志(flags)字段的值。
76.seq-检查tcp顺序号的值。
77.ack-检查tcp应答(acknowledgement,ack)的值。
78.window-测试tcp窗口域的特殊值。
79.itype-检查因特网控制报文协议(internet control message protocol,icmp)类型(type) 字段的值。
80.icode-检查icmp代码(code)字段的值。
81.icmp_id-检查icmp回送包的标志符(icmp echo id)的值。
82.icmp_seq-检查icmp echo顺序号的值。
83.content-在包的净荷中搜索指定的样式。
84.content-list-在数据包载荷中搜索一个模式集合。
85.offset-content选项的修饰符,设定开始搜索的位置。
86.depth-content选项的修饰符,设定搜索的最大深度。
87.nocase-指定对content字符串大小写不敏感。
88.session-记录指定会话的应用层信息的内容。
89.rpc-监视特定应用/进程调用的远程过程调用(romote procedure call,rpc)服务。
90.resp-主动反应(切断连接等)。
91.react-响应动作(阻塞web站点)。
92.reference-外部攻击参考id。
93.sid-snort规则id。
94.rev-规则版本号。
95.classtype-规则类别标识。
96.priority-规则优先级标识号。
97.uricontent-在数据包的统一资源标识符(uniform resource identifier,uri)部分搜索一个内容。
98.tag-规则的高级记录行为。
99.ip_proto-ip头的协议字段值。
100.sameip-判定源ip和目的ip是否相等。
101.stateless-忽略状态的有效性。
102.regex-通配符模式匹配。
103.distance-强迫关系模式匹配所跳过的距离。
104.within-强迫关系模式匹配所在的范围。
105.byte_test-数字模式匹配。
106.byte_jump-数字模式测试和偏移量调整。
107.flow-这个选项要和tcp流重建联合使用。它允许规则只应用到流量流的某个方向上。这将允许规则只应用到客户端或者服务器端。
108.例如,snort规则:alert tcp any any->any 3306(msg:"mysql server geometry query integer溢出攻击";flow:to_server,established;dsize:<300;flags:a;content:"|03|";nocase; offset:4;depth:1;content:"select|20|geometryn|28|0x00000000000700000001";distance: 10;within:50;reference:cve,2013-1861;reference:bugtraq,58511;classtype-danger: medium;tid:14999;rev:1;)
109.以上snort规则解释如下:
110.规则头:alert tcp any any->any 3306//匹配任意源ip和端口到任意目的ip和端口为3306 的tcp数据包发送告警消息。
111.规则选项:
112.msg:"mysql server geometry query integer溢出攻击";//在报警和包日志中打印的消息内容。
113.flow:to_server,established;//检测向服务器发送方向的报文。
114.dsize:<300;//应用层负载包长度小于300。
115.flags:a;//tcp flags值为10。
116.content:"|03|";nocase;offset:4;depth:1;//负载偏移4取1的值为03,字符串有不区分大小写,16进制不涉及。
117.content:"select|20|geometryn|28|0x00000000000700000001";distance:10;within:50; //相对于上面的03特征向后偏移10个字节之后再取50个字节,50个字节里边包含 select|20|geometryn|28|0x00000000000700000001。
118.reference:cve,2013-1861;reference:bugtraq,58511;//可参考cve和bugtraq。
119.classtype-danger:medium;//危险等级中等。
120.sid:20141107;//规则id。
121.rev:1;)//版本信息,第一个版本。
122.从上述以snort为例对ids规则的描述可以看出,snort主要检测源ip、源端口、目的ip、目的端口和流量内容信息,ids规则关注的内容比较多,表达能力也很丰富,正因为如此,通过部署ids进行流量检测支持的流量规模有限,应对大流量攻击,如大流量ddos攻击时,会遭遇防护性能不足的问题。
123.在一种可能的实现中,通过tcp流量报文的头部特征,对发出流量报文的操作系统进行识别。具体地,操作系统或设备中的常规应用程序,大部分都是通过调用系统的网络操作接口或者库进行网络操作,通过这些网络操作接口或者库发出的网络流量报文的头部信息,往往都具备较为固定的数值或特征,基于这些特征,可以对发出网络流量的操作系统进行识别。然而,这种方式主要侧重在对操作系统进行识别,另外对部分操作系统的识别存在一定的准确性问题,如将来自安卓(android)的流量识别成linux流量。
124.有鉴于此,本实施例提供了一种基于tcp流量包特征的僵尸网络识别方法,能够在大流量安全防护场景中,解决对流量中来自僵尸网络的攻击流量进行识别和缓解的问题。具体地,针对当前基于ids规则的方案在应对攻击流量规模方面存在一定的限制的问题,本实施例提出一种根据tcp流量的头部特征,对来自僵尸网络的攻击流量进行识别的方法。由于不考虑流量载荷方面的内容,因而实现了更加轻量化的识别,进而大大增加能够检测流量的数据量,提升检测效率。其中,大流量安全防护场景是指超出防护设备、网关设备的带宽承受能力的流量,一般多见于ddos攻击。
125.下面介绍本技术实施例提供的检测设备的硬件结构。
126.参见附图1,附图1示出了本技术一个示例性实施例提供的检测设备100的结构示意图。例如,该检测设备100可以是网络安全设备、主机、服务器或个人计算机等。该检测设备100 可以由一般性的总线体系结构来实现。可选地,检测设备是网关设备、防火墙设备、入侵检测系统(intrusion detection system,ids)类设备、入侵防御系统(intrusion prevention system, ips)类设备中的任一种。
127.检测设备100可以是方法实施例全部或部分描述的内容中涉及的任一设备,比如,1111 等。检测设备100包括至少一个处理器101、通信总线102、存储器103以及至少一个通信接口104。
128.处理器101可以是一个通用中央处理器(central processing unit,cpu)、网络处理器 (network processer,np)、微处理器、或者可以是一个或多个用于实现本技术方案的集成电路,例如,专用集成电路(application-specific integrated circuit,asic),可编
程逻辑器件 (programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array, fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。
129.通信总线102用于在上述组件之间传送信息。通信总线102可以分为地址总线、数据总线、控制总线等。为便于表示,附图1中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
130.存储器103可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,也可以是随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器 (electrically erasable programmable read-only memory,eeprom)、只读光盘(compact discread-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器103可以是独立存在,并通过通信总线102与处理器101相连接。存储器103 也可以和处理器101集成在一起。
131.通信接口104使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口 104包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wirelesslocal area networks,wlan)接口,蜂窝网络通信接口或其组合等。
132.在具体实现中,作为一种实施例,处理器101可以包括一个或多个cpu,如附图1中所示的cpu0和cpu1。
133.在具体实现中,作为一种实施例,检测设备100可以包括多个处理器,如附图1中所示的处理器101和处理器105。这些处理器中的每一个可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/ 或用于处理数据(如计算机程序指令)的处理核。
134.在具体实现中,作为一种实施例,检测设备100还可以包括输出设备和输入设备。输出设备和处理器101通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器 (liquid crystal display,lcd)、发光二级管(light emitting diode,led)显示设备、阴极射线管(cathode ray tube,crt)显示设备或投影仪(projector)等。输入设备和处理器101通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
135.在一些实施例中,存储器103用于存储执行本技术方案的程序代码110,处理器101可以执行存储器103中存储的程序代码。也即是,检测设备100可以通过处理器101以及存储器103中的程序代码,来实现方法实施例提供的网络攻击的检测方法。
136.本技术实施例的检测设备100可对应于下述各个方法实施例中的检测设备,并且,该检测设备100中的处理器101、通信接口104等可以实现下述各个方法实施例中的检测设备所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。
137.应理解,下述附图7所示的网络攻击的检测装置700中的接收模块701相当于检测
至s306。
150.s301、检测设备接收tcp报文。
151.例如,检测设备接收tcp报文流,tcp报文流包括多个tcp报文,对每个tcp报文分别执行本实施例所示的方法。
152.s302、检测设备对tcp报文的头部进行特征提取,得到第一头部特征。
153.报文主要包括报文头和载荷,tcp报文的头部即为tcp报文的报文头。本实施例中,检测设备会利用tcp报文的头部包含的特征以及样本的头部包含的特征进行检测,为了区分描述这2种头部特征,将待检测的tcp报文的头部特征称为第一头部特征,将样本的头部特征称为第二头部特征。第一头部特征即为提取的、用于识别僵尸网络家族特征的tcp流量的特征点。
154.如何提取头部特征包括多种方式。在一种可能的实现中,检测设备识别tcp报文的头部,对tcp报文的头部中的至少一个字段进行解析,得到该至少一个字段的取值,作为第一头部特征。
155.tcp报文的头部包括tcp头和ip头中的至少一项。可选地,第一头部特征和第二头部特征均包括tcp头和ip头这2个报头的特征。具体地,检测设备分别对tcp头和ip头进行特征提取,得到第一头部特征。其中,在报文是互联网协议第4版(internet protocol version 6, ipv4)报文的情况下,第一头部特征和第二头部特征是tcp头和ipv4头的特征。在报文是互联网协议第6版(internet protocol version 6,ipv6)报文的情况下,第一头部特征和第二头部特征是tcp头和ipv6头的特征。在另一些实施例中,第一头部特征和第二头部特征均包括tcp头这1个报头的特征。具体地,检测设备对tcp头进行特征提取,得到第一头部特征。
156.第一头部特征包括而不限于以下(1)至(9)中的至少一项;
157.(1)ip协议的版本。
158.ip协议的版本包括ipv4和ipv6。(1)用于指示接收的tcp报文是支持ipv4协议,还是支持ipv6协议,还是ipv4协议和ipv6协议这两者都支持。(1)是可选的特征。
159.(2)生成tcp报文的操作系统使用的初始ttl。
160.其中,(2)是可选的特征。
161.(3)ipv4选项(ipv4 options)的长度或ipv6拓展头的长度。
162.(4)最大段长度(maximum segment size,mss)字段的取值。
163.例如,mss字段的取值是65535或mss*4等。
164.(5)窗口大小(window size)。
165.当接收方发送一个ack响应(即对收到数据的响应)时,接收方会告诉发送者下一次能接收多少数据,这个数据的大小称为窗口大小。一般窗口大小就是接收方缓冲区的大小.。可选的,窗口大小表示为固定值。可选的,窗口大小设置为mss或最大传输单元(maximumtransmission unit,mtu)的倍数。可选的,窗口大小设置为随机整数的倍数。
166.(6)窗口缩放因子(window scale)。
167.可选地,(6)中的窗口缩放因子用于指示窗口缩放因子字段的取值。为了提供可适应高速传输路径的更大窗口尺寸,rfc 1323定义了允许接收端通告大于65,535字节的窗口大小的窗口缩放。“tcp窗口缩放”选项包括一个窗口缩放因子,该因子与tcp头中的16位窗
口字段结合时,可以将接收窗口大小最大增加到1gb。tcp对等方都可以为接收窗口大小指定不同的窗口缩放因子。tcp窗口缩放允许发送端通过一个连接发送更多的数据。
168.(7)tcp选项的布局和tcp选项的排序。
169.可选的,(7)中通过逗号对布局内容进行分隔。可选的,tcp选项的布局和tcp选项的排序用于指示以下(7.1)至(7.6)中的至少一项,换句话说,(7)支持的值包括以下(7.1) 至(7.6)。
170.(7.1)选项结束后填充字节的数量(end of options followed by x bytes of padding,eol+n,也称选项的显式结束后跟n个填充字节)。其中,n表示填充字节的数量,例如n是正整数。
171.(7.2)无操作(no operation,nop)选项。
172.其中,nop选项也称no-op选项。nop选项是没有意义的字段。在tcp协议中设计nop 字段主要是用来提供填充垫片。例如,(7.2)用于指示nop选项在tcp报文的头部中所处的位置。
173.(7.3)mss字段的位置。
174.与(4)相区别的是,(7.3)用于指示mss字段在报文头中的位置,例如mss字段是报文头中的第几个字段,(4)用于指示mss字段的取值。例如mss字段携带的数值是什么。可选的,(7.3)通过“mss”表示。
175.(7.4)窗口缩放(window scaling,ws)。
176.可选地,(7.4)中的窗口缩放用于指示窗口缩放因子字段在tcp报文的头部中所处的位置,例如窗口缩放因子字段是报文头中的第几个字段。可选的,(7.4)通过“ws”表示。
177.(7.5)选择性确认(selective acknowledgement,sack)。
178.可选的,(7.5)中的sack是指sack字段在tcp报文的头部中所处的位置。(7.5) 通过“sok”或“sack”表示。
179.(7.6)时间戳(timestamp,ts)。
180.可选的,(7.6)中的时间戳是指时间戳字段在tcp报文的头部中所处的位置。(7.6) 通过“ts”表示。
181.(8)额外特征序列。
182.可选的,额外特征序列是在ip头或tcp头中观察到的分隔属性和怪异模式(quirks)。其中,分隔属性可以理解为额外的特征。quirks理解为额外特征序列。可选的,额外特征序列通过逗号“,”进行分隔。可选的,额外特征序列用于指示以下(8.1)至(8.16)中的至少一项。换句话说,(8)支持的值包括以下(8.1)至(8.16)。
183.(8.1)不分片(don't fragment bit is set in the ip header,df)位设置。
184.df位设置是指tcp报文中的df位是置位还是没有置位。例如,若tcp报文的df位置位,(8.1)的取值为1。若tcp报文的df位未置位,(8.1)的取值为0。可选的,(8.1) 称为“df”。
185.(8.2)df位设置且互联网协议身份标识(internet protocol identity,ipid)非零。
186.可选的,(8.2)称为“id+”。可选的,(8.2)的取值根据tcp报文中df位是否置位以及ipid字段的值是否为0确定。
187.(8.3)df位未设置且ipid是零。
188.可选的,(8.3)称为“id
-”

189.(8.4)支持显式拥塞通知(explicit congestion notification,ecn)。
190.可选的,(8.4)称为“ecn”。
191.(8.5)必须为零字段(“must be zone”字段)非零。
192.可选的,(8.5)称为“0+”。
193.(8.6)流标识(flow id)。
194.可选的,(8.6)是非零的ipv6流id。可选的,(8.6)称为“flow”。
195.(8.7)序列号(sequence number)为零。
196.可选的,(8.7)称为“seq
-”

197.(8.8)确认(selective acknowledgement,ack)号(非零且未设置确认标志(ack标志)。
198.可选的,(8.8)称为“ack+”。
199.(8.9)确认号(ack号)为零且设置了确认标志(ack标志)。
200.可选的,(8.9)称为“ack
-”

201.(8.10)紧急指针(urgent pointer,urg指针)非零且未设置紧急标志(urgent flag, urg标志)。
202.可选的,(8.10)称为“uptr+”。
203.(8.11)使用推送标志(push标志)。
204.可选的,(8.11)称为“pushf+”。
205.(8.12)发送方将时间戳指定为零。
206.可选的,(8.12)称为“ts1
-”
。(8.12)例如表示自己的时间戳指定为零。(8.12)即“timesince first frame in this tcp”。
207.(8.13)接收方的第一个同步序列编号(synchronize sequence numbers,syn)报文的时间戳非零。
208.可选的,(8.13)称为“ts2+”。(8.13)例如表示对方第一个syn包的时间戳非零。
209.(8.14)选项字段(options字段)具有非零数据。
210.可选的,(8.14)称为“opt+”。
211.(8.15)窗口缩放系数大于阈值。
212.可选的,(8.15)称为“exws”。阈值例如是14。(8.15)例如表示过多的窗口缩放系数 (>14)。
213.(8.16)畸形的tcp选项(tcp options)。
214.可选的,(8.16)称为“bad”。
215.(9)载荷长度(payload length)。
216.例如,载荷长度也称载荷的大小。具体地,可以提取tcp报文中ipv6头中payload length 字段的取值,得到载荷长度。例如,当载荷长度属于第一区间时,第一头部特征包括第一取值,当载荷长度属于第二区间时,第一头部特征包括第二取值。
217.s303、检测设备对第一头部特征与第二头部特征进行匹配。
218.第二头部特征为样本tcp报文的头部的特征。样本tcp报文来自于僵尸网络。例如,样本tcp报文是mirai样本(mirai是一种僵尸网络家族)。第二头部特征也称检测签名。如何
和排序2。检测设备判断tcp选项布局1和tcp选项布局2是否相同,排序1和排序2是否相同。若tcp选项布局1和tcp选项布局2相同且排序1和排序2相同,确定第一头部特征和第二头部特征在tcp选项布局和排序这一维度是匹配的。可选地,使用模糊匹配符*来辅助判断tcp选项布局和排序这一维度是否匹配。
229.例如,第一头部特征包括eol+n1,第二头部特征包括eol+n2。检测设备判断n1和n2是否相同。若n1和n2相同且排序1和排序2相同,确定第一头部特征和第二头部特征在以上 (7.1)的维度是匹配的。
230.检测设备确定tcp报文与僵尸网络的样本的头部特征匹配后会执行的动作包括多种情况。在一些实施例中,检测设备阻断流量,具体参见下述s305。在另一些实施例中,检测设备记录ip的请求信息,具体参见下述s306。
231.s305、检测设备丢弃tcp报文。
232.检测设备通过执行丢包的动作,tcp报文会在检测设备处传输中断,而不会传输至下一跳节点,因此阻断了tcp报文的传输,实现了流量阻断的功能。可选地,检测设备从tcp 报文的ip头中,获取tcp报文的源ip地址,得到第一ip地址。当检测设备接收到新的tcp 报文时,判断新的tcp报文的源ip地址是否为第一ip地址,如果该新的tcp报文的源ip 地址为第一ip地址,则丢弃该新的tcp报文,从而阻断整个流量。
233.检测设备通过在头部特征匹配的情况下直接进行阻断处理,达到缓解特定僵尸网络家族的tcp攻击流量的目的。
234.s306、检测设备记录tcp报文的五元组,向网络安全设备发送tcp报文。
235.检测设备可以记录tcp报文中的信息,s306以记录五元组为例进行说明。可选地,检测设备还记录tcp报文的载荷中的信息。通过这种方式,在大流量安全防护检测场景中,通过部署的tcp流量头部特征来匹配和识别特定僵尸网络家族的攻击信息,可以作为威胁情报数据生产的来源,用于补充ip类威胁情报的上下文信息。
236.需要说明的一点是,本实施例以tcp流量的头部特征为例进行说明,可选地,流量特征类型层面不限于tcp流量的头部特征,可以扩展到更多类型流量的更多特征。
237.需要说明的一点是,本实施例以识别僵尸网络的场景为例进行说明,可选地,本实施例应用在识别发动ddos攻击的木马软件的场景,或者其他需要检测网络攻击的任意场景。
238.本实施例提供了一种基于tcp报文的头部特征识别僵尸网络的方法,通过tcp报文的头部特征与僵尸网络的样本tcp报文的头部特征进行匹配,从而识别tcp报文是否是来自僵尸网络的报文。由于不考虑报文的载荷方面的内容,减少了设备所需解析和识别的内容,降低了设备所需处理的数据量,实现了轻量化的识别,减少了识别的开销。
239.尤其是,该方法由于减少了检测所需处理的数据量,从而大大增加设备能够检测流量的数据量,有助于提升检测的流量规模,适于大流量安全防护检测场景。在一定程度上可以以较小的开销、有效缓解特定僵尸网络家族的tcp攻击流量,提升整个体系的防护效果。
240.以下通过方法400,对以上所描述的方法300进行举例说明。应理解,方法400与方法300同理的步骤还请参见方法300,在方法400中不做赘述。
241.参见附图4,附图4为本技术实施例提供的一种基于tcp流量包特征的僵尸网络家
族识别方法400的流程图。可选地,方法400由如附图1所示的检测设备100执行。示例性地,方法400包括s401至s406。
242.s401、检测设备判断接收的tcp流量是否匹配到规则签名库中记录的僵尸网络家族的 tcp流量头部特征。
243.在s401中,主要利用前置的“tcp流量头部特征匹配识别和缓解”的方案(即附图2所示 tcp流量头部特征匹配识别和缓解模块201)来检测大流量中是否有来自僵尸网络样本的攻击流量,通过对tcp流量包的头部特征进行提取和分析,并与规则签名库中记录的僵尸网络的tcp流量头部特征进行匹配,进而进行识别判断。如果接收的tcp流量与样本匹配,则执行以下s402,如果接收的tcp流量与样本不匹配,则将tcp流量发送至“传统的安全防护检测”进行处理,进入以下s406。
244.s402、检测设备判断是否阻断命中ip地址的请求。
245.在s402中,根据大流量安全防护检测系统中的“检测配置”来设置tcp流量头部特征匹配识别后的缓解策略,即判断是直接进行阻断处理还是记录匹配ip的请求情况信息。如果对匹配tcp流量头部特征的ip进行阻断,则执行以下s403。如果对匹配tcp流量头部特征的 ip只是进行记录处理,则将tcp流量发送至“传统的安全防护检测”进行处理,进入以下s405。
246.s403、检测设备阻断该ip地址的请求。
247.s404、检测设备记录该ip的请求情况信息。
248.s405、对tcp报文进行传统的安全防护检测。
249.s406、对tcp报文进行传统的安全防护检测。
250.参见附图5,在一些实施例中,对系统架构200展开,得到如附图5所示的系统架构500。系统架构500主要应用在大流量安全防护检测场景下对来自僵尸网络的tcp类型攻击的缓解。系统架构500主要的特点包括,在检测配置中,配置项为检测阻断,即检测到命中规则特征,则相应的缓解措施为阻断命中ip的流量访问。
251.具体地,系统架构500包括tcp流量头部特征匹配识别和缓解模块501、传统安全防护检测模块502和检测配置模块503。模块501包括特征匹配判断子模块5011和处置判断子模块5012。处置判断子模块5012会根据检测配置模块503的内容进行处置。在系统架构500 中,处置判断子模块5012中配置的方法是检测到匹配tcp流量头部特征的流量,则认为该 tcp流量来自僵尸网络,是攻击流量,并对该ip的流量访问进行阻断。
252.参见附图6,在一些实施例中,对系统架构200展开,得到如附图6所示的系统架构600。系统架构600主要应用在大流量安全防护检测场景下对来自僵尸网络的tcp类型攻击信息的记录和积累,可以作为威胁情报数据生产的来源。系统架构600主要的特点包括,在检测配置中,配置项为检测记录,即检测到命中则采取的处置措施为记录匹配ip的请求情况信息。
253.具体地,系统架构600包括tcp流量头部特征匹配识别和缓解模块601、传统安全防护检测模块602和检测配置模块603。模块601包括特征匹配判断子模块6011和处置判断子模块6012。处置判断子模块6012会根据检测配置模块603的内容进行处置。在系统架构600 中,处置判断子模块6012中配置的方法是检测到匹配tcp流量头部特征的流量,则认为该 tcp流量来自僵尸网络,并对该ip的攻击流量信息进行记录和积累。
254.以上介绍了本技术实施例的方法300和方法400,以下介绍本技术实施例的网络攻击的检测装置,应理解,该网络攻击的检测装置具有上述方法300和方法400中检测设备的任意功能。
255.附图7是本技术实施例提供的一种网络攻击的检测装置700的结构示意图,如附图7所示,装置700包括:接收模块701,用于执行s301;提取模块702,用于执行s302;匹配模块703,用于执行s303;确定模块704,用于执行s304。
256.应理解,装置700对应于上述方法实施例中的检测设备,装置700中的各模块和上述其他操作和/或功能分别为了实现方法300和方法400中的检测设备所实施的各种步骤和方法,具体细节可参见上述方法300和方法400,为了简洁,在此不再赘述。
257.应理解,网络攻击的检测装置700中的每个功能模块采用检测设备100的软件实现。换句话说,网络攻击的检测装置700包括的功能模块为检测设备100的处理器读取存储器中存储的程序代码后生成的。
258.应理解,装置700在检测网络攻击时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置700的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置700与上述方法300和方法400属于同一构思,其具体实现过程详见方法300和方法400,这里不再赘述。
259.本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和模块,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
260.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
261.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
262.该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术实施例方案的目的。
263.另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
264.该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,
可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例中方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
265.本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一头部特征可以被称为第二头部特征,并且类似地,第二头部特征可以被称为第一头部特征。第一头部特征和第二头部特征都可以是头部特征,并且在某些情况下,可以是单独且不同的头部特征。
266.本技术中术语“至少一个”的含义是指一个或多个,本技术中术语“多个”的含义是指两个或两个以上,例如,多个tcp报文是指两个或两个以上的tcp报文。本文中术语“系统”和“网络”经常可互换使用。
267.还应理解,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0268]
以上描述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
[0269]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,dvd)、或者半导体介质(例如固态硬盘)等。
[0270]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0271]
以上描述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1