一种基于中间人代理的API加密流量采集与标注方法技术

技术编号:38765472 阅读:16 留言:0更新日期:2023-09-10 10:38
本发明专利技术公开了一种基于中间人代理的API加密流量采集与标注方法,属于网络流量数据采集技术领域。本发明专利技术采用中间人代理客户端检测应用终端的应用的所有网络访问请求,对所关注的流量进行解析,提取其中的url链接,参数等信息形成API接口文档;利用目标应用进程,目标应用进程号以及API流量源端口三者之间的映射实现加密网络流与具体应用的匹配,从而达到对API加密流量标注的目的,并生成对应的日志文档。本发明专利技术基于客户端

【技术实现步骤摘要】
一种基于中间人代理的API加密流量采集与标注方法


[0001]本专利技术属于网络流量数据采集
,具体属于一种基于中间人代理的API加密流量采集与标注方法。

技术介绍

[0002]随着互联网的飞速发展,各种应用占据了人们的生活,包括web应用,移动应用和PC应用等。人们使用这些应用浏览网页获取知识,网上购物以及与朋友聊天等。但随之也引发了安全方面的担忧,即是否可以通过对流量的研究来获取用户访问的隐私等,特别是目标应用与服务器API(Application Program Interface)之间的通信流量。尽管目前大多数应用都对流量进行了加密,但加密流量并不能完全掩盖流量背后的用户行为特征以及应用的流量特征等,而要展开对应用网络流量的分析和研究,首先需要面对的就是如何大规模的采集应用API加密流量数据,并对其进行针对性的标注,因此“API加密流量采集与标注系统”能够很好的满足这些需求。
[0003]现有的主流应用流量采集手段是被动流量采集,被动流量采集大多使用网络服务提供商的骨干网络节点,或者是其他某些属于特定组织团队的对公众提供网络接入服务的网络接口。通过在这些关键网络节点能够大规模地捕获web流量数据,但是却无法提供关于这些流量的具体信息,特别是流量源于哪一个API接口,对于流量研究提供的帮助是有限的。
[0004]现有的主流应用流量标注手段主要是使用DPI(Deep Packet Inspection,深度包检测)技术实现的,即利用已有的DPI工具对采集到的数据包进行解析,获取其中带有明显分类特征的字段来对流量进行分类。但此类方法主要针对未加密的HTTP流量,对采用加密算法的HTTPs流量效果不佳,因为无法对加密的数据包进行解析。同时,此类方法很难做到完全准确,甚至对未知web应用类型的陌生流量是完全不适用的。
[0005]现有的采集技术主要是在骨干网络节点上进行大规模采集,无法对流量数据的影响因素进行细化进而实现自定义环境参数,其采集到的流量数据通常受到未知的请求参数影响因子干扰,导致流量数据统计分布单一或波动明显,严重影响到之后的研究工作,因此传统的技术不再适用于HTTPS流量的标注。

技术实现思路

