更新时间:2023-07-05
全网终端识别功能根据用户的实际流量进行识别。从AC13.0.80版本开始,支持从TCP、DHCP、HTTP、SMB、应用流量等提取流量指纹。根据这些指纹的可篡改性、数目等,大致分为2类。一类是指纹信息很少但准确性很高,只要在流量中识别到此种指纹信息,就能确定终端类型,如DHCP、浏览器取到的平台相关字段;另外一类是可以被篡改,或者其本身的分类仍具有不确定性,针对这一类流量指纹信息,需要收集足够充足,才能确定终端类型。
在大部分环境中,均通过第二类流量指纹识别出来,当前包括TCP流量,HTTP流量和应用流量。下面主要针对这三类流量识别的过程进行说明。
- 用户终端产生的流量经过AC时,AC捕获管理员配置的监控网段范围内的IP流量,分析TCP、HTTP、应用流量特征。AC会把识别到的指纹信息存放到一个队列中,当指纹累积到一定的阈值才判定有效,进而识别出终端类型。对于单个终端识别,仅需要指纹数量累积到指定的占比即可;对于共享终端识别,则必须是指纹的交替次数达到指定数目才确定终端类型。
- 根据流量特征匹配内置规则库和用户自定义的规则库,得出具体终端类型。
- 设备的终端类型存入本地数据库,供管理员查询。管理员也可在页面手动指定终端类型。内置规则库识别,自定义规则库识别、手动指定终端类型,这三种识别结果同时存在本地数据库中,展示时只使用优先级最高的结果。优先级:手动指定 > 自定义识别 > 内置识别。
常见指纹来源与含义
指纹字段 |
指纹来源 |
示例 |
含义 |
nic_vendor |
Mac地址 |
Xiaomi Communications Co Ltd |
根据mac地址匹配出的厂商信息 |
appinfo |
User-Agent和应用流量 |
{"os_class":"Android","os_version":"10","device_class":"Redmi Note 9 5G China","matched_fp":["Android_relate"]} |
13.0.80新增。表示从ua和应用流量提取终端型号。应用流量指的是ac的应用识别可以识别的应用,当前只做了微信发文件 |
dhcp_xxx |
dhcp报文 |
|
从dhcp报文提取的hostname字段和参数列表、请求列表等 |
http_ua |
http报文 |
sls-android-sdk_v2.5.12 |
含有操作系统关键字的ua |
tcp_synack_fp |
Tcp的syn包 |
Linux(Android) |
根据tcp的协议栈参数提取出的平台特征 |
platform_js |
浏览器的js |
Win32 |
弹出推端页面或者认证页面后从浏览器上报的平台相关字段 |
smb_hostname |
smb协议的包 |
|
从smb协议提取的终端名称 |
nat |
任何一个指纹队列中有交替的流量,且交替次数达到阈值,就会产生nat标记 |
true |
共享终端标记,共享终端的必要条件之一 |