基于机器学习的恶意软件加密流量检测研究分享

  • 1 概述
  • 2 恶意软件加密流量介绍
  • 3 加密HTTPS流量解析
  • 4 特征工程
  • 5 模型效果
  • 6 具体实施
  • 7 总结

1 概述

近年来随着HTTPS的全面普及,为了确保通信安全和隐私,越来越多的网络流量开始采用HTTPS加密,截止今日,超过65%的网络流量已使用https加密。

HTTPS的的推出,主要是为了应对各种窃听和中间人攻击,以在不安全的网络上建立唯一安全的信道,并加入数据包加密和服务器证书验证。但是随着所有互联网中加密网络流量的增加,恶意软件也开始使用HTTPS来保护自己的通信。

这种情况对安全分析人员构成了挑战,因为流量是加密的,而且大多数情况下看起来像正常的流量。 检测企业内部HTTPS流量的一种常见的解决方案是安装HTTPS拦截代理。 这些硬件服务器可以通过在其计算机中安装特殊证书来打开和检查员工的HTTPS流量。 HTTPS拦截器位于客户端和服务器之间,其中加密流量被解密,扫描恶意软件后,再次加密并发送到目标IP。 此方法允许使用经典检测方法来检测未加密的恶意软件流量。 使用拦截器的问题在于它昂贵,计算要求高,同时造成网络性能下降,而且它不尊重HTTPS的原始想法,即拥有私密和安全的通信。

本文将为大家介绍一种在不解密流量的情况,可以高精度地检测恶意软件HTTPS流量的技术。

2 恶意软件加密流量介绍

2.1 使用加密通信的恶意软件分类

目前使用加密通信的恶意软件家族超过200种,使用加密通信的恶意软件占比超过40%,使用加密通信的恶意软件几乎覆盖了所有常见类型,如:特洛伊木马、勒索软件、感染式、蠕虫病毒、下载器等,其中特洛伊木马和下载器类的恶意软件家族占比较高。

基于机器学习的恶意软件加密流量检测研究分享

C&C直连 – 恶意软件在受害主机执行后,通过TLS等加密协议连接C&C(攻击者控制端),这是最常见的直连通讯方式。

检测主机联网环境 – 部分恶意软件在连接C&C服务器之前,会通过直接访问互联网网站的方式来检测主机联网情况,这些操作也会产生TLS加密流量。通过统计发现:使用查询IP类的站点最多,约占39%;使用访问搜索引擎站点约占30%,其它类型站点约占31%。

母体程序正常通信 – 感染式病毒是将恶意代码嵌入在可执行文件中,恶意代码在运行母体程序时被触发。母体被感染后产生的流量有母体应用本身联网流量和恶意软件产生的流量两类。由于可被感染的母体程序类别较多,其加密通信流量与恶意样本本身特性基本无关,本文就不做详细阐述。

白站隐蔽中转 – 白站是指相对于C&C服务器,可信度较高的站点。攻击者将控制命令或攻击载荷隐藏在白站中,恶意软件运行后,通过SSL协议访问白站获取相关恶意代码或信息。通过统计发现,最常利用的白站包括Amazonaws、Github、Twitter等。

蠕虫传播通信 – 蠕虫具有自我复制、自我传播的功能,一般利用漏洞、电子邮件等途径进行传播。监测显示近几年活跃的邮件蠕虫已经开始采用TLS协议发送邮件传播,如Dridex家族就含基于TLS协议的邮件蠕虫模块。

其他通信 – 除以上几类、还有一些如广告软件、漏洞利用等产生的恶意加密流量。

3 加密HTTPS流量解析

3.1.Https简介

HTTPS协议也称为SSL上的HTTP安全或超文本传输协议,是以安全为目标的 HTTP 通道,通过传输加密和身份认证保证了传输过程的安全性 。 如果没有加密,任何设法查看客户端和服务器之间的数据包的人都可以读取通信。

Http:在通讯的过程中,以明文的形式进行传输,采用wireshark抓包的效果如下:

基于机器学习的恶意软件加密流量检测研究分享

3.2.流量深度解析

3.2.1 流量解析日志生成

使用流量包深度解析方式提取HTTPS流量中的足够信息日志,包括连接通信日志、SSL协议日志、证书日志三部分。

从3个日志中可以获得以下信息:
(1)连接记录
每一行聚合一组数据包,并描述两个端点之间的连接。连接记录包含IP地址、端口、协议、连接状态、数据包数量、标签等信息。

(2)SSL记录
它们描述了SSL/TLS握手和加密连接建立过程。有SSL/TLS版本、使用的密码、服务器名称、证书路径、主题、证书发行者等等。

(3)证书记录
在日志中的每一行都是一个证书记录,描述证书信息,如证书序列号、常用名称、时间有效性、主题、签名算法、以位为单位的密钥长度等。

3.2.2 流量解析日志中的数据关联

流量包深度解析后生成日志数据,任何日志中的每一行都有唯一的键,用于链接其他日志中的行。
– 通过连接日志记录中的唯一键,可以和SSL协议日志中的唯一键进行2个记录的关联。
– 通过协议日志中一列使用逗号拼接成的id键值,可以在证书日志中找到每个id对应的证书记录。

基于机器学习的恶意软件加密流量检测研究分享

4 特征工程

基于连接4元组进行特征提取,通过来自连接日志、SSL协议日志、证书日志中的数据创建连接4元组,并提取特征用于机器学习模型训练。

4.1 连接4元组

根据连接日志中的id、SSL协议日志中的id进行连接,再根据得到的conn_ssl.log中的证书路径,取第一个key,和证书日志中的id进行再次关联,在得到的关联结果中,根据连接4元组(源IP、目标IP、目标端口和协议)相同的数据,进行group聚合操作,然后对于得到的每个连接4元组,根据聚合结果进行特征提取。

基于机器学习的恶意软件加密流量检测研究分享

最后,为了便于测试模型效果,使用Flask开发了一个web在线检测页面,可以上传pcap进行检测恶意流量,收集20个最新的恶意软件进行测试,最后检出20个。

基于机器学习的恶意软件加密流量检测研究分享

7 总结

本文介绍了基于机器学习的检测恶意加密流量的方法,首先需要了解https的相关知识,还需要对流量解析器解析出来的连接日志、协议日志、证书日志中的字段含义有比较深入的了解。最后,在具体实施的过程中,还需要对数据进行清洗和过滤,比如恶意软件流量中会夹杂一些正常流量,可以根据域名进行过滤,保证训练数据的准确性。

转载出处:斗象能力中心TCC-Chris

来源:yuan_mes

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年8月24日
下一篇 2020年8月24日

相关推荐