CN115062303B - 基于原始有效载荷和深度学习的Android恶意软件分类方法 - Google Patents
基于原始有效载荷和深度学习的Android恶意软件分类方法 Download PDFInfo
- Publication number
- CN115062303B CN115062303B CN202210608633.5A CN202210608633A CN115062303B CN 115062303 B CN115062303 B CN 115062303B CN 202210608633 A CN202210608633 A CN 202210608633A CN 115062303 B CN115062303 B CN 115062303B
- Authority
- CN
- China
- Prior art keywords
- flows
- malicious software
- flow
- classification
- deep learning
- 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
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000013135 deep learning Methods 0.000 title claims abstract description 22
- 239000011159 matrix material Substances 0.000 claims abstract description 41
- 238000012549 training Methods 0.000 claims abstract description 28
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 24
- 102100026278 Cysteine sulfinic acid decarboxylase Human genes 0.000 claims abstract description 13
- 238000012512 characterization method Methods 0.000 claims abstract description 13
- 108010064775 protein C activator peptide Proteins 0.000 claims abstract description 13
- 230000000694 effects Effects 0.000 claims abstract description 12
- 238000005070 sampling Methods 0.000 claims abstract description 4
- 230000004913 activation Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 8
- 239000013598 vector Substances 0.000 claims description 7
- 238000013145 classification model Methods 0.000 claims description 6
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000011176 pooling Methods 0.000 claims description 4
- 230000010354 integration Effects 0.000 claims description 3
- 239000000284 extract Substances 0.000 abstract description 2
- 230000006399 behavior Effects 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000005065 mining Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 208000015181 infectious disease Diseases 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 230000001960 triggered effect Effects 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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/12—Detection or prevention of fraud
- H04W12/128—Anti-malware arrangements, e.g. protection against SMS fraud or mobile malware
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
本发明公开了一种基于原始有效载荷和深度学习的Android恶意软件分类方法,涉及移动软件安全领域。本发明从恶意软件的PCAP文件提取每个完整的flow;将提取出的所有flows存储在一个单向循环列表中;采用基于滑动窗口的选择算法从该单向循环列表中采样N个flows作为一组以描述恶意软件的网络活动;利用文本表征方法对N个flows进行编码,以生成流量矩阵;以该流量矩阵作为卷积神经网络模型的输入,完成恶意软件分类模型的训练过程;使用建立的恶意软件分类模型,对待检测软件样本进行实时检测,输出分类结果。与其他基于特征工程的分类方法相比,本发明的分类方法具有更高的分类准确率。
Description
技术领域
本发明涉及移动安全领域,尤其涉及移动软件安全技术领域,更具体的说涉及一种基于原始有效载荷和深度学习的Android恶意软件分类方法。
背景技术
作为最流行的移动平台,Android也是移动恶意软件的主要目标。大量Android恶意软件被用于发起诸如间谍、勒索、广告欺诈和分布式拒绝服务等恶意活动,给网络安全造成巨大威胁。更严重的是,Android恶意软件的数量和复杂性日益剧增。据McAfee移动威胁报告,自2018年以来,每季度的Android恶意软件感染量已超过2500万。Kaspersky移动恶意软件演化报告也显示,仅在2020年就发现了超过568万个Android恶意软件样本。此外,多种对抗性技术,如混淆、动态加载等,被综合应用于演化Android恶意软件。面对如此境况,及时且有效地防御此类恶意软件存在巨大挑战。一个可行的解决方案是对Android恶意软件进行家族分类。一方面,98%的恶意软件样本是已知家族的变种,且家族的增量远低于变种的增量。另一方面,即使使用复杂的对抗性技术,一个家族中的恶意软件仍具有一定程度上的相似性。
事实上,已经提出许多基于静态特征和基于动态主机行为特征的Android恶意软件分类方法。然而,静态方法对动态加载、反射和本地代码等技术的对抗性较低,无法对复杂的变种进行分类。此外,由于Android应用的事件驱动特性,该类方法很难发现大量需要事件触发的恶意行为,不可避免地会引起较多误报,不利于刻画家族行为。基于动态主机行为特征的方法很容易被运行时混淆技术挫败,且由于需要跟踪系统调用、方法调用等而存在着巨大的开销。更重要的一点,该类方法是在与主机相关的恶意行为被触发后才执行分类任务,部署在终端时可能无法及时识别潜在威胁而导致不可挽回的数据泄露或破坏等损失,失去防护意义。
在这种情况下,基于动态网络行为特征的方法应运而生。该类技术只关注恶意软件的网络流量,因此对前述的对抗性技术具有高鲁棒性,与上述的动态跟踪相比也是轻量级的。最重要的是,大部分Android恶意软件(如远程访问木马、僵尸网络和勒索软件等)依赖于网络通信在实施真正攻击前进行C&C传输、恶意载荷下载和传播等活动,使得该类方法具有早期识别能力,部署在终端时可及时阻断和移除潜在威胁。遗憾的是,目前只有少数基于网络行为特征的Android恶意软件家族分类工作,主要关注元数据和有效载荷。基于元数据的研究利用网络流量的元信息(如数据包大小)进行分类,但由于元信息的粗粒度性质而使其存在准确度低的问题。相比之下,基于有效载荷的工作取得了更鼓舞人心的分类性能;然而,这些工作是在明文流量的假设下,通过协议逆向工程从应用协议中人工构建分类特征。但是,80%以上的Android应用默认对其数据进行加密,而且Android提供一个默认的安全策略以防止应用允许未加密的网络连接。因此,明文假设在现实世界已不实际。此外,人工构造的特征过度依赖专业知识,提取的协议特征并不总是有效,难于应对复杂的对抗技术;而且逆向工程耗时耗力,难于处理海量的样本。因此,在不作明文假设的情况下,如何通过有效载荷将Android恶意软件准确地分类到家族仍是一个悬而未决的问题。
发明内容
为了克服上述现有技术存在的缺陷和不足,本发明提供了一种基于原始有效载荷和深度学习的Android恶意软件分类方法。本发明旨在解决如何通过有效载荷将Android恶意软件准确地分类到家族的问题,以弥补现有分类方法在有效性和实用性方面的短板。本发明仅使用恶意软件网络流量的有效载荷部分的字节信息,无需协议逆向工程,适用于流量加密等多种现实场景,增强了方法的实用性。本发明对卷积神经网络的应用不仅避免了特征工程,而且有利于挖掘潜在的有效分类特征,提升方法的有效性。
实现本发明的具体思路是:本发明提出的分类方法包括预处理、编码和分类三个阶段。预处理阶段:从恶意软件的原始网络流量(PCAP文件)中提取出每个完整的flow用于表示恶意软件的网络活动,并将提取出的所有flows存储在一个单向循环列表。,编码阶段:采用基于滑动窗口的选择算法从该单向循环列表中采样N个flows作为一组以描述恶意软件的网络活动,并利用文本表征方法对N个flows进行编码以生成流量矩阵。分类阶段:以流量矩阵作为分类模型的输入,输出预测家族结果。
本发明具体包括以下步骤:
S1、从恶意软件的PCAP文件提取每个完整的flow;
每个flow是由具有相同五元组的数据包的有效载荷字节(原始有效载荷)连结而成的一个有序序列,形式化地表示为:
F=(FI,FR)={Pi=(Ii,Ri|1≤i≤u)},其中FI=I1=I2=…=Iu,Pi是第i个数据报,Ii为Pi的五元组,Ri为Pi的原始有效载荷,u为数据报的数目;
S2、将S1步骤提取出的所有flows存储在一个单向循环列表,采用基于滑动窗口的选择算法,从该单向循环列表中采样多组N-flows;其中N-flows表示该滑动窗口选定的N个flows作为一组以描述恶意软件的网络活动;
S3、利用文本表征方法对多组N-flows分别进行编码,以生成多组流量矩阵;
S4、以流量矩阵作为卷积神经网络模型的输入,完成恶意软件分类模型的训练,得到恶意软件分类模型;
S5、基于S4步骤得到的恶意软件分类模型,采用集成策略预测恶意软件的家族;具体的,待测恶意软件生成对应的流量矩阵集{Mz|1≤z≤m},其中Mz表示第z个流量矩阵,m表示该待测恶意软件生成的流量矩阵数量;利用S4步骤得到的恶意软件分类模型得到第z个流量矩阵的预测结果pz=(pz1,…,pzv,…,ppw);按照家族类别下标v对流量矩阵集的m个预测结果求平均值,均值最大的类别作为该待测样本的最终分类结果,计算公式如下:
其中,C是家族类别集合,v∈{1,2,…,w},w是家族类别数。
进一步优选的,S1步骤中,从被捕获的PCAP文件中提取出每个完整的flow,具体是指,对该PCAP文件中的数据报Pi,提取出其原始有效载荷Ri,然后按其五元组Ii将Ri加入对应flow的FR。
进一步优选的,S2步骤中,基于滑动窗口的选择算法,具体是指,给定一个恶意软件的所有flows,记作{F1,F2,…,Fn},将所有flows存储在一个单向循环列表中,在第e次训练中,从Fi开始沿着所述单向循环列表以窗口N为大小滑动采样一组flows,其中i=(e-1)×N%n+1;每次训练只有一组flows参与,随着训练次数e的增加,样本中所有flows均可用于构建模型。
进一步优选的,S5步骤中,待测恶意软件生成对应的流量矩阵集{Mz|1≤z≤m}具体是指,根据S1步骤提取出该待测恶意软件的所有flows,记作{F1,F2,…,Fn},将所有flows存储在一个单向循环列表中,n个flows直接被分割为m个组,m=[n/N],其中n表示flows数量,N表示滑动窗口大小;最多只有一个组需要沿着该单向循环列表采样;根据S3步骤生成m个组对应的流量矩阵集{Mz|1≤z≤m}。
进一步优选的,S3步骤中,利用文本表征方法对多组N-flows分别进行编码,具体是指,
将每个flow看作一个文档,每个字节当作一个词汇;基于词袋模型,将每个flow表示为其字节集合;鉴于一个字节仅有256中可能取值,表示为Bj∈{0,1,…,255};流Fi可以编码为一个256维的向量Xi;
使用词频-逆文档频率技术衡量每个字节Bj在Fi中的权重,Fi最终编码如下:
Xi={xi,1,xi,2,…,xi,j,…,xi,256},其中xi,j是Fi中Bj的权重,计算公式如下:
其中,bi,j是Fi中Bj出现的总次数,/>是Fi中所有字节出现次数的总和,dj是包含Bj的流数目;
在对N个flows编码后,形成恶意软件的流量矩阵,表示如下:
其中,T代表转置,/>就是第N个向量的转置。
进一步优选的,S4步骤中,使用的卷积神经网络模型一共包含2个卷积层、2个池化层、3个全连接层;使用的卷积神经网络的隐藏层全部使用Relu激活函数,输出层使用Softmax激活函数,输入层是N×256的二维矩阵。
更进一步的,S4步骤中,是使用PyTorch深度学习框架,在装配有NVIDIA TeslaV100 GPU的Ubuntu服务器上构建卷积神经网络模型。
更进一步的,模型的初始权重随机生成,利用交叉熵计算损失,并通过Adam算法进行权重优化;不断地学习权值直到权重优化到合理值结束训练;批次大小batch size设置为32,训练次数epoch设置为100,其余超参数均使用默认值。
与现有技术相比,本发明所带来的有益的技术效果表现在:
1、现有的基于网络流量的Android恶意软件分类方法受限于明文假设,无法处理流量加密场景;此外这些方法通过协议逆向工程人工构造分类特征,其有效性过度依赖于专业知识且分析过程耗时耗力,导致难以应对日益复杂的对抗技术和海量样本。本发明提供一种基于原始有效载荷和深度学习的Android恶意软件分类方法,以弥补现存方法在实用性和有效性方面的短板。该方法首先提取恶意软件网络流量的所有流(flows),每个flow是由相同五元组数据报的有效载荷字节(原始有效载荷)连结而成的一个有序序列;然后利用自然语言处理技术以N个flows为单位对其进行编码,生成恶意软件的流量矩阵;最后将流量矩阵输入卷积神经网络完成分类。本发明提供的分类方法仅使用了恶意软件网络流量的字节信息,无需协议逆向工程,适用于流量加密等多种场景;而且卷积神经网络的应用不仅避免了特征工程且有利于挖掘潜在的有效分类特征,增强方法的有效性;此外提供了一种基于文本表征的flow编码方法,在有效减小flow字节信息冗余的同时极大程度地保留了其全局字节信息,与基于灰度图表征的分类方法相比,该方法的有效性比较显著。
2、本发明对卷积神经网络的应用不仅避免了特征工程,而且有利于挖掘潜在的有效分类特征,提升方法的有效性。与其他基于特征工程的分类方法相比,本发明的分类方法具有更高的分类准确率。
3、本发明提供了一种基于文本表征的flow编码方法F2D,能生成卷积神经网络要求的具有固定大小输入的向量;更重要的是,能在有效减小flow字节信息冗余的同时极大程度地保留其全局字节信息,以便卷积神经网络挖掘分类特征。与基于灰度图表征的分类方法相比,该表征方法极大增强了分类的有效性。
4、本发明提供了一种基于滑动窗口的flow选择方法,支持选择N个flows作为一组,以便从多个角度刻画恶意软件的网络活动;此外,也可使样本的所有可用flows都能被用于模型训练和结果评估。
附图说明
图1基于原始有效载荷和深度学习的Android恶意软件分类框架。
具体实施方式
下面将结合具体实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1
作为本发明一较佳实施例,参照说明书附图1,本实施例公开了一种基于原始有效载荷和深度学习的Android恶意软件分类方法,该方法具体包括以下步骤:
S1、从恶意软件的PCAP文件中提取出每个完整的flow;
每个flow是由具有相同五元组的数据包的有效载荷字节(原始有效载荷)连结而成的一个有序序列,形式化地表示为:
F=(FI,FR)={Pi=(Ii,Ri|1≤i≤u)},其中FI=I1=I2=…=Iu,Pi是第i个数据报,Ii为Pi的五元组,Ri为Pi的原始有效载荷,u为数据报的数目;
S2、将S1步骤提取出的所有的flow存储在一个单向循环列表中,采用基于滑动窗口的选择算法,从该单向循环列表中采样多组N-flows;其中N-flows表示该滑动窗口选定的N个flows作为一组以描述恶意软件的网络活动;
S3、利用文本表征方法对多组N-flows分别进行编码,以生成多组流量矩阵;
S4、以流量矩阵作为卷积神经网络模型的输入,完成恶意软件分类模型的训练,得到恶意软件分类模型;
S5、基于S4步骤得到的恶意软件分类模型,采用集成策略预测恶意软件的家族;具体的,待测恶意软件生成对应的流量矩阵集{Mz|1≤z≤m},其中Mz表示第z个流量矩阵,m表示该待测恶意软件生成的流量矩阵数量;利用S4步骤得到的恶意软件分类模型得到第z个流量矩阵的预测结果pz=(pz1,…,pzv,…,ppw);按照家族类别下标v对流量矩阵集的m个预测结果求平均值,均值最大的类别作为该待测样本的最终分类结果,计算公式如下:
其中,C是家族类别集合,v∈{1,2,…,w},w是家族类别数。
实施例2
作为本发明又一较佳实施例,参照说明书附图1所示,本实施例是对上述实施例1中各步骤的具体实施方式的描述。
作为本实施例的一种实施方式,上述S1步骤中,从PCAP文件中提取出每个完整的flow,具体是指,对该PCAP文件中的数据报Pi,提取出其原始有效载荷Ri,然后按其五元组Ii将Ri加入对应flow的FR。
作为本实施例的又一种实施方式,上述S2步骤中,基于滑动窗口的选择算法,具体是指,给定一个恶意软件的所有flows,记作{F1,F2,…,Fn},将所有flows存储在一个单向循环列表中,在第e次训练中,从Fi开始沿着所述单向循环列表以窗口N为大小滑动采样一组flows,其中i=(e-1)×N%n+1;每次训练只有一组flows参与,随着训练次数e的增加,样本中所有flows均可用于构建模型。
作为本实施例的又一种实施方式,上述S5步骤中,待测恶意软件生成对应的流量矩阵集{Mz|1≤z≤m}具体是指,根据S1步骤提取出该待测恶意软件的所有flows,记作{F1,F2,…,Fn},将所有flows存储在一个单向循环列表中,n个flows直接被分割为m个组,m=[n/N],其中n表示flows数量,N表示滑动窗口大小;最多只有一个组需要沿着该单向循环列表采样;根据S3步骤生成m个组对应的流量矩阵集{Mz|1≤z≤m}。
作为本实施例的又一种实施方式,上述S3步骤中,利用文本表征方法对多组N-flows分别进行编码,具体是指,
将每个flow看作一个文档,每个字节当作一个词汇;基于词袋模型,将每个flow表示为其字节集合;鉴于一个字节仅有256中可能取值,表示为Bj∈{0,1,…,255};流Fi可以编码为一个256维的向量Xi;
使用词频-逆文档频率技术衡量每个字节Bj在Fi中的权重,Fi最终编码如下:
Xi={xi,1,xi,2,…,xi,j,…,xi,256},其中xi,j是Fi中Bj的权重,计算公式如下:
其中,bi,j是Fi中Bj出现的总次数,/>是Fi中所有字节出现次数的总和,dj是包含Bj的流数目;
在对N个flows编码后,形成恶意软件的流量矩阵,表示如下:
作为本实施例的又一种实施方式,上述S4步骤中,使用的卷积神经网络模型一共包含2个卷积层、2个池化层、3个全连接层;使用的卷积神经网络的隐藏层全部使用Relu激活函数,输出层使用Softmax激活函数,输入层是N×256的二维矩阵。
更进一步的,S4步骤中,是使用PyTorch深度学习框架,在装配有NVIDIA TeslaV100 GPU的Ubuntu服务器上构建卷积神经网络模型。
更进一步的,模型的初始权重随机生成,利用交叉熵计算损失,并通过Adam算法进行权重优化;不断地学习权值直到权重优化到合理值结束训练;批次大小batch size设置为32,训练次数epoch设置为100,其余超参数均使用默认值。
实施例3
作为本发明又一较佳实施例,参照说明书附图1所示,本实施例一种基于原始有效载荷和深度学习的Android恶意软件分类方法,通过下述技术方案实现。
一种基于原始有效载荷和深度学习的Android恶意软件分类方法,包括以下步骤:
步骤1:提取流(flows)。每个flow是由具有相同五元组的数据报的有效载荷字节(原始有效载荷)连结而成的一个有序序列,形式化地表示为:
F=(FI,FR)={Pi=(Ii,Ri|1≤i≤u)},其中FI=I1=I2=…=Iu,Pi是第i个数据报,Ii为Pi的五元组,Ri为Pi的原始有效载荷,u为数据报的数目。
鉴于恶意软件的所有flows混合在捕获的PCAP文件中,需要将每个完整的flow从该文件中提取出来。首先,对该文件中的数据报Pi,提取其原始有效载荷Ri。然后,按其五元组Ii将Ri加入对应flow的FR。如此按序处理PCAP文件中的所有数据报,即可重组出每个完整的flow。
步骤2:选择N-flows。鉴于单个flow不足以刻画恶意软件的网络活动,且每个恶意软件的flow数目不尽相同而卷积神经网络需要固定大小的输入,使用一种基于滑动窗口的选择算法采样N个flows作为一组以描述恶意软件的网络活动。给定一个恶意软件的所有flow,记作{F1,F2,…,Fn},该算法首先将所有flow存储在一个单向循环列表。随后,训练阶段和评估阶段分别采用不同策略进行选择。
训练阶段:在第e次训练中,从Fi开始沿着该列表以窗口N为大小滑动采样一组flows,其中i=(e-1)×N%n+1。每次训练只有一组flows参与,且随着训练次数e的增加,样本的所有flows都可用于构建模型。
评估阶段:n个flows直接被分割为m个组(m=[n/N]),最多只有一个组需要沿着列表循环采样。最后,集成所有组的预测结果作为恶意软件的评估结果。
步骤3:生成流量矩阵。利用文本表征方法对N-flows进行编码(记作F2D方法)以生成流量矩阵。具体来说,将每个flow看作一个文档,每个字节当作一个词汇;基于词袋模型,将每个flow表示为其字节集合。鉴于一个字节仅有256种可能取值,表示为Bj∈{0,1,…,255},所以流Fi可以编码为一个256维的向量Xi。然后,使用词频-逆文档频率技术衡量每个字节Bj在Fi中的权重,Fi最终编码如下:
Xi={xi,1,xi,2,…,xi,j,…,xi,256},其中xi,j是Fi中Bj的权重,计算公式如下:
其中,bi,j是Fi中Bj出现的总次数,/>是Fi中所有字节出现次数的总和,dj是包含Bj的流数目。在对N个flows编码后,形成恶意软件的流量矩阵,表示如下:
步骤4:训练分类模型。本发明使用的卷积神经网络结构类似于LeNet-5,其网络深度与LeNet-5相同,一共包含2个卷积层、2个池化层、3个全连接层。与LeNet-5不同的是,本发明使用的卷积神经网络的隐藏层全都使用Relu激活函数,输出层使用Softmax激活函数。考虑到恶意软件的流量矩阵大小固定,其长为N、宽为256,本发明提供的卷积网络的输入层是N×256的二维矩阵。
本发明使用PyTorch深度学习框架,在装配有NVIDIA Tesla V100 GPU的Ubuntu服务器上构建卷积神经网络模型。模型的初始权重随机生成;利用交叉熵计算损失,并通过Adam算法进行权重优化;不断地学习权值直到权重优化到合理值结束训练。批次大小batch_size设置为32,训练次数epoch设置为100,其余超参数均使用默认值。
步骤5:分类恶意软件。基于步骤4训练得到的分类模型,采用一个简单的集成策略预测恶意软件的家族。具体来说,首先载入已训练好的模型,将待测恶意软件通过步骤1、2、3进行处理,生成对应的流量矩阵集{Mz|1≤z≤m}。然后,利用模型得到第z个流量矩阵的预测结果pz=(pz1,…,pzv,…,ppw)。最后,按照家族类别下标v对流量矩阵集的m个预测结果求平均值,均值最大的类别作为该待测样本的最终分类结果,计算公式如下:
其中,C是家族类别集合,v∈{1,2,…,w},w是家族类别数。
Claims (8)
1.一种基于原始有效载荷和深度学习的Android恶意软件分类方法,其特征在于,具体包括以下步骤:
S1、从恶意软件的PCAP文件中提取出每个完整的flow;
每个flow是由具有相同五元组的数据包的原始有效载荷字节连结而成的一个有序序列,形式化地表示为:
F=(FI,FR)={Pi=(Ii,Ri|1≤i≤u)},其中FI=I1=I2=…=Iu,Pi是第i个数据报,Ii为Pi的五元组,Ri为Pi的原始有效载荷,u为数据报的数目;
S2、将S1步骤提取出的所有的flow存储在一个单向循环列表中,采用基于滑动窗口的选择算法,从该单向循环列表中采样多组N-flows;其中,N-flows表示该滑动窗口选定的N个flow作为一组以描述恶意软件的网络活动;
S3、利用文本表征方法对多组N-flows分别进行编码,以生成多组流量矩阵;
将每个flow看作一个文档,每个字节当作一个词汇;基于词袋模型,将每个flow表示为其字节集合;鉴于一个字节仅有256中可能取值,表示为Bj∈{0,1,…,255};流Fi可以编码为一个256维的向量Xi;
使用词频-逆文档频率技术衡量每个字节Bj在Fi中的权重,Fi最终编码如下:
Xi={xi,1,xi,2,…,xi,j,…,xi,256},其中,xi,j是Fi中Bj的权重,计算公式如下:
其中,bi,j是Fi中Bj出现的总次数,/>是Fi中所有字节出现次数的总和,dj是包含Bj的流数目;
在对N个flows编码后,形成恶意软件的流量矩阵,表示如下:
其中,T代表转置,/>就是第N个向量的转置;
S4、以流量矩阵作为卷积神经网络模型的输入,完成恶意软件分类模型的训练,得到恶意软件分类模型;
S5、基于S4步骤得到的恶意软件分类模型,采用集成策略预测恶意软件的家族;具体的,将待测恶意软件生成对应的流量矩阵集{Mz|1≤z≤m},其中,Mz表示第z个流量矩阵,m表示该待测恶意软件生成的流量矩阵数量;利用S4步骤得到的恶意软件分类模型得到第z个流量矩阵的预测结果pz=(pz1,…,pzv,…,ppw);按照家族类别下标v对流量矩阵集的m个预测结果求平均值,均值最大的类别作为该待测样本的最终分类结果,计算公式如下:
其中,C是家族类别集合,v∈{1,2,…,w},w是家族类别数。
2.如权利要求1所述的基于原始有效载荷和深度学习的Android恶意软件分类方法,其特征在于:S1步骤中,从PCAP文件中提取出每个完整的flow,具体是指,对该PCAP文件中的数据报Pi,提取出其原始有效载荷Ri,然后按其五元组Ii将Ri加入对应flow的FR。
3.如权利要求1或2所述的基于原始有效载荷和深度学习的Android恶意软件分类方法,其特征在于:S2步骤中,基于滑动窗口的选择算法,具体是指,给定一个恶意软件的所有flows,记作{F1,F2,…,Fn},将所有flows存储在一个单向循环列表中,在第e次训练中,从Fi开始沿着所述单向循环列表以窗口N为大小滑动采样一组flows,其中,i=(e-1)×N%n+1;每次训练只有一组flows参与,随着训练次数e的增加,样本中所有flows均可用于构建模型。
4.如权利要求1或2所述的基于原始有效载荷和深度学习的Android恶意软件分类方法,其特征在于:S5步骤中,将待测恶意软件生成对应的流量矩阵集{Mz|1≤z≤m}具体是指,根据S1步骤提取出该待测恶意软件的所有flows,记作{F1,F2,…,Fn},将所有flow存储在一个单向循环列表中,n个flows直接被分割为m个组,m=[n/N],其中,n表示flows数量,N表示滑动窗口大小;最多只有一个组需要沿着该单向循环列表采样;根据S3步骤生成m个组对应的流量矩阵集{Mz|1≤z≤m}。
5.如权利要求1或2所述的基于原始有效载荷和深度学习的Android恶意软件分类方法,其特征在于:S4步骤中,使用的卷积神经网络模型一共包含2个卷积层、2个池化层、3个全连接层;使用的卷积神经网络的隐藏层全部使用Relu激活函数,输出层使用Softmax激活函数,输入层是N×256的二维矩阵。
6.如权利要求5所述的基于原始有效载荷和深度学习的Android恶意软件分类方法,其特征在于:S4步骤中,是使用PyTorch深度学习框架,在装配有NVIDIA Tesla V100 GPU的Ubuntu服务器上构建卷积神经网络模型。
7.如权利要求6所述的基于原始有效载荷和深度学习的Android恶意软件分类方法,其特征在于:模型的初始权重随机生成,利用交叉熵计算损失,并通过Adam算法进行权重优化;不断地学习权值直到权重优化到合理值结束训练。
8.如权利要求7所述的基于原始有效载荷和深度学习的Android恶意软件分类方法,其特征在于:批次大小batch size设置为32,训练次数epoch设置为100,其余超参数均使用默认值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210608633.5A CN115062303B (zh) | 2022-05-31 | 2022-05-31 | 基于原始有效载荷和深度学习的Android恶意软件分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210608633.5A CN115062303B (zh) | 2022-05-31 | 2022-05-31 | 基于原始有效载荷和深度学习的Android恶意软件分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115062303A CN115062303A (zh) | 2022-09-16 |
CN115062303B true CN115062303B (zh) | 2024-04-05 |
Family
ID=83198869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210608633.5A Active CN115062303B (zh) | 2022-05-31 | 2022-05-31 | 基于原始有效载荷和深度学习的Android恶意软件分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115062303B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103235A (zh) * | 2017-02-27 | 2017-08-29 | 广东工业大学 | 一种基于卷积神经网络的Android恶意软件检测方法 |
CN110647745A (zh) * | 2019-07-24 | 2020-01-03 | 浙江工业大学 | 基于深度学习的恶意软件汇编格式的检测方法 |
CN113935033A (zh) * | 2021-09-13 | 2022-01-14 | 北京邮电大学 | 特征融合的恶意代码家族分类方法、装置和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9288220B2 (en) * | 2013-11-07 | 2016-03-15 | Cyberpoint International Llc | Methods and systems for malware detection |
US10200390B2 (en) * | 2016-02-29 | 2019-02-05 | Palo Alto Networks, Inc. | Automatically determining whether malware samples are similar |
-
2022
- 2022-05-31 CN CN202210608633.5A patent/CN115062303B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103235A (zh) * | 2017-02-27 | 2017-08-29 | 广东工业大学 | 一种基于卷积神经网络的Android恶意软件检测方法 |
CN110647745A (zh) * | 2019-07-24 | 2020-01-03 | 浙江工业大学 | 基于深度学习的恶意软件汇编格式的检测方法 |
CN113935033A (zh) * | 2021-09-13 | 2022-01-14 | 北京邮电大学 | 特征融合的恶意代码家族分类方法、装置和存储介质 |
Non-Patent Citations (4)
Title |
---|
DOMR: Toward Deep Open-World Malware Recognition;Tingting Lu等;IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY;20231130;第19卷;第1455-1468页 * |
F2DC: Android malware classification based on raw traffic and neural networks;Tingting Lu等;Computer Networks 217 (2022) 109320;20220828;全文 * |
MalClassifier: Malware Family Classification Using Network Flow Sequence Behaviour;Bushra A. AlAhmadi 等;2018 APWG Symposium on Electric Crim Research(eCrime);20180611;全文 * |
网络流量模型及异常检测技术研究;周琨;知网研学;20220115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115062303A (zh) | 2022-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | Network attacks detection methods based on deep learning techniques: a survey | |
Sun et al. | Deep learning and visualization for identifying malware families | |
CN109951444B (zh) | 一种加密匿名网络流量识别方法 | |
Zhang et al. | An intrusion detection system based on convolutional neural network for imbalanced network traffic | |
Haghighat et al. | Intrusion detection system using voting-based neural network | |
Dao et al. | Stacked autoencoder-based probabilistic feature extraction for on-device network intrusion detection | |
CN114697096A (zh) | 基于空时特征和注意力机制的入侵检测方法 | |
Ding et al. | Efficient BiSRU combined with feature dimensionality reduction for abnormal traffic detection | |
Cui et al. | More realistic website fingerprinting using deep learning | |
Alsufyani et al. | Social engineering attack detection using machine learning: Text phishing attack | |
CN115062303B (zh) | 基于原始有效载荷和深度学习的Android恶意软件分类方法 | |
Liu | Model extraction attack and defense on deep generative models | |
CN115883261A (zh) | 一种基于att和ck的电力系统apt攻击建模方法 | |
Zanddizari et al. | Generating black-box adversarial examples in sparse domain | |
Altuncu et al. | Deep learning based DNS tunneling detection and blocking system | |
CN111130942A (zh) | 一种基于消息大小分析的应用流量识别方法 | |
CN116471048A (zh) | 一种实时高效的物联网DDoS攻击检测方法及系统 | |
CN113159317B (zh) | 一种基于动态残差侵蚀的对抗样本生成方法 | |
Li et al. | A Method for Network Intrusion Detection Based on GAN-CNN-BiLSTM | |
din et al. | Detection of botnet in IoT network through machine learning based optimized feature importance via ensemble models | |
Nkongolo et al. | Ransomware detection using stacked autoencoder for feature selection | |
Xie et al. | Universal targeted attacks against mmWave-based human activity recognition system | |
Su et al. | Using Hybrid Deep Learning Model to Detect Anomaly Traffic Efficiently | |
Madwanna et al. | Yars-ids: A novel ids for multi-class classification | |
Jia et al. | A Method of Malicious Data Flow Detection Based on Convolutional Neural Network |
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 |