前言

  APT防御的重要性毋庸讳言,为了帮助各位师傅在防御方面建立一个总体认识,本文会将APT防御方法分为三类,分别是:监控、检测和缓解技术,并分别进行梳理,介绍分析代表性技术。这一篇分析现有的监控技术。

  APT

  这里不谈APT概念,就是分享两张最近看到的觉得描述APT非常契合的图。

  如果我们把APT分成6个攻击阶段的话,一种经典的划分方式如下

  或者也可以画成金字塔

  这里我们假设攻击目标位于金字塔的顶端,侧面表示攻击进化的环境(如物理平面、用户平面、网络平面、应用平面等)。金字塔平面依赖于每个组织的细节,并根据记录事件的环境定义。假设APT组织能够全面了解目标的所有设施以确定达到目标G的可行平面。那么为了达到目标G,攻击者可以探索漏洞并通过从一个或多个平面“爬行”接近目标。因此,最终检测到的APT就像一棵跨越多个平面的攻击树。

  这么说不形象,我们可以上面这个金字塔展开

  这个图就很直观了,图中小点代表平面中记录的事件,而彩色连接的事件代表相关事件,其表示可能的攻击。path1表示物理平面的相关事件,path2和path3表示涉及多个平面的相关事件。

  监控

  硬盘监控

  这主要针对落地文件而言。

  每个终端都需要通过反病毒、防火墙或必要的内容过滤来监控任何恶意行为。对系统上运行的软件进行必要的修补程序,可以消除已知的漏洞,从而减少攻击者的入侵点,否则这些漏洞可能会将恶意软件传播到网络中容易受到攻击的地方。这方面的技术其实比较成熟了,而且并不适用于APT攻击,这里就不展开说明了。

  内存监控

  现在更加流行的方法是内存监控,这主要针对现在流行无文件、不落地攻击手段而言的,这种攻击手段一般通过使用一个已经在内存中运行的进行来执行恶意功能,由于没有单独的进程在后台运行,所以不会留下任何轨迹。比如卡巴斯基发现的Duqu,就是运行在一个已经运行的进程的内存中。

  这个领域有很多优秀的工作,这里简单介绍几个。

  1、通过分析Stuxnet、Duqu、Flame和Red October使用恶意软件进行APT攻击的活动进行检测,其特点比较如下。

  他们介绍了APT攻击者所使用的规避技术,如rootkit功能、负载变化的端点扫描、网络流量加密和混淆、隐写术、内存中恶意软件的执行和假数字证书等。针对这些攻击技术,作者建议通过补丁管理、强大的网络访问控制和监控、严格的互联网政策、协议感知的安全解决方案、监控DNS查询、监控异常域的访问、监控网络连接、蜜罐和蜜网,以及标准的基于主机的入侵防御系统作为APT的防御对策。

  2、提取出了不同类型的恶意软件的特征,并提出了一个通用的解决方案用于检测不同类型的恶意软件。他们收集恶意软件和良性样本作为训练数据,并从中提取污点图(taint graph)。然后污点图转换成一个特征向量,在这个特征向量上应用标准分类算法来训练模型。这个模型训练完成后被用来识别系统上的恶意行为。他们使用了不同恶意软件(键盘记录、密码窃取、后门等)的共同特征。这些恶意软件通常表现出的特征是异常的信息访问和处理行为。例如,键盘记录和密码窃取会拦截击键输入。在比如说,为了不被发现,后门要么使用不常见的协议(如ICMP),要么创建一个原始套接字,要么拦截网络堆栈来与远程攻击者通信。基于ICMP的后门访问ICMP流量,基于原始套接字的后门访问所有具有相同协议号的报文。例如,TCP原始套接字可以接收到所有的TCP报文,这种后门拦截网络栈的行为类似于网络嗅探器,对网络流量进行窃听以获取有价值的信息。这些特征都被作者利用来进行检测。整个系统结构设计如下

  下图是一个污点图的例子,反映了Windows用户身份验证的过程。当一个密码窃取器在后台运行时,它捕捉到密码并将其保存到它的日志文件“c: ginallog .log”中。

  再来看一个用污点图表示Google Desktop处理传入的web页面的例子

  该方案检测结果如下

  3、提出了利用硬件辅助进行恶意软件检测的方案。作者发现,与运行的正常软件相比,受感染的应用程序运行时会修改控制流/数据结构,而这种行为会反映在它的内存访问模式中。所以可以通过处理器内监视内存访问来检测,其内存访问会查看虚拟地址以获得更一致的签名。他们使用系统调用、函数调用和完整的程序运行来检测受感染程序的恶意行为。研究表明,不论是对用户级还是和内核级威胁都是可用的,并且针对内核级rootkit实现高精度的检测。其设计的框架如下所示

  上半部分是训练,下半部分是运行检测。当使用system call检测rootkit时,结果如下

  可以看到,准确率非常的高,而且误报率很低。

  4、通过虚拟内存消耗来识别应用程序进程的异常行为,实现对恶意软件的检测。因为作者认为相比于网络操作或CPU利用率,内存使用的波动性较小,不易受到影响,而且使用的是虚拟内存而不是物理内存,因为后者不包含交换到硬盘的内存量。首先使用进程和psutil收集目标机器的内存指纹。然后通过机器学习算法,基于指纹、阈值和阈值因子为每个应用计算一个模型来检测异常行为。下面用图的方式可以帮助大家更好的理解其方案。

  下图是三个进程的虚拟内存的时间序列

  从时间序列中捕获的滑动窗口如下所示

  当窗口大小为25时,6个进程的特征分布,图中不同颜色代表不同应用

  下图展示了训练阶段的前三个步骤,可视化阈值。初始阈值为零(左);对于第二个数据点,它扩展到a(中间);在第三个点上,它扩展到b(右)

  流量监控

  APT攻击最关键的部分就是C&C通信行为,而且通信并不只发生一次,通常是在系统第一次被攻破后为了数据传输而反复进行。在终端层面监视任何带有新目的IP的网络数据包、异常payload的数据包以及发送到同一IP的大量数据包等特征有助于识别来自终端的任何可疑行为。

  从流量中可以看到很多关键信息。

  先看最简单的,从http请求中就可以看出GhosNet发往C2服务器的请求

  这是php版本的

  这是asp版本的

  还可以从流量中看到challenge信息,如下所示就是RSA Poisonlvy样本的256字节的challenge请

  这在一次成功的TCP握手之后,由poisivy生成的网络流量,它从256字节的看似随机的数据开始。这些字节组成一个challenge请求,以查看“客户端”(即RAT控制端)是否配置了嵌入在“服务器”(即受害者)中的密码。

  同样一个样本,还能看到keep-alive请求

  接下来我们看看这方面一些经典的工作。

  5、提出的方案可以从数千个终端中检测出少数表现出可疑活动的主机。他们通过观察多个主机间APT的关键阶段,并将每个主机的分析结果与它们的过去以及所观察到的网络中的其他主机进行比较,从而生成一个排名前k个的可疑主机列表。由于他们的方案不需要检测载荷,所以针对加密信道进行检测也是可行的。其方案的示意图如下

  6、重点关注跟踪各种网络对象(如主机、主机组和网络),并确定它们是否存在威胁。他们将网络流量活动从网络流量采集到威胁分析分为五层,从多个不同的网络传感器(如网络流、NIDS、蜜罐)中收集数据,然后在多个时间段提取和聚合特征,以创建一个样本空间。然后使用有监督模型进行识别。分层示意如下所示,大多数技术都是在第一层运行,处理来自传感器的原始数据和事件。而作者的方法首先转换数据,即第2层,然后在第3层及以上应用分类模型

  这篇工作的可视化做得很棒,如下所示

  有三种不同的可视化显示了UDP行为(右上),TCP行为(左上)和所有协议(底部)。每个点代表一个行为特征空间中的一个主机,这些图显示了主机从“源到sink行为”,接收数据的主机在左边,向系统发送数据的主机在右边。

  还对训练完成的SVM进行了可视化如下所示

  beacon通信在超平面的右下角,表明其检测效果很不错。

  7、是安全产商TrendMicro发布的APT报告,里面分析了不同的APT活动,如Taidoor、IXESHE、Enfal和Sykipot,这些恶意软件使用已知的协议(如HTTP)与C&C服务器建立通信,通常通过三个端口80、443、8080配置。攻击者通常使用这些端口,因为他们知道通常只有这些端口在防火墙级别是开放的。但是,这里的关键在于,攻击者可能会使用这些端口来传递不匹配的流量类型,例如在80端口发送任何非http流量或在443端口发送任何非https流量。可以通过检测这一特点实现预警。此外,作者认为,监视网络流量的时间和大小是另一个需要考虑的方面,因为恶意软件通常会在给定的时间间隔向C&C服务器发送beacon,因此使用DNS请求或url监视时间间隔可以对此进行检测。另外,在多数情况下,尽管设计好的恶意软件是使用HTTP进行C2活动的,但它们通常使用API发送请求,所以可以通过分析HTTP头信息将API调用与典型的浏览器活动区分开来以实现检测。

  8、利用基于流量的分析来检测APT,而不是基于网络,基于流量的分析将网络流量聚合在一起,从而减少了需要分析的数据量,之后对APT通信进行统计建模,成功设计出确定性的检测特征。其设计的框架如下所示

  9、则将APT攻击与内部威胁的结合起来进行分析,将其表述为一个双层博弈问题,并进一步确定了博弈双方(防御者与APT攻击者)的最佳对策,并证明存在纳什均衡。防御者、APT攻击者和内部威胁人员的相互作用表示如下

  文中给了很多数学公式推导,这里不再重复了,直接看结果吧

  图3表示攻击者和防御者在每个时间点的动作。我们可以看到攻击者的稳定状态下的动作,即α是0.2,而防御者的稳定状态下的动作,即β是1。图4为系统状态向稳定状态的演化过程。稳定状态为0.1667。

