【APT检测——论文精读】基于独立访问的APT中C&C检测

文章分析了高级持续性威胁(APT)中的命令与控制(C&C)特性,发现C&C通信倾向于独立访问,不同于正常HTTP请求。提出了一种新的C&C检测方法,通过度量DNS记录中的并发域(CODD)来区分C&C域和正常域,这种方法在公共数据集上进行了验证,显示了其在检测APT中的潜力。
摘要由CSDN通过智能技术生成

Detection of Command and Control in Advanced Persistent Threat based on Independent Access

摘要

随着网络攻击技术的不断发展,高级持续性威胁(Advanced Persistent Threat, APT)对网络安全的威胁越来越大。APT是一种交互性强、针对性强、危害极大的以网络为中心的攻击。APT在攻击过程中利用各种技术手段逃避检测,导致受害者在遭受巨大损失时才意识到被攻击。由于命令与控制(C&C)是APT生命周期中的一个重要组成部分,因此对其进行检测是防御APT的一种实用措施。本文分析了APT中C&C流量的特点,发现基于http的C&C流量被广泛使用。基于分析结果,我们提出了C&C的一个新特性,即独立访问,以表示C&C通信与正常HTTP请求之间的区别。将独立访问特性应用到DNS记录中,实现了一种新的C&C检测方法,并在公共数据集上进行了验证。

1 Introduction

网络攻击正变得比以往任何时候都更有针对性、更专业、更复杂。随着这些变化,一种名为高级持续性威胁(APT)的新型网络威胁出现了。APT在2006年首次使用,并在2010年因为谷歌被极光行动攻击而广为人知。2011年,美国国家标准与技术研究院(NIST)正式将APT定义为“高级持续性威胁:

  • 在很长一段时间内反复追求其目标;
  • 适应防御者的防御行为
  • 坚持保持其目标所需相互交互的水平。

一般来说,apt主要集中在大型组织,特别是在科技行业、金融行业、制造业、政府机构和军事领域,因为它们总是受到特定任务的驱动。apt往往会导致重大损失,如关键情报财产泄露、基础服务中断、关键基础设施破坏等。此外,APT难以检测,原因如下:

  1. APT利用未知漏洞,导致基于签名的传统检测方法失效;
  2. APT使用多种隐藏技能,例如rootkit、封锁安全软件以及与命令和控制(C&C)的低和慢的通信,使攻击不引人注目;
  3. APT的时间跨度大,将用来重建攻击场景的警报关联变成了一个大数据问题,目前还没有得到有效解决。

APT作为一种新颖复杂的攻击手段,目前还没有得到充分的认识和有效的防范。一开始,许多研究对现有的APT案例进行了大量的分析。在此之后,扩展了各种多阶段模型来描述APT案例、关联警报、重建攻击场景和预测攻击。异常检测理论也被应用于对这种自定义的以网络为中心的攻击进行检测。

本文主要研究APT的核心阶段,即C&C,并对C&C传播进行研究。我们发现了一个新的特征,即C&C域名的访问趋于独立,而合法域名的访问趋于相关,能够有效地区分C&C域名和合法域名。为了利用这一特性,我们引入了一个新的概念,即域名服务(DNS)记录中的**并发域(CODD)**来度量域之间的相关性。基于这一特征,我们使用1×3向量来表示内部主机与外部域之间的关系,并应用分类算法来检测C&C。该方法在Los Alamos国家实验室提供的公共数据集上进行了验证。
本文的其余部分组织如下:第二部分介绍了以往关于APT和C&C检测的研究。在第三节中,我们总结了APT中C&C的主要特征,并提出了一种新的C&C检测方法。第四节给出了实验和数值结果,然后是第五节的讨论和结论。

2 相关工作

