AI系列(一):换个思路检测隐蔽C2

AI 3年前 (2021) admin
744 0 0
    1.导语
    AI技术正逐渐应用于安全领域中,然而,如何提升AI模型的应用效果,是一个综合性问题。从样本收集,样本预处理,特征设计,特征选择,算法选择等等,构成AI模型的每一步以及不同的应用场景,都值得讨论。因此,本系列拟开一个系列专题,介绍如何更好地应用AI技术。在系列的第一篇中,也即是在本文中,我们将总体介绍检测隐蔽C2的一个完整流程,让大家有一个清晰的了解,后面的系列文章中,将详细讨论如何做好每一步的任务,已使模型达到更优秀的效果。
    隐蔽C2检测是业界的一个难题。原因是,现今的木马采用了多种隐蔽自身C2通信的方法,包括但不限于:1)加密混淆自身的通信载荷;2)利用通用的通信协议如TLS、HTTP等;3)利用公共的服务,如CDN和云函数等。这使得木马产生的C2通信跟正常通信的很难区分出来。AI模型的上限之一就是特征设计,即设计的特征能否反映以及多大程度上反映出正负样本的差异。特征工程如此重要,因此本文主要围绕这一点展开。

    2. 本文的方法
    2.1 正负样本差异假设及验证
    目前,基于数据包和会话流的特征设计,已经被探索得比较彻底,很难再发现新的特征。然而,以通信信道为检测对象,观察一段时间内,其中产生的多条会话流,并来探索正负样本的差异,这样的检测方案还比较少。本文定义的通信信道,指的是客户端与服务端建立的通信通道。具体是将目的IP和端口相同的会话流聚合到一起,视为属于同一个通信信道的流量。如下图所示。

AI系列(一):换个思路检测隐蔽C2

    以通信信道的视角观察,正负样本的差异,如下图所示,我们有这样几点假设:1)正常应用主要是从服务端中获取数据,包括文本、视频、图片等,通信载荷的方向主要是下行的方向,而木马程序,通常对内网主机进行信息收集和敏感资源获取,通信载荷的方向更偏向于上行。2)一般来说,正常应用对服务器的访问频次更高,内网的用户数也更高。

AI系列(一):换个思路检测隐蔽C2

    为验证这些的假设,我们可以利用统计分析的方法在正负样本集上进行对比,来观察在这些方面是否存在明显的差异。如下图所示,我们分别在上下行流量大小、通信频次和内网连接服务器数量上比较正负样本的差异。

AI系列(一):换个思路检测隐蔽C2

    从图1中可以看出恶意样本更偏向于上行载荷,而良性样本更偏向于下行载荷。而对于图2图3都可以看出,相对于良性样本,恶意样本对服务器的通信频次和内网与之通信的主机数量都要小一些,这符合我们前面的假设。
    那针对这些统计上的差异,如何设计特征,使其能在特征值上也能反映出这样的差异,这是特征工程的工作。由于通信信道中,存在多个大小不一的会话流。本文采用粒度计算的方式来表示特征,如下图所示。

AI系列(一):换个思路检测隐蔽C2

    首先设定划分的粒度,这里以5kB举例,会话流的大小落在哪个区间,该区间的计数增加1,最后求出每个区间所占的比例即为归一化统计值。这些划分的区间就是我们设计的特征。那良性样本和恶意样本在这些特征的对比图,就如下图所示。

AI系列(一):换个思路检测隐蔽C2

    可以很明显的看出,正负样本在某些特征值上具有很大的差异,因此,这些特征可以作为构建模型时用到的特征。
    那还有没有其它方面,能够反映出正负样本的差异呢。我们还提出了这样一个假设,正常应用为了兼容不同的操作系统和不同的浏览器,使得它们的密钥交换的内容不太一样;而恶意软件,通常不需要太多兼容性的考虑,TLS密钥协商过程通常都是固化在代码里,它们的密钥协商更倾向于一致。有了这个假设,我们首先还是在样本集上通过对比的方法,看是否存在这样的差异。我们通过计算TLS握手字段在通信信道中是否一致,并分别得到该字段在正常信道和C2信道一致的比例。如下表所示,正常信道和C2信道在这些字段上的一致性确实存在差异。
