前言
本文是关于个人阅读Deciphering Malware’s use of TLS (without Decryption)时的个人阅读笔记,原文点击此处
一、简介
Deciphering Malware’s use of TLS (without Decryption)是Anderson等人于2016年发表的关于采用机器学习进行恶意加密流量检测的论文,该论文以特征提取和特征设计为主要内容,最后将提取的特征分为四个特征子集,然后采用逻辑斯蒂二分类模型和多分类模型进行训练,得到可用于区分恶意加密流量和正常加密流量的二分类器及用于进一步找出恶意加密流量所属恶意软件家族的多分类器。该论文通过对不同特征子集训练所得的分类器进行验证,得出特征设计对于采用机器学习的方法进行恶意加密流量检测的重要性。
二、数据集
数据集包括恶意加密流量和正常加密流量,恶意加密流量是通过沙箱运行恶意软件采集的通过TLS协议加密流量,共含18种恶意软件家族,详见图1。正常加密流量是通过截获公司内部流量所得。由于进行沙箱模拟的操作系统中也有可能额外发出一些加密流量,所以对通过沙箱模拟的恶意流量安装其TLS握手包中采用的密码套件列表是否与操作系统提供的密码套件列表进行进行了筛选。
三、特征提取
图2 恶意TLS流量与正常TLS流量客户端提供的密码套件、公钥长度、TLS扩展件、采用的客户端共四种特征数据对比图,其中红色代表恶意加密流量,蓝色代表正常加密流量,且为方便展示已对各密码
图3 恶意TLS流量与正常TLS流量服务器端采用的密码套件、证书有效时长、SAN证书数量、服务器端选择的TLS扩展件四种特征数据对比图,其中红色代表恶意加密流量,蓝色代表正常加密流量,且为方便展示已对各密码套件和TLS扩展件进行编号
图4 不同恶意软件家族所用的TLS客户端、提供的密码套件、TLS扩展项和客户端公钥长度
图5 不同恶意软件家族服务器端特有IP地址、自签证书数量、选择的密码套件及证书类别对比
该论文对恶意加密流量与正常加密流量之间及不同恶意软件家族产生的恶意加密流量之间的各方面数据进行了分析,分析结果如图2、3、4、5。最后根据分析结果提取了五种特征,包括Metadata、SPLT、BD、Unencrypted TLS Header Information、SS。
Metadata:即加密流量元数据,包括输入数据长度、输出数据长度、输入包数量、输出包数量、源端口、目的端口、流量传播的时长。
SPLT:Sequence of Packet Lengths and Times,即数据包差昂达度和到达间隔时长序列。
BD:Byte distribution,即字节分布,是用于记录字节分布情况且长度为256的数组。
Unencrypted TLS Header Information:即处于握手阶段还未进行加密的TLS协议的头部信息,包括客户端提供的密码套件列表和TLS扩展项、服务端选择的密码套件和TLS扩展项、签名证书、客户端公钥长度、记录的长度和时间和类型序列。
SS:Self-Signed,即TLS协议中使用的证书是否为自签证书(采用SS代表该特征)。
该论文将以上五种特征划分了四个特征子集,特征子集1仅包括Meta、SPLT、BD三种特征,特征子集2仅包括Unencrypted TLS Header Information这一种特征,特征子集3包括Meta、SPLT、BD、Unencrypted TLS Header Information四种特征,特征子集4包括Meta、SPLT、BD、Unencrypted TLS Header Information、SS五种特征。再采用逻辑斯蒂二分类模型和多分类模型分别对以上四个特征子集进行了训练,共获得八个分类器,包括四个二分类器和四个多分类器。二分类器用于区分恶意加密流量和正常加密流量,多分类器用于找出恶意加密流量所属的恶意软件家族。
四、实验结果
实验结果如图6、7,可见包括Meta、SPLT、BD、Unencrypted TLS Header Information、SS五种特征的特征子集4所训练的分类器效果最佳。由五种特征共同训练所得二分类器准确率可达99.6%,多分类器准确率对于多数恶意软件家族可达100%,其余恶意软件家族准确率均在96%以上。同时,仅采用TLS协议中的参数作为特征时,对恶意加密流量与正常加密流量分类的准确率为98.2%,且恶意软件家族Deshacop的分类准确率仅63.6%,由此可见特征设计对于该类方法的重要性。
图6 采用不同特征子集训练二分类器的准确率,All Data指恶意加密流量中含由底层操作系统发出的TLS流量,No SChannel指不含由底层操作系统发出的TLS流量
图7 采用不同特征子集训练多分类器的准确率