根据[4]中APT的一系列分析,APT的生命周期可以分为[5]的四个阶段,即初始妥协、C&C、横向移动和攻击成果。

  1. 初始妥协:社会工程攻击,如鱼叉式网络钓鱼电子邮件,被用来闯入目标系统的内部网络。
  2. C&C:在攻击者与目标系统中的受损主机之间建立C&C通道,使攻击者能够部署后续攻击。
  3. 横向移动:攻击者控制更多的内部主机,以收集更多的内部信息,并向关键主机移动。
  4. 攻击成果:攻击对象完成攻击任务,如窃取关键信息。

基于攻击时间线,攻击描述模型最初用于区分攻击的各个阶段,现在也可用于对APT攻击进行建模。攻击树模型用树形数据结构对攻击进行建模,根节点为攻击的目标,子节点,结合AND和OR来描述目标条件,扩展到攻击金字塔模型(杀伤链模型),其每个平面对应于特定区域,例如物理平面和网络平面,以关联来自不同平面的事件[6]。在原来的3元组的基础上,将Petri网模型扩展为6元组,以充分显示攻击感知[7]。扩展后的Petri网可以对攻击场景进行层次分析,细化APT层次结构和场景因子。这些警报相关性方法依赖于APT可以在不同阶段被检测的假设。然而,APT不会触发安全监控器,并在实践中产生如此多的警报,这使得假设不实际。

一些研究人员认为APT是一种隐藏攻击,并试图通过异常检测找到APT的证据。[8]中实现了基于网站和连接特征的搜索引擎,以识别潜在受害者。在[9]中,分层单链接聚类被应用于定位潜在的目标攻击和受害者。在[10]中,作者重点关注了攻击的动态性质,并将DNS记录转换为图形,以检测恶意域。这些检测措施集中在C&C阶段,这是因为C&C在APT中至关重要,并且比APT生命周期其他阶段的易变活动更容易检测到。

除了在APT中使用之外,C&C在僵尸网络中也得到了广泛的应用。由于C&C是僵尸网络的基本组成部分和独特的特征,因此对其进行检测是僵尸网络控制的有效措施。C&C分为两类,即集中式模型和对等(P2P)模型[11]。集中式模型采用主从式架构,其中一个控制中心对一组受害者进行单向控制。C&C通信应用主流网络服务,如互联网中继聊天(IRC)和超文本传输协议(HTTP)。在P2P模型中,受害者是同等特权和同等能力的参与者,他们形成了一个对等网络,在该网络中,攻击命令和泄露的数据得以传播。

采用基于异常的检测方法来检测未知的C&C。基于TCP的异常检测和IRC流量统计相结合,以检测基于IRC的僵尸网络[12]。在[13]中,作者通过观察DNS流量中受感染主机的群体活动来检测僵尸网络。在[14]中,基于阶段性僵尸网络流的相似模式,执行了一种基于P2P的僵尸网络检测方法。Botsniffer[15]和BotMiner[16]被提出基于连接的相似性来检测僵尸网络,如源、目的地、每包字节数和每秒字节数。然而,僵尸网络中的检测C&C在APT场景中工作不好,因为APT中的C&C存在两个显著差异,即有限的通信样本和小规模受害者。

3 C&C检测方法

在本节中,我们对APT中的C&C进行了分析,并总结了三个关键特征。基于这些特征,我们提出了一种有效的C&C检测方法。

A. APT中C&C的特点

由于APT旨在逃避检测,因此C&C通信尽可能像正常网络通信一样。为了区分它们,我们分析了APT中的C&C通信,并提出了APT的三个关键特征。

  • C&C基于HTTP

与IRC和P2P相比,基于HTTP的C&C在渗透性和伪装性方面具有显著的优势,满足了APT的要求。

P2P和IRC流量具有不同的网络特性,如端口、包内容。因此,它很容易被检测和阻止。相比之下,基于HTTP的控制模式比其他模式更隐蔽。首先,网络流量在大多数企业中被标记为合法。因此,基于HTTP的C&C流量能够通过防火墙和入侵检测系统等安全服务。其次,由于网络流量占整个网络流量的很大比例,C&C流量很容易隐藏在网络流量中,甚至传输大量数据,这是APT迫切需要的。

