本发明涉及机器学习与信息安全,尤其涉及一种基于决策树的app通信协议识别方法、装置及存储介质。
背景技术:
1、随着智能手机的不断更新和迭代,已有成千上万的用户成为智能手机的主人。据中国网络信息中心于2021年8月公布的《中国互联网络发展状况统计报告》显示,截至2021年6月,中国手机网民数量约为10.07亿。无论国外还是国内,智能手机越来越普及,在智能手机的操作系统中,安卓系统的使用比例在90%左右。从当前智能手机的使用频率之高来看,手机app通信协议的安全显得尤为重要。手机开发者需要考虑在用户使用过程中,能够有效保证用户的数据隐私不被泄露,确保这些关键性数据不会被其他非法分子所利用。
2、手机app客户端与服务器进行通信主要采用http协议和https协议,两者相比各有利弊,http协议更简单,访问效率更高,而https协议加入了ssl协议相对更安全,但传输速度相对较慢。开发者需要给用户建立一个安全的通信环境,在这里建议包含用户有关敏感信息的相关app在进行客户端与服务器端之间的网络数据通信的过程中采用https协议标准。然而,大多数的app仍然采用http协议或其他协议,这种不安全的通信的方式无疑给不法分子打开了一扇门,攻击者很轻易就可以掌握用户的隐私数据。由于使用app的用户数量之庞大,占用资源之多,很多用户会将隐私数据保存到app中,使得app能够很轻易就收集到用户隐私,造成了大量app用户隐私的安全隐患。同时使用https加密协议也不是绝对安全的,也可能出现一些安全隐患,比如rsa的安全隐患以及恶意流量攻击等。
3、而传统的网络协议识别方法已经不能满足当前对app通信加密协议的识别,当前有很多app已经采取了加密协议作为客户端app与服务器的通信方式,从简单的端口号已经无法识别到加密后的关键信息。因此,对app通信协议进行针对性的识别分类与研究,具有非常重要的研究意义与价值。
技术实现思路
1、为此,本发明实施例提供了一种基于决策树的app通信协议识别方法、装置及存储介质,用于解决现有技术中传统的检测技术已经不能满足对app通信加密协议的识别研究的问题。
2、为了解决上述问题,本发明实施例提供一种基于决策树的app通信协议识别方法,所述方法包括:
3、s1:构建app通信协议分析系统框架,对app通信协议分析系统初始化;
4、s2:基于app通信协议分析系统框架,获取app通信数据包;
5、s3:对app通信数据包进行预处理,将预处理后的数据按比例划分为训练集与测试集,并标准化训练集,构建app通信协议识别分类模型;
6、s4:基于app通信协议类别集和app通信协议特征集构建app通信加密协议识别模型;
7、s5:通过统计信息获取app通信协议特征值,从中选取关键的特征;
8、s6:通过孤立森林对数据集中的噪声数据进行处理;
9、s7:根据c5.0选择器设置合适的参数对数据集进行测试,实现对app通信加密协议的识别。
10、优选地,所述app通信协议分析系统框架具体包括:
11、所述app通信协议分析系统包括数据包捕获模块、通信协议分析模块、异常检测模块及查询统计模块;
12、所述数据包捕获模块用于通过网络抓包技术对安卓app在实际进行网络数据的传输过程中所使用的具体通信协议进行捕获,并将捕获得到的协议数据包传递给通信协议分析模块;所述通信协议分析模块用于选择合适的决策树算法对捕获到的数据进行建模、训练和测试;所述异常检测模块用于将通信协议分析模块的输出结果以表格的形式展现给用户;所述查询统计模块用于将数据包捕获模块捕获到的数据进行统计,并将其数据可视化。
13、优选地,所述对app通信协议分析系统初始化的方法具体包括:
14、首先,将app通信协议分析系统的工作模式分为离线分析模式与实时分析模;在离线分析模式中,app通信协议分析系统直接从本地数据库中读取所要查询的内容,再利用决策树模型对查询到的数据进行分析;
15、其次,在实时分析模式中,app通信协议分析系统根据必要的过滤规则对安卓app的数据包进行捕获,捕获到的数据首先要先进行数据的预处理;
16、然后,将处理好的数据传递给通信协议分析模块,将分析后的结果存储到后台数据库中,以便异常监测模块的调用与分析;
17、最后,与事先制定好的审计规则进行比对,若符合该审计规则将其做出一个警报标记,将此标记添加至数据库monitor表中。
18、优选地,所述对app通信数据包进行预处理,将预处理后的数据按比例划分为训练集与测试集,并标准化训练集的方法具体包括:
19、利用fit_transform()函数对app通信数据包中的数据进行预处理;
20、利用函数包中的train_test_split()函数将预处理后的数据按比例划分为训练集与测试集;
21、利用standardscaler()函数使得每个样本数据维度的特征数据均值为0,方差为1。
22、优选地,构建app通信协议分类模型的方法具体包括:
23、首先要利用decisiontreeclassifier()函数进行模型初始化,然后利用model_tree.fit()函数对训练集和测试集进行拟合,接着使用决策树对测试数据进行类别预测,以评价模型的准确性,最后将决策树模型可视化。
24、优选地,所述基于app通信协议类别集和app通信协议特征集构建app通信加密协议识别模型的方法具体包括:
25、s41:检查捕获到的数据是否是单项协议数据流,若捕获到数据是单项协议数据流,则执行步骤s42;否则结束捕获;
26、s42:通过whois方式解析加密协议;
27、s43:通过域名网站查询加密协议对应的app域名;
28、s44:定义app通信协议特征集;
29、s45:构建所有协议数据流中每项的特征集;
30、s46:使用app通信协议类别集和app通信协议特征集构建app通信加密协议识别模型。
31、优选地,所述定义app通信协议特征集具体包括:
32、单项协议数据流:将单项协议数据流定义为一个五元组,即{源ip地址,目的ip地址,所使用到的协议,源端口,目的端口};
33、app通信协议类别集:app在通信过程中的协议类别集包含了所有类别的app通信协议,用向量x={x1,x2,…,xi,…,xn}表示app通信协议类别集合,其中x1,x2,…,xi,…,xn表示app的具体通信协议类别;
34、app通信协议特征集:app通信协议特征集能够区分不同app通信协议类别,用向量y={y1,y2,…,yj,…,yn}表示,其中yj表示第j个通信协议特征属性;
35、app通信协议特征数据集:对捕获到的数据集进行预处理后,得到最终的app通信协议特征向量,用向量yi={yi1,yi2,…,yin}表示app通信协议特征数据集,其中yi1表示第i条app在app通信协议集中对应的第1条特征值;
36、app通信协议识别模型:将捕获到的数据集按照一定的比例对所有的app类别集进行划分,用于训练和测试,将所有的样本集描述为:
37、
38、其中m1表示第1条app通信数据包,y11表示第1条协议特征对应的具体值,x1表示第1条app通信协议所属类别。
39、优选地,所述通过统计信息获取通信协议特征值,从中选取关键的特征的方法具体包括:
40、首先采用协议数据流的统计信息作为app通信加密协议识别模型的分类特征,考虑的因素包括app通信数据包的到达时间、50%的分位数、突发值、最大值、最小值、平均值以及mad,以单项协议数据流作为特征提取的基本单位,每个协议数据流向量包括通信数据包长度、通信数据包的到达间隔时间,特征统计值主要包括16个特征值,其中百分位数计算5%到95%之间的值;
41、其次选用相对互信息对app通信协议类别特征进行考量,其值能够根据排名来辨别不同的特征。
42、本发明实施例还提供了一种电子装置,所述电子装置包括处理器、存储器和总线系统,所述处理器和存储器通过该总线系统相连,所述存储器用于存储指令,所述处理器用于执行存储器存储的指令,以实现上述所述的基于决策树的app通信协议识别方法。
43、本发明实施例还提供了一种计算机存储介质,所述计算机存储介质存储有计算机软件产品,所述计算机软件产品包括的若干指令,用以使得一台计算机设备执行上述所述的基于决策树的app通信协议识别方法。
44、从以上技术方案可以看出,本发明申请具有以下优点:
45、本发明实施例提供了一种基于决策树的app通信协议识别方法、装置及存储介质,针对传统的检测技术已经不能满足对app通信加密协议的识别研究,本发明提出了基于c5.0算法的app通信加密协议识别方法,主要针对加密协议进行分析,首先进行app通信加密协议识别模型的构建;然后通过统计信息获取app通信协议特征值,从中选取较为关键的特征进行实验;接下来需要通过孤立森林对数据集中的噪声数据进行处理,以提高模型的识别效率;最后根据c5.0选择器设置合适的参数对数据集进行测试,实现对app通信加密协议的识别。本发明方法对app通信加密协议的识别效果较好,提高了识别准确率与精确率。