来源:https://capev2.readthedocs.io/en/latest/introduction/what.html
https://github.com/kevoreilly/CAPEv2
一、CAPE是什么?
CAPE是一个开源的自动恶意软件分析系统。
它用于自动运行和分析文件,并收集全面的分析结果,概述恶意软件运行在一个孤立的Windows操作系统。
它可以检索以下类型的结果:
跟踪由恶意软件衍生的所有进程执行的win32 API调用。
恶意软件在执行过程中创建、删除和下载的文件。
恶意软件进程的内存转储。
PCAP格式的网络流量跟踪。
在恶意软件执行过程中截取的Windows桌面截图。
机器的完整内存转储。
二、发展历程
来源于Cuckoo Sandbox 。
2016年9月16日,CAPE(配置和有效载荷提取)诞生了。_ CAPE CTXIS: https://github.com/ctxis/CAPE .._海角上游:https://github.com/kevoreilly/CAPE
2019年10月20日CAPEv2 Python3 .._ CAPEv2上游:https://github.com/kevoreilly/CAPEv2
三、用例
由于其极具模块化的设计,CAPE既可以作为独立的应用程序使用,也可以集成到更大的框架中。
它可以用来分析:
通用的Windows可执行文件
DLL文件
PDF文档
微软办公文件
url和HTML文件
PHP脚本
CPL文件
Visual Basic (VB)脚本
ZIP文件
Java JAR
Python文件
几乎所有的东西
由于它的模块化和强大的脚本功能,使用CAPE可以实现的功能不受限制。
有关定制CAPE的更多信息,请参见定制章节。
四、体系结构
CAPE Sandbox由一个处理样本执行和分析的中央管理软件组成。
每个分析都在一个新鲜的、隔离的虚拟机中启动。CAPE的基础设施由一台主机(管理软件)和许多来宾机(用于分析的虚拟机)组成。
宿主运行管理整个分析过程的沙盒核心组件,而客户机是隔离的环境,恶意软件样本在其中安全地执行和分析。
下图解释了CAPE的主要结构:
五、详细介绍
CAPE是一个恶意软件沙箱。它来源于Cuckoo,目的是添加自动恶意软件解包和配置提取——因此它的名字是一个缩写:“配置和有效载荷提取”。自动解包允许基于Yara签名的分类,以补充网络(Suricata)和行为(API)签名。
虽然配置和有效载荷提取是最初声明的目标,但CAPE调试器的开发是这个项目的第一个灵感来源:为了从任意恶意软件家族中提取配置文件或解压缩有效负载,而不依赖进程转储(迟早会被坏人破坏),指令级别的监视和控制是必要的。CAPE中的新调试器遵循最大化使用处理器硬件和最小化(几乎完全)使用Windows调试接口的原则,允许通过Yara签名或API调用在引爆期间以编程方式设置硬件断点,从入口点偷偷地检测和操纵恶意软件。这允许捕获指令跟踪,或执行操作,如控制流操作或转储内存区域。
调试器允许CAPE在其原始功能之外继续发展,这些功能现在包括了动态反规避绕过。由于现代恶意软件通常试图在沙箱中逃避分析,例如通过使用定时陷阱来进行虚拟化或API钩子检测,CAPE允许开发动态对策,结合调试器在Yara签名中的动作,来检测隐藏的恶意软件,并执行控制流程操作,迫使样品完全引爆或跳过规避动作。CAPE的动态旁路越来越多,其中包括:
Guloader
Ursnif
Dridex
Zloader
Formbook
BuerLoader
Pafish
CAPE利用了许多恶意软件技术或行为,允许未打包的有效载荷捕获:
(1)Process注入
Shellcode注入
DLL注入
Process挖空
Process Doppelganging
(2)内存中可执行模块的解压
(3)在内存中提取可执行模块或shellcode
这些行为将导致捕获注入、提取或解压缩的有效载荷,以便进一步分析。此外,CAPE自动为每个进程创建一个进程转储,或者在DLL的情况下,为内存中的DLL模块映像创建一个进程转储。这对于使用简单打包器打包的示例很有用,在这些示例中,模块映像转储通常是完全解包的。
通过断点选项'bp0'到'bp3',可以快速访问调试器,接受RVA或VA值来设置断点,因此将输出短指令跟踪,由'count'和'depth'选项控制(例如,bp0=0x1234,depth=1,count=100)。要在模块入口点设置断点,使用'ep'来代替地址(例如bp0=ep)。另外,'break-on-return'允许在钩形API的返回地址上设置断点(例如:break-on-return=NtGetContextThread)。一个可选的'base-on- API '参数允许通过API调用来设置RVA断点的 image base(例如base-on- API =NtReadFile,bp0=0x2345)。
选项'action0' - 'action3'允许在命中断点时执行动作,例如转储内存区域(例如action0=dumpebx)或更改执行控制流(例如action1=skip)。CAPE的文档还包含了此类操作的更多例子。
'dump-on-api'允许模块在调用特定的API函数时被转储,该函数可以在web界面中指定,这对于快速解包/转储新示例非常有用(例如dump-on-api=DnsQuery_A)。
CAPE还有一个选项‘upx=1’,它可以动态解压使用‘hack’(modified) upx的样本,非常受恶意软件作者的欢迎。这些示例在CAPE的调试器中运行,直到它们的OEP(原始入口点)被转储、固定,它们的导入被自动重构,以便进行分析。
CAPE在恶意软件家族的覆盖范围不断增长,但有以下例子的配置解析器:
Emotet
TrickBot
QakBot
Hancitor
Ursnif
Dridex
SmokeLoader
IcedID
RedLeaf
ChChes
HttpBrowser
Enfal
PoisonIvy
Screech
TSCookie
CAPE使用Yara签名作为其主要的分类方法来检测未打包的有效载荷。这个清单还在不断增加,包括:
Azorult, Formbook, Ryuk, Hermes, Shade, Remcos, Ramnit, Gootkit, QtBot,
ZeroT, WanaCry, NetTraveler, Locky, BadRabbit, Magniber, Redsip, Kronos,
PetrWrap, Kovter, Azer, Petya, Dreambot, Atlas, NanoLocker, Mole,
Codoso, Cryptoshield, Loki, Jaff, IcedID, Scarab, Cutlet, RokRat,
OlympicDestroyer, Gandcrab, Fareit, ZeusPanda, AgentTesla, Imminent,
Arkei, Sorgu, tRat, T5000, TClient, TreasureHunter.
这是由CAPE community开发的包含几百个签名的社区签名库:https://github.com/kevoreilly/community。
配置解析可以使用CAPE的配置解析框架、malwareconfig.com的RATDecoders框架和DC3-MWCP(防御网络犯罪中心-恶意软件配置解析器)来完成。malwareconfig.com上的许多解析器/解码器也包括在内,包括许多其他的:Sakula, DarkComet, predator orpain和PoisonIvy。感谢Kevin Breen/TechAnarchy提供的这个框架和解析器(https://github.com/kevthehermit/RATDecoders),感谢DC3提供的框架(https://github.com/Defense-Cyber-Crime-Center/DC3-MWCP)。特别感谢Jason Reaves (@sysopfb)的TrickBot解析器和Fabien Perigaud的PlugX解析器。
包含监视器dll代码的存储库是一个独特的存储库:https://github.com/kevoreilly/capemon。
请为这个项目做出贡献,帮助创建新的签名,解析器或绕过进一步的恶意软件家族。目前有许多作品正在进行中,所以请关注这个空间。
网友评论