表明最后确实达到了纳什均衡

  代码监控

  源代码中可能存在的漏洞可以通过静态分析技术(如污点分析和数据流分析等技术)来识别。此外,可以在执行期间监视代码的性能,并确保代码在其范围内运行,不会访问未经授权的内存区域与其他资源,这样可以更早地识别出威胁。这一块是一个非常大的领域,我们实验室有其他小伙伴在研究,这里也不展开了,后续有机会的话单独发文与各位师傅一起学习。

  日志监控

  有很多日志都有助于检测,比如内存使用日志、CPU使用日志、应用程序执行日志、系统日志等。

  日志种类、数量都很多,不同日志之间记录的格式又是不同的,怎么将其联系起来进行分析是非常重要的一个问题。

  10、结合了网络日志和主机日志来检测恶意活动。他们从这些日志中提取了4类特征,身份特征,基于网络流量的特征,基于服务的特征和基于认证的特征,然后使用皮尔逊相关系数来减少冗余,然后删除那些对聚类没有贡献的特征,接着通过聚类以识别恶意活动。

  下图是据源IP地址聚合的防火墙数据中所选特征的经验累积分布函数

  下图是由源IP地址聚合的系统日志数据中所选特征的经验累积分布函数。

  在原始的10维空间中进行聚类,使用DBSCAN聚类算法,对于参数值ε = 0.15和minPts = 21的防火墙数据,投影到前三个主成分用于可视化,效果如下

  在指定参数后,DBSCAN识别出6个集群和一小组离群点。虽然从图中看不出来,但在进行聚类的高维空间中,聚类之间的距离实际上相当远。

  在原始的28维空间中进行聚类。结合防火墙和系统日志数据的DBSCAN聚类,参数值设ε = 0.25和minPts = 20,投影到前三个主成分(PC)进行可视化

  从上图中可以看到有四个簇和一组离群点。虽然聚类在图中看起来不是可分离的,但在进行聚类的高维空间中,它们是相当遥远的。其中簇1代表正常行为,而簇2、3和4被分类为异常行为。为了分析攻击的异常簇,我们计算每个簇的归一化平均特征向量,如下所示

  每一个小表的横轴是特征,特征1 -18对应于从系统日志数据中提取的特性,而特征19 - 28对应于从防火墙日志中提取的特性。当根据异常簇的正常值对其排序时,我们可以认为簇2最有可能是恶意的,其次是簇4和簇3。由于簇群3只有唯一的IP地址,所以我们认为它只包含良性主机。

  11、分析DNS日志来识别受感染的内部主机与外部恶意域名之间的的“beacon”活动,他们认为这种行为会在网络流和DNS日志中留下自己的记录。作者提出了一种DNS日志分析和事件关联的方法,通过考虑低延迟间隔时间,他们假设受感染的主机每天会与C&C服务器通信几次。通过识别受感染的主机,它们将与相同可疑域通信的其他主机连接起来。首先对DNS日志进行预处理,过滤不需要的数据,仅从DNS日志中获取IPv4地址。然后以图的方式表示元数据,图的顶点表示主机IP地址和域名,而每条边对应于从内部主机到外部机器的一个查询。

  在Cobalt Strike中的Beacon大概就是如下所示

  它可以使用SMB协议创建一个beacon,当然也可以使用HTTP或DNS等协议。初始任务是启动一个beacon侦听器来使用恶意payload并指定用于传输流量的端口号,payload提供两个通信通道。以上图为例,当域列表被提供之后,恶意软件会检查任务并通过HTTP或DNS下载它们。之后每次都要通过这些域,必须使用beacon向C2发送信号。如果一个域失败或被阻塞,恶意软件将进入休眠状态,直到下一个域可用。

  该作者提出的基于DNS A记录进行迭代检测的方案流程如下

  12、同样通过DNS日志分析来检测APT恶意软件和C&C通信活动。他们使用移动设备的DNS日志,他们的方法简单来说就是给C2域名和普通域名打分。为了区分正常和异常(C&C)域,他们根据内部设备发起的DNS请求的数量,选择正常域,提取15个特征,分为4大类:基于DNS请求和应答的特征,基于域的特征,基于时间的特征,以及基于whois的特征,然后通过分数进行识别。流程如下所示

  所选的基于域名的特征总结如下表

  下图是验证时,绘制的C&C域与普通域之间的距离差。

  上图中x-轴代表不同的测试示例,前60个是C&C域名,后170个是普通域名。我们注意到,几乎所有C&C域的平均距离都大于0.2。