实际上,几乎所有的APT都采用基于HTTP的C&C。其比率超过90%[17]。因此,我们在HTTP相关记录中查找C&C的证据。

  • 受害者连接控制中心缓慢

这一特性的主要原因是APT的不明显特性。为了避免检测,APT只根据攻击计划攻击选定的主机,这导致受感染主机的规模有限。因此,C&C域不会被庞大的内部主机显著连接。逃避检测导致的另一个事实是减慢了攻击过程,因为频繁的连接意味着证据将留在目标系统中,这增加了泄露的风险。缓慢的攻击过程导致受害者和C&C域之间的连接保持低而缓慢。

然而,在攻击过程中,内部受损主机和控制中心之间的连接是必要的,这使得攻击过程处于攻击者的控制之下。因此,这种联系并不罕见。最重要的是,受害者和控制中心之间的联系是存在的,可以追踪到。但是连接低且慢,因此不能通过应用大规模组特征来容易地检测

  • C&C domains are accessed independently

由于APT主要采用基于HTTP的C&C,我们倾向于找出C&C通信和良性HTTP请求之间的区别。我们使用并发域来表示联合访问的域,并认为由于C&C的独立访问特性,C&C域的并发域少于普通域。

当用户上网时,在一个时间窗口内访问一系列域,而不是单个域。那里导致这种现象的两种活动,即内联组件的加载和连续访问。由于网页由主体和内联组件(例如来自其他域的广告和多媒体)组成,因此当加载网页时,提供内联组件的域会自动访问。另一方面,用户在网上冲浪时访问许多网站。例如,用户通常使用搜索引擎搜索关键字,然后打开新页面以查看详细信息。相反,仅用于上传收集的数据和下载后续攻击命令的C&C域是独立访问的,没有内联组件。 因此,C&C域没有并发域。

DNS将域名转换为数字IP地址,反映HTTP的请求,并提供足够的信息来检测C&C。我们使用CODD表示DNS记录中的COncurrent域,定义如下:

定义1:CODD是同一主机所需的域,并在域名服务器记录中的给定时间窗口内出现.

虽然并发域对CODD有贡献,但CODD不限于并发域。对于并发域来说存在把他们链接起来的超链接,也就是说它们是相连接的而不是简单的出现在一起。对于DNS记录,它们不收集网页内容,因此无法显示连接性。然而,这些记录仍然能够揭示并发域的访问顺序。另一方面,单独的域可能会成为CODD,因为它们是偶然一起访问的。例如,用户一起打开收藏夹中收集的多个页面,这使得这些单独的域成为CODD。这也适用于C&C域,因为当浏览良性域时,C&C域可以连接,这增加了C&C域的CODD数量,使得难以区分C&C域和良性域。来自不同领域的CODD数量可以被视为随机误差,并通过重新观察减少。

除了不同数量的并发域外,良性域具有多个CODD,而C&C域具有明显较少的CODD。图1说明了一些流行良性域的CODD数量,这些域独立访问一次且并对其CODD进行计数;时间窗口被设置为5s。它证实了这些受欢迎的良性领域有大量的CODD。我们还发现,网页越复杂,CODD就越多。
在这里插入图片描述

B.C&C检测详情

基于C&C的独立访问特性,我们建议通过以下步骤检测APT中的C&C和DNS记录。

  • 转换DNS记录:原始DNS记录被转换为三元组以简化处理

内部DNS服务器生成的DNS记录被排除,因为它们不会为检测提供有效信息。然后我们提取A类DNS记录,这些记录将给定的URL转换为数字地址,因为APT中的C&C通信看起来像正常通信,主要使用A类请求。最后,我们使用三元组(用 r r r表示)来表示DNS记录,该记录由 r = < t , h , d > r=<t,h,d> r=<t,h,d>表示,其中 t t t表示请求时间; h h h表示触发请求的主机, d d d表示所查询的域。

  • 建立DNS记录集:我们的C&C检测从给定主机开始,该主机可以从内部重要主机中选择。为每个主机域对设置一组DNS记录。

