CN113591085B - 安卓恶意应用检测方法、装置及设备 - Google Patents
安卓恶意应用检测方法、装置及设备 Download PDFInfo
- Publication number
- CN113591085B CN113591085B CN202110849300.7A CN202110849300A CN113591085B CN 113591085 B CN113591085 B CN 113591085B CN 202110849300 A CN202110849300 A CN 202110849300A CN 113591085 B CN113591085 B CN 113591085B
- Authority
- CN
- China
- Prior art keywords
- session
- preset
- data
- packets
- malicious
- 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000013145 classification model Methods 0.000 claims abstract description 42
- 238000004422 calculation algorithm Methods 0.000 claims description 32
- 238000004140 cleaning Methods 0.000 claims description 20
- 238000007637 random forest analysis Methods 0.000 claims description 14
- 238000003066 decision tree Methods 0.000 claims description 13
- 238000012549 training Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000008030 elimination Effects 0.000 claims description 5
- 238000003379 elimination reaction Methods 0.000 claims description 5
- 238000010801 machine learning Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 3
- 239000013589 supplement Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种安卓恶意应用检测方法、装置及设备,通过获取预设时长内终端设备中各安卓应用产生的网络流量数据包;将五元组信息一致且到达时间的间隔不超过第一预设时长的网络流量数据包汇总生成一个数据流,得到多个数据流;将二元组信息一致且时间间隔不超过第二预设时长的数据流汇总生成一个会话,得到多个会话,第二预设时长大于第一预设时长;确定并获取各会话的预设特征,并将各会话的预设特征输入预先训练好的目标分类模型中,以得到各会话的会话类别,会话类别包括恶意和良性;将会话类别为恶意的会话所属的安卓应用确定为恶意应用,克服了安卓恶意应用选择随机端口的情形,从而提高了安卓恶意应用的检测准确度。
Description
技术领域
本发明涉及应用安全技术领域,具体涉及一种安卓恶意应用检测方法、装置及设备。
背景技术
安卓操作系统是谷歌开发的基于Linux的开源操作系统,是当今移动智能终端中最受欢迎的操作系统。系统开源能吸引更多用户参与应用程序的开发,因此安卓应用的种类、数量也正在急速增长。其中,恶意应用的增长尤其迅猛,并且,恶意应用会泄露用户的个人隐私信息,给用户带来了严重损失。为了避免恶意应用对安卓用户的损害,一般需要对恶意应用进行检测。
目前,可以通过基于恶意应用流量特征分析的机器学习分类方法对恶意应用进行检测。恶意应用流量特征分析的机器学习分类方法是基于不同应用的不同流量行为特征进行流量识别的技术。这种方法往往是根据流量数据源网际互连协议(Internet Protocol,IP)地址、源端口、目的IP地址、目的端口和传输层协议类型组成的“五元组”将流量数据划分为数据流,再根据提取的流特征训练机器学习分类模型进行恶意应用检测。但实际中的一些恶意应用往往是采用端口随机技术,只从“五元组”数据流层面提取统计特征建立机器学习分类模型缺乏全面的、有效的检测效果,导致恶意应用检测的准确度较低。
发明内容
本发明实施例提供一种安卓恶意应用检测方法、装置及设备,用以提高安卓恶意应用的检测准确度。
根据第一方面,一种实施例中提供一种安卓恶意应用检测方法,其特征在于,包括:
获取预设时长内终端设备中各安卓应用产生的网络流量数据包;
将五元组信息一致且到达时间的间隔不超过第一预设时长的网络流量数据包汇总生成一个数据流,得到多个数据流,所述五元组信息包括源网际互连协议IP地址、源端口、目的IP地址、目的端口和传输层协议类型;
将二元组信息一致且时间间隔不超过第二预设时长的数据流汇总生成一个会话,得到多个会话,所述二元组信息包括源IP地址和目的IP地址,所述第二预设时长大于所述第一预设时长;
确定并获取各会话的预设特征,并将各会话的预设特征输入预先训练好的目标分类模型中,以得到各会话的会话类别,所述目标分类模型基于标注了会话类别的样本数据训练得到,所述会话类别包括恶意和良性;
将会话类别为恶意的会话所属的安卓应用确定为恶意应用。
可选的,在所述将五元组信息一致且到达时间的间隔不超过第一预设时长的网络流量数据包汇总生成一个数据流之前,所述方法还包括:
对所述网络流量数据包进行数据清洗;
所述对所述网络流量数据包进行数据清洗,包括:
删除五元组信息错误或者不完整的网络流量数据包;
删除传输控制协议TCP或者用户数据报协议UDP载荷为空的网络流量数据包。
可选的,所述预设特征通过以下方法确定:
获取多个样本会话;
提取各样本会话的会话特征,所述会话特征包括会话的统计特征,若会话的网络流量数据包中包括用于进行安全传输层协议TLS握手协商的数据包,则所述会话特征还包括会话的TLS特征;
将所述多个会话特征分别输入至多个预设特征选择模型中,对各会话特征进行打分排序,得到各预设特征选择模型对应的各会话特征的排序;
针对每个预设特征选择模型,对位于预设排名内的会话特征进行投票;
将投票总数位于所述预设排名内的会话特征确定为所述预设特征。
可选的,所述统计特征包括:会话中数据流数量、会话中数据包数量、会话中数据包总长度、会话中数据包到达间隔时间中数、会话连接持续时间、会话中前向包总数量、会话中前向包总长度、会话中后向包总数量、会话中后向包总长度、会话中每秒前向包数量、会话中每秒后向包数量、会话中每个前向包长度、会话中每个后向包长度、会话中每个流的长度、会话中每个流的数据包总量、会话中每个流的前向包数量、会话中每个流的后向包数量、会话中每个流的前向包长度和会话中每个流的后向包长度;所述TLS特征包括安全传输层协议TLS协议版本、TLS加密套件、TLS客户端指纹信息、TLS服务器指纹信息和TLS证书指纹信息。
可选的,所述预设特征选择模型包括:过滤式特征选择算法模型FisherScore、返回k个最佳特征算法模型SelectKBest、随机森林算法模型、基于直方图的决策树算法模型LightGBM和递归式特征消除算法模型。
可选的,所述目标分类模型包括:为以下一项:最邻近分类模型、决策树模型、随机森林算法模型、极端随机树模型、梯度下降树模型和极端梯度提升模型。
根据第二方面,一种实施例中提供一种安卓恶意应用检测装置,包括:
第一获取模块,用于获取预设时长内终端设备中各安卓应用产生的网络流量数据包;
第二获取模块,用于将五元组信息一致且到达时间的间隔不超过第一预设时长的网络流量数据包汇总生成一个数据流,得到多个数据流,所述五元组信息包括源网际互连协议IP地址、源端口、目的IP地址、目的端口和传输层协议类型;
第三获取模块,用于将二元组信息一致且时间间隔不超过第二预设时长的数据流汇总生成一个会话,得到多个会话,所述二元组信息包括源IP地址和目的IP地址,所述第二预设时长大于所述第一预设时长;
第四获取模块,用于确定并获取各会话的预设特征,并将各会话的预设特征输入预先训练好的目标分类模型中,以得到各会话的会话类别,所述目标分类模型基于标注了会话类别的样本数据训练得到,所述会话类别包括恶意和良性;
确定模块,用于将会话类别为恶意的会话所属的安卓应用确定为恶意应用。
可选的,所述装置还包括:
清洗模块,用于对所述网络流量数据包进行数据清洗;
所述清洗模块,具体用于删除五元组信息错误或者不完整的网络流量数据包;删除传输控制协议TCP或者用户数据报协议UDP载荷为空的网络流量数据包。
可选的,所述第四获取模块,具体用于获取多个样本会话;提取各样本会话的会话特征,所述会话特征包括会话的统计特征,若会话的网络流量数据包中包括用于进行安全传输层协议TLS握手协商的数据包,则所述会话特征还包括会话的TLS特征;将所述多个会话特征分别输入至多个预设特征选择模型中,对各会话特征进行打分排序,得到各预设特征选择模型对应的各会话特征的排序;针对每个预设特征选择模型,对位于预设排名内的会话特征进行投票;将投票总数位于所述预设排名内的会话特征确定为所述预设特征。
可选的,所述统计特征包括:会话中数据流数量、会话中数据包数量、会话中数据包总长度、会话中数据包到达间隔时间中数、会话连接持续时间、会话中前向包总数量、会话中前向包总长度、会话中后向包总数量、会话中后向包总长度、会话中每秒前向包数量、会话中每秒后向包数量、会话中每个前向包长度、会话中每个后向包长度、会话中每个流的长度、会话中每个流的数据包总量、会话中每个流的前向包数量、会话中每个流的后向包数量、会话中每个流的前向包长度和会话中每个流的后向包长度;所述TLS特征包括TLS协议版本、TLS加密套件、TLS客户端指纹信息、TLS服务器指纹信息和TLS证书指纹信息。
可选的,所述预设特征选择模型包括:过滤式特征选择算法模型FisherScore、返回k个最佳特征算法模型SelectKBest、随机森林算法模型、基于直方图的决策树算法模型LightGBM和递归式特征消除算法模型。
可选的,所述目标分类模型包括:最邻近分类模型、决策树模型、随机森林算法模型、极端随机树模型、梯度下降树模型和极端梯度提升模型。
根据第三方面,一种实施例中提供一种电子设备,包括:存储器,用于存储程序;处理器,用于通过执行所述存储器存储的程序以实现上述第一方面中任一项所述的安卓恶意应用检测方法。
根据第四方面,一种实施例中提供一种计算机可读存储介质,所述介质上存储有程序,所述程序能够被处理器执行以实现上述第一方面中任一项所述的安卓恶意应用检测方法。
本发明实施例提供一种安卓恶意应用检测方法、装置及设备,通过获取预设时长内终端设备中各安卓应用产生的网络流量数据包;将五元组信息一致且到达时间的间隔不超过第一预设时长的网络流量数据包汇总生成一个数据流,得到多个数据流,五元组信息包括源IP地址、源端口、目的IP地址、目的端口和传输层协议类型;将二元组信息一致且时间间隔不超过第二预设时长的数据流汇总生成一个会话,得到多个会话,二元组信息包括源IP地址和目的IP地址,第二预设时长大于第一预设时长;确定并获取各会话的预设特征,并将各会话的预设特征输入预先训练好的目标分类模型中,以得到各会话的会话类别,目标分类模型基于标注了会话类别的样本数据训练得到,会话类别包括恶意和良性;将会话类别为恶意的会话所属的安卓应用确定为恶意应用。与基于不同应用的不同流量行为特征进行流量识别的技术相比,本发明提供的方法在传统流特征分析的基础上引入会话特征,可以对传统“五元组”流的特征加以补充,克服了安卓恶意应用选择随机端口的情形,从而提高了安卓恶意应用的检测准确度。
附图说明
图1为本发明实施例提供的一种安卓恶意应用检测方法的实施例一的流程示意图;
图2为本发明实施例提供的一种安卓恶意应用检测方法的实施例二的流程示意图;
图3为本发明实施例提供的一种确定各会话的预设特征的流程示意图;
图4为本发明实施例提供的一种安卓恶意应用检测方法的实施例三的流程示意图;
图5为本发明实施例提供的一种清洗样本数据的流程示意图;
图6为本发明实施例提供的一种生成数据流的流程示意图;
图7为本发明实施例提供的一种生成会话的流程示意图;
图8为本发明实施例提供的一种会话流的生成示意图;
图9为本发明实施例提供的一种确定预设特征的示意图;
图10为本发明实施例提供的一种安卓恶意应用检测装置的结构示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
由于现有技术中,可以通过基于恶意应用流量特征分析的机器学习分类方法对恶意应用进行检测。恶意应用流量特征分析的机器学习分类方法是基于不同应用的不同流量行为特征进行流量识别的技术。这种方法往往是根据流量数据的源IP地址、源端口、目的IP地址、目的端口和传输层协议类型组成的“五元组”将流量数据划分为数据流,再根据提取的流特征训练机器学习分类模型进行恶意应用检测。但实际中的一些恶意应用往往是采用端口随机技术,只从“五元组”数据流层面提取统计特征建立机器学习分类模型缺乏全面的、有效的检测效果,导致恶意应用检测的准确度较低。为了提高安卓恶意应用的检测准确度,本发明实施例提供了一种安卓恶意应用检测方法、装置及设备,以下分别进行详细说明。
图1为本发明实施例提供的一种安卓恶意应用检测方法的实施例一的流程示意图,本发明实施例的执行主体为任意具有处理能力的、与终端设备中各安卓应用进行交互的设备。如图1所示,本实施例提供的安卓恶意应用检测方法可以包括:
S101,获取预设时长内终端设备中各安卓应用产生的网络流量数据包。
S102,将五元组信息一致且到达时间的间隔不超过第一预设时长的网络流量数据包汇总生成一个数据流,得到多个数据流。
其中,五元组信息包括源IP地址、源端口、目的IP地址、目的端口和传输层协议类型。例如,假设按照时间顺序,获取到网络流量数据包1、网络流量数据包2、网络流量数据包3……网络流量数据包50,其中,网络流量数据包1和网络流量数据包10的五元组信息一致且网络流量数据包1和网络流量数据包10的到达时间的间隔不超过第一预设时长,那么将网络流量数据包1和网络流量数据包10汇总生成一个数据流;网络流量数据包15、网络流量数据包28和网络流量数据包35的五元组信息一致、网络流量数据包15和网络流量数据包28的到达时间的间隔不超过第一预设时长、且网络流量数据包28和网络流量数据包35的到达时间的间隔不超过第一预设时长,那么将网络流量数据包15、网络流量数据包28和网络流量数据包35汇总生成一个数据流。
S103,将二元组信息一致且时间间隔不超过第二预设时长的数据流汇总生成一个会话,得到多个会话。
其中,二元组信息包括源IP地址和目的IP地址,第二预设时长大于第一预设时长。时间间隔指的是当前数据流的开始时间(即当前数据流中到达时间最早的网络流量数据包的到达时间)与上一个数据流的结束时间(即上一个数据流中到达时间最晚的网络流量数据包的到达时间)的间隔。可选的,第一预设时长可以设置为64s,第二预设时长可以设置为128s。
S104,确定并获取各会话的预设特征,并将各会话的预设特征输入预先训练好的目标分类模型中,以得到各会话的会话类别。
上述目标分类模型基于标注了会话类别的样本数据训练得到,会话类别包括恶意和良性。具体实现时,上述目标分类模型可以包括:最邻近分类模型(K-Nearest Neighbor,KNN)、决策树模型DecisionTree、随机森林算法模型RandomForest、极端随机树模型ExtraTree、梯度下降树模型(Gradient Boosting Decision Tree,GBDT)和极端梯度提升模型(Extreme Gradient Boosting,XGBoost)。
S105,将会话类别为恶意的会话所属的安卓应用确定为恶意应用。
本发明实施例提供的安卓恶意应用检测方法,通过获取预设时长内终端设备中各安卓应用产生的网络流量数据包;将五元组信息一致且到达时间的间隔不超过第一预设时长的网络流量数据包汇总生成一个数据流,得到多个数据流,五元组信息包括源IP地址、源端口、目的IP地址、目的端口和传输层协议类型;将二元组信息一致且时间间隔不超过第二预设时长的数据流汇总生成一个会话,得到多个会话,二元组信息包括源IP地址和目的IP地址,第二预设时长大于第一预设时长;确定并获取各会话的预设特征,并将各会话的预设特征输入预先训练好的目标分类模型中,以得到各会话的会话类别,目标分类模型基于标注了会话类别的样本数据训练得到,会话类别包括恶意和良性;将会话类别为恶意的会话所属的安卓应用确定为恶意应用。与基于不同应用的不同流量行为特征进行流量识别的技术相比,本发明提供的方法在传统流特征分析的基础上引入会话特征,可以对传统“五元组”流的特征加以补充,克服了安卓恶意应用选择随机端口的情形,从而提高了安卓恶意应用的检测准确度。
图2为本发明实施例提供的一种安卓恶意应用检测方法的实施例二的流程示意图,如图2所示,本实施例提供的安卓恶意应用检测方法可以包括:
S201,通过获取预设时长内终端设备中各安卓应用产生的网络流量数据包。
S202,对网络流量数据包进行数据清洗。
具体实现时,上述对网络流量数据包进行数据清洗可以包括:删除五元组信息错误或者不完整的网络流量数据包,例如,可以删除缺失五元组中的源IP地址的网络流量数据包;删除传输控制协议(Transmission Control Protocol,TCP)或者用户数据报协议(User Datagram Protocol,UDP)载荷为空的网络流量数据包。上述五元组信息错误或者不完整的网络流量数据包或者TCP或者UDP载荷为空的网络流量数据包均为无效流量数据。
S203,将五元组信息一致且到达时间的间隔不超过第一预设时长的网络流量数据包汇总生成一个数据流,得到多个数据流。
五元组信息包括源IP地址、源端口、目的IP地址、目的端口和传输层协议类型;
S204,将二元组信息一致且时间间隔不超过第二预设时长的数据流汇总生成一个会话,得到多个会话。
二元组信息包括源IP地址和目的IP地址,第二预设时长大于第一预设时长;
S205,确定并获取各会话的预设特征,并将各会话的预设特征输入预先训练好的目标分类模型中,以得到各会话的会话类别。
目标分类模型基于标注了会话类别的样本数据训练得到,会话类别包括恶意和良性。
S206,将会话类别为恶意的会话所属的安卓应用确定为恶意应用。
本发明实施例提供的安卓恶意应用检测方法,通过对网络流量数据包进行数据清洗,可以删除五元组信息错误或者不完整的网络流量数据包,或者TCP或者UDP载荷为空的网络流量数据包的无效流量数据,保留了其他有效流量数据,便于后续的安卓恶意应用的检测。
图3为本发明实施例提供的一种确定各会话的预设特征的流程示意图,如图3所示,各会话的预设特征可以通过下述步骤确定:
S301,获取多个样本会话。
具体实现时,可以通过上述实施例一中S101-S103的实现方式得到多个样本会话。
S302,提取各样本会话的会话特征。
上述会话特征可以包括会话的统计特征。可选的,若会话的网络流量数据包中包括用于进行安全传输层协议(Transport Layer Security,TLS)握手协商的数据包,则会话特征还可以包括会话的TLS特征。
具体实现时,上述统计特征可以包括:会话中数据流数量、会话中数据包数量、会话中数据包总长度、会话中数据包到达间隔时间中数、会话连接持续时间、会话中前向包总数量、会话中前向包总长度、会话中后向包总数量、会话中后向包总长度、会话中每秒前向包数量、会话中每秒后向包数量、会话中每个前向包长度、会话中每个后向包长度、会话中每个流的长度、会话中每个流的数据包总量、会话中每个流的前向包数量、会话中每个流的后向包数量、会话中每个流的前向包长度和会话中每个流的后向包长度。
上述TLS特征可以包括TLS协议版本、TLS加密套件、TLS客户端指纹信息(TLSClientHello指纹JA3)、TLS服务器指纹信息(TLS ServerHello指纹JA3S)和TLS证书指纹信息(TLS Certificate证书指纹CertSha)。若会话中的多条流量数据均包含TLS特征,则以最后到达的流量数据的TLS特征作为该会话的TLS特征。具体实现时,若流量数据包含TLS握手协商过程中的ClientHello、ServerHello、Certificate等属性,则计算ClientHello和ServerHello的指纹,并根据X.509证书格式对证书消息进行解析计算安全散列算法1(Secure Hash Algorithm 1,SHA1)指纹。若流量数据不包含TLS握手协商过程,则TLS特征为空。
S303,将多个会话特征分别输入至多个预设特征选择模型中,对各会话特征进行打分排序,得到各预设特征选择模型对应的各会话特征的排序。
具体实现时,上述预设特征选择模型可以包括:过滤式特征选择算法模型FisherScore、返回k个最佳特征算法模型SelectKBest、随机森林算法模型RandomForest、基于直方图的决策树算法模型LightGBM和递归式特征消除算法模型RecursiveFeatureElimination。
S304,针对每个预设特征选择模型,对位于预设排名内的会话特征进行投票。
S305,将投票总数位于预设排名内的会话特征确定为预设特征。
现有技术中,对特征的提取与选择的片面理解可能会将无用的和错误的特征引入安卓恶意应用检测的过程中,增加检测恶意应用过程的噪声,从而导致恶意应用检测的准确度较低。但是,本发明实施例通过综合多个特征选择模型,并使用投票机制来选择对检测恶意应用有明显作用的特征,可以保留特征的可解释性,降低模型检测过程的噪声点,从而提高了安卓恶意应用的检测准确度。
下面以一个具体的实现方式为例对本发明实施例提供的安卓恶意应用检测方法进行说明。图4为本发明实施例提供的一种安卓恶意应用检测方法的实施例三的流程示意图,如图4所示,本实施例提供的安卓恶意应用检测方法可以包括:
S401,收集样本数据。
具体实现时,采集安卓良性软件和恶意软件产生的网络流量数据包。
S402,清洗样本数据。
图5为本发明实施例提供的一种清洗样本数据的流程示意图,如图5所示,数据清洗的过程可以包括:
S4021,提取样本流量数据的属性特征。
其中,上述属性特征可以包括源IP地址、源端口、目的IP地址、目的端口、传输层协议类型、到达时间、TLS协议版本、TLS加密套件、TLS ClientHello指纹JA3、TLSServerHello指纹JA3S、TLS Certificate证书指纹CertSha、TCP或UDP载荷等。
S4022,判断到达时间的五元组信息是否没有错误或者完整。
若是,则执行S4023;若否,则执行S4025。
S4023,判断TCP或者UDP载荷是否不为空。
若是,则执行S4024;若否,则执行S4025。
S4024,得到过滤后的网络流量数据包。
S4025,丢弃网络流量数据包。
S403,生成数据流。
图6为本发明实施例提供的一种生成数据流的流程示意图,如图6所示,生成数据流的过程可以包括:
S4031,判断两个网络流量数据包的五元组信息是否一致。
若是,则执行S4032;若否,则执行S4034。
S4032,判断两个网络流量数据包的到达时间的间隔是否不超过第一预设时长。
若是,则执行S4033;若否,则执行S4034。
S4033,生成数据流。
S4034,确定不属于该数据流。
S404,生成会话。
图7为本发明实施例提供的一种生成会话的流程示意图,如图7所示,生成会话的过程可以包括:
S4041,判断两个数据流的二元组信息是否一致。
若是,则执行S4042;若否,则执行S4044。
S4042,判断两个数据流的时间间隔是否不超过第二预设时长。
若是,则执行S4033;若否,则执行S4044。
S4043,生成会话。
S4044,确定不属于该会话。
图8为本发明实施例提供的一种会话流的生成示意图,如图8所示,一个数据流由五元组信息一致且到达时间的间隔不超过第一预设时长的多个有效网络流量数据包组成;一个会话由二元组信息一致且时间间隔不超过第二预设时长的多个数据流组成。
S405,提取特征。
具体实现时,可以通过特征提取工具提取会话的统计特征共19个,分别是会话中数据流数量、会话中数据包数量、会话中数据包总长度、会话中数据包到达间隔时间中数、会话连接持续时间、会话中前向包总数量、会话中前向包总长度、会话中后向包总数量、会话中后向包总长度、会话中每秒前向包数量、会话中每秒后向包数量、会话中每个前向包长度、会话中每个后向包长度、会话中每个流的长度、会话中每个流的数据包总量、会话中每个流的前向包数量、会话中每个流的后向包数量、会话中每个流的前向包长度和会话中每个流的后向包长度。
若会话的网络流量数据包中包括用于进行TLS握手协商的数据包,则会话特征还包括会话的TLS特征。TLS特征包括:TLS协议版本、TLS加密套件、TLS ClientHello指纹JA3、TLS ServerHello指纹JA3S和TLS Certificate证书指纹CertSha。若会话中的多个流量数据包均包含TLS特征,则以最后达到的流量数据包的TLS特征作为该会话的TLS特征。会话的特征由统计特征和TLS特征组成。
S406,确定预设特征。
具体实现时,可以利用机器学习模型、投票机制筛选提取出会话特征中对检测安卓恶意应用有明显作用的特征。此处特征选择的模型可以选择多种机器学习模型,机器学习模型包含但不限于FisherScore、SelectKBest、RandomForest、LightGBM和RecursiveFeatureElimination。各模型在挑选特征时是相互独立的。根据投票机制,选取投票得分较高的特征组成训练分类模型的特征子集。图9为本发明实施例提供的一种确定预设特征的示意图,如图9所示,在特征选择阶段,可以同时选取多个特征提取模型(模型1、模型2、模型3……模型n),各模型在特征筛选过程上相互独立。每个模型筛选出来的特征按重要程度或得分排序后,根据具体建立分类模型时所需的特征个数设置特征个数阈值,当该特征的排名在阈值内则获得该模型的投票。最后按投票总数选择分类模型所需的特征。
S407,构建目标分类模型。
根据上述S406提取出的特征子集构训练目标分类模型,此处目标分类模型包含但不限于KNN、DecisionTree、RandomForest、ExtraTree、GBDT和XGBoost。
S408,检测恶意应用。
利用构建好的分类模型对待检测的安卓应用流量进行检测,判别其是否属于安卓恶意应用。
图10为本发明实施例提供的一种安卓恶意应用检测装置的结构示意图,如图10所示,该安卓恶意应用检测装置100可以包括:
第一获取模块1010,可以用于获取预设时长内终端设备中各安卓应用产生的网络流量数据包。
第二获取模块1020,可以用于将五元组信息一致且到达时间的间隔不超过第一预设时长的网络流量数据包汇总生成一个数据流,得到多个数据流,五元组信息包括源IP地址、源端口、目的IP地址、目的端口和传输层协议类型。
第三获取模块1030,可以用于将二元组信息一致且时间间隔不超过第二预设时长的数据流汇总生成一个会话,得到多个会话,二元组信息包括源IP地址和目的IP地址,第二预设时长大于第一预设时长。
第四获取模块1040,可以用于确定并获取各会话的预设特征,并将各会话的预设特征输入预先训练好的目标分类模型中,以得到各会话的会话类别,目标分类模型基于标注了会话类别的样本数据训练得到,会话类别包括恶意和良性。
确定模块1050,可以用于将会话类别为恶意的会话所属的安卓应用确定为恶意应用。
本发明实施例提供的安卓恶意应用检测装置,通过第一获取模块,获取预设时长内终端设备中各安卓应用产生的网络流量数据包;通过第二获取模块,将五元组信息一致且到达时间的间隔不超过第一预设时长的网络流量数据包汇总生成一个数据流,得到多个数据流,五元组信息包括源IP地址、源端口、目的IP地址、目的端口和传输层协议类型;通过第三获取模块,将二元组信息一致且时间间隔不超过第二预设时长的数据流汇总生成一个会话,得到多个会话,二元组信息包括源IP地址和目的IP地址,第二预设时长大于第一预设时长;通过第四获取模块,确定并获取各会话的预设特征,并将各会话的预设特征输入预先训练好的目标分类模型中,以得到各会话的会话类别,目标分类模型基于标注了会话类别的样本数据训练得到,会话类别包括恶意和良性;通过确定模块,将会话类别为恶意的会话所属的安卓应用确定为恶意应用。与基于不同应用的不同流量行为特征进行流量识别的技术相比,本发明提供的方法在传统流特征分析的基础上引入会话特征,可以对传统“五元组”流的特征加以补充,克服了安卓恶意应用选择随机端口的情形,从而提高了安卓恶意应用的检测准确度。
可选的,上述装置还可以包括:清洗模块(图中未示出),用于对网络流量数据包进行数据清洗;该清洗模块,可以具体用于删除五元组信息错误或者不完整的网络流量数据包;删除传输控制协议TCP或者用户数据报协议UDP载荷为空的网络流量数据包。
可选的,上述第四获取模块1040,可以具体用于获取多个样本会话;提取各样本会话的会话特征,会话特征包括会话的统计特征,若会话的网络流量数据包中包括用于进行安全传输层协议TLS握手协商的数据包,则会话特征还包括会话的TLS特征;将多个会话特征分别输入至多个预设特征选择模型中,对各会话特征进行打分排序,得到各预设特征选择模型对应的各会话特征的排序;针对每个预设特征选择模型,对位于预设排名内的会话特征进行投票;将投票总数位于预设排名内的会话特征确定为预设特征。
可选的,上述统计特征可以包括:会话中数据流数量、会话中数据包数量、会话中数据包总长度、会话中数据包到达间隔时间中数、会话连接持续时间、会话中前向包总数量、会话中前向包总长度、会话中后向包总数量、会话中后向包总长度、会话中每秒前向包数量、会话中每秒后向包数量、会话中每个前向包长度、会话中每个后向包长度、会话中每个流的长度、会话中每个流的数据包总量、会话中每个流的前向包数量、会话中每个流的后向包数量、会话中每个流的前向包长度和会话中每个流的后向包长度;TLS特征可以包括TLS协议版本、TLS加密套件、TLS客户端指纹信息、TLS服务器指纹信息和TLS证书指纹信息。
可选的,上述预设特征选择模型可以包括:过滤式特征选择算法模型FisherScore、返回k个最佳特征算法模型SelectKBest、随机森林算法模型、基于直方图的决策树算法模型LightGBM和递归式特征消除算法模型。
可选的,上述目标分类模型可以包括:最邻近分类模型、决策树模型、随机森林算法模型、极端随机树模型、梯度下降树模型和极端梯度提升模型。
另外,相应于上述实施例所提供的安卓恶意应用检测方法,本发明实施例还提供了一种电子设备,该电子设备可以包括:存储器,用于存储程序;处理器,用于通过执行存储器存储的程序以实现本发明实施例提供的安卓恶意应用检测方法的所有步骤。
另外,相应于上述实施例所提供的安卓恶意应用检测方法,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时实现本发明实施例的安卓恶意应用检测方法的所有步骤。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (10)
1.一种安卓恶意应用检测方法,其特征在于,包括:
获取预设时长内终端设备中各安卓应用产生的网络流量数据包;
将五元组信息一致且到达时间的间隔不超过第一预设时长的网络流量数据包汇总生成一个数据流,得到多个数据流,所述五元组信息包括源网际互连协议IP地址、源端口、目的IP地址、目的端口和传输层协议类型;
将二元组信息一致且时间间隔不超过第二预设时长的数据流汇总生成一个会话,得到多个会话,所述二元组信息包括源IP地址和目的IP地址,所述第二预设时长大于所述第一预设时长;
确定并获取各会话的预设特征,并将各会话的预设特征输入预先训练好的目标分类模型中,以得到各会话的会话类别,所述目标分类模型基于标注了会话类别的样本数据训练得到,所述会话类别包括恶意和良性;
将会话类别为恶意的会话所属的安卓应用确定为恶意应用。
2.如权利要求1所述的方法,其特征在于,在所述将五元组信息一致且到达时间的间隔不超过第一预设时长的网络流量数据包汇总生成一个数据流之前,所述方法还包括:
对所述网络流量数据包进行数据清洗;
所述对所述网络流量数据包进行数据清洗,包括:
删除五元组信息错误或者不完整的网络流量数据包;
删除传输控制协议TCP或者用户数据报协议UDP载荷为空的网络流量数据包。
3.如权利要求1所述的方法,其特征在于,所述预设特征通过以下方法确定:
获取多个样本会话;
提取各样本会话的会话特征,所述会话特征包括会话的统计特征,若会话的网络流量数据包中包括用于进行安全传输层协议TLS握手协商的数据包,则所述会话特征还包括会话的TLS特征;
将所述多个会话特征分别输入至多个预设特征选择模型中,对各会话特征进行打分排序,得到各预设特征选择模型对应的各会话特征的排序;
针对每个预设特征选择模型,对位于预设排名内的会话特征进行投票;
将投票总数位于所述预设排名内的会话特征确定为所述预设特征。
4.如权利要求3所述的方法,其特征在于,所述统计特征包括:会话中数据流数量、会话中数据包数量、会话中数据包总长度、会话中数据包到达间隔时间中数、会话连接持续时间、会话中前向包总数量、会话中前向包总长度、会话中后向包总数量、会话中后向包总长度、会话中每秒前向包数量、会话中每秒后向包数量、会话中每个前向包长度、会话中每个后向包长度、会话中每个流的长度、会话中每个流的数据包总量、会话中每个流的前向包数量、会话中每个流的后向包数量、会话中每个流的前向包长度和会话中每个流的后向包长度;所述TLS特征包括TLS协议版本、TLS加密套件、TLS客户端指纹信息、TLS服务器指纹信息和TLS证书指纹信息。
5.如权利要求3所述的方法,其特征在于,所述预设特征选择模型包括:过滤式特征选择算法模型FisherScore、返回k个最佳特征算法模型SelectKBest、随机森林算法模型、基于直方图的决策树算法模型LightGBM和递归式特征消除算法模型。
6.如权利要求1所述的方法,其特征在于,所述目标分类模型包括:为以下一项:最邻近分类模型、决策树模型、随机森林算法模型、极端随机树模型、梯度下降树模型和极端梯度提升模型。
7.一种安卓恶意应用检测装置,其特征在于,包括:
第一获取模块,用于获取预设时长内终端设备中各安卓应用产生的网络流量数据包;
第二获取模块,用于将五元组信息一致且到达时间的间隔不超过第一预设时长的网络流量数据包汇总生成一个数据流,得到多个数据流,所述五元组信息包括源网际互连协议IP地址、源端口、目的IP地址、目的端口和传输层协议类型;
第三获取模块,用于将二元组信息一致且时间间隔不超过第二预设时长的数据流汇总生成一个会话,得到多个会话,所述二元组信息包括源IP地址和目的IP地址,所述第二预设时长大于所述第一预设时长;
第四获取模块,用于确定并获取各会话的预设特征,并将各会话的预设特征输入预先训练好的目标分类模型中,以得到各会话的会话类别,所述目标分类模型基于标注了会话类别的样本数据训练得到,所述会话类别包括恶意和良性;
确定模块,用于将会话类别为恶意的会话所属的安卓应用确定为恶意应用。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
清洗模块,用于对所述网络流量数据包进行数据清洗;
所述清洗模块,具体用于删除五元组信息错误或者不完整的网络流量数据包;删除传输控制协议TCP或者用户数据报协议UDP载荷为空的网络流量数据包。
9.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于通过执行所述存储器存储的程序以实现如权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述介质上存储有程序,所述程序能够被处理器执行以实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110849300.7A CN113591085B (zh) | 2021-07-27 | 2021-07-27 | 安卓恶意应用检测方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110849300.7A CN113591085B (zh) | 2021-07-27 | 2021-07-27 | 安卓恶意应用检测方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113591085A CN113591085A (zh) | 2021-11-02 |
CN113591085B true CN113591085B (zh) | 2024-05-14 |
Family
ID=78250408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110849300.7A Active CN113591085B (zh) | 2021-07-27 | 2021-07-27 | 安卓恶意应用检测方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113591085B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422174B (zh) * | 2021-12-09 | 2023-07-25 | 绿盟科技集团股份有限公司 | 一种网络流量过滤方法、装置、介质和设备 |
CN114640502A (zh) * | 2022-02-17 | 2022-06-17 | 南京航空航天大学 | 一种基于流量指纹和图数据特征的安卓恶意软件检测方法及检测系统 |
CN114938290A (zh) * | 2022-04-22 | 2022-08-23 | 北京天际友盟信息技术有限公司 | 一种信息检测方法、装置及设备 |
CN115277152B (zh) * | 2022-07-22 | 2023-09-05 | 长扬科技(北京)股份有限公司 | 网络流量安全检测方法及装置 |
CN115883241A (zh) * | 2022-12-13 | 2023-03-31 | 北京马赫谷科技有限公司 | 网络安全溯源方法、系统及电子设备 |
CN115987689B (zh) * | 2023-03-20 | 2023-06-27 | 北京邮电大学 | 一种网络入侵检测方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109286576A (zh) * | 2018-10-10 | 2019-01-29 | 北京理工大学 | 一种数据包频度分析的网络代理加密流量特征提取方法 |
CN109379341A (zh) * | 2018-09-21 | 2019-02-22 | 国网湖南省电力有限公司 | 一种基于行为分析的反弹型远控木马网络流量检测方法 |
CN110311829A (zh) * | 2019-05-24 | 2019-10-08 | 西安电子科技大学 | 一种基于机器学习加速的网络流量分类方法 |
CN111245860A (zh) * | 2020-01-20 | 2020-06-05 | 上海交通大学 | 一种基于双维度特征的加密恶意流量检测方法和系统 |
CN112261007A (zh) * | 2020-09-27 | 2021-01-22 | 北京六方云信息技术有限公司 | 基于机器学习的https恶意加密流量检测方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9319421B2 (en) * | 2013-10-14 | 2016-04-19 | Ut-Battelle, Llc | Real-time detection and classification of anomalous events in streaming data |
-
2021
- 2021-07-27 CN CN202110849300.7A patent/CN113591085B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109379341A (zh) * | 2018-09-21 | 2019-02-22 | 国网湖南省电力有限公司 | 一种基于行为分析的反弹型远控木马网络流量检测方法 |
CN109286576A (zh) * | 2018-10-10 | 2019-01-29 | 北京理工大学 | 一种数据包频度分析的网络代理加密流量特征提取方法 |
CN110311829A (zh) * | 2019-05-24 | 2019-10-08 | 西安电子科技大学 | 一种基于机器学习加速的网络流量分类方法 |
CN111245860A (zh) * | 2020-01-20 | 2020-06-05 | 上海交通大学 | 一种基于双维度特征的加密恶意流量检测方法和系统 |
CN112261007A (zh) * | 2020-09-27 | 2021-01-22 | 北京六方云信息技术有限公司 | 基于机器学习的https恶意加密流量检测方法及系统 |
Non-Patent Citations (8)
Title |
---|
Mining intrusion detection alerts for predicting severity of detected attacks;Doaa Hassan等;《2015 11th International Conference on Information Assurance and Security (IAS)》;20160616;第38-43页 * |
会话属性优化的网络异常检测模型;彭新光等;《计算机工程与设计》;20051130(第11期);第87-90页 * |
基于DPI和DFI技术的对等流量识别系统的设计;刘佳雄;《中国优秀硕士学位论文全文数据库》;20100831(第08期);信息科技辑 I139-42 * |
基于UDP心跳的DDoS恶意行为分析;李盼辉;《中国优秀硕士学位论文全文数据库》;20200630;信息科技辑 I139-53 * |
基于YOLO目标检测算法的多功能防疫巡逻机器人的设计与实现;徐志鹏等;《电子制作》;20230430;第31卷(第07期);第69-72页 * |
基于机器学习的TLS恶意加密流量检测方案;骆子铭等;《网络与信息安全学报》;20200229;第6期(第01期);第77-83页 * |
基于网络流量的安卓恶意软件识别;王澍玮等;《无线电工程》;20200618(第07期);第612-618页 * |
恶意代码及防护技术探讨;张燕等;《电脑与信息技术》;20061231(第05期);第1005-1228页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113591085A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113591085B (zh) | 安卓恶意应用检测方法、装置及设备 | |
CN109063745B (zh) | 一种基于决策树的网络设备类型识别方法及系统 | |
CN104506484B (zh) | 一种私有协议分析与识别方法 | |
CN102811162B (zh) | 用于有效率的网络流数据分析的方法和装置 | |
US20120099597A1 (en) | Method and device for detecting a packet | |
Staudemeyer et al. | Extracting salient features for network intrusion detection using machine learning methods | |
CN111147394B (zh) | 一种远程桌面协议流量行为的多级分类检测方法 | |
CN113259313A (zh) | 一种基于在线训练算法的恶意https流量智能分析方法 | |
KR20120071122A (ko) | 트래픽 분석 장치 | |
CN110768875A (zh) | 一种基于dns学习的应用识别方法及系统 | |
Alshammari et al. | Investigating two different approaches for encrypted traffic classification | |
US20140136538A1 (en) | Method and Apparatus for Communications Analysis | |
CN112800424A (zh) | 一种基于随机森林的僵尸网络恶意流量监测方法 | |
CN112702405A (zh) | 一种基于多协议探测的物联网设备识别方法 | |
Zhang et al. | Toward unsupervised protocol feature word extraction | |
CN113923003A (zh) | 一种攻击者画像生成方法、系统、设备以及介质 | |
CN114338064A (zh) | 识别网络流量类型的方法、装置、设备和存储介质 | |
CN114650229A (zh) | 基于三层模型sftf-l的网络加密流量分类方法与系统 | |
Cramer et al. | Bayesian topic models for describing computer network behaviors | |
CN105357166B (zh) | 一种下一代防火墙系统及其检测报文的方法 | |
CN114760216B (zh) | 一种扫描探测事件确定方法、装置及电子设备 | |
CN116170227A (zh) | 一种流量异常的检测方法、装置、电子设备及存储介质 | |
Hejun et al. | Online and automatic identification and mining of encryption network behavior in big data environment | |
CN113095426A (zh) | 一种加密流量分类方法、系统、设备及可读存储介质 | |
Yin et al. | Tor Traffic’s Representation and Classification Based on Packet Timing Characteristics |
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 |