下图则展示了不同阈值的恶意软件C&C域的检测性能。检测性能表明,当参数设置为 0.2时,异常检测算法的误报率和误报率最低。

  而针对日志中冗余数据、脏数据过多的问题,13、提出了从脏日志中提取信息和知识的方法。首先通过网络配置对日志数据进行过滤和规范化,然后将这些标准化数据处理成不同的特征,最后对这些提取的特征进行聚类,以确定任何可疑活动。他们使用了web代理日志、DHCP服务器日志、VPN服务器远程连接日志、认证尝试日志、防病毒扫描日志等不同来源的日志,然后根据目标、主机、策略和流量提取特征,通过适应性k-means聚类算法对特征进行聚类,最后成功找出行为与正常主机有显著差异的主机,这些主机就是被攻陷的机器。

  参考

  1.N. Virvilis and D. Gritzalis, “The big four-what we did wrong in advanced persistent threat detection?” in Availability, Reliability and Security (ARES), 2013 Eighth International Conference on. IEEE, 2013, pp. 248–254.

  2.H. Yin, D. Song, M. Egele, C. Kruegel, and E. Kirda, “Panorama: capturing system-wide information flow for malware detection and analysis,” in Proceedings of the 14th ACM conference on Computer and communications security. ACM, 2007, pp. 116–127.

  3.Z. Xu, S. Ray, P. Subramanyan, and S. Malik, “Malware detection using machine learning based analysis of virtual memory access patterns,” in 2017 Design, Automation & Test in Europe Conference & Exhibition (DATE). IEEE, 2017, pp. 169–174.

  4.C. Vaas and J. Happa, “Detecting disguised processes using application- behavior profiling,” in Technologies for Homeland Security (HST), 2017 IEEE International Symposium on. IEEE, 2017, pp. 1–6.

  5.M. Marchetti, F. Pierazzi, M. Colajanni, and A. Guido, “Analysis of high volumes of network traffic for advanced persistent threat detection,” Computer Networks, vol. 109, pp. 127–141, 2016.

  6.O. McCusker, S. Brunza, and D. Dasgupta, “Deriving behavior primi- tives from aggregate network features using support vector machines,” in Cyber Conflict (CyCon), 2013 5th International Conference on. IEEE, 2013, pp. 1–18.

  7.N. Villeneuve and J. Bennett, “Detecting apt activity with network traffic analysis,” Trend Micro Incorporated Research Paper, 2012.

  8.A. Vance, “Flow based analysis of advanced persistent threats detecting targeted attacks in cloud computing,” in Problems of Infocommuni- cations Science and Technology, 2014 First International Scientific- Practical Conference. IEEE, 2014, pp. 173–176.

  9.P. Hu, H. Li, H. Fu, D. Cansever, and P. Mohapatra, “Dynamic defense strategy against advanced persistent threat with insiders,” in Computer Communications (INFOCOM), 2015 IEEE Conference on. IEEE, 2015, pp. 747–755.

  10.A. Bohara, U. Thakore, and W. H. Sanders, “Intrusion detection in enterprise systems by combining and clustering diverse monitor data,” in Proceedings of the Symposium and Bootcamp on the Science of Security. ACM, 2016, pp. 7–16.

  11.A. Shalaginov, K. Franke, and X. Huang, “Malware beaconing detec- tion by mining large-scale dns logs for targeted attack identification,” in 18th International Conference on Computational Intelligence in Security Information Systems. WASET, 2016.

  12.W. Niu, X. Zhang, G. Yang, J. Zhu, and Z. Ren, “Identifying apt malware domain based on mobile dns logging,” Mathematical Problems in Engineering, vol. 2017, 2017.

  13.T.-F. Yen, A. Oprea, K. Onarlioglu, T. Leetham, W. Robertson, A. Juels, and E. Kirda, “Beehive: Large-scale log analysis for detecting sus- picious activity in enterprise networks,” in Proceedings of the 29th Annual Computer Security Applications Conference. ACM, 2013, pp. 199–208.

  更多靶场实验练习、网安学习资料,请点击这里>>