假设DNS记录中有 K K K个内部主机,并且主机 H k ( k = 1 , 2 ⋅ ⋅ K ) H_k(k=1,2··K) Hkk1,2⋅⋅K具有连接的 L L L个域。内部主机 H k H_k Hk和域 D l ( l = 1 , 2 ⋅ ⋅ l ) D_l(l=1,2··l) Dll=12⋅⋅l之间的连接数由 M M M表示。在给定的时间窗 2 × δ 2×δ 2×δ下,设 R k , l , M R_k,_l,_M Rk,l,M表示与主机 H k H_k Hk与域 D l D_l Dl之间的第 M M M个连接相关的CODD集合,时间戳为 T m T_m Tm换句话说 R k , 1 , M R_k,_1,_M Rk,1,M是DNS记录集合,其中元素 r r r满足
在这里插入图片描述
其中 r ( ⋅ ) r(·) r() r r r的元素。我们排除 r ( t ) r(t) r(t)等于 T m T_m Tm的记录,以过滤掉目标DNS记录本身。然后,我们建立了一组 R k , l , m R_k,_l,_m Rk,l,m(用 C k , l C_k,_l Ck,l表示),其中 m m m的范围从 1 1 1 M M M,并用于表示观测期间 H k H_k Hk D l D_l Dl之间的连接的CODD。 X k , l = { R k , l , i } i = 1 , 2 , 3 , 4 , , , M X_{k,l}=\{R_{k,l,i}\}_{i=1,2,3,4,,,M} Xk,l={Rk,l,i}i=1,2,3,4,,,M

  • 提取特征:在获得 C k , l C_{k,l} Ckl之后,我们使用 1 × 3 1×3 1×3向量 V k , l = [ M , A N , H C ] V_{k,l}=[M,AN,HC] Vkl[MANHC]来表示主机 H k H_k Hk和域 D l D_l Dl之间的连接,其中 M M M是主机 H k H_k Hk与域 D l D_l Dl的连接时间; A N AN AN是CODD平均数的缩写;HC是最高置信水平的缩写。
    • C O D D 平均数 : A N = ∑ i = 1 n ∣ R k , l , i ∣ M CODD平均数:AN=\frac{\sum_{i=1}^n|R_{k,l,i}|}{M} CODD平均数:AN=Mi=1nRk,l,i,
    • C I ( D w ) = ∣ S k , l ∣ CI(D_w)=|S_{k,l}| CI(Dw)=Sk,l, S k , l S_{k,l} Sk,l C k , l C_k,_l Ck,l的子集
    • H C = m a x ( C I ( D w ) ) HC=max(CI(D_w)) HC=max(CI(Dw)),HC用于测量目标域与其CODD之间的紧密程度,因为由内联组件生成的CODD具有较高的可信度。

如下图所示:特征向量 V k , l V_{k,l} Vkl的生成过程。如图所示,主机 H k {H_k} Hk连接域 D l {D_l} Dl四次,因此 M = 4 M=4 M=4, A N = 2.5 AN=2.5 AN2.5,因为域 D 1 D_1 D1总共有十个CODD,即 M = 10 M=10 M10, A N = 2.5 AN=2.5 AN2.5。在D1的CODD中,域1出现了4次,这是最大出现次数,HC=4。
在这里插入图片描述

  • 查找C&C域:在对内部受损主机和C&C域之间的连接进行建模之后,我们的目标是基于分类识别C&C域。在实验中,我们使用RIPPER[19]检测C&C域。同时,其他分类算法也适用于C&C检测。在 V k , l V_{k,l} Vk,l中的变量中, M M M用于测量活跃水平和窄搜索区域。 A N AN AN H C HC HC反映了C&C连接的独立访问特性,并确定域D1是否是C&C域。如前所述, A N AN AN H C HC HC较小的域往往是C&C域。

4 性能评估

4.1 数据集

