Machine Learning for Encrypted Malware Traffic Classification

来源:互联网 发布:电商推荐算法 编辑:程序博客网 时间:2024/05/18 01:09

Machine Learning for Encrypted Malware Traffic Classification: Accounting for Noisy Labels and Non-Stationarity–阅读笔记

论文来源:2017 KDD
论文链接

  • Abstract
  • Introduction
  • Background
  • Algorithms
    • Linear Regression
    • Logistic Regression
    • Decision Tree
    • Random Forest
    • Support Vector Machine
    • Multi-layer Perceptron
  • Data
    • Collection Environments and Tools
    • Datasets
  • DATA FEATURES
    • Standard
    • Enhanced
  • RESULTS
    • Cross-Validated Accuracy
  • 知识点补充
    • TLS
    • 马尔可夫链

Abstract

加密恶意软件流量分类的机器学习:考虑噪声标签和非平稳性

不准确的基本事实和高度不固定的数据分布使得机器学习算法在恶意网络流量监测中结果不理想。

作者基于现实世界的制约,提供了具体的建议。

Introduction

除了被动监控要求之外,准确地识别单个基于会话级别上的恶意网络流量是必要的,因为它能保证网络设备(如路由器和交换机)有效地执行网络策略。

利用加密的网络传输的百分比正在迅速增加,恶意软件作者也利用这一趋势来逃避基于签名的检测。

由于隐私、法律和技术原因,使用中间人解密传输,然后使用传统技术来检测威胁并不理想。

考虑到上述约束条件,对加密网络会话的元数据进行机器学习是一个自然的解决方案。

网络数据中的不准确的基础事实和非稳定性使得机器学习难以达到满意的效果。

获取标记数据进行培训的最直接的方法是使用沙盒环境运行恶意软件,并收集样本的相关数据包捕获文件,以获得正面标记的恶意数据,并监视网络并收集所有负面标记的良性连接数据。

网络数据中的不准确的基础事实:

  • 对于良性的情况,即使在使用IP黑名单过滤数据集之后,通常会有一个不可忽视的网络流量百分比被认为是可疑的。
  • 对于恶意案件,恶意软件样本通常会执行连接性检查或其他固有的良性活动。

网络数据的非稳定性:

  • 在用户层面上,网站和服务的流行频繁变化。例如,将托管的云存储从box.com转换到google.com/drive/将对观察到的加密传输模式产生影响。
  • 在网络和协议级别,当TLS 1.3或HTTP / 2 等新协议发布时,可以引入更改点。这些修订可以显着影响握手和应用层消息的结构,影响用于分类的数据特征。

作者通过实验测试六种常见算法在面对网络安全领域中不准确的基础事实和不断发展的数据流时的表现。

作者还提供了用于此问题的标准特征集与在领域专家的帮助下开发的自定义特征集之间的比较。

一般来说,追求对数据的更深入的理解和对数据生成过程的反复证明是非常有价值的。

