恶意加密流量是当前流量安全检测的痛点和难点。在未解密的情况下如何检测恶意加密流量,机器学习可提供颇为有效的解决方案。传统机器学习依赖于训练数据集和特征工程,而搜集的各类恶意加密流量种类繁多,且可能含有“杂质”,如果对这些数据不加区分,直接进行训练,将会影响模型检测的准确率和误报率。
我们把些恶意加密流量分为三类:恶意软件使用加密通信、加密通道中的行为、恶意或非法加密应用。本文主要针对“恶意软件使用加密通信”进行分析,接下来将从三个方面进行阐述:
- 恶意软件使用加密通信要素统计;
- 使用加密通信的恶意软件分类;
- 恶意软件加密通信方式分析。
一、恶意软件使用加密通信要素统计
为从宏观上总结恶意软件加密通信规律,我们对加密流量(十万个有效的恶意样本)的众多要素进行了统计分析。本文对其中四个要素:通信端口、SSL协议版本、客户端支持的加密套件个数和提供的扩展个数进行统计分析,从统计结果来看,恶意软件加密通信的要素存在一定的规律:
1. 通信端口
恶意软件加密通信使用的端口较为广泛,不仅包括TCP443、TCP465等标准端口,还包括部分非标准端口。整体来看采用TCP443端口最多,占85%以上;其他三个使用比较多的端口为TCP449、TCP9001、TCP465,分别占5.48%、3.71%、1.96%。
图1 恶意加密流量端口分布
2. TLS/SSL协议版本
在恶意软件的加密流量中,使用TLSv1.2协议通信的占53.56%。早期的几类TLS/SSL版本仍在广泛使用,如
TLSV1.2占56.24%,TLSV1.0占36.26%,SSLV3占6.97%,TLSv1.1和SSLV2占的比重极小。
图2 恶意加密流量TLS协议分布
3. 客户端支持的加密套件个数
从统计结果看到,有将近35%的恶意软件支持12个加密套件,将近25%的恶意软件支持21个,约10%的恶意软件支持36个。
图3 客户端支持的加密套件个数统计
4. 客户端提供的扩展个数
通过统计发现,超过98%的恶意软件客户端提供的TLS扩展个数小于7;其中占比较大的扩展个数是5、3、0,分别占38%、32%、11%。
图4 恶意软件客户端提供的扩展个数
二、使用加密通信的恶意软件分类
我们监测发现,使用加密通信的恶意软件家族超过200种,所有恶意软件中使用加密通信占比超过40%,平均每天新增使用加密通信的恶意软件数量超过1000个,使用加密通信的恶意软件几乎覆盖了所有常见类型,如:特洛伊木马、勒索软件、感染式、蠕虫病毒、下载器等,其中特洛伊木马和下载器类的恶意软件家族占比较高。
图5 加密通信的恶意软件分类
六大类恶意软件TOP5的病毒家族如下(微软杀毒引擎):
图6 典型加密通信恶意软件Top5
三、恶意软件加密通信方式
通过对恶意加密流量的分析,我们把恶意软件产生加密流量的用途分为以下六类:C&C直连、检测主机联网环境、母体正常通信、白站隐蔽中转、蠕虫传播通信、其它。恶意加密流量用途与各类恶意软件的对应关系如下:
下面,我们将对各类加密通信方式进行阐述:
1. C&C直连
恶意软件在受害主机执行后,通过TLS等加密协议连接C&C(黑客控制端),这是最常见的直连通讯方式。基于我们监测的数据统计结果,C&C地理位置分布统计情况如下:
图7 C&C地理位置
2. 检测主机联网环境
部分恶意软件在连接C&C服务器之前,会通过直接访问互联网网站的方式来检测主机联网情况,这些操作也会产生TLS加密流量。通过统计发现:使用查询IP类的站点最多,约占39%;使用访问搜索引擎站点约占30%,其它类型站点约占31%。
图8 检测主机联网环境站点
3. 母体程序正常通信
感染式病毒是将恶意代码嵌入在可执行文件中,恶意代码在运行母体程序时被触发。母体被感染后产生的流量有母体应用本身联网流量和恶意软件产生的流量两类。由于可被感染的母体程序类别较多,其加密通信流量与恶意样本本身特性基本无关,本文就不做详细阐述。
4. 白站隐蔽中转
白站是指相对于C&C服务器,可信度较高的站点。黑客将控制命令载荷隐藏在白站中,恶意软件运行后,通过SSL协议访问白站获取相关恶意代码或信息。通过统计发现,最常利用的白站包括Amazonaws、Github、Twitter等。
图9 白站隐蔽中转站点排行
隐藏恶意代码的中转文件类型包括图片、脚本、二进制数据等,如下三个实例:
5. 蠕虫传播通信
蠕虫具有自我复制、自我传播的功能,一般利用漏洞、电子邮件等途径进行传播。监测显示近几年活跃的邮件蠕虫已经开始采用TLS协议发送邮件传播,如Dridex家族就含基于TLS协议的邮件蠕虫模块。我们对36个蠕虫家族样本进行分析,有5个家族使用加密通信协议与C&C服务器建立连接:
图10蠕虫样本加密通信占比
6. 其他通信
除以上几类、还有一些如广告软件、漏洞利用等产生的恶意加密流量。
四、总结
我们将常见的恶意软件使用加密通信方式总结如下图:
图11 恶意软件加密通讯示意图
我们利用上述分类方法,对前期流量数据进行分类处理,将恶意加密流量中的杂质进行过滤、并对其进行分类,再进行特征工程和模型训练调参。数据分类处理的细度和准确度,将直接影响最终模型检出的准确率和误报率。
【本文是51CTO专栏作者“李少鹏”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】