[0006]本专利技术的目的在于提供一种基于中间人代理的API加密流量采集与标注方法,以解决现有的流量采集与标注方法无法提供加密API流量具体参数信息或者信息不完整,导致加密流量标注不精确,适用范围小的技术问题。
[0007]为了达到上述目的,本专利技术采用如下技术方案:
[0008]一种基于中间人代理的API加密流量采集与标注方法,在包括云服务器和设置有中间代理客户端的应用终端的系统中,执行下列步骤:
[0009]中间人代理客户端检测和拦截应用终端的应用程序向应用服务器(如网页服务
器)发送的网络访问请求(采用用户真实参数),解析网络访问请求生成对应的API接口文档,所述API接口文档包含目标应用服务器不同API的网络请求链接和请求参数;中间人代理客户端根据应用终端的真实流量信息在其参数可变范围内生成模拟网络访问请求,并伪装应用程序与应用服务器建立连接并通信,将应用服务器返回的内容发送给对应的应用程序,同时记录并存储通信日志文件和API接口文档,并将通信日志文件和API接口文档上传至云服务器;
[0010]所述云服务器对每一个API接口文档生成对应的脚本代码,从接口参数字典中随机选择参数并替换掉每一个API接口文档的参数,批量生成仿真网络访问请求并发送至应用服务器,即云服务器根据所述API接口文档以及参数字典生成大批量对应API的通信流量;向应用服务器发送仿真网络访问请求时,云服务器采集同一API接口生成的加密通信流量和通信私钥,且采集加密通信流量时生成流量日志文件以用于流量标记,记录采集的通信私钥用于对加密通信流量的解密。
[0011]进一步的,所述API接口文档中的请求参数包括:每次握手使用的加密算法及密钥信息。
[0012]进一步的,应用终端的应用程序包含用户偏好设置与cookie缓存(为了辨别用户身份,进行会话跟踪而储存在用户本地终端上的数据),并能够访问不同的web应用。
[0013]进一步的,所述中间人代理客户端解析网络访问请求并生成对应的API接口文档并存储具体包括:
[0014]对网络访问请求中流量协议类型进行筛选和过滤,保留http和https协议流量;
[0015]按照对应的协议格式对网络访问请求的网络数据包进行解析,提取出其中的url链接和参数字段,并以xml的文件格式进行存储。
[0016]进一步的,所述中间人代理客户端通过读取应用终端的操作系统中的进程ID(PID)来获取当前应用程序所对应的进程,通过进程源端口号来获取当前应用程序对应的流量。即本专利技术通过操作系统的包管理应用程序接口将所述PID映射到具体的系统应用,得到所述流量与所述应用之间的映射关系。即标注方式为从应用、进程、源端口到API流量的细粒度对应关系。
[0017]进一步的,所述中间人代理客户端包含API请求定位拦截模块、API请求转发模块和API请求参数记录模块;
[0018]其中,API请求定位拦截模块用于检测和拦截应用程序向应用页服务器发送的网络访问请求,解析网络访问请求生成对应的API接口文档;
[0019]API请求转发模块用于生成模拟网络访问请求,伪装应用程序与应用服务器建立连接并通信,将网页服务器返回的内容发送给对应的应用程序;
[0020]API请求参数记录模块用于记录通信日志文件和API接口文档。
[0021]进一步的,所述云服务器部署于能够与应用服务器建立稳定连接的物理网络位置,包括发包器和流量采集器;
[0022]其中,发包器用于对每一个API接口文档生成对应的脚本代码,从接口参数字典中随机选择参数并替换掉每一个API接口文档的参数,批量生成仿真网络访问请求并发送至应用服务器;
[0023]流量采集器基于所预置的流量捕获工具(如tcpdump),监听和采集同一API接口生
成的加密通信流量和通信私钥。
[0024]进一步的,所述云服务器的发包器批量生成仿真网络访问请求并发送至应用服务器具体为:
[0025]根据API接口文档和预置的参数字典批量生成对应API的通信流量
[0026]对API接口文档进行解析,读取其中的URL链接和请求参数,同时加载云服务器上的参数字典,对相关请求参数进行替换,生成对应的python代码,执行python代码以生成仿真网络访问请求并发送至应用服务器。
[0027]进一步的,所述流量采集器对采集的加密通信流量按照指定的加密通信流量进行存储。
[0028]进一步的,所述流量存储格式为:一个网页应用的API请求与一个流量pcap记录相对应的格式。
[0029]进一步的,所述流量采集器基于中间人代理客户端上传的API日志文档中,对采集的加密通信流量进行标注的方式为:比较url链接。因本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于中间人代理的API加密流量采集与标注方法,其特征在于,在包括云服务器和设置有中间代理客户端的应用终端的系统中,执行下列步骤:中间人代理客户端检测和拦截应用终端的应用程序向应用服务器发送的网络访问请求,解析网络访问请求生成对应的API接口文档,所述API接口文档包含应用服务器不同API的网络请求链接和请求参数;中间人代理客户端根据应用终端的真实流量信息在其参数可变范围内生成模拟网络访问请求,并伪装应用程序与应用服务器建立连接并通信,将应用服务器返回的内容发送给对应的应用程序,同时记录并存储通信日志文件和API接口文档,并将通信日志文件和API接口文档上传至云服务器;所述云服务器对每一个API接口文档生成对应的脚本代码,从接口参数字典中随机选择参数并替换掉每一个API接口文档的参数,批量生成仿真网络访问请求并发送至应用服务器,向应用服务器发送仿真网络访问请求时,云服务器采集同一API接口生成的加密通信流量和通信私钥,且采集加密通信流量时生成流量日志文件以用于流量标记,记录采集的通信私钥用于对加密通信流量的解密。2.如权利要求1所述的方法,其特征在于,所述API接口文档中的请求参数包括:每次握手使用的加密算法及密钥信息。3.如权利要求1所述的方法,其特征在于,应用终端的应用程序包含用户偏好设置与cookie缓存,并能够访问不同的web应用。4.如权利要求1所述的方法,其特征在于,所述中间人代理客户端解析网络访问请求并生成对应的API接口文档并存储具体包括:对网络访问请求中流量协议类型进行筛选和过滤,保留http和https协议流量;按照对应的协议格式对网络访问请求的网络数据包进行解析,提取出其中的url链接和参数字段,并以xml的文件格式进行存储。5.如权利要求1所述的方法,其特征在于,所述中间人代理客户端通过读取应用终端的操作系统中的进程ID来获取当前应用程序所对应的进程,通过进程源端口号来获取当前应用程序对应的...

【专利技术属性】
技术研发人员:朱宇坤赵毅卓周玉祥宁延硕陈瑞东张小松
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1