附加的数据特征可以减轻准确的地面真实标签方面的一些负担:恶意软件通常通过访问标准网站(例如https://www.google.com)来执行连接检查。标准的检测不可能从这种标准网站开始区分,但是,如果包含关于连接的附加功能(如TLS握手元数据:TLS提供有关始发客户端的信息)则可以区分这两种情况。

作者在算法和数据特征方面为从业者提供了具体的建议,以正确和健壮地对加密的恶意软件通信进行分类。

Background

TLS (运输层协议)是保护许多纯文本应用程序协议的主要协议,例如,HTTPS是TLS上的纯文本HTTP(应用层)协议。

一个简单的TLS会话的图形表示:
这里写图片描述

  1. 客户端最初发送一个ClientHello消息(未加密),该消息为服务器提供了一个密钥套件列表和客户端支持的一组TLS扩展:

    1. 密钥套件列表按照客户端的优先顺序排列,每个密码套件定义一组TLS运行所需的加密算法。
    2. TLS扩展扩展为服务器提供了附加信息,以便于扩展功能。
  2. ClientHello之后,服务器发送一个ServerHello消息,其中包含:

    1. 从客户机列表中选择的选定密码套件,该列表定义了将用于保护交换的应用程序数据的一组加密算法。
    2. 服务器支持的扩展列表,其中该列表是客户端支持的子集。此时,服务器还会发送一个包含服务器证书链的证书消息,该证书消息可用于对服务器进行身份验证。
  3. 客户端然后发送一个ClientKeyExchange消息,建立TLS会话的预主密钥。

  4. 客户端和服务器交换ChangeCipherSpec消息,指示将来的消息将使用协商的密码参数进行加密。
  5. 客户端和服务器开始交换应用程序数据。

Algorithms

Linear Regression

线性回归: 找到一个线性模型,使得系数向量w使数据样本和标签之间的残差平方和误差最小。

  • 优点:有利于训练/测试,并且通过权重向量与数据特征之间的相互作用可以容易地解释所产生的预测。
  • 缺点:依赖于数据特征的缩放,不能模拟非线性函数,并且即使在数据是线性可分的情况下,经常在分类设置中表现不佳。

Logistic Regression

逻辑回归返回一个适当的概率,可以解释为一个特征向量属于一个特定类别的概率。 我们使用了逻辑回归的两个不同版本:l2-正则化和l1-正则化。

  • 优点:数据特征与模型参数之间存在一一对应关系,得到的模型很容易解释。

Decision Tree

决策树学习输入特征的简单规则,将空间划分为不同的类。

  • 优点:决策树学习相对有效,易于解释,即一组规则可以与每个输出相关联;决策树能应对特征缩放。
  • 缺点:对于类别倾斜不具有鲁棒性。

这里使用网格搜索和交叉验证来调整两个可调超参数:在寻找最佳分割和树的最大深度时要考虑的特征的数量。

  • 对于特征的数量,考虑了所有特征,以及所有特征的平方根和底对数。
  • 对于最大深度,考虑样本数的平方根和基数为2的对数。

Random Forest

随机森林使用决策树集合进行预测。从完整数据集的引导样本中学习每个单独的决策树,集合的输出是所有单独树木的平均概率。

  • 优点:(虽然增加了单个树的偏差分量,)但是平均输出的方差却大大降低,能得到更好的性能。
  • 缺点:可解释度不高。

这里使用网格搜索和交叉验证来调整每个分割的特征数量和树的深度。

Support Vector Machine

基于核的支持向量机通过使用内核技巧来将样本投影到更高维的特征空间,其中不同类更可能是线性可分的,从而学习非线性函数。

  • 优点:模型在给定适当的核函数的情况下具有很小的偏差,并且非常适合于高维特征空间。
  • 缺点:模型通常具有非常低的可解释性。

对于支持向量机,有以下可调超参数:

  • 核函数:二阶和三阶多项式核函数和一个高斯核函数;
  • 软边缘参数:以105105之间的数量级进行搜索。
  • 假设一个高斯核,内核的宽度。以105105之间的数量级进行搜索。

Multi-layer Perceptron

具有两个或更多隐藏层的多层感知器(MLP)模型可以学习高度非线性函数。 但是,这些模型也有许多需要学习的参数,并且有潜在的重要性。

再次使用网格搜索和交叉验证来调整MLP模型的超参数。

  • 对于隐藏层的数量,在2到5之间搜索,步长为1。
  • 对于每层神经元的数量,我们在32到512之间以2的幂次次搜索。
  • 对于退出正则化参数,我们以0.05的增量在0.1和0.5之间进行搜索。

Data

Collection Environments and Tools

作者利用三种环境来收集数据:

  • 两个企业网络(每个网络拥有500-1,000个活动用户):被动地实时监控所有出站互联网流量。两个企业网络属于同一家公司,虽然网络流量将具有许多独特的地理特征,但由于类似的端点配置,也会有许多重叠的会话。
  • 一个恶意软件分析沙箱:恶意软件分析沙箱允许用户提交可疑的可执行文件,每个提交的样本可以运行5分钟。收集完整的数据包并存储每个样本。由于恶意软件沙箱将样本运行时间限制为5分钟,因此在此初始窗口之后的任何活动都不会被捕获。此外,任何与选定的Windows版本不兼容或没有严重依赖性的恶意软件样本都将无法运行。

作者编写了一个基于libpcap的开源软件包Joy 来处理实时传输和数据包捕获文件。 Joy将网络数据转换为包含所有相关数据特征的JSON格式。

对于所有的实验,我们只使用完成TLS握手的TLS会话,并发送应用程序数据。

Datasets

表1提供了我们收集的数据的摘要,按月分段。
这里写图片描述

DATA FEATURES

  • 标准数据集:22个数据特征;
  • 由领域专家开发的更具表达性的特征集:319个数据特征;

Standard

对于标准的一组特征(22个特征)包括以下:

  • 客户端→服务器数据包长度的最小值,平均值,最大值和标准偏差;
  • 服务器→客户端数据包长度的最小值,平均值,最大值和标准偏差;
  • 客户端→服务器数据包到达时间的最小值,平均值,最大值和标准偏差;
  • 服务器→客户端数据包到达时间的最小值,平均值,最大值和标准偏差;
  • 协议;
  • 网络连接的持续时间;
  • 客户端→服务器数据包和字节数,
  • 服务器→客户端数据包和字节数。

我们比较了六种常用算法:线性回归,l 1 / l 2-logistic回归,决策树,随机森林集成,支持向量机和多层感知器。 我们的目标是覆盖大量不同的学习和优化算法,而不是创建单独的超优化算法。 出于这个原因,当调整超参数时,我们简单地使用网格搜索和交叉验证一组标准值。 除了使用Keras [12]的多层感知器之外,我们使用了Scikit-learn [33]的实现。 再次,我们的重点是在监督学习技术[37]

Enhanced

增强的数据特征集通过合并单独的数据包长度和时间扩展了标准数据集,提供了应用程序行为步骤的更详细视图,以及TLS元数据,它提供了应用程序用于TLS的库的信息。

分组长度
图2显示了两个不同的TLS会话的数据包长度和到达间隔:图2a中的Google搜索和图2b中的bestafera发起的连接。 x轴代表时间,上行代表从客户端发送到服务器的数据包大小,下行代表从服务器发送到客户端的数据包大小。红线表示未加密的消息,黑线是加密的。
这里写图片描述

  • Google搜索遵循一个典型的模式:客户端的初始请求是在一个小的出站数据包中,然后是跨越多个MTU大小的数据包的大量响应。几个交替的数据包是由于Google试图在用户仍然打字时自动完成搜索。一旦Google对自动完成的结果有足够的置信度,它就会发送一组更新的结果,并由另一个跨越多个MTU(Maximum Transmission Unit,最大传输单元)大小的数据包的响应来显示。
  • bestafera与之通信的服务器是通过发送一个包含自签名证书的数据包开始的,该数据包可以被看作是图2b中的第一条向下的细红线。握手后,客户端立即开始向服务器提交数据。有一个暂停,然后服务器定期发送命令和控制信息。分组长度和到达时间不能提供对会话内容的深入了解,但它们确实有助于推断会话的行为方面。

对于特定的功能,我们记录了会话的前50个数据包的有效载荷的大小。然后,我们将这些大小表示为一阶马尔可夫链。我们假定一个1,500字节的MTU,并创建了10个状态,每个状态为150个字节,并且估计具有收集的包大小的状态之间的转换概率。

TLS握手元数据

TLS ClientHellomessage提供了两个特别有趣的信息,可以用来区分不同的TLS库和应用程序。

  • 客户端根据客户端的偏好定义合适的密码套件列表。每个密码套件都定义了一组方法,例如加密算法和伪随机函数,这些方法将用于建立连接并使用TLS传输数据。每个密码套件的数量可同,可不同。
  • 客户端还可以通告一组TLS扩展,此外,还可以向服务器提供密钥交换所需的参数。扩展名列表根据连接的上下文而不同。

由于大多数应用程序通常具有不同的优先级,因此这些列表实际上可能包含大量的歧视性信息。

大多数用户级别的应用程序以及扩展中大量的TLS连接都使用流行的TLS库,如:

  • BoringSSL(Chrome)
  • NSS(Firefox)
  • SChannel(Internet Explorer)

这些应用程序通常具有唯一的TLS指纹,因为开发人员将修改库的默认值以优化其应用程序。

在这项工作中,作者从所提供的密码套件和扩展名列表中推导出特征,它们提供关于发起会话的客户端的信息。

作者观察到197个独特的密码套件和扩展。创建了一个长度为197的二进制向量,并且如果TLS会话支持相关的密码套件或扩展名,则为其分配1。

RESULTS

鉴于在网络安全领域进行监督学习的两个主要问题:数据中的非平稳性和噪声标签。设计了几个实验来评估六种流行算法的优缺点;还分析了增强特征集对算法的影响。

Cross-Validated Accuracy

图3a和3b中最左边的列显示了企业流量与恶意流量之间的10倍交叉验证准确度。

  • 标准数据集,随机森林集合和单一决策树表现最好。
  • 增强特征数据集时,分类之间的这种差异消失了,除了线性回归外,所有分类在分类准确性方面都没有统计意义上的显着差异。
    这里写图片描述

即使是中等规模的网络,每天也有数千万的网络连接。由于这种规模,以及可能针对潜在恶意会话采取的典型的补救措施,保持较低的误报率比总的准确性要重要得多。图3还报告了0.001%的错误发现率(FDR)中的精度。这是分类的准确性,因为每10万真实肯定只允许一个误报。这个严格的度量被用作在真实网络环境中应该预期的结果的代理,即测试数据集中相对平衡的类别组成是不现实的。随机森林集合是唯一一个在使用标准表示时在.001%FDR处具有显着大于零精度的分类。随着增强的表示,所有的算法,除了线性回归和决策树,都使用这个度量来执行。

知识点补充

TLS

TLS(Transport Layer Security,安全传输层协议)用于在两个通信应用程序之间提供保密性和数据完整性。
该协议由两层组成:

  • TLS 记录协议(TLS Record)
  • TLS 握手协议(TLS Handshake)

较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面,与具体的应用无关。

马尔可夫链

马尔可夫链,是指数学中具有马尔可夫性质的离散事件随机过程。该过程中,在给定当前知识或信息的情况下,过去(即当前以前的历史状态)对于预测将来(即当前以后的未来状态)是无关的。

在马尔可夫链的每一步,系统根据概率分布,可以从一个状态变到另一个状态,也可以保持当前状态。状态的改变叫做转移,与不同的状态改变相关的概率叫做转移概率。随机漫步就是马尔可夫链的例子。

原创粉丝点击