从防御者视角来看APT攻击相关推荐

  1. 从防御者视角看APT攻击

    前言 APT防御的重要性毋庸讳言,为了帮助各位师傅在防御方面建立一个总体认识,本文会将APT防御方法分为三类,分别是:监控.检测和缓解技术,并分别进行梳理,介绍分析代表性技术.这一篇分析现有的监控技术 ...

  2. [论文阅读] (10)基于溯源图的APT攻击检测安全顶会总结

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  3. 重要 APT攻击事件的特征枚举

    新型攻击方法分析 鉴于 APT 攻击的对象和目的可能存在差异,不同的 APT 攻击所采用的技术和方法也存 在较大的不同:而且随着 APT 攻防的升级,新的攻击技术和方法也会不断涌现.根据对大量 APT ...

  4. 深入剖析某国外组织针对中国境内企业的APT攻击(CVE-2015-8651)

    原文章:点击打开链接 2015年12月31日,微步在线对一起利用Flash零日漏洞的APT攻击做了分析和预警,并通过溯源分析确定了其幕后的黑客组织为"DarkHotel". 此后, ...

  5. 北邮 网络安全 期末复习 知识点总结之APT攻击

    APT攻击与检测 APT简介 高级持续性威胁(Advanced Persistent Threat) 攻击者掌握先进的专业知识和丰富有效的资源,通过 多种攻击途径(如网络.物理设施和欺诈手段等),实现 ...

  6. 追踪调查来自印度的针对中国和南亚国家的大规模APT攻击

    016年8月,Forcepoint 发布了一个APT攻击的追踪报告.该报告由Forcepoint安全实验室特别调查小组长期独立追踪完成.该调查小组隶属于Forcepoint安全实验室,由优秀的恶意软件 ...

  7. APT攻击、加密方式

    目录 什么是APT? APT的攻击过程 防御APT 沙箱处理流程 对称加密算法 非对称加密算法 DH算法解决了再公开场合密钥安全传递问题 非对称加密解决身份认证问题 公钥身份认证 解决方法 CA认证- ...

  8. APT攻击以及密码学简析

    目录 1. 什么是APT? 2. APT 的攻击过程? 3. 详细说明APT的防御技术 4. 什么是对称加密? 5. 什么是非对称加密? 1. 什么是APT? 什么是APT攻击 APT攻击即高级可持续 ...

  9. 近5年典型的的APT攻击事件

    APT攻击 APT攻击是近几年来出现的一种高级攻击,具有难检测.持续时间长和攻击目标明确等特征. 本文中,整理了近年来比较典型的几个APT攻击,并其攻击过程做了分析 (为了加深自己对APT攻击的理解和 ...

最新文章

  1. BERT完全指南-从原理到实践
  2. mysql游标嵌入式_Oracle与MySQL内嵌游标的使用示例
  3. 以最短的宕机时间升级到Oracle 10g
  4. 计算机与新闻业未来发展,计算机学院举办“智创未来,谈思维与职业发展”活动...
  5. ArcGIS Engine 10开发环境的一些常见问题(转载)
  6. matlab中数值的取整、四舍五入、文本输出
  7. 迷你星域冒险服务器维护中,迷你世界星域冒险
  8. 为什么大多数人是穷人?
  9. 第45届ICPC 昆明站 临时模板补充
  10. Html代码打包后如何修改,html代码打包封装成APP教程
  11. android多个单选按钮互斥使用,在GUI设计中,单选按钮用来实现用户在多个选项中的互斥选择,在同一组内多个选项中只能选择一个,当...
  12. HashMap源码注释
  13. 数据隐私与加密学技术 |链捕手
  14. php 版onvif 客户端,onvif协议网络摄像机(IPC)客户端程序
  15. unity设置手机横屏方法和相关问题
  16. [VOT7](2022CVPR) GTELT:Global Tracking via Ensemble of Local Trackers
  17. 【题解】#10246. 「一本通 6.7 练习 3」取石子
  18. 代码打印颜色(只要您能想到的,都行)——我的颜色控制打印工具mypycolor已经更聪明:参数可以任意接收颜色控制码、颜色描述英文单词的任意组合。
  19. win7如何开启无线网卡服务器,大神教你win7无线网卡怎么设置wifi
  20. 拓嘉辰丰电商:一个营业执照支持开多少家店铺

热门文章

  1. Unity 3D 屏幕适配全方面解析!
  2. kill -9什么意思?
  3. uniapp 解决app头部导航和手机顶部状态栏叠加问题及样式拼接写法
  4. 免费1G全功能虚拟主机空间,稳定,能外链,不错
  5. 风投大师:揭秘创业与融资
  6. 为什么推荐新人做口子查?其和站点查渠道查有什么区别?
  7. 阿里质量图标(字体图标)
  8. Mac下brew神器
  9. Mac下代理不生效的问题
  10. mongodb设置密码