AI系列(一):换个思路检测隐蔽C2
    这可以作为模型所使用的第二类特征。同时,我们还可以仿造会话流的特征设计,来设计通信信道的基础特征。如通信信道中,最大/小的上行流,流之间的最大最小值时间间隔等。如下表所示。
AI系列(一):换个思路检测隐蔽C2

    2.2特征选择
    本文的特征选择采用如下图所示的过程。先利用信息增益算法,计算每个特征的信息增益值,再将信息增益值为0的滤除,代表的是无效的特征。再采用遗传算法来选择效果更优的特征组合,得到分类效果更好的特征子集。
AI系列(一):换个思路检测隐蔽C2
    特征选择有助于降低特征的维度,提升模型的性能,遗传算法具备挖掘出全局最优特征子集的潜力,但运行效率低。在初期的建模中,我们还可以使用前向或后向选择来构造特征子集,从而较快地选择出局部最优的特征子集。在这部分,后面的系列文章中会展开来讲。
 
    2.3实验
    2.3.1 TLSC2样本检测
    样本收集:良性样本来自于内网,抓取内网出口的样本;恶意样本有三个来源分别是:Malware Traffic (MT)[2],Canadian Institute forCybersecurity (CIC) malware database[3]和StratosphereIPS (SIPS) malware database[4]。从这些样本集中,经过必要的预处理环节,即如何选择出高质量的样本,这也是一个可以展开的话题,本文不再赘述。最后,提取的样本数量如下表所示。
AI系列(一):换个思路检测隐蔽C2
    在这些样本中,我们将MT和SIPS的视为普通的TLS C2样本;CIC由于是安卓平台下的样本集,我们将其视为深度协议伪装的TLS C2样本。在前面的特征工程部分,我们共得到了三类特征,分别是:
  •     分布特征(Distribution feature, DF)
  •     一致性特征(Consistency feature, CF)
  •     统计特征(Statistic feature, SF)
    我们第一个实验就是看这些特征,是否有效,建模算法是随机森林。

AI系列(一):换个思路检测隐蔽C2

    如下表所示,在这三类特征中,一致性特征的效果更好,其次是统计特征。然后将这三种特征合在一起建立模型,能够取得更优的效果。同时,我们利用本文提出的特征选择算法来进行特征选择,最终从864个特征中选择出304个有效特征。
    在第二个实验中,我们探索了通信信道中,会话流的数量对检测效果的影响。我们准备了20个通信信道,第一个通信信道包含一条流;第二个通信信道包含2条流,以此类推。如图所示,当一个通信信道中积累至少9条流时,模型的检测效果趋于稳定。

AI系列(一):换个思路检测隐蔽C2

    在第三个实验中,我们将本文的方法与其他两种方法进行了对比,一种是Cisco的方法[1],Cisco和我们的方法都是监督的;另一种是非监督的方法[5]。

AI系列(一):换个思路检测隐蔽C2

    从表中可以得出两个结论,一是监督的方法在检测效果上要比非监督的方法表现得更优异;二是本文的方法在应对深度协议伪装的样本集时,表现得比Cisco的方法更好,验证了本方法的有效性。

    2.3.2 普适性验证
    实际上,本方法不止可以应用在TLS协议的C2检测中,还能应用于HTTP协议的C2检测中。原因是,本文中对C2正负样本的假设,从原理上讲,在HTTP协议中同样成立。所不同的是,HTTP协议没有秘钥协商过程,也就没有TLS握手特征;但HTTP协议有HTTP头,也是明文字段,可以用这个代替。如下图所示为,HTTP协议请求头的部分字段。
AI系列(一):换个思路检测隐蔽C2
    为验证在HTTP协议上的有效性,我们同样需要经过样本收集和特征提取,过程与上一个实验一样,这里就不再详细介绍。我们直接看验证结果,将我们的方法与其他两种方法进行对比,一个是Niu等人[6]的方法,采用的是XGBoost算法建模;另一种是Ogawa等人[7]的方法,利用k-means加SVM的建模方式。其他两种方法在算法步骤上的复杂程度都是高于本文的随机森林的。但本方法的检测性能更加优异,不仅证明了本方法的有效性,还能在一定程度上体现出本文提出的特征确实能够反映C2通信和正常通信本质差异的优势。

