
信令风暴
-
2023年3月5日发(作者:温州市第八中学)DPI识别流程和基于DPI实现的功能
DPI识别流程和基于DPI实现的功能
有同事近来问我DPI收集的信息有哪些,可能他并不太熟悉DPI的功能,所以启发我写⼀些⼩短⽂向他解释DPI的⼯作。
DPI并不是⽤来收集⽤户数据的,基于DPI的上层应⽤才会这样做,当然你也可以将上层应⽤统⼀理解为⼀个⼤的DPI系统,那我们就按⼤DPI系
统说吧。
1.所谓DPI
DPI,DeepPacketInspection,⼀般称之为「深度报⽂检测」或「深度包检测」。从字⾯意思来讲,所谓「深度」是相对于普通的报⽂检
测⽽⾔的。
普通的报⽂检测仅分析IP包的层4以下5元素:源地址、⽬的地址、源端⼝、⽬的端⼝及协议类型。因些可以说,普通报⽂检测是通过端⼝
号来识别应⽤类型的。如端⼝为80时,则代表为上⽹应⽤,但具体是哪种上⽹应⽤,就⽆能为⼒了,并且单端⼝识别情况下也会产⽣很多风
险,如⼀些病毒或者垃圾应⽤会采取假冒的端⼝号来伪装成合法报⽂,普通检测⽅法同样也就没办法识别了。
⽽DPI除了对上述5元素进⾏分析外,增加了应⽤层分析,就是对报⽂内容和协议特征进⾏检测的,⾮法的应⽤可以隐藏和变换端⼝号,但
是⽐较难以隐藏应⽤层的协议特征。
常⽤识别技术
特征识别-建⽴应⽤特征库
不同的应⽤通常会采⽤不同的协议,⽽各种协议都有其特殊的指纹,这些指纹可能是特定的端⼝、特定的字符串或者特定的Bit序列。基于
特征的识别技术,正是通过识别数据报⽂中的指纹信息来确定业务流所承载的应⽤。
关联识别-使⽤过滤器
像RTSP/VoIP/FTP/在线游戏等业务普遍采⽤控制流与业务流分离的⽅式,通过控制流完成握⼿,其业务流没有任何特征。因此⾸先由应⽤
层⽹关识别出控制流,并根据控制流协议分析识别出业务流的端⼝和对端⽹关地址等信息,然后对业务流进⾏解析,从⽽识别出相应的业务
流。
⾏为识别
基于终端已经实施的⾏为进⾏分析,判读⽤户正在进⾏的动作或即将实施的动作。⾏为识别技术通常⽤于⽆法根据协议判断的业务识
别。⽬前⼤部分的P2P传输、加密传输已经进化到特征识别和关联识别失效的程度,只能结合流的平均速率,持续时间,字节数,包长等特征信
息进⾏识别,虽然识别精度不⾼并且容易出现误判,但还是可以作为特征识别和关联识别的有效补充。
3.特征识别过程
DPI系统对所谓特征并⽆严格的定义,但凡能够⽤于确定⼀种协议或者应⽤的数据序列均可做为识别特征,总体来讲,特征可以简单划分
为:
A.字符特征
http所有的请求信息字段都可以做为特征
URI:不同的内容会有不同的URI,如视频会以video/hd/v等做前缀,⽽新闻会以news为前缀;
HOST:不同的服务也会以次级域名分开,如同是腾讯旗下产品,微信的host是:,⽽QQ邮箱的host是:;
User-Agent:不同的应⽤访问⽹络时,会主动附上⾃⼰的签名,如微信的user-agent是MicroMessenger,QQ邮箱的user-
agent是QQMail;
Cookie:
Referer:
⽬前移动互联⽹上⼤部分的应⽤协议都基于HTTP协议,使⽤系统内置的浏览器核⼼,扩展HTTP信息字段(如淘宝:T-UA),或者根
本不扩展。对于这样的应⽤,必须执⾏全部联⽹功能的抓包分析。
B.协议指纹特征
像bittorrent等类似协议,使⽤像hashtable这种结构维护P2P的信息,这种结构典型的会在开始出现“d1:”,在结束时出现“e”这种字符。
当然不同协议有不同的协议指纹,需要更多的抓包分析。
C.协议状态特征
FTP/RTSP等控制与数据分离的协议,通常会有协议交互状态的转变,不同状态下,会有不同信令特征。
D.通信特征
对于加密传输数据,在没有对应解密密钥时,只能通过⽹络传输的流量特征来近似识别。不同协议或应⽤,其包长抖动有近似规律。
上述这些特征可对分别对应于DPI常⽤的识别技术。
4.识别流程
5.基于DPI的数据深度挖掘
1)dpi普通流识别收集⽹络数据的源地址、⽬的地址、源端⼝、⽬的端⼝、传输协议、包长等数据,以此确定流的流出⽅向、流向、流⼤
⼩,进⼀步可以确定上⽹时长
2)做为dpi拆包的副产品,dpi可以:
根据HTTP确定⽤户访问的⽹站、资源URI、资源内容、资源类型
确认资源是否属于有害、不易传播内容
统计⽤户的上⽹习惯:⽤户上哪些⽹站、什么时间段上⽹,使⽤有哪些应⽤
进⽽统计⼩区级范围内⽤户的上⽹习惯:新闻浏览、游戏、⽹上视频、下载等
统计应⽤使⽤⽹络的习惯,给避免⽹络信令风暴提供依据
统计热门⽹络应⽤、⽹站
识别、隔离恶意⽹站
3)P2P流量控制,基于dpi识别的P2P应⽤,可以限制P2P应⽤访问主⼲⽹络,将P2P应⽤对⽹络流量的冲击局限在有限的城域⽹内
特征维护
由于dpi⾼效识别全部依赖于特征库的配置,必须适时补充、更新dpi特征库。
1)特征库离线维护
特征库做到能够脱离运⾏时系统进⾏维护,对新应⽤、新协议能够进⾏及时更新
2)特征库在线升级
能够在不重启dpi系统的情况下,对特征库进⾏实时更新
运⾏状态
待续。。。
请关注阳光⾃照的博客