为了评估我们的检测方法的性能,我们将C&C检测方法应用于APT的数据集洛斯阿拉莫斯国家实验室(LANL)赞助的感染发现挑战[20]。

根据LANL的说法,模拟APT分为三个主要阶段:初始妥协、下载额外的恶意软件和建立C&C通信。他们模拟了几个包含全部或部分攻击的APT攻击,并提供了两个月从大型站点收集的匿名DNS记录。第一个月的数据用作训练数据。第二个月的数据与模拟APT流量混合并用作测试数据。在这个数据集中,可能存在真正的攻击,因为数据来自真实的站点,而不是网络流量生成器。第二个月的每一天都会提供一个提示文件,其中包含APT每个阶段使用的提示主机和网站。

当我们的实验实施时,他们的FTP服务器上只有第二个月的部分数据可用。据我们所知,该数据集是为APT检测创建的唯一公开且广泛使用的数据集,它提供了足够的数据来测试我们的机制。因此,我们对该数据集进行了实验。

4.2 实验详细信息

我们首先简化了DNS记录,如前所述。同时,我们将白名单应用于DNS记录以减少它们,这是基于前100个二级域(SLD)建立的。这样做之后,减少的数据大约是原始未压缩数据的百分之一。在数据集中,我们只使用了包含C&C通信的数据,而排除了仅模拟初始泄露的数据。最后,我们只使用了提示文件中给出的主机启动的DNS记录,并在第二个月获得了27383条10天的记录。

我们将时间窗变量 δ δ δ设置为5s,这是一个适当的值,可以覆盖可能的情况。我们解析了原始数据集,并在Python环境中提取了 V k , l V_{k,l} Vkl的实例。最后,我们得到了6486个 V k , l V_{k,l} Vkl的实例。根据给出的提示,有15条记录被标记为C&C,6471条记录被标注为正常。在分类算法中,我们选择了RIPPER来处理数据集。

我们使用Weka的[21]分类函数对十种不同的随机种子进行了十次十倍交叉验证。在此过程中,RIPPER将生成一组分类规则。由于真正的攻击可能存在于后台流量中,提示文件中未列出的域也可能是C&C域。我们还对生成的分类规则和分类结果进行了分析。
在这里插入图片描述

实验结果

在实验中,我们使用RIPPER获得了两个规则,以过滤掉C&C,如表I所示。如我们所见,生成的规则证实了我们在第III-A节中的分析,即C&C域往往具有较小的 A N AN AN H C HC HC M M M的值表示受损主机始终处于对手的控制之下。规则1中有一个特殊现象,即 A N < 0.4 AN<0.4 AN<0.4时不需要 H C HC HC。因为该域只有罕见的CODD,被认为是C&C域,因此不会有高 H C HC HC的CODD。另一方面,正常域必须具有一定量的CODD。至于规则2,尽管 A N AN AN的值大于规则1的值,但它仍然是一个较低的级别,这表明C&C域在大多数时间都是独立访问的,但意外地连接了合法请求。 H C HC HC的值有助于规则2中的检测,这证实了C&C域几乎没有并发域。

说明了生成的规则的检测结果,其中每个数字表示主机域对的数量。基于这些规则,我们的检测方法可以找出所有记录的15个C&C域,而不会丢失,但将3个记录的良性域分类为C&C域。然而,由于数据集中可能存在真实的攻击,我们对错误分类的域进行了进一步分析.

三个错误分类的分类记录的数值 V V V V 1 V1 V1=[172,0.2558,6], V 2 V2 V2=[4,0,0],V3=[9,0.56,1]。我们基于[10]中使用的周期性连接特征检查了这些域,该特征假设C&C域是周期性连接的。我们发现 V 1 V1 V1的域每3分钟连接一次; V 3 V3 V3的域几乎每1小时连接一次;而 V 2 V2 V2的域是不规则连接的。这表明 V 1 V1 V1 V 3 V3 V3的域是未记录的C&C域。 V 2 V2 V2 A N = 0 AN=0 AN=0 H C = 0 HC=0 HC=0的情况下非常出色,因此我们认为它是由熟练攻击者发起的非周期性未记录的C&C。