AI系列(一):换个思路检测隐蔽C2

    3. 总结
    本文利用AI来检测隐蔽C2,其中主要工作其实并不在AI算法的构建上。而是放在了样本分析和特征设计上。样本和特征决定了AI模型的上限,这一点,在机器学习领域是十分正确的。
    本文的检测方案,主要经过了这样几个阶段:
    1. 假设,假设正负样本在哪些方面可以存在差异;
    2. 验证,在正负样本集上通过统计分析的方法可以验证假设;
    3. 特征工程,设计能够反映出这些差异的特征,并掌握快速选择特征的方法;
    4. 建模,选择合适的机器学习算法完成模型的建立。
    在这整个过程中,样本的分析几乎占到了这个工作的70%,特征工程占到20%,真正在AI算法层面的工作耗时反而较少。原因是,目前有很多的AI 算法开源套件可供使用,超参数的调整也有很多自动的方法,应用AI算法的门槛越来越低。后面的系列文章中,我们将介绍一些AutoML的方法。
    不过,可能会有读者会有这样的疑问,现在深度学习,神经网络不是很强大了吗,这些算法不需要特征选择这一步,为什么作者不考虑使用这些算法。深度学习我们确实尝试过使用,但在本文的场景下,它的效果并不比随机森林好多少,反而复杂的算法过程降低了样本的检测效率。另外,深度学习算法在样本量规模巨大和特征维度高时才更具优势。
    同时,深度学习算法在特征类型单一的情况下,能更好地发挥它的优势,如图片识别中,特征就是一个一个的像素点。将这些输入到深度学习模型中,并不需要考虑特征选择的步骤。但在C2通信的识别场景,特征类型不固定,数据包载荷,数据包长度序列,长度分布等这些特征,都可能是有用的特征,目前还没有一个算法能够启发式地设计这些特征,而这些工作目前还是只有领域专家来承担。也即是说,真正智能的AI模型,还有很长很长的路要走。但若掌握了本文的分析方法,应用AI技术到各类业务场景已不是问题,在此与大家共勉。
 
    参考文献:
    [1]Anderson B, Paul S, Mcgrew D. Deciphering Malware’s Use of TLS (WithoutDecryption)[J]. Journal of Computer Virology and Hacking Techniques, 2016,14(3): 195-211.
    [2] Malware Traffic. A Source for Pcap Files and MalwareSamples[EB/OL]. https://www.malware-traffic-analysis.net, 2020.
    [3] University of New Brunswick. Datasets [EB/OL].https://www.unb.ca/cic/datasets/index.html, 2020.
    [4]   StratosphereLab. Malware Capture Facility Project[EB/OL].https://www.stratosphereips.org/datasets-malware, 2020.
    [5] Su L, Yao Y, Li N, Liu J, Lu Z and Liu B.Hierarchical Clustering Based Network Traffic Data Reduction for ImprovingSuspicious Flow Detection[C]// In 2018 17th IEEE Internationa l Conference OnTrust, Security And Privacy In Computing And Communications/12th IEEEInternational Conference On Big Data Science And Engineering(TrustCom/BigDataSE), 2018: 744-753.
    [6] Niu W, Li T, Zhang X, Hu T, Jiang T, Wu H. Using XGBoostto Discover Infected Hosts Based on HTTP Traffic[J]. Security and CommunicationNetworks, 2019:1–11.
    [7] Ogawa H, Yamaguchi Y, Shimada H, Takakura H,Akiyama M, Yagi T. Malware Originated HTTP Traffic Detection Utilizing ClusterAppearance Ratio[C]// 2017 International Conference on Information Networking(ICOIN), 2017: 248-253.


原文始发于微信公众号(腾讯IT技术):AI系列(一):换个思路检测隐蔽C2

版权声明:admin 发表于 2021年11月26日 上午9:50。
转载请注明:AI系列(一):换个思路检测隐蔽C2 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...