CN113591085A - 安卓恶意应用检测方法、装置及设备 - Google Patents

安卓恶意应用检测方法、装置及设备 Download PDF

Info

Publication number
CN113591085A
CN113591085A CN202110849300.7A CN202110849300A CN113591085A CN 113591085 A CN113591085 A CN 113591085A CN 202110849300 A CN202110849300 A CN 202110849300A CN 113591085 A CN113591085 A CN 113591085A
Authority
CN
China
Prior art keywords
session
preset
data
preset time
android
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
Application number
CN202110849300.7A
Other languages
English (en)
Other versions
CN113591085B (zh
Inventor
吴星
樊俊锋
李志奇
陈平
谢东峰
黄鑫泰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Open Security Research Inc
Original Assignee
Open Security Research Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Open Security Research Inc filed Critical Open Security Research Inc
Priority to CN202110849300.7A priority Critical patent/CN113591085B/zh
Publication of CN113591085A publication Critical patent/CN113591085A/zh
Application granted granted Critical
Publication of CN113591085B publication Critical patent/CN113591085B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine 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中任一项所述的方法。
CN202110849300.7A 2021-07-27 2021-07-27 安卓恶意应用检测方法、装置及设备 Active CN113591085B (zh)

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 true CN113591085A (zh) 2021-11-02
CN113591085B 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)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422174A (zh) * 2021-12-09 2022-04-29 绿盟科技集团股份有限公司 一种网络流量过滤方法、装置、介质、产品和设备
CN114640502A (zh) * 2022-02-17 2022-06-17 南京航空航天大学 一种基于流量指纹和图数据特征的安卓恶意软件检测方法及检测系统
CN114938290A (zh) * 2022-04-22 2022-08-23 北京天际友盟信息技术有限公司 一种信息检测方法、装置及设备
CN115277152A (zh) * 2022-07-22 2022-11-01 长扬科技(北京)股份有限公司 网络流量安全检测方法及装置
CN115987689A (zh) * 2023-03-20 2023-04-18 北京邮电大学 一种网络入侵检测方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150106927A1 (en) * 2013-10-14 2015-04-16 Ut-Battelle, Llc Real-time detection and classification of anomalous events in streaming data
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恶意加密流量检测方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150106927A1 (en) * 2013-10-14 2015-04-16 Ut-Battelle, Llc Real-time detection and classification of anomalous events in streaming data
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)

* Cited by examiner, † Cited by third party
Title
DOAA HASSAN等: "Mining intrusion detection alerts for predicting severity of detected attacks", 《2015 11TH INTERNATIONAL CONFERENCE ON INFORMATION ASSURANCE AND SECURITY (IAS)》, 16 June 2016 (2016-06-16), pages 38 - 43 *
刘佳雄: "基于DPI和DFI技术的对等流量识别系统的设计", 《中国优秀硕士学位论文全文数据库》, no. 08, 31 August 2010 (2010-08-31), pages 139 - 42 *
张燕等: "恶意代码及防护技术探讨", 《电脑与信息技术》, no. 05, 31 December 2006 (2006-12-31), pages 1005 - 1228 *
彭新光等: "会话属性优化的网络异常检测模型", 《计算机工程与设计》, no. 11, 30 November 2005 (2005-11-30), pages 87 - 90 *
徐志鹏等: "基于YOLO目标检测算法的多功能防疫巡逻机器人的设计与实现", 《电子制作》, vol. 31, no. 07, 30 April 2023 (2023-04-30), pages 69 - 72 *
李盼辉: "基于UDP心跳的DDoS恶意行为分析", 《中国优秀硕士学位论文全文数据库》, 30 June 2020 (2020-06-30), pages 139 - 53 *
王澍玮等: "基于网络流量的安卓恶意软件识别", 《无线电工程》, no. 07, 18 June 2020 (2020-06-18), pages 612 - 618 *
骆子铭等: "基于机器学习的TLS恶意加密流量检测方案", 《网络与信息安全学报》, vol. 6, no. 01, 29 February 2020 (2020-02-29), pages 77 - 83 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422174A (zh) * 2021-12-09 2022-04-29 绿盟科技集团股份有限公司 一种网络流量过滤方法、装置、介质、产品和设备
CN114422174B (zh) * 2021-12-09 2023-07-25 绿盟科技集团股份有限公司 一种网络流量过滤方法、装置、介质和设备
CN114640502A (zh) * 2022-02-17 2022-06-17 南京航空航天大学 一种基于流量指纹和图数据特征的安卓恶意软件检测方法及检测系统
CN114938290A (zh) * 2022-04-22 2022-08-23 北京天际友盟信息技术有限公司 一种信息检测方法、装置及设备
CN115277152A (zh) * 2022-07-22 2022-11-01 长扬科技(北京)股份有限公司 网络流量安全检测方法及装置
CN115277152B (zh) * 2022-07-22 2023-09-05 长扬科技(北京)股份有限公司 网络流量安全检测方法及装置
CN115987689A (zh) * 2023-03-20 2023-04-18 北京邮电大学 一种网络入侵检测方法及装置

Also Published As

Publication number Publication date
CN113591085B (zh) 2024-05-14

Similar Documents

Publication Publication Date Title
CN113591085B (zh) 安卓恶意应用检测方法、装置及设备
Alshammari et al. Machine learning based encrypted traffic classification: Identifying ssh and skype
CN107592312B (zh) 一种基于网络流量的恶意软件检测方法
US20120099597A1 (en) Method and device for detecting a packet
CN113259313A (zh) 一种基于在线训练算法的恶意https流量智能分析方法
EP2077643A1 (en) Method and system for context-aware data prioritization.
CN108696543B (zh) 基于深度森林的分布式反射拒绝服务攻击检测、防御方法
CN102420723A (zh) 一种面向多类入侵的异常检测方法
EP2485432B1 (en) A method and apparatus for communications analysis
CN110768875A (zh) 一种基于dns学习的应用识别方法及系统
Alshammari et al. Investigating two different approaches for encrypted traffic classification
CN112702405A (zh) 一种基于多协议探测的物联网设备识别方法
CN111935185B (zh) 基于云计算构建大规模诱捕场景的方法及系统
CN111835763A (zh) 一种dns隧道流量检测方法、装置及电子设备
EP2530873A1 (en) Method and apparatus for streaming netflow data analysis
CN114650229B (zh) 基于三层模型sftf-l的网络加密流量分类方法与系统
CN111478921A (zh) 一种隐蔽信道通信检测方法、装置及设备
CN113298125B (zh) 基于特征选择的物联网设备流量异常检测方法、装置及存储介质
CN114760216A (zh) 一种扫描探测事件确定方法、装置及电子设备
Sija et al. Automatic payload signature generation for accurate identification of internet applications and application services
CN114362972B (zh) 一种基于流量摘要和图采样的僵尸网络混合检测方法及系统
CN105357166A (zh) 一种下一代防火墙系统及其检测报文的方法
CN114363059A (zh) 一种攻击识别方法、装置及相关设备
RU2485705C1 (ru) Способ и система идентификации сетевых протоколов на основании описания клиент-серверного взаимодействия
CN114553520B (zh) 网络攻击数据流合成方法、装置、电子设备及存储介质

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