除了[10]之外,[22]中还采用了不同的评估方法应用了周期性连接特征。在APT检测机制中,C&C检测为前体和后续检测奠定了基础。在提示的帮助下,我们的C&C检测结果与他们的结果进行了比较。在我们的十倍10倍交叉验证中,我们能够找出平均89.3%的C&C。根据[10,表I]中的结果,未记录但标记为C&C域的数量大于检测到的真实C&C域数量,这是一种不寻常的现象,即使数据集中可能存在未记录的攻击。基于[22]中的结果,在应用周期性特征的情况下,他们的检测方法可以找出79%的C&C仅周期性连接。虽然周期性连接的特征可以用于检测C&C域,但在实践中很容易避免。例如,对手可以非周期性地设置连接,这不依赖于主机状态,不留下额外的证据并触发其他检测系统。

我们对数据集进行了进一步的统计分析,以解释生成的规则。在统计过程中,我们删除了由同一主机连接的域少于三次,即,设M≥3,这与[22]的配置相同。因为受威胁的主机和控制中心之间的通信不可能像之前分析和验证的那样非常罕见,而合法的HTTP请求可以。最后,我们得到了1364个 V k , l V_k,_l Vkl的实例。
在这里插入图片描述

图3比较了C&C域和正常域的AN分布之间的差异。一个明显的区别是,所有C&C域的AN都不大于1,而正常域的AN分布在广泛的范围内。这表明,正常域有许多与其并发的域,但C&C域是独立访问的,几乎没有CODD。
在这里插入图片描述

图4比较了C&C域和正常域的HC分布。类似地,所有C&C域的HC都不大于1,然而,罕见的正常域的HC小于1。接近61%的正常域具有最高置信水平范围为1至5的CODD。结合几乎相同(59%)的正常域连接3到5次的统计结果,它证实了正常域具有固定的并发域。图3和图4都证实了我们的分析,即C&C域是独立访问的,它们的CODD是罕见的,主要是偶然一起访问造成的,而正常域有许多并发域以及CODD。

总结与讨论

虽然所提出的检测方法能够找出LANL数据集中的C&C域,但可以通过以下策略来避免;

  1. 被破坏的主机在连接C&C域时发出一系列HTTP请求;
  2. 当用户在网上冲浪时,被破坏的主机连接C&C域。然而,这些策略在其他方面使C&C连接异常。对于第一种策略,受损的主机可以改变网络使用的行为,例如,连接用户的陌生域,这是异常行为,并将触发其他异常检测服务。在第二种策略的情况下,对手必须监控用户的互联网使用情况,这增加了入侵成本。另一方面,网络监控是一项敏感的功能,受到安全服务的高度监管。因此,这种策略也使对手暴露出来。

另一方面,我们的检测方法不依赖于广泛使用的特征,例如流量内容和域名之间的相关性。它为C&C提供了新的视角。应用独立访问特性,我们的新检测方法在APT环境中是有效的,熟练的对手利用信息隐藏、目标攻击和随机回调来逃避现有检测。所提出的C&C检测方法演示了独立访问特征的使用。在实践中,该特征可以与其他建模方法一起应用,或者与其他检测机制相结合,例如基于流量的检测和组相似性,以提高性能。

我们认为,没有永久性的解决方案来确保信息安全,这是防御者和对手之间无休止的竞争。特别是对于持续的定制攻击,防御者和对手都有机会根据自己的智能调整策略。提出的独立接入功能有助于防守者在与攻击者的竞争中取得领先优势。

在本文中,我们分析并总``结了APT中C&C的特点,这些特点与僵尸网络中的C&C截然不同。我们提出了APT中C&C通信的一个新特性,即独立访问。基于该特征,实现了DNS记录分析和C&C检测方法,并在公共数据集上进行了验证。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值