-
Notifications
You must be signed in to change notification settings - Fork 659
self‐define feature file
ttcoder edited this page Aug 8, 2024
·
1 revision
特征库文件用于存储所有APP的特征码,为非加密的文本文件,一般用.cfg后缀表示,可以通过文本文档编辑。
特征码用于定义每个APP的协议特征,比如可以定义端口号、域名、七层内容等
$id $name:[$proto;$sport;$dport;$host url;$request;$dict]
-
$id
: 唯一的APP编号,不能重复 -
$name
: APP的名称,比如抖音 -
$proto
: 传输层协议,tcp或udp -
$sport
: 源端口,1-65535,不设置表示匹配所有,一般不用设置源端口 -
$dport
: 目的端口,1-65535,不设置表示匹配所有 -
$host
: http或者https请求的域名,比如www.baidu.com -
$dict
: 七层内容字典,格式xx:aa|yy:bb,其中xx,yy是位置,表示第几个字节,而aa,bb表示十六进制内容,示例:00:a0|02:08|03:0a,表示第0个位置为0xa0,第2个位置为0x08,第3个位置为0x0a,注意第一位从0开始,如果位置为负数,表示从最后一个开始,一般不要用负数表示。
首先我们要去官网随便下载一个特征库文件,注意解压后得到.cfg文件。
下载后可以通过文本文档或者其他文本工具打开,可以看到类似这样的内容,一行定义一个APP
8001 百度:[tcp;;;baidu.com;;]
8002 新浪:[tcp;;;sina.com;;]
8003 搜狐:[tcp;;;sohu.com;;]
8004 网易:[tcp;;;163.com;;,tcp;;443;126.com;;]
8005 凤凰网:[tcp;;;ifeng.com;;]
8006 人民网:[tcp;;;people.com.cn;;]
8007 凤凰网:[tcp;;;ifeng.com;;]
可以在同一个分类中复制某个APP特征,追加到该分类的最后一行,这样用于保证appid中的分类字段是统一的 appid的低3位表示分类中的编号,高位表示分类id,比如8001,其中8表示分类,为常用网址,而001为编号,表示百度。
复制后首先需要修改appid,保证组内唯一,最好是组内编号最大值加1,比如当前最大值为8012,那新的appid就设置成8013,这样方便统一管理。
比如现在要增加一个常用网站google,那新增的特征码定义如下:
8008 谷歌:[tcp;;;www.google.com;;]
如果只想匹配443端口,可以定义为
8008 谷歌:[tcp;;443;www.google.com;;]
修改完成后需要保存特征库文件,然后在应用过滤插件中上传更新该特征库即可,这样就可以勾选新加的APP了。