- ATT&CK与威胁猎杀实战
- (西)瓦伦蒂娜·科斯塔-加斯孔
- 2414字
- 2022-04-24 09:42:13
1.4 收集过程
一旦定义了情报需求,我们就可以着手收集满足这些需求所需的原始数据。对于这一过程,我们可以借助于两类消息源:内部来源(如网络和终端)和外部来源(如博客、威胁情报馈送、威胁报告、公共数据库、论坛等)。
进行收集过程最有效的方式是使用收集管理框架(Collection Management Framework,CMF)。通过使用CMF,你可以发现数据源,并轻松跟踪要收集的信息类型。它还可以用来对从源处获得的数据进行评级,了解该数据存储了多长时间,以及跟踪源的可信度和完整性。建议你使用CMF跟踪外部来源和内部来源。图1.5给出了一个CMF示例。
图1.5 简单的CMF示例
关于使用CMF探索不同的方法和示例,Dragos分析师李(Lee)、米勒(Miller)和史黛西(Stacey)写了一篇有趣的论文(https://dragos.com/wp-content/uploads/CMF_For_ICS.pdf?hsCtaTracking=1b2b0c29-2196-4ebd-a68c-5099dea41ff6|27c19e1c-0374-490d-92f9-b9dcf071f9b5)。
另一个可用于设计高级收集过程的重要资源是收集管理实施框架(https://studylib.net/doc/13115770/collection-management-implementation-framework-what-does-...),该框架由美国软件工程研究所(Software Engineering Institute)设计。
1.4.1 危害指标
到目前为止,我们已经讨论了如何确定情报需求以及如何使用CMF。但是,我们要收集什么样的数据呢?
顾名思义,危害指标(IOC)是在网络或操作系统中观察到的一种工件,它高度可靠地表明目标已失陷。这些数据可用于了解发生了什么,但如果收集得当,它还可以用来防止或检测持续的破坏行为。
典型的IOC可能包括恶意文件的散列值、URL、域、IP、路径、文件名、注册表键和恶意软件文件本身。
重要的是要记住,为了保证数据真正有用,有必要提供收集到的IOC的上下文信息。在这里,我们可以遵循质量重于数量的原则——大量的IOC并不总是意味着更好的数据。
1.4.2 了解恶意软件
恶意软件(Malicious software,Malware)可能是非常有价值的信息来源。在探讨不同类型的恶意软件之前,了解恶意软件的工作原理非常重要。这里,我们需要介绍两个概念:释放器(Dropper)和命令与控制(Command and Control,C2或C2C)。
释放器是一种特殊类型的软件,用于安装恶意软件。我们有时会将其分为单阶段和两阶段释放器,分别对应于释放器中是否包含恶意软件代码。当释放器中未包含恶意代码时,它将从外部来源下载到受害者的设备。一些安全研究人员可能会将这种两阶段类型的释放器称为下载者,指需要进一步将不同代码段放在一起(通过解压缩或执行不同的代码段)来构建恶意软件。
C2是攻击者控制的计算机服务器,用于向受害者系统中运行的恶意软件发送命令。这是恶意软件与其“所有者”通信的方式。可以通过多种方式建立C2,而且,根据恶意软件的功能,可以建立的命令和通信的复杂性可能会有所不同。例如,可以看到威胁行为体使用基于云的服务、电子邮件、博客评论、GitHub资源库和DNS查询等进行C2通信。
根据其功能,恶意软件可以分为不同的类型,有时,一款恶意软件可以被归类为多个类型。以下是最常见的类型:
●蠕虫:能够通过网络自我复制和传播的自主程序。
●特洛伊木马:一个看似服务于指定目的的程序,但也有一种隐藏的恶意能力,可以绕过安全机制,从而滥用给予它的授权。
●Rootkit:一组具有管理员权限的软件工具,旨在隐藏其他工具及其活动。
●勒索软件:一种在支付赎金之前拒绝用户访问系统或其信息的计算机程序。
●键盘记录器:在用户不知情的情况下记录键盘事件的软件或硬件。
●广告软件:向用户提供特定广告的恶意软件。
●间谍软件:在所有者或用户不知情的情况下安装到系统中的软件,目的是收集有关用户的信息并监控其活动。
●恐吓软件:诱骗计算机用户访问失陷网站的恶意软件。
●后门:让某些人可以在计算机系统、网络或软件应用程序中获得管理员用户访问权限的方法。
●擦除器:擦除其感染的计算机硬盘的恶意软件。
●攻击套件:用于管理可能将恶意软件用作有效载荷的漏洞集合的包。当受害者访问失陷网站时,它会评估受害者系统中的漏洞,以便利用某些漏洞。
恶意软件家族指一组具有共同特征的恶意软件,并且很可能由同一作者发布。有时,恶意软件家族可能与特定的威胁行为体直接相关。有时,恶意软件(或工具)在不同的组之间共享。公开可用的开源恶意软件工具通常就是这样。对手通常利用它们来伪装自己。
现在,我们来快速了解一下如何收集关于恶意软件的数据。
1.4.3 使用公共资源进行收集:OSINT
开源情报(Open Source INTelligence,OSINT)收集是收集公开数据的过程。当谈及OSINT时,人们脑海中浮现的最常见来源是社交媒体、博客、新闻和暗网。从本质上讲,任何公开可用的数据都可以用于OSINT。
重要提示:
对于那些希望开始收集信息的人来说,有很多很好的资源,VirusTotal(https://www.virustotal.com/)、CCSS论坛(https://www.ccssforum.org/)和URLHaus(https://urlhaus.abuse.ch/)都是开始收集过程的好地方。
另外,请访问OSINTCurio.us(https://osintcurio.us/)以了解有关OSINT资源和技术的更多信息。
1.4.4 蜜罐
蜜罐是模仿可能的攻击目标的诱饵系统。我们可以设置一个蜜罐来检测、转移或对抗攻击者。所有收到的流量都被认为是恶意的,与蜜罐的每一次交互都可以用来研究攻击者的技术。
蜜罐有很多种(详见https://hack2interesting.com/honeypots-lets-collect-it-all/),它们大致可以分为三类:低交互、中等交互和高交互蜜罐。
低交互蜜罐模拟传输层,提供的对操作系统的访问非常有限。中等交互蜜罐模拟应用层,以引诱攻击者发送有效载荷。高交互蜜罐通常涉及真实的操作系统和应用程序。蜜罐更适合揭露未知漏洞的滥用问题。
1.4.5 恶意软件分析和沙箱
恶意软件分析是研究恶意软件功能的过程。通常,我们可以将恶意软件分析分为两种类型:动态和静态。
静态恶意软件分析是指在不执行软件的情况下分析正在使用的软件。逆向工程是静态恶意软件分析的一种形式,使用反汇编程序(如IDA或最近的NSA工具Ghidra等)来执行。
动态恶意软件分析是通过观察恶意软件在执行后的行为来实现的。这类分析通常在受控环境中进行,以避免感染生产系统。
在恶意软件分析的上下文中,沙箱是用于自动动态分析恶意软件片段的隔离且受控的环境。在沙箱中,执行可疑恶意软件片段并记录其行为。
当然,事情并不总是这么简单,恶意软件开发人员实现了一些技术来防止恶意软件被沙箱分析。与此同时,安全研究人员也开发了相应的技术来绕过威胁行为体的反沙箱技术。尽管存在这种猫捉老鼠的行为,沙箱系统仍然是恶意软件分析过程中至关重要的一部分。
提示:
有一些很棒的在线沙箱解决方案,比如Any Run(https://any.run)和Hybrid Analysis(https://www.hybrid-analysis.com/)。Cuckoo Sandbox(https://cuckoosandbox.org/)是一个适用于Windows、Linux、macOS和Android的开源离线沙箱系统。