恶意设备识别方法、装置、存储介质和计算机设备转让专利
申请号 : CN201911183931.9
文献号 : CN110912904B
文献日 : 2021-07-02
发明人 : 欧阳婷 , 杨勇 , 张杰 , 廖晨 , 李龙 , 李韬 , 郑力枪 , 黄楠驹 , 夏雄风
申请人 : 腾讯科技(深圳)有限公司
摘要 :
权利要求 :
1.一种恶意设备识别方法,其特征在于,所述方法包括:在监控时段内接收到的每个数据报文中提取时间戳字段;
根据各数据报文中目标的数据报文的接收时间,与另一个具有相同源IP地址和源端口的数据报文的接收时间的第一时差、所述目标的数据报文的时间戳与所述另一个具有相同源IP地址和源端口的数据报文的时间戳的第二时差、所述目标的数据报文的接收时间以及所述目标的数据报文的时间戳,确定所述目标的数据报文所来自设备的启动时间;
按照所述启动时间,确定来自各设备的数据报文的数量;其中,启动时间满足时间匹配条件的不同数据报文来自于相同的设备;
当所确定数据报文的数量达到恶意设备判定条件时,将相应数据报文所来自设备标记为恶意设备。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:确定每个所述数据报文的接收时间以及对应的源IP地址和源端口;
根据具有相同源IP地址和源端口的不同数据报文的接收时间和时间戳,确定各数据报文所来自设备的启动时间。
3.根据权利要求2所述的方法,其特征在于,所述数据报文包括设备基于传输控制协议请求握手连接时发送的握手报文,所述握手报文包括SYN报文和ACK报文;所述根据具有相同源IP地址和源端口的不同数据报文的接收时间和时间戳,确定各数据报文所来自设备的启动时间包括:
计算所述SYN报文的接收时间与所述ACK报文的接收时间的握手报文第一时差;
计算所述SYN报文的时间戳与所述ACK报文的时间戳的握手报文第二时差;
根据所述握手报文第一时差与所述握手报文第二时差的比值,确定所述握手报文所来自设备的握手报文时钟周期;
基于所述握手报文时钟周期以及所述SYN报文的时间戳,计算所述SYN报文所来自设备的运行时长;
根据所述运行时长和所述SYN报文的接收时间,确定所述SYN报文所来自设备的启动时间。
4.根据权利要求1所述的方法,其特征在于,所述确定所述目标的数据报文所来自设备的启动时间包括:
根据所述第一时差与所述第二时差的比值,确定所述目标的数据报文的时钟周期;
基于所述时钟周期以及所述目标的数据报文的时间戳,计算所述目标的数据报文所来自设备的运行时长;
根据所述运行时长和所述目标的数据报文的接收时间,确定所述目标的数据报文所来自设备的启动时间。
5.根据权利要求1所述的方法,其特征在于,所述按照所述启动时间,确定来自各设备的数据报文的数量包括:
根据所述启动时间生成相应设备的设备标识;
确定每个设备标识对应设备在所述监控时段发出的数据报文的数量。
6.根据权利要求5所述的方法,其特征在于,所述根据所述启动时间生成相应设备的设备标识包括:
在所述数据报文中提取流量特征字段;
将所述流量特征字段与所述数据报文对应设备的启动时间进行拼接;
将拼接得到的字符串确定为所述设备的设备标识。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:获取多个历史报文;
在所述历史报文中提取通用的字段名;
将所述通用的字段名确定为流量特征字段名;
所述在所述数据报文中提取流量特征字段包括:在所述数据报文中提取每个流量特征字段名对应的流量特征字段值。
8.根据权利要求1所述的方法,其特征在于,所述当所确定数据报文的数量达到恶意设备判定条件时,将相应数据报文所来自设备标记为恶意设备包括:在所述数据报文中提取请求类型字段;
对启动时间满足时间匹配条件的各数据报文所记录的请求类型进行分类;
当所述数据报文的数量或者所述请求类型的类别数目达到恶意设备判定条件时,将相应数据报文所来自设备标记为恶意设备。
9.根据权利要求1所述的方法,其特征在于,所述当所确定数据报文的数量达到恶意设备判定条件时,将相应数据报文所来自设备标记为恶意设备包括:在所述数据报文中提取操作系统字段;
对启动时间满足时间匹配条件的各数据报文所记录的操作系统进行统计,得到每种操作系统的比例分布;
当所述数据报文的数量达到恶意设备判定条件,或者所述操作系统的比例分布与预设比例分布匹配失败时,将相应数据报文所来自设备标记为恶意设备。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:在当前监控时段接收数据报文;
基于所述数据报文中的时间戳字段确定数据报文所来自终端的启动时间;
当所述启动时间属于历史监控时段识别到的恶意设备的启动时间时,将所述数据报文进行丢弃。
11.根据权利要求1所述的方法,其特征在于,所述恶意设备判定条件包括多个数据报文数量区间以及每个数据报文数量区间对应的恶意等级;所述当所确定数据报文的数量达到恶意设备判定条件时,将相应数据报文所来自设备标记为恶意设备包括:当所确定数据报文的数量属于一个数据报文数量区间时,将相应数据报文所来自设备判定为所属数据报文数量区间对应恶意等级的恶意设备。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:根据所述恶意等级确定相应恶意设备的黑名单时段;当在所述黑名单时段接收到相应恶意设备发送的数据报文时,将所述数据报文进行丢弃。
13.一种恶意设备识别装置,其特征在于,所述装置包括:启动时间计算模块,用于在监控时段内接收到的每个数据报文中提取时间戳字段;根据各数据报文中目标的数据报文的接收时间,与另一个具有相同源IP地址和源端口的数据报文的接收时间的第一时差、所述目标的数据报文的时间戳与所述另一个具有相同源IP地址和源端口的数据报文的时间戳的第二时差、所述目标的数据报文的接收时间以及所述目标的数据报 文的时间戳,确定所述目标的数据报文所来自设备的启动时间;
访问流量统计模块,用于按照所述启动时间,确定来自各设备的数据报文的数量;其中,启动时间满足时间匹配条件的不同数据报文来自于相同的设备;
恶意设备识别模块,用于当所确定数据报文的数量达到恶意设备判定条件时,将相应数据报文所来自设备标记为恶意设备。
14.根据权利要求13所述的装置,其特征在于,所述启动时间计算模块还用于确定每个所述数据报文的接收时间以及对应的源IP地址和源端口;根据具有相同源IP地址和源端口的不同数据报文的接收时间和时间戳,确定各数据报文所来自设备的启动时间。
15.根据权利要求13所述的装置,其特征在于,所述数据报文包括设备基于传输控制协议请求握手连接时发送的握手报文,所述握手报文包括SYN报文和ACK报文;所述启动时间计算模块,还用于计算所述SYN报文的接收时间与所述ACK报文的接收时间的握手报文第一时差;计算所述SYN报文的时间戳与所述ACK报文的时间戳的握手报文第二时差;根据所述握手报文第一时差与所述握手报文第二时差的比值,确定所述握手报文所来自设备的握手报文时钟周期;基于所述握手报文时钟周期以及所述SYN报文的时间戳,计算所述SYN报文所来自设备的运行时长;根据所述运行时长和所述SYN报文的接收时间,确定所述SYN报文所来自设备的启动时间。
16.根据权利要求13所述的装置,其特征在于,所述启动时间计算模块,还用于根据所述第一时差与所述第二时差的比值,确定所述目标的数据报文的时钟周期;基于所述时钟周期以及所述目标的数据报文的时间戳,计算所述目标的数据报文所来自设备的运行时长;根据所述运行时长和所述目标的数据报文的接收时间,确定所述目标的数据报文所来自设备的启动时间。
17.根据权利要求13所述的装置,其特征在于,所述访问流量统计模块,还用于根据所述启动时间生成相应设备的设备标识;确定每个设备标识对应设备在所述监控时段发出的数据报文的数量。
18.根据权利要求17所述的装置,其特征在于,所述访问流量统计模块,还用于在所述数据报文中提取流量特征字段;将所述流量特征字段与所述数据报文对应设备的启动时间进行拼接;将拼接得到的字符串确定为所述设备的设备标识。
19.根据权利要求18所述的装置,其特征在于,所述装置还包括:拼接字段确定模块,用于获取多个历史报文;在所述历史报文中提取通用的字段名;将所述通用的字段名确定为流量特征字段名;
所述访问流量统计模块,还用于在所述数据报文中提取每个流量特征字段名对应的流量特征字段值。
20.根据权利要求13所述的装置,其特征在于,所述恶意设备识别模块,还用于在所述数据报文中提取请求类型字段;对启动时间满足时间匹配条件的各数据报文所记录的请求类型进行分类;当所述数据报文的数量或者所述请求类型的类别数目达到恶意设备判定条件时,将相应数据报文所来自设备标记为恶意设备。
21.根据权利要求13所述的装置,其特征在于,所述恶意设备识别模块,还用于在所述数据报文中提取操作系统字段;对启动时间满足时间匹配条件的各数据报文所记录的操作系统进行统计,得到每种操作系统的比例分布;当所述数据报文的数量达到恶意设备判定条件,或者所述操作系统的比例分布与预设比例分布匹配失败时,将相应数据报文所来自设备标记为恶意设备。
22.根据权利要求13所述的装置,其特征在于,所述装置还包括:恶意设备跟踪模块,用于在当前监控时段接收数据报文;基于所述数据报文中的时间戳字段确定数据报文所来自终端的启动时间;当所述启动时间属于历史监控时段识别到的恶意设备的启动时间时,将所述数据报文进行丢弃。
23.根据权利要求13所述的装置,其特征在于,所述恶意设备判定条件包括多个数据报文数量区间以及每个数据报文数量区间对应的恶意等级;
所述恶意设备识别模块,还用于当所确定数据报文的数量属于一个数据报文数量区间时,将相应数据报文所来自设备判定为所属数据报文数量区间对应恶意等级的恶意设备。
24.根据权利要求23所述的装置,其特征在于,所述装置还包括:恶意设备跟踪模块,根据所述恶意等级确定相应恶意设备的黑名单时段;当在所述黑名单时段接收到相应恶意设备发送的数据报文时,将所述数据报文进行丢弃。
25.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
26.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
说明书 :
恶意设备识别方法、装置、存储介质和计算机设备
技术领域
背景技术
送。这样就会给社交应用服务器带来极大的压力,同时也会严重影响正常用户对社交应用
的使用体验。
设备采用不同IP地址、局域网内多个设备共用同一IP地址的情形,笼统基于IP地址访问次
数识别恶意设备,常使恶意设备识别准确性较低。
发明内容
的不同数据报文的接收时间和时间戳,确定各数据报文所来自设备的启动时间包括:计算
SYN报文的接收时间与ACK报文的接收时间的第一时差;计算SYN报文的时间戳与ACK报文的
时间戳的第二时差;根据第一时差与第二时差的比值,确定握手报文所来自设备的时钟周
期;基于始终周期以及SYN报文的时间戳,计算所述握手报文所来自设备的运行时长;根据
运行时长和SYN报文的接收时间,确定所述握手报文所来自设备的启动时间。
时,将相应数据报文所来自设备标记为恶意设备包括:当所确定数据报文的数量属于一个
数据报文数量区间时,将相应数据报文所来自设备判定为所属数据报文数量区间对应恶意
等级的恶意设备。
行丢弃。
报文的接收时间与ACK报文的接收时间的第一时差;计算SYN报文的时间戳与ACK报文的时
间戳的第二时差;根据第一时差与第二时差的比值,确定握手报文所来自设备的时钟周期;
基于始终周期以及SYN报文的时间戳,计算所述握手报文所来自设备的运行时长;根据运行
时长和SYN报文的接收时间,确定所述握手报文所来自设备的启动时间。
属于一个数据报文数量区间时,将相应数据报文所来自设备判定为所属数据报文数量区间
对应恶意等级的恶意设备。
送的数据报文时,将所述数据报文进行丢弃。
时间计算准确性。启动时间作为设备一个重要的标识,根据启动时间可以识别来自同一设
备的数据报文数量,进而可以识别监控时段发送数据报文数量达到恶意设备判定条件的恶
意设备。基于启动时间进行不同设备之间的区分,能够唯一定位到具体一个设备,即可以从
单个设备层面进行恶意设备识别,避开了单纯根据IP地址进行恶意设备识别的局限性,可
以提高恶意设备识别准确率。
附图说明
具体实施方式
不用于限定本申请。
设备110和服务器120可以通过有线或无线通信方式进行直接或间接地连接。访问设备110
可以是终端110a,也可以是服务器110b。访问设备110上运行了目标应用。目标应用是能够
向服务器120发起数据请求的应用程序,如社交应用、支付应用、游戏应用等。服务器120可
以是目标应用提供服务的应用服务器,也可以是区别与目标应用所对应应用服务器的代理
服务器。服务器120用于识别每个访问设备110是否属于恶意设备,对来自恶意设备的数据
报文进行拦截。当服务器120为代理服务器时,代理服务器将不属于来自恶意设备的数据报
文转发至应用服务器。终端110a具体可以是台式终端或移动终端,移动终端具体可以智能
手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。服务器
110b与服务器120分别可以是独立的物理服务器,也可以是多个物理服务器构成的服务器
集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、
云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算
服务的云服务器。
扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计
算是网格计算(Grid Computing)、分布式计算(DistributedComputing)、并行计算
(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage
Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络
技术发展融合的产物。
算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软
件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系
统。
客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成
许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)
等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记
录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象
的存储位置信息让客户端对数据进行访问。
阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成
分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意
程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发
到每一个客户端。
输安全、网络攻击防护、合规审计等;2.安全基础设施的云化,主要研究如何采用云计算新
建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全
事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能
力及风险控制能力;3.云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,
如防病毒服务等。
下步骤:
时段可以划分为多个监控子时段。比如,监控时段“8:00(am)~10:00(pm)”可以划分为“8:
00(am)~8:05(am)”、“8:05(am)~8:10(am)”等多个时间长度为5分钟的监控子时段。在每
个监控子时段结束时,服务器基于该监控子时段接收的数据报文进行恶意设备识别,并根
据识别结果对数据报文进行响应或丢弃。
文段(segment)。传输层通信协议是指访问设备与服务器双方实体完成通信或服务所必须
遵循的规则和约定,具体可以是TCP协议(Transmission Control Protocol,传输控制协
议)。换言之,数据报文具体可以是基于TCP协议的数据报文(以下简称TCP报文)。可以理解,
直接基于传输层的数据报文进行恶意设备识别,能够尽可能早的发现恶意设备。
口source port、目标端口destination port、序号Sequence Number、确认号
Acknowledgemt Number、TCP首部长度、窗口大小、校验和、紧急指针和选项部分。其中,选项
部分包括:最大报文段长度(Maxium Segment Size,MSS)、窗口扩大选项(Windows
Scaling)、SACK选择确认项(Selective Acknowledgements)、时间戳选项(Timestamps)等。
具有不同的编号,该编号即为选项类型kind。比如,kind=0表示结束选项,kind=8表示时
间戳选项。选项长度length是指一个选项的字节数量,时间戳选项的选项长度为10,其中选
项类型kind为1个字节、选项长度length为1个字节,选项具体信息info为8个字节。选项具
体信息info由timestamp和timestamp echo两个值组成,各4个字节的长度。Timestamp字段
记录了发送所属数据报文时访问设备的内核时刻,即数据报文的发送时间。
收方(服务器)有一方未开启该选项,则双方均将停用Timestamp选项。比如,当访问设备发
送的SYN包中带有Timestamps选项,但服务器并未开启该选项,则回复的SYN+ACK包中将不
带Timestamps选项,同时访问设备后续回复的ACK包也不会携带Timestamps选项。可以理
解,当访问设备发送的SYN包本身就未携带Timestamps选项,则访问设备和服务器均将停用
Timestamps选项。
自设备发送开启Timestamps选项的指令,以指示相应访问设备开启Timestamps选项。
送相应数据报文的访问设备。访问设备的启动时间是指启动访问设备的电源使访问设备处
于开机工作状态的时间。访问设备中CPU(central processing unit,中央处理器)具有对
应的时钟周期。CPU时钟周期通常为节拍脉冲或T周期,是指CPU在内存中读取一个指令字的
最短时间。不同访问设备的CPU时钟周期可能不同。访问设备在启动后,CPU内部维持一个64
位计数器。每过一个时钟周期,计数器进行加一计数,如此可以统计得到不同时刻访问设备
所经历的时钟周期数量。TCP报文所记录的时间戳字段本质上是自访问设备启动至发送该
TCP报文所经历的时钟周期数量,可以视作TCP报文的发送时间。
控时间服务器接收到的一个与目标报文具有相同源IP地址(Internet Protocol Address,
互联网协议地址)的数据报文、或者与目标报文具有相同源IP地址和源端口的数据报文等。
协议尾中的过程。在OSI7层参考模型中,发送方的每层主要负责与接收方上的对等层进行
通信。OSI7层参考模型包括应用层、会话层、表示层、传输层、网络层、数据链路层和物理层。
不同网络层可以采用不同的通信协议。
的传输层。当传输层协议为TCP协议时,访问设备的传输层在数据单元的基础上添加TCP报
文头,得到TCP报文。TCP报文头记录了源端口和目标端口等信息。访问设备的传输层通过接
口将TCP报文下发至访问设备的网络层。当网络层协议为IP协议时,网络层在TCP报文的基
础上添加IP报文头,得到IP数据包。IP报文头记录了源IP地址和目标IP地址等信息。访问设
备的网络层通过接口将IP数据包下发至访问设备的数据链路层。数据链路层在IP数据包的
基础上添加LLC(Logical Link Control,逻辑链路控制)帧头,得到帧。访问设备的数据链
路层通过接口将帧下发至物理层。访问设备的物理层层通过接口将帧转化为字节流传输至
服务器的物理层。
网络层上传的IP数据包进行解封装,得到TCP报文。TCP报文记录了源端口和目的端口。如
此,服务器可以确定每个数据报文的源IP地址和源端口。
小,可以认为在短时间内同一访问设备只能基于一种源IP地址发起数据请求。如此,在较短
的一个监控子时段接收到的具有相同源IP地址的不同数据报文可以认为是来自同一访问
设备的数据报文。
个数据报文时记录该数据报文的接收时间。服务器根据时间戳所记录的自访问设备启动至
发送该数据报文所经历的时钟周期数量,以及CPU时钟周期T可以计算得到数据报文所来自
设备已运行时长。服务器根据数据报文接收时间及其已运行时长即可推算得到访问设备的
启动时间。
+语言编写的命令行程序通过GetSystemTimes函数计算并打印本机启动时间等。但无论那
种方式该参数只能设备自行获取,也就是说,设备自己获取自己的启动时间参数。这种方式
由于一个设备是难以获取到其他设备的启动时间参数的,对应到本申请服务器难以获取到
各个访问设备的启动时间,也就不适用于本申请服务器识别恶意访问设备的场景。
时间。如此,在整个监控时段结束时,只需要基于启动时间统计识别恶意设备,而将启动时
间计算分散在监控时段内不同时间节点进行,不仅有助于环节服务器集中计算的压力,且
有助于提高恶意设备识别效率。
库的空闲时间进行启动时间计算可以缓解服务器资源消耗。
时间的差值小于阈值。阈值可以根据自由设,如5分钟等。
如,服务器在监控时段8:00(am)‑9:00(am)共计接收到1000个数据报文,其中100个数据报
文所来自设备的启动时间均接近8:10,即启动时间差值在阈值范围内,则可以将该100个数
据报文所来自设备判定为同一设备。
的数量。
体可以是启动时间本身、基于启动时间生成的哈希值、将启动时间与其他字段拼接而成的
字符串等。其他字段可以是在数据报文中提取得到的字段信息,如TCP报文选项部分中除
timestamp选项之外的其他字段。
量。
数量超过第一预设值,访问设备在监控时段不同监控子时段所发送数据报文数量的变化趋
势是否符合正常分布趋势等。第一预设值可以根据需求自由设定,如100等。
数据报文的总数量是否达到第一预设值。或者,服务器计算设备标识对应设备在每个监控
子时段所发送数据报文的数量与预存储的相应监控子时段设备发送数据报文的常规数量
的差值,对计算得到的每个监控子时段的数据报文数量差值进行加权求和或加权求平均等
计算,得到数据报文数量分布差异度,比较数据报文数量分布差异度是否超过第二预设值。
当一个设备标识对应设备在监控时段所发送数据报文的总数量达到第一预设值,或者数据
报文数量分布差异度超过第二预设值时,服务器针对该设备标识添加对应的恶意标记。
timestamp计算启动时间,利用启动时间及提取到的其他关键参数生成设备标识,统计同一
设备标识对应访问设备在监控时段内的访问次数,通过判断访问次数是否符合预设的访问
次数流量分布来进行恶意设备识别。
多,对应的恶意等级越高。
重要的标识,根据启动时间可以识别来自同一设备的数据报文数量,进而可以识别监控时
段发送数据报文数量达到恶意设备判定条件的恶意设备。基于启动时间进行不同设备之间
的区分,能够唯一定位到具体一个设备,即可以从单个设备层面进行恶意设备识别,避开了
单纯根据IP地址进行恶意设备识别的局限性,可以提高恶意设备识别准确率。
数据报文所来自设备的启动时间包括:
址。同一访问设备对应的源端口也是多变的,只要改变其CGI(Common Gateway Interface,
通用网关接口)配置,对应的源端口随即发生变化。也就是说,同一访问设备可以基于多种
源IP地址和源端口组合发起数据请求。
送了数据报文A1,基于IP2+Port2发送了数据报文A2;基于IP1+Port1发送了数据报文A3等
100个数据报文。访问设备N在监控时段基于IP1+Port2发送了数据报文B1,基于IP3+Port2
发送了数据报文B2;基于IP1+Port3发送了数据报文B3等50个数据报文。
同IP地址发出的数据报文的数量被统计为不同访问设备的访问次数。比如,上述数据报文
A1与数据报文A2会被统计为不同访问设备发出的数据报文,而实际上数据报文A1与数据报
文A2均为访问设备M发出的。容易发现,这样会造成恶意设备的遗漏识别。
数据报文均会被笼统的统计为一个访问设备发出的数据报文。比如,上述数据报文A1与数
据报文B1会被统计为同一访问设备发出的数据报文,而实际上数据报文A1与数据报文B1分
别由访问设备M和访问设备N发出的。如此会造成基于同一IP地址的正常访问请求因为访问
次数过高而被误识别为恶意请求,及造成恶意设备的过渡识别。
报文,数据报文在访问设备和服务器之间传输,待传输完毕后到达服务器,此时服务器确定
数据报文接收时间。容易理解,访问设备的启动时间(记作Tboot)、发送数据报文前访问设
备已运行时长(Tk)、数据报文传输时长(记作t)以及数据报文的接收时间(记作Tnow)之间
存在如下关系:
传输时长t相对访问设备已运行时长Tk较小,可以忽略不计,如此,上式可以转换为:
地址和源端口组合发起数据请求。如此,在较短的一个监控子时段接收到的具有相同源IP
地址和源端口的不同数据报文可以认为是来自同一访问设备的数据报文。监控子时段的时
间长度不宜过长。一个访问设备的CPU时钟周期和启动时间是唯一确定的。因而,具有相同
源IP地址和源端口的各数据报文可以认为具有相同的CPU时钟周期K和访问设备启动时间
Tboot。
组。换言之,同一数据报文组中的各个数据报文互为同源报文。如上文,同组数据报文可以
认为来自同一访问设备,即每组数据报文具有对应的一个访问设备。为了描述方便,下文将
每组数据报文对应的访问设备称作一个候选设备。可以理解,监控子时段接收的数据报文
可能来自多个候选设备,而实际上这些候选设备中的一个或多个可以是同一个访问设备,
比如图4中候选设备1和候选设备2实质上是同一访问设备1。
不同,但启动时间却是唯一确定的。具体地,服务器接收到一个数据报文时记录对应的数据
报文接收时间Tnow。服务器根据每个候选设备对应数据报文组中任意两个数据报文所记录
的时间戳可以推算相应候选设备的CPU时钟周期K。服务器将CPU时钟周期K、其中一个数据
报文接收时间Tnow和时间戳timestamps代入上式即可计算得到候选设备对应的启动时间。
传统方式单纯根据IP地址识别恶意设备时遗漏识别或过度识别的问题,提高恶意设备识别
准确性。
文A3具有相同的源IP地址和源端口,为同一候选设备发送的数据报文。基于候选设备对应
数据报文组中每个数据报文可以得到一个计算对应候选设备启动时间的计算公式,如基于
数据报文A1的候选设备启动时间计算公式(1)与基于数据报文A3的候选设备启动时间计算
公式(2)分别如下:
timestampsA3表示自访问设备启动至发送数据报文A3所经历的时钟周期数量。
戳的差值(记作第二时差),计算第一时差与第二时差的比值,将该比值确定为数据报文组
对应候选设备的CPU始终周期,将CPU始终周期代入数据报文组中任意一个数据报文对应的
候选设备启动时间计算公式即可得到相应候选设备的启动时间。
以及数据报文所记录的经历CPU始终周期的数量即可计算得到访问设备的启动时间。
以及目标的数据报文的时间戳,计算目标的数据报文所来自设备的运行时长;根据运行时
长和目标的数据报文的接收时间,确定目标的数据报文所来自设备的启动时间。
文的接收时间和时间戳,确定各数据报文所来自设备的启动时间包括:计算SYN报文的接收
时间与ACK报文的接收时间的第一时差;计算SYN报文的时间戳与ACK报文的时间戳的第二
时差;根据第一时差与第二时差的比值,确定握手报文所来自设备的时钟周期;基于始终周
期以及SYN报文的时间戳,计算SYN报文所来自设备的运行时长;根据运行时长和SYN报文的
接收时间,确定SYN报文所来自设备的启动时间。
character,确认字符)报文均为基于TCP协议的数据报文,分别包括各自的时间戳字段。
文到服务器,并进入SYN_SEND(请求连接)状态,等待服务器确认。SYN报文中syn标志位置为
j。第二次握手过程中,服务器收到SYN报文,对访问设备的SYN报文进行确认,同时服务器向
访问设备发送一个SYN+ACK报文,此时服务器进入SYN_RECV(请求应答)状态。SYN+ACK报文
中ack标志位置为j+1,syn标志位置为k。在第三次握手过程中,访问设备收到服务器的SYN+
ACK报文,向服务器发送ACK报文。ACK报文中ack标志位置为k+1。当ACK报文发送完毕时,访
问设备与服务器进入ESTABLISHED(连接成功)状态,完成三次握手。
有相同的启动时间Tboot和时钟周期K,其中,发送SYN包时访问设备的运行时间为TSYN=K*
timestampsSYN,服务器接收到SYN包的时间为TnowSYN;发送ACK包时访问设备的运行时间
为Tack=K*timestampsACK,服务器接收到ACK包的时间为TnowACK。其中,K为K=(TnowACK‑
TnowSYN)/(timestampsACK‑timestampsSYN)。根据SYN包计算启动时间的公式计算得到SYN
包与ACK包对应访问设备的启动时间Tboot=TnowSYN‑K*timestampsSYN。
据包里不包含数据,三次握手完毕后,访问设备与服务器才正式开始传送数据,还可以提前
避免恶意设备建立连接后对服务器资源的无端占据消耗。
的字符串确定为设备的设备标识。
定的文件)在TCP报文数据部分解析出的字段。RFC文档是收集了互联网通信协议相关信息,
以及UNIX和互联网社区的软件文件。在本申请的实施例中,流量特征字段具体可以是DF
(Dedicated File,专用文件)字段、ttl(Time To Live,IP包被路由器丢弃之前允许通过的
最大网段数量)、IP option len(IP选项部分长度)、Window size(滑动窗口)、Protocol
version(协议版本)、Client version(LTLS支持的最大版本)、cipher_cnt(加密套件数)、
cipher_str(加密套件字符串)、exttype_str(扩展类型字符串),supported_groups(列举
了客户端支持的用于密钥交换的命名组)、ec_point_formats(列举了客户端支持的椭圆曲
线算法)、signature_algorithms(列举了客户端支持的签名算法)中的一项或多项。
拼接,将拼接得到的字符串确定为相应访问设备的设备标识。直接将不同的流量特征字段
进行拼接作为设备标识,可能会造成设备标识冲突,启动时间能够用于标识一个访问设备,
将启动时间加入可以解决设备标识冲突问题。
应访问设备的唯一标识能力越强,有助于基于设备标识统计每个访问设备所发送数据报文
的数量,进而有助于提高恶意设备识别准确性。
征字段包括:在数据报文中提取每个流量特征字段名对应的流量特征字段值。
名可以是相关人员根据RFC文档或者经验需求自行制定的。比如,相关人员基于pof、namp等
探测工具确定比较重要的字段名。流量特征字段值是指数据报文中与通用的字段名对应的
字段值。
练得到的字段名。流量特征字段值还可以是用户访问目标应用时输入的特定参数。其中,特
定参数可以通过预先在目标应用中嵌入JS脚本实现。
当阈值小于历史报文数量时,根据所确定的通用字段名在某些数据报文可能提取不到对应
的流量特征字段值,此时可以将预设拼接顺序中该特征字段值对应的拼接位置填充为预设
字符,即采用预设字符代替为空的流量特征字段值参与拼接。
表性,更能够反映数据报文的数据特性,进而有助于提高设备指纹对访问设备的唯一标识
能力。
足时间匹配条件的各数据报文所记录的请求类型进行分类;当数据报文的数量或者请求类
型的类别数目达到恶意设备判定条件时,将相应数据报文所来自设备标记为恶意设备。
型字段可以是服务器在数据报文的数据部分提取得到。恶意设备判定条件还包括将一个设
备判定为恶意访问设备时访问设备在监控时段所发送的数据报文的请求类型类别数目阈
值条件。比如,访问设备在监控时段所发送的数据报文的请求类型类别数目小于第二预设
值,如5等。
求类型类别数目。比如,设备标识M对应的访问设备具有对应的100个请求类型为X、Y或X或Z
的数据报文,则设备标识M对应的请求类型类别数据为3。
相应访问设备的业务请求比较多,但是所请求的业务类型比较单一,一定置信度上可以认
为该访问设备为用于刷机或养号批量操作等的恶意设备。服务器将数据报文的数量与请求
类型的类别数目中任意一者不符合恶意设备判定条件的设备标识对应的访问设备判定为
恶意设备。
判定条件组合设定不同的恶意等级。
请求类型为X的数据报文30个,请求类型为Y的数据报文60个,请求类型为Z的数据报文10
个,则请求类型X的数据报文的概率分布为30%。服务器将数据报文的数量不符合恶意设备
判定条件,或请求类型概率分布与预设的标准概率分布的差异超过阈值的设备标识对应的
访问设备判定为恶意设备。
足时间匹配条件的各数据报文所记录的操作系统进行统计,得到每种操作系统的比例分
布;当数据报文的数量达到恶意设备判定条件,或者操作系统的比例分布与预设比例分布
匹配失败时,将相应数据报文所来自设备标记为恶意设备。
机硬件与软件资源的计算机程序。不同的访问设备可能采用不同的操作系统,如iOS、
Android、Windows等。恶意设备判定条件还包括将一个设备判定为恶意访问设备时访问设
备在监控时段所发送的数据报文的操作系统分布与预设操作系统大盘分布的匹配度阈值
条件。
来自操作系统为iOS的访问设备的数据报文30个,则对应操作系统为iOS的访问设备的数据
报文的概率分布为30%。假设预存储的操作系统大盘分布中iOS操作系统的分布为50%,来
自操作系统为iOS的访问设备的数据报文的概率分布与预设操作系统大盘分布的匹配度
低,服务器可以确定当前监控时段接收到的每个操作系统为iOS的数据报文所记录的源IP
地址,并查询该IP地址对应为访问设备在前一监控时段是否被判定为恶意设备,若是,则在
当前监控时段也可以对应数据报文所来自设备判定为恶意设备。可以理解,本领域技术人
员还可以利用操作系统字段辅助识别恶意设备,对此不作限定。
监控时段识别到的恶意设备的启动时间时,将数据报文进行丢弃。
属于历史监控时段识别到的恶意设备的启动时间。启动时间属于历史监控时段识别到的恶
意设备的启动时间,则标识当前该数据报文为已经标记为恶意设备的访问设备所发送的数
据报文,服务器对该数据报文进行拦截丢弃。若启动时间并不属于历史监控时段识别到的
恶意设备的启动时间,则表示当前该数据报文为正常访问数据报文,服务器直接放行,即响
应数据报文。
据报文所来自设备的启动时间,并判断是否与历史监控时段被判定为恶意设备的启动时间
符合时间匹配条件。若是,服务器可以将该数据报文判定为来自恶意设备的数据报文,进行
拦截丢弃。否则,服务器将该数据报文判定为正常访问数据报文,对该数据报文进行处理。
时,将相应数据报文所来自设备标记为恶意设备包括:当所确定数据报文的数量属于一个
数据报文数量区间时,将相应数据报文所来自设备判定为所属数据报文数量区间对应恶意
等级的恶意设备。
行丢弃。
应访问设备被判定为恶意设备,则服务器将监控时段之后的一段时间确定为该设备标识对
应的访问设备的黑名单时段,并将该设备标识对应的访问设备在黑名单时段发送的数据报
文进行丢弃处理,而在黑名单时段之外继续响应该访问设备发送的数据报文。可以理解,黑
名单时段的时长与恶意等级正相关。恶意等级越低,对应的黑名单时段时长越短;恶意等级
越高,对应的黑名单时段时长越长。也可以在恶意等级达到预设等级时,对应的黑名单时段
时长可以是无限长,即服务器将永久不再响应该设备标识对应访问设备发送的数据报文。
可以减少恶意请求对服务器资源的消耗。
重要的标识,根据启动时间可以识别来自同一设备的数据报文数量,进而可以识别监控时
段发送数据报文数量达到恶意设备判定条件的恶意设备。基于启动时间进行不同设备之间
的区分,能够唯一定位到具体一个设备,即可以从单个设备层面进行恶意设备识别,避开了
单纯根据IP地址进行恶意设备识别的局限性,可以提高恶意设备识别准确率。
按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的
顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4、6和9中的至少一部分步骤可以包
括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是
可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以
与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
和时间戳,确定各数据报文所来自设备的启动时间。
报文的时间戳与另一个具有相同源IP地址和源端口的数据报文的时间戳的第二时差;根据
第一时差、第二时差以及目标的数据报文的接收时间,确定目标的数据报文所来自设备的
启动时间。
的接收时间与ACK报文的接收时间的第一时差;计算SYN报文的时间戳与ACK报文的时间戳
的第二时差;根据第一时差与第二时差的比值,确定握手报文所来自设备的时钟周期;基于
始终周期以及SYN报文的时间戳,计算所述握手报文所来自设备的运行时长;根据运行时长
和SYN报文的接收时间,确定所述握手报文所来自设备的启动时间。
标的数据报文所来自设备的运行时长;根据运行时长和目标的数据报文的接收时间,确定
目标的数据报文所来自设备的启动时间。
动时间进行拼接;将拼接得到的字符串确定为设备的设备标识。
量特征字段名;访问流量统计模块1004还用于在数据报文中提取每个流量特征字段名对应
的流量特征字段值。
的数量或者请求类型的类别数目达到恶意设备判定条件时,将相应数据报文所来自设备标
记为恶意设备。
作系统的比例分布;当数据报文的数量达到恶意设备判定条件,或者操作系统的比例分布
与预设比例分布匹配失败时,将相应数据报文所来自设备标记为恶意设备。
动时间;当启动时间属于历史监控时段识别到的恶意设备的启动时间时,将数据报文进行
丢弃。
一个数据报文数量区间时,将相应数据报文所来自设备判定为所属数据报文数量区间对应
恶意等级的恶意设备。
丢弃。
处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设
备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器
执行时,可使得处理器实现恶意设备识别方法。该内存储器中也可储存有计算机程序,该计
算机程序被处理器执行时,可使得处理器执行恶意设备识别方法。
备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
成该恶意设备识别装置的各个程序模块,比如,图10所示的启动时间计算模块、访问流量统
计模块和恶意设备识别模块。各个程序模块构成的计算机程序使得处理器执行本说明书中
描述的本申请各个实施例的恶意设备识别方法中的步骤。
计算机设备可通过恶意设备识别模块执行步骤S208。
处恶意设备识别方法的步骤可以是上述各个实施例的恶意设备识别方法中的步骤。
法的步骤可以是上述各个实施例的恶意设备识别方法中的步骤。
介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各
实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/
或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程
ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器
(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM
(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM
(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直
接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
盾,都应当认为是本说明书记载的范围。
在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范
围。因此,本申请专利的保护范围应以所附权利要求为准。