CN112261645A - 一种基于分组分域的移动应用指纹自动化提取方法及系统 - Google Patents
一种基于分组分域的移动应用指纹自动化提取方法及系统 Download PDFInfo
- Publication number
- CN112261645A CN112261645A CN202011112176.8A CN202011112176A CN112261645A CN 112261645 A CN112261645 A CN 112261645A CN 202011112176 A CN202011112176 A CN 202011112176A CN 112261645 A CN112261645 A CN 112261645A
- Authority
- CN
- China
- Prior art keywords
- domain
- field
- sample
- application
- fingerprint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于分组分域的移动应用指纹自动化提取方法及系统,属于网络安全技术领域。本发明系统包括数据预处理模块、流量分组模块、流量分域模块、指纹提取模块以及指纹提纯模块。本发明方法包括:对采集的HTTP流量解析提取HTTP流量样本;依据Host字段和path一级目录对流量样本进行簇划分;对每个簇内的流量样本进行负载分域;对每个簇提取候选指纹;对候选指纹进行停用词和随机值过滤获得应用指纹;对待识别样本提取数据块域形成指纹,基于应用指纹库计算相似度,识别所属应用。本发明可对输入的移动应用流量自动提取结构化的应用指纹,可自动化识别未知流量所属应用,解决现有技术中有效性差和覆盖率低的问题。
Description
技术领域
本发明属于网络安全技术领域,涉及指纹提取与识别技术,特别涉及一种基于分组分域的移动应用指纹自动化提取方法及系统。
背景技术
在大规模的互联网流量环境下,网络管理和安全任务面临着更高的速度、精度等方面的要求,尤其是对基于网络流量进行应用识别有着迫切需求。一方面,网络安全管理人员希望及时地了解流量来自于哪些应用,针对不同的应用合理分配管理资源,实现精细化的监管;另一方面,某些任务中可能需要对所关注的特定应用流量进行分析。而如何从海量的数据中分离出特定应用的流量或识别出特定的应用,成为了安全人员和研究人员关注的重点。涉及到的具体场景如网络流量识别系统、入侵检测与防御系统、网络安全事件监测、威胁情报分析系统等。
目前主流的应用识别技术是采用基于内容指纹(如字符串、正则表达式等)的方法进行识别,指纹提取与维护更新主要依赖人工分析。所述内容指纹是通过对目标应用的大量流量样本进行分析之后,从负载内容字面本身所归纳形成的能够用于标识该应用的指纹。然而,在实际工程任务的实践中,依靠人工分析提取应用指纹主要存在以下问题:
(1)指纹提取速度慢、效率低、扩展性差,人工靠肉眼分析应用的大量报文提取可能的指纹串,已难以应付当前的需求,同时随着应用数量的增长以及现有应用的不断更新,保持指纹库的同步更新也成为迫切的需求。
(2)提取的指纹质量严重依赖专家经验,不同人员提取出的指纹实际应用效果可能差别很大,影响识别效果。
(3)提取指纹的要求变高、难度加大。目前,无论在PC端还是移动端,产生的非加密流量主要是以HTTP(Hyper Text Transfer Protocol,超文本传输协议)协议为主,且受云服务和第三方服务等发展的影响,传统的基于IP地址、端口号、域名等方法已不再适用,必须对协议内容进行深入分析获取应用指纹。
目前随着Web技术、移动互联网技术的飞速发展,HTTP在各类应用业务中广泛应用,适用领域不断拓宽,且在承载不同应用时其流量中体现出的特性也不尽相同,应用指纹在HTTP流量中出现的位置并非完全固定,呈现较弱的规律性,必须对应用的HTTP流量进行全面分析,经综合研判后才能提取出有效的应用指纹。
发明内容
针对目前移动应用指纹提取和流量识别中,现有应用指纹提取方法存在有效性差和覆盖率低的问题,本发明公开了一种基于分组分域的移动应用指纹自动化提取方法及系统,通过流量划分、负载分域、指纹筛选以及指纹生成等多个阶段操作实现了指纹提取,并在基于相似度匹配的应用识别引擎上进行了指纹应用和评估。
本发明的一种基于分组分域的移动应用指纹提取系统,包括数据预处理模块、流量分组模块、流量分域模块、指纹提取模块以及指纹提纯模块。所述的数据预处理模块接收网络采集点捕获的移动应用网络流量,进行数据包解析和协议解析,抽取每一对HTTP请求包和响应包,组成HTTP流量样本。所述的流量分组模块对每个HTTP流量样本进行解析,获取Host字段和URL中的path一级目录部分,先依据Host字段的取值将HTTP流量样本划分为不同的组,再依据path一级目录将每组中的HTTP流量样本划分到不同的簇中。所述的流量分域模块对每个HTTP流量样本,依据HTTP报文格式的字段结构从HTTP流量样本中提取数据块域,每一个数据块域为键值对形式存储,键为数据块域名称,值为从域中提取的词集合,并统计每个词在样本中的词频;所提取的数据块域包括server_ip域、path域、query_key域、query_kv域、Host域、Cookie_key域、Cookie_kv域、User-Agent域、Header_key域以及Header_kv域。所述的指纹提取模块对每个簇内的所有HTTP流量样本的数据块域,采用topk关键词选择算法提取每一个域中的指纹,生成应用的候选指纹。所述的指纹提纯模块对候选指纹进行停用词和随机值过滤,获得最终的应用指纹。
本发明系统对已知应用标签的HTTP流量提取所属应用的指纹,存储在应用指纹库中;对待识别的HTTP流量,利用数据预处理模块提取每对HTTP请求包和响应包,生成待识别的HTTP流量样本,再利用流量分域模块对待识别的HTTP流量样本提取数据块域,所提取的数据块域生成待识别的HTTP流量样本的指纹Q,计算Q与应用指纹库中每个应用指纹的相似度,选取其中相似度最大的应用作为待识别的HTTP流量样本的所属应用。
相应地,本发明提供的一种基于分组分域的移动应用指纹提取方法,包括如下步骤:
步骤1,对采集的HTTP流量进行解析,将每一对HTTP请求包和响应包作为一个HTTP流量样本;在构建应用指纹库时,对已知应用标签的HTTP流量抽取HTTP流量样本;
步骤2,对每个HTTP流量样本进行解析,获取Host字段和URL中的path一级目录,先依据Host字段的取值将HTTP流量样本划分到不同的簇中,再依据path一级目录对每个簇中样本进一步划分到更小的簇中,为每个小簇设置标签为“域名+path一级目录名”;
步骤3,对步骤2分簇后的HTTP流量样本进行负载分域,具体是:对每个簇中的HTTP流量样本,依据HTTP报文格式的字段结构提取数据块域,数据块域包括server_ip域、path域、query_key域、query_kv域、Host域、Cookie_key域、Cookie_kv域、User-Agent域、Header_key域以及Header_kv域;对每个数据块域采用键值对形式存储,键为数据块域名称,值为对应域中提取的词集合,并统计每个词在样本中的词频;
步骤4,对每个簇内所有HTTP流量样本的各数据块域,采用topk关键词选择算法提取指纹,获得应用的候选指纹;
步骤5,对每个簇中提取的候选指纹进行停用词和随机值过滤,获得最终的应用指纹,存储在应用指纹库中;
步骤6,对待识别的HTTP流量,进行步骤1和3的处理,得到待识别的HTTP流量样本及各样本的数据块域,每个样本的数据块域形成该待识别的HTTP流量样本的指纹Q,计算Q与应用指纹库中每个应用指纹的相似度,选取其中相似度最大的应用作为待识别的HTTP流量样本的所属应用。
本发明公开的一种基于分组分域的移动应用指纹提取方法及系统,在基于相似度匹配的应用识别引擎上进行了指纹应用和评估,与现有技术相比,本发明具有如下优点:
(1)本发明方法及系统能够在无人工干预的条件下对输入的原始流量实现应用指纹的自动化提取,无需人工干预,可直接应用于相应的基于相似度匹配的应用识别系统中。
(2)本发明方法及系统所提取的指纹是一种结构化类型的指纹,与现有技术基于内容的指纹不同,包含了更为丰富的信息;
(3)本发明方法及系统所提取的指纹具有较高的精确率的同时也保持了较高的召回率,能快速准确地识别未知移动应用流量的所属应用的识别。
附图说明
图1是本发明的基于分组分域的移动应用指纹提取与识别方法的流程图;
图2是HTTP流量样本示意图;
图3是某一已知HTTP流量的应用指纹示例;
图4是本发明的基于分组分域的移动应用指纹自动化提取系统的框架图;
图5是本发明实验中基于相似度匹配的应用识别效果;(a)为平均指标(Avr)随TOPK%的变化情况,(b)为总体指标(Tot)随TOP K%的变化情况;
图6是本发明实验中TOP K%取70%时基于相似度匹配的每个应用识别情况示意图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
如图1所示,本发明提供的基于分组分域的移动应用指纹提取与识别方法主要有5个核心步骤:数据预处理、流量划分、负载分域、指纹提纯以及指纹提取。
步骤1,数据预处理:输入采集到的原始已知应用标签的HTTP流量,对其进行解析并保留请求行和响应行以及头部字段等结构化部分,去除请求报文与响应报文中的消息主体部分,将每一对HTTP请求/响应报文视为一个HTTP流量样本。
如图2所示,为一个HTTP流量样本,保留的结构化信息包括请求行、响应行、头部字段path、Host、Cookie等。
步骤2,流量划分:基于步骤1得到的HTTP流量样本,依据Host字段和URL(UniformResource Locator,统一资源定位符)中的目录Path部分进行样本分组。首先根据Host字段取值进行划分,即将具有相同Host取值的样本划至一个簇中,部分样本可能存在没有Host字段或者Host取值为空的情况,为保证数据完整性,统一将此类样本的Host字段取值置为“None”。然后,在Host划分结果的基础上,对每一个簇中流量样本进一步根据path的一级目录划分,形成更为小的簇,每一个小簇的标签即为“域名+path一级目录名”。这是由于同一个Host簇中样本的path中通常还具有不同的目录结构,并且不同的一级目录可能代表了不同的业务资源访问。
步骤3,负载分域:基于步骤2获得的流量样本簇,根据HTTP协议报文格式的字段结构特点,对每一个簇中的样本负载进行分割处理,形成多个不同的数据块域,其中每一个数据块域采用键值对(key:value)的形式。键为数据块域名称,值为从域中提取的词集合。对每一个数据块域,首先进行关键词提取,再进行词向量化处理。词向量处理是指将每一个域内取值进行处理之后的结果视为一个“词”集合,并计算每个词在整个样本中的词频。对每个簇提取下面10个数据块域。
(1)server_ip域:来源于承载HTTP样本的TCP报文头部,标识了样本所属应用的服务端特性。此处仅考虑服务端IP地址,即在TCP协议中当源端口不为80或8080时出现的目的IP地址,或当目的端口不为80或8080时出现的源IP地址。server_ip是指服务端。
(2)path域:来源于样本中URI部分,具体为提取URI中的path部分,即图2中“?”之前部分,构成path域。通过对大量的path进行分析可以发现,部分应用流量中的path分布较为集中、稳定,每一个path可以当作一个特征直接来标识应用,同时,还有部分样本中的path部分存在大量可变值,如时间戳、年月日、文件名以及各类hash值或id值等,如直接使用此类path作为指纹,可以预见识别效果将会很差,因此,本发明对样本的path部分按分隔符“/”和“.”进行了分词处理,保留了所有目录和文件名信息,同时通过频次体现出不同词的主次。path是指目录。
(3)query_key域:来源于样本的URI部分,具体为提取URI中query部分,即图2“?”之后部分,以“&”符号分隔的(key,value)对,所有“key=value”格式中的key构成query_key域,体现了query部分的结构性特征。所提取的key组成query_key域的词集合。URI是指统一资源标识符,query是指查询,key表示键,value表示值。
(4)query_kv域:来源于样本的URI部分,具体为提取query中的(key,value)对结合在一起构成query_kv域,体现了query部分的值特征。kv是键值的缩写。
(5)Host域:来源于样本中的Host部分,体现样本所属应用的主机域名特征。考虑到Host部分与path部分在可变值的表现上类似,因此对域名也采用类似path域的分词方法处理,分隔符为“.”和“:”,采用“:”是因为某些样本的Host中可能附带端口号。Host表示主机,Host部分记录客户端指定自己想访问的WEB服务器的域名/IP地址和端口号。
(6)Cookie_key域:来源于样本头部字段中的类Cookie字段,如Cookie、Set-Cookie等名称中包含“Cookie”的字段,具体为提取类Cookie字段中所有“key=value”格式中的key构成Cookie_key域,如图2中以“;”分隔的(key,value)对,某些情况可能仅存在key,体现了类Cookie信息中的结构化特征。Cookie是缓存数据,指储存在用户本地终端上的数据。
(7)Cookie_kv域:来源于样本头部字段中的类Cookie字段,具体为提取类Cookie字段中所有“key=value”格式中的(key,value)对构成Cookie_kv域,体现了类Cookie信息部分的值特征。
(8)User-Agent域:来源于样本头部字段中的User-Agent字段,具体为将UA的内容以斜杠、空格、左右括号等符号分割构成User-Agent域,某些应用的User-Agent内会承载应用的强内容特征,如应用名称等。User-Agent是用户代理,User-Agent字段表示将创建请求的浏览器和用户代理名称等信息传达给服务器。
(9)Header_key域:来源于样本的其它头部字段名称,如“Server”、“X-Requested-With”、“Vary”等,体现了样本所属应用的HTTP协议报文头部结构特征。其他头部字段是指除去类Cookie字段、User-Agent字段剩余的样本头部字段,对这些字段名称进行词提取,获得Header_key域的词集合。Header是指头部。
(10)Header_kv域:来源于样本的其它头部字段及内容,体现了样本所属应用的头部字段的值特征。对这些头部字段名称以及字段内容进行词提取,获得Header_kv域的词集合。
步骤4,指纹提取:在步骤3所获得各流量样本的每个域的词向量的基础上,对每个簇内流量样本在每一个数据块域内筛选出topk的词,然后形成一个应用指纹。所述topk是一种选取关键词的方法,首先为每一个词赋予权重指标,再对所有的词按权重排序,并选中排名靠前k位置的词,此处权重即每个词的频次。关于topk的实现具体地以下两种策略:
(1)出现频次排名前k。实现简单,能大致提取出每个域内的有效指纹,但未考虑域内词的总数,灵活性较差。
(2)出现频次排名前k%。相对于策略(1),能考虑到域内词的总数的影响,但对于词总数较少的域,易出现提取不出指纹的情况。如词总数为1,若将k置为70,则提取的词数可能为0。
本发明在该步骤将上述两种方法结合,以策略(2)为主,取top k%的词,并保证至少取频次排名前5的词,以避免提取出空指纹的情况。
对每个HTTP流量样本经过步骤3处理后得到一个数据块域的词向量集合,本发明将一个小簇内的所有HTTP流量样本的数据块域的词向量集合进行步骤4的指纹提取,获得所对应的应用的多个候选指纹。
步骤5,指纹提纯:基于步骤4生成的候选指纹中仍然含有部分非应用指纹信息,或者特征性较弱的信息。因此,在此候选指纹的基础上,进一步通过采用停用词过滤和随机值过滤两种方法,对候选指纹进行提纯,提高指纹输出的质量。随机值如时间戳、hash(哈希)值等。
(1)停用词过滤。如下表1所示,按域列出了HTTP协议中的常见停用词,并可根据指纹提取的情况对停用词表进行不断的积累。根据停用词对候选指纹中的域中的词进行过滤。
表1 HTTP协议中的常见停用词
(2)随机值过滤。通过对大量样本中出现的随机值进行分析发现,其在词长度、熵值和特殊字符统计等方面与正常的应用指纹具有明显区别,因此可以依据相关指标设计规则,对指纹进行进一步提纯。记指纹库D中一个指纹为d,对d中每个域中的每个词s,考虑s的以下指标:
a)长度,记为ls。
b)信息熵,记为entropys,按如下公式计算:
其中,C(s)为构成s的字符集合,i为其中的每一个字符,vi为字符出现的频次。
c)十六进制字母字符个数(字母A至F、a至f),记为hexs。
d)数字字符个数,记为digits。
结合以上指标,可针对指纹中常见的包含随机值的词分别制定规则进行过滤,如下:
a)日期时间戳。一般是连续的8位以上的数字,或数字字符在词中占比较大,如“1575528763”、“ct=1575336197.355”、“zp_4344_11_0_20181027150325”、“Wed,11Dec201914:26:46GMT”和“2019-11-05T12:33:13.553263948+08:00 21”等。
b)各类哈希值或加密值。一般为连续10位以上的十六进制字符,或十六进制字符在词中占比较大,如“27f56a5f4888385963042b297f1315e6”,或是各类数字、大小写字母字符,且长度较长,如“ENluEtFBHRicicIrnUPg2KYD...”。
c)id值。一般为连续10位以上数字,或是数字字符占比较大,如“725094182-250528-838172576982612”。
上述的各类随机值均具有熵值较大的特点,但不同类型的具体特征存在差异,为此可结合上述特点,制定相应的规则进行过滤,如下表2所示,在实际的指纹提取工作中,还可根据具体情况对规则进行增加或删改。
表2随机值过滤规则
表2中,对候选指纹中的域中的每个词进行随机值过滤,如第一条规则,当词s的digits=8且digits/ls=0.7且entropys>2时,表示词s为时间戳,需要过滤掉。
需要注意的是,部分字段的值为非数字字母,可能采用URL编码,如汉字,整体上也会体现一定的随机性,易被上述规则处理并过滤,但本发明认为此类值在解码后很可能不是真正意义上的随机值,反而还会体现一定的特征性,因此应当予以保留。为此可统计值中百分号“%”的个数,对此类URL编码的值进行区分,防止过滤掉真正的指纹。
经上述方面处理后,生成的规则结果将更为有效,极大减少了人工干预、筛选、清洗的时间,某些规则或可直接应用于基于字符串匹配的识别引擎中。
步骤6,指纹匹配:基于步骤5所提取的指纹库,通过基于相似度的方法进行指纹匹配以识别其所属应用。如图3所示,为提取的一个应用指纹。具体地,首先对待识别的HTTP流量,按照步骤1和步骤3同样的方法进行处理,注意不对其进行步骤2和步骤4的处理,得到未知HTTP流量样本及对应的待识别指纹Q。每个未知HTTP流量样本提取的数据块域组成样本的待识别指纹Q是然后对每一个待识别样本Q,按域分别计算其与应用指纹库中每一个应用指纹d的相似度,然后进行加权求和,形成最终的样本Q与应用指纹d的相似度Score(Q,d)。计算公式如下:
其中,Q为待识别样本,d为指纹库中的一个应用指纹,dl为Q的长度,avgdl为应用指纹库中所有指纹地平均长度,F为指纹的域集合,j为Host、path、query_key等域,(qi,fi)为每一个域内的词qi以及该词在域内出现的频次fi,参数k1取1.5,参数b取0.75。IDF为逆文本频率指数,体现了词的重要程度,按如下公式计算:
N为应用指纹库中指纹的个数,n(qi)为包含qi的指纹个数,对于IDF值为负数的qi,将其IDF置为0,或进一步作为停用词去除。上述公式中的wj为每一个域的权重,体现了在指纹匹配过程中每个域重要程度,分配情况如下表3所示。
表3指纹匹配中各域的权重分配
对待识别样本Q计算其与应用指纹库中每个指纹的相似度,选取相似度最大的应用作为待识别样本Q的所属应用。
结合上述基于分组分域的移动应用指纹提取方法,本发明同时公开了一种基于分组分域的移动应用指纹自动化提取系统,主要包括数据预处理模块、流量分组模块、流量分域模块、指纹提取模块、以及指纹提纯模块五部分,其系统框架如图4所示。具体模块详细阐述如下:
(1)数据预处理模块:以网络采集点所捕获的PCAP(过程特性分析软件包)格式的移动应用网络流量作为原始输入,对其进行数据包解析和协议解析,抽取大量由HTTP请求包和响应包组成的HTTP请求响应对,每个HTTP请求响应对即一个HTTP流量样本。
(2)流量分组模块:以数据预处理模块所输出的HTTP请求响应对作为输入,解析出HTTP请求/响应报文中的Host字段取值信息和URI中的Path一级目录部分取值信息,依据这两个信息HTTP请求响应对进行分组。具体依据Host字段与path一级目录对HTTP请求响应对进行分组的实现在上面步骤2中说明。
(3)流量分域模块:以流量分组模块所构建多个流量簇作为输入,对每一个簇中的每一个HTTP请求响应对进行分域,即依据上面步骤3中的负载分域方法形成10个域,并对每个域进行词向量处理。
(4)指纹提取模块:以流量分域模块所输出的经过分域处理之后的多个流量簇作为输入,在每一个簇中采用topk关键词选择算法提取每一个域中的指纹,具体提取如上面步骤4。
(5)指纹提纯模块:以流量提取模块所生成的指纹作为输入,采用停用词过滤和随机值过滤两种策略进行指纹噪声冗余去除,如上面步骤5所述,最终生成可用于应用识别的应用指纹。
利用本发明的移动应用指纹自动化提取系统对已知应用标签的HTTP流量提取所属应用的指纹,存储在应用指纹库中;对待识别的HTTP流量,利用数据预处理模块提取每对HTTP请求包和响应包,生成待识别的HTTP流量样本,再利用流量分域模块对待识别的HTTP流量样本提取数据块域,所提取的数据块域生成待识别的HTTP流量样本的指纹Q,计算Q与应用指纹库中每个应用指纹的相似度,选取其中相似度最大的应用作为待识别的HTTP流量样本的所属应用。
为证明本发明方法及系统的有效性,本发明通过采集真实流量数据进行了实验验证。数据集的构建和实验结果的评估内容如下:
(1)数据集的构建和标注:基于Android模拟器环境,利用Android SDK中的Android调试桥adb工具与抓包tcpdump工具,以手工为主结合自动的方式模拟产生并采集了44款主流应用的流量,再利用基于Python的开源工具Httpcap对采集的应用数据进行预处理,将每一个HTTP请求响应对视为一个样本,所有样本总量共计46661个。
(2)实验评估方法以及指标:在实验评估中,本发明将每一个流量样本的识别视为二分类问题,对每一个测试样本利用相似度算法计算其与指纹库中每一个指纹的相似度,将相似度最高的指纹所属的应用作为识别结果。对所有测试样本进行识别后,将获得每个应用appi的TPi、TNi、FPi、FNi值,其意义如下:
a)TPi,样本所属应用为appi,识别结果也为appi的个数。
b)TNi,样本所属应用不为appi,识别结果不为appi的个数。
c)FPi,样本所属应用不为appi,但识别结果为appi的个数。
d)FNi,样本所属应用为appi,但识别结果不为appi的个数。
基于上述每个应用的TPi、TNi、FPi、FNi值,可以计算每个应用的精确率(precision)、准确率(accuracy)和召回率(recall)。
进一步地,可以计算出总体精确率(TotPre)、总体准确率(TotAcc)、总体召回率(TotRec)三个总体指标,以及平均精确率(AvrPre)、平均准确率(AvrAcc)、平均召回率(AvrRec)三个平均指标,具体计算公式如下,下述公式中A表示应用类别全集,|A|为应用的总个数。
(3)实验评估结果:对采集到的原始HTTP流量样本数据以3:2的比例进行提取指纹与识别验证,其中基于相似度的指纹匹配的结果如图5所示。从图5可以看出,无论是总体指标(Tot)还是平均指标(Avr)都随着top k的增长而增长,当k取70及更大时,识别效果趋于稳定,因此可以将k设置为70,k设置更高将消耗更多计算资源且识别效果没有显著性的变化。本发明设置top k%为70%时,平均召回率在93%以上,每个应用的具体识别情况如图6所示。从图6可以看出,采用本发明移动应用指纹提取系统与方法,进行移动应用流量所属应用的识别,可以取得很好的识别效果。
Claims (10)
1.一种基于分组分域的移动应用指纹自动化提取系统,其特征在于,包括数据预处理模块、流量分组模块、流量分域模块、指纹提取模块以及指纹提纯模块;
所述的数据预处理模块接收网络采集点捕获的移动应用网络流量,进行数据包解析和协议解析,抽取每一对HTTP请求包和响应包,组成HTTP流量样本;
所述的流量分组模块对每个HTTP流量样本进行解析,获取Host字段和URL中的path一级目录部分,先依据Host字段的取值将HTTP流量样本划分为不同的组,再依据path一级目录将每组中的HTTP流量样本划分到不同的簇中;
所述的流量分域模块对每个HTTP流量样本,依据HTTP报文格式的字段结构从HTTP流量样本中提取数据块域,每一个数据块域为键值对形式存储,键为数据块域名称,值为从域中提取的词集合,并统计每个词在样本中的词频;所提取的数据块域包括server_ip域、path域、query_key域、query_kv域、Host域、Cookie_key域、Cookie_kv域、User-Agent域、Header_key域以及Header_kv域;
所述的指纹提取模块对每个簇内的所有HTTP流量样本的数据块域,采用topk关键词选择算法提取每一个域中的指纹,生成应用的候选指纹;
所述的指纹提纯模块对候选指纹进行停用词和随机值过滤,获得最终的应用指纹;
所述的系统对已知应用标签的HTTP流量提取所属应用的指纹,存储在应用指纹库中;对待识别的HTTP流量,利用数据预处理模块提取每对HTTP请求包和响应包,生成待识别的HTTP流量样本,再利用流量分域模块对待识别的HTTP流量样本提取数据块域,所提取的数据块域生成待识别的HTTP流量样本的指纹Q,计算Q与应用指纹库中每个应用指纹的相似度,选取其中相似度最大的应用作为待识别的HTTP流量样本的所属应用;
其中,HTTP表示超文本传输协议,URL表示统一资源定位符。
2.根据权利要求1所述的系统,其特征在于,所述的流量分域模块所提取的数据块域,从域中提取词集合,具体是:
server_ip域,来源于承载HTTP流量样本的TCP报文头部,标识了样本所属应用的服务端特性;
path域,提取URI中的path部分,对path部分按分隔符“/”和“.”进行分词处理,构成path域的词集合;
query_key域,提取URI中query部分,query部分中所有“key=value”格式中的key,构成query_key域的词集合;
query_kv域:提取URI中query部分,query部分中的所有(key,value)对,构成query_kv域的词集合;
Host域,来源于样本中的Host部分,体现样本所属应用的主机域名特征,对Host部分依据分隔符“.”和“:”进行分词处理,构成Host域的词集合;
Cookie_key域,提取样本头部字段中类Cookie字段中所有“key=value”格式中的key,构成Cookie_key域的词集合;
Cookie_kv域,提取样本头部字段中的类Cookie字段中所有“key=value”格式中的(key,value)对,构成Cookie_kv域的词集合;
User-Agent域,对样本头部字段中的User-Agent字段内容,以标点符合包括斜杠、空格、左右括号进行分割,构成User-Agent域的词集合;
Header_key域,对样本中剩余的头部字段名称提取,构成Header_key域的词集合,用于体现样本所属应用的HTTP协议报文头部结构特征;
Header_kv域,对样本中剩余的头部字段名称与字段内容提取词,构成Header_kv域的词集合。
3.一种基于分组分域的移动应用指纹自动化提取方法,其特征在于,包括如下步骤:
步骤1,对采集的HTTP流量进行解析,将每一对HTTP请求包和响应包作为一个HTTP流量样本;在构建应用指纹库时,对已知应用标签的HTTP流量抽取HTTP流量样本;
步骤2,对每个HTTP流量样本进行解析,获取Host字段和URL中的path一级目录,先依据Host字段的取值将HTTP流量样本划分到不同的簇中,再依据path一级目录对每个簇中样本进一步划分到更小的簇中,为每个小簇设置标签为“域名+path一级目录名”;
步骤3,对步骤2分簇后的HTTP流量样本进行负载分域,具体是:对每个簇中的HTTP流量样本,依据HTTP报文格式的字段结构提取数据块域,数据块域包括server_ip域、path域、query_key域、query_kv域、Host域、Cookie_key域、Cookie_kv域、User-Agent域、Header_key域以及Header_kv域;对每个数据块域采用键值对形式存储,键为数据块域名称,值为对应域中提取的词集合,并统计每个词在样本中的词频;
步骤4,对每个簇内所有HTTP流量样本的各数据块域,采用topk关键词选择算法提取指纹,获得应用的候选指纹;
步骤5,对每个簇中提取的候选指纹进行停用词和随机值过滤,获得最终的应用指纹,存储在应用指纹库中;
步骤6,对待识别的HTTP流量,进行步骤1和3的处理,得到待识别的HTTP流量样本及各样本的数据块域,每个样本的数据块域形成该待识别的HTTP流量样本的指纹Q,计算Q与应用指纹库中每个应用指纹的相似度,选取其中相似度最大的应用作为待识别的HTTP流量样本的所属应用。
4.根据权利要求3所述的方法,其特征在于,所述的步骤1中,对HTTP请求包和响应包中的消息主体部分去除,保留结构化部分,包括请求行和响应行以及头部字段。
5.根据权利要求3所述的方法,其特征在于,所述的步骤2中,在依据Host字段的取值分簇时,若样本中没有Host字段或者Host取值为空,则统一将样本的Host字段取值置为None。
6.根据权利要求3所述的方法,其特征在于,所述的步骤3中,10个数据块域如下:
server_ip域,来源于承载HTTP流量样本的TCP报文头部,标识了样本所属应用的服务端特性;
path域,提取URI中的path部分,对path部分按分隔符“/”和“.”进行分词处理,构成path域的词集合;
query_key域,提取URI中query部分,query部分中所有“key=value”格式中的key,构成query_key域的词集合;
query_kv域:提取URI中query部分,query部分中的所有(key,value)对,构成query_kv域的词集合;
Host域,来源于样本中的Host部分,体现样本所属应用的主机域名特征,对Host部分依据分隔符“.”和“:”进行分词处理,构成Host域的词集合;
Cookie_key域,提取样本头部字段中类Cookie字段中所有“key=value”格式中的key,构成Cookie_key域的词集合;
Cookie_kv域,提取样本头部字段中的类Cookie字段中所有“key=value”格式中的(key,value)对,构成Cookie_kv域的词集合;
User-Agent域,对样本头部字段中的User-Agent字段内容,以标点符合包括斜杠、空格、左右括号进行分割,构成User-Agent域的词集合;
Header_key域,对样本中剩余的头部字段名称提取,构成Header_key域的词集合,用于体现样本所属应用的HTTP协议报文头部结构特征;
Header_kv域,对样本中剩余的头部字段名称与字段内容提取词,构成Header_kv域的词集合。
7.根据权利要求3所述的方法,其特征在于,所述的步骤4中,根据词频采用topk关键词选择算法对每个数据块域内的词进行提取,提取词频排名前k%的词,并且提取至少词频排名前5的词。
8.根据权利要求3所述的方法,其特征在于,所述的步骤5中,对候选指纹进行随机值过滤时,根据词长度、熵值和特殊字符统计方面设计过滤规则,包括:
对指纹d中每个域中的每个词s,计算s的长度ls,信息熵entropys,十六进制字母字符个数hexs,数字字符个数digits;
规则1:用于过滤时间戳,表示为digits=8且digits/ls=0.7且entropys>2;
规则2:用于过滤哈希值,表示为(hexs+digits)/ls≥0.8且ls≥10且entropys>3;
规则3:用于过滤时间戳或id值,表示为digits≥30且entropys≥2.5;
规则4:用于过滤哈希值,表示为ls≥40且entropys≥4;
规则5:用于过滤超长值,表示为ls>60;
规则6:用于过滤随机值,表示为entropys>4.5。
9.根据权利要求3或8所述的方法,其特征在于,所述的步骤5中,在进行过滤时,保留URL编码的非数字字母。
10.根据权利要求3所述的方法,其特征在于,所述的步骤6中,对指纹Q,按域分别计算其与应用指纹库中每一个应用指纹d的相似度,然后进行加权求和,形成Q与应用指纹d的相似度;对数据块域:path域、query_key域、query_kv域、Host域、Cookie_key域、Cookie_kv域、User-Agent域、Header_key域以及Header_kv域,权重依次设置为:3、2、3、3、2、3、1、2以及3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011112176.8A CN112261645B (zh) | 2020-10-16 | 2020-10-16 | 一种基于分组分域的移动应用指纹自动化提取方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011112176.8A CN112261645B (zh) | 2020-10-16 | 2020-10-16 | 一种基于分组分域的移动应用指纹自动化提取方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112261645A true CN112261645A (zh) | 2021-01-22 |
CN112261645B CN112261645B (zh) | 2022-09-09 |
Family
ID=74245082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011112176.8A Active CN112261645B (zh) | 2020-10-16 | 2020-10-16 | 一种基于分组分域的移动应用指纹自动化提取方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112261645B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989315A (zh) * | 2021-02-03 | 2021-06-18 | 杭州安恒信息安全技术有限公司 | 物联网终端的指纹生成方法、装置、设备和可读存储介质 |
CN114143301A (zh) * | 2021-12-07 | 2022-03-04 | 中国人民解放军国防科技大学 | 一种移动流量应用识别特征提取方法及系统 |
CN114492376A (zh) * | 2021-12-27 | 2022-05-13 | 奇安信科技集团股份有限公司 | 应用指纹的检测方法、装置和电子设备 |
CN114915566A (zh) * | 2021-01-28 | 2022-08-16 | 腾讯科技(深圳)有限公司 | 应用识别方法、装置、设备及计算机可读存储介质 |
CN115941555A (zh) * | 2022-05-09 | 2023-04-07 | 国家计算机网络与信息安全管理中心 | 一种基于流量指纹的app个人信息收集行为检测方法及系统 |
CN117312707A (zh) * | 2023-09-05 | 2023-12-29 | 东南大学 | 一种基于动静特征结合的网站指纹生成方法 |
CN114492376B (zh) * | 2021-12-27 | 2024-06-28 | 奇安信科技集团股份有限公司 | 应用指纹的检测方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108833437A (zh) * | 2018-07-05 | 2018-11-16 | 成都康乔电子有限责任公司 | 一种基于流量指纹和通信特征匹配的apt检测方法 |
CN109600317A (zh) * | 2018-11-25 | 2019-04-09 | 北京亚鸿世纪科技发展有限公司 | 一种自动识别流量并提取应用规则的方法及装置 |
CN109617762A (zh) * | 2018-12-14 | 2019-04-12 | 南京财经大学 | 一种利用网络流量识别移动应用的方法 |
US10263868B1 (en) * | 2012-04-11 | 2019-04-16 | Narus, Inc. | User-specific policy enforcement based on network traffic fingerprinting |
-
2020
- 2020-10-16 CN CN202011112176.8A patent/CN112261645B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10263868B1 (en) * | 2012-04-11 | 2019-04-16 | Narus, Inc. | User-specific policy enforcement based on network traffic fingerprinting |
CN108833437A (zh) * | 2018-07-05 | 2018-11-16 | 成都康乔电子有限责任公司 | 一种基于流量指纹和通信特征匹配的apt检测方法 |
CN109600317A (zh) * | 2018-11-25 | 2019-04-09 | 北京亚鸿世纪科技发展有限公司 | 一种自动识别流量并提取应用规则的方法及装置 |
CN109617762A (zh) * | 2018-12-14 | 2019-04-12 | 南京财经大学 | 一种利用网络流量识别移动应用的方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915566A (zh) * | 2021-01-28 | 2022-08-16 | 腾讯科技(深圳)有限公司 | 应用识别方法、装置、设备及计算机可读存储介质 |
CN114915566B (zh) * | 2021-01-28 | 2024-05-17 | 腾讯科技(深圳)有限公司 | 应用识别方法、装置、设备及计算机可读存储介质 |
CN112989315A (zh) * | 2021-02-03 | 2021-06-18 | 杭州安恒信息安全技术有限公司 | 物联网终端的指纹生成方法、装置、设备和可读存储介质 |
CN114143301A (zh) * | 2021-12-07 | 2022-03-04 | 中国人民解放军国防科技大学 | 一种移动流量应用识别特征提取方法及系统 |
CN114143301B (zh) * | 2021-12-07 | 2024-04-19 | 中国人民解放军国防科技大学 | 一种移动流量应用识别特征提取方法及系统 |
CN114492376A (zh) * | 2021-12-27 | 2022-05-13 | 奇安信科技集团股份有限公司 | 应用指纹的检测方法、装置和电子设备 |
CN114492376B (zh) * | 2021-12-27 | 2024-06-28 | 奇安信科技集团股份有限公司 | 应用指纹的检测方法、装置和电子设备 |
CN115941555A (zh) * | 2022-05-09 | 2023-04-07 | 国家计算机网络与信息安全管理中心 | 一种基于流量指纹的app个人信息收集行为检测方法及系统 |
CN115941555B (zh) * | 2022-05-09 | 2024-05-28 | 国家计算机网络与信息安全管理中心 | 一种基于流量指纹的app个人信息收集行为检测方法及系统 |
CN117312707A (zh) * | 2023-09-05 | 2023-12-29 | 东南大学 | 一种基于动静特征结合的网站指纹生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112261645B (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112261645B (zh) | 一种基于分组分域的移动应用指纹自动化提取方法及系统 | |
Lichodzijewski et al. | Host-based intrusion detection using self-organizing maps | |
JP5496896B2 (ja) | ログデータ内の関連するイベントを検索する方法 | |
US11122058B2 (en) | System and method for the automated detection and prediction of online threats | |
CN109582551A (zh) | 日志数据解析方法、装置、计算机设备和存储介质 | |
CN105447081A (zh) | 面向云平台的一种政务舆情监控方法 | |
CN111177360B (zh) | 一种基于云上用户日志的自适应过滤方法及装置 | |
Zhang et al. | Toward unsupervised protocol feature word extraction | |
CN112256880A (zh) | 文本识别方法和装置、存储介质及电子设备 | |
Sujatha | Improved user navigation pattern prediction technique from web log data | |
Tang et al. | Low-rate dos attack detection based on two-step cluster analysis | |
Tang et al. | HSLF: HTTP header sequence based lsh fingerprints for application traffic classification | |
CN112822121A (zh) | 流量识别方法、流量确定方法、知识图谱建立方法 | |
Kumar et al. | Progressive machine learning approach with WebAstro for Web usage mining | |
CN110290188A (zh) | 一种适用于大规模网络环境的https流服务在线标识方法 | |
CN112003884A (zh) | 一种网络资产的采集和自然语言检索方法 | |
Bhakdisuparit et al. | Understanding and clustering hashtags according to their word distributions | |
CN114328818A (zh) | 文本语料处理方法、装置、存储介质及电子设备 | |
CN111611483A (zh) | 一种对象画像构建方法、装置、设备及存储介质 | |
CN111611508A (zh) | 一种用户实际访问网址的识别方法及装置 | |
Van et al. | Identification of paths and parameters in RESTful URLs for the detection of web Attacks | |
Kayacik et al. | Generating representative traffic for intrusion detection system benchmarking | |
CN117201194B (zh) | 一种基于字符串相似性计算的url分类方法、装置及系统 | |
Kearney | Conservatives and Twitter Bots | |
Tang et al. | STAFF: Automated Signature Generation for Fine-Grained Function Traffic Identification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |