来源:https://cuckoo.sh/docs/introduction/index.html
这是Cuckoo沙箱的介绍性章节。它解释了一些基本的恶意软件分析概念,什么是Cuckoo和它如何能适应恶意软件分析。
一、沙箱
正如维基百科所定义的,“在计算机安全中,沙箱是分离运行程序的一种安全机制。它通常用于执行未经测试的代码,或来自未经验证的第三方、供应商、不可信用户和不可信网站的不可信程序。
这个概念也适用于恶意软件分析的沙箱:我们的目标是在一个隔离的环境中运行一个未知的、不可信的应用程序或文件,并获得它所做的信息。
恶意软件沙箱是动态分析方法的一个实际应用:它不是静态分析二进制文件,而是实时执行和监控。
这种方法显然有优点也有缺点,但它是获取恶意软件额外细节(如其网络行为)的一种有价值的技术。因此,在检查恶意软件时同时进行静态和动态分析是一个很好的实践,以便对其有更深的了解。
虽然简单,Cuckoo是一个工具,让你执行沙盒恶意软件分析。
二、使用沙箱
在开始安装、配置和使用Cuckoo之前,您应该花一些时间考虑如何使用Cuckoo。
你应该问自己一些问题:
(1)我想分析什么样的文件?
(2)我希望能够处理多少分析?
(3)我想使用哪个平台来运行我的分析?
(4)关于这个文件,我需要什么样的信息?
创建隔离环境(例如虚拟机)可能是沙箱部署中最关键也是最重要的部分:应该谨慎地进行,并进行适当的规划。
在获得您选择的虚拟化产品之前,您应该已经有了一个定义如下的设计计划:
(1)使用哪种操作系统、语言和补丁级别。
(2)安装哪个软件和哪个版本(在分析漏洞时尤为重要)。
考虑到自动的恶意软件分析是不确定的,它的成功可能取决于一万亿的因素:你试图让一个恶意软件在一个虚拟系统中运行,就像它在一个本地系统上运行一样,这可能是难以实现的,也可能不总是成功。您的目标应该是创建一个能够处理您需要的所有需求的系统,并尽可能使其成为现实。
例如,你可以考虑留下一些正常使用的痕迹,比如浏览历史、cookie、文档、图片等。
虚拟化的操作系统通常会携带大量的痕迹,这使得它们很容易被发现。即使您不应该过高估计这个问题,您也可能想要解决这个问题,并尽量隐藏尽可能多的虚拟化跟踪。在互联网上有很多关于虚拟化检测技术和对策的文献。
一旦您完成了您想要的系统原型的设计和准备,您就可以继续创建和部署它。你总是能及时地改变事情或者稍微修正它们,但是要记住,从长远来看,好的计划总是意味着更少的麻烦。
二、Cuckoo是什么?
Cuckoo是一个开源的自动恶意软件分析系统。
它被用来自动运行和分析文件,并收集全面的分析结果,概述恶意软件运行在一个孤立的操作系统。
它可以检索以下类型的结果:
(1)追踪由恶意软件产生的所有进程执行的调用。
(2)恶意软件在执行过程中创建、删除和下载文件。
(3)恶意软件进程的内存输出。
(4)PCAP格式的网络流量跟踪。
(5)在执行恶意软件期间的截图。
(6)机器的全部内存输出。
三、Cuckoo历史
布谷鸟沙箱开始作为谷歌夏季代码项目在2010年在蜜网项目。它最初是由Claudio“nex”Guarnieri设计和开发的,他仍然是项目领导和核心开发者。
在2010年夏天进行了最初的工作之后,第一个测试版于2011年2月5日发布,《布谷鸟》首次公开发行。
2011年3月,Cuckoo在谷歌Code 2011夏季项目中通过Honeynet项目再次被选为支持项目,期间Dario Fernandes加入该项目并扩展了其功能。
2011年11月2日布谷鸟发布其0.2版本,作为第一个真正稳定的版本向公众发布。2011年11月底,Alessandro“jekil”Tanasi加入了扩展Cuckoo处理和报告功能的团队。
2011年12月,布谷鸟v0.3发布,并在2月初迅速发布0.3.2。
2012年1月底,我们开设了Malwr.com,这是一个免费的公共运行的布谷鸟沙箱实例,它提供了一个功能齐全的界面,人们可以通过这个界面提交文件进行分析并返回结果。
2012年3月,布谷鸟沙箱获得Rapid7主办的“华丽7级”第一轮比赛冠军。
在2012年夏天,Jurriaan“skier”Bremer加入开发团队,对Windows分析组件进行重构,提高了分析的质量。
2012年7月24日布谷鸟沙地0.4释放
2012年12月20日,布谷鸟沙箱0.5“到世界末日”上映。
2013年4月15日,在发布了Malwr.com的第二版后不久,我们发布了Cuckoo Sandbox 0.6。
2013年8月1日,克劳迪奥·“nex”·瓜尼耶里、尤利安·布雷默和马克·“rep”·施勒瑟在拉斯维加斯黑帽球场提出了“恶意软件”问题——布谷鸟沙箱。
2014年1月9日,布谷鸟沙箱1.0发布。
2014年3月布谷鸟基金会诞生为非营利组织,致力于布谷鸟沙箱成长及周边项目及倡议。
2014年4月7日,布谷鸟沙箱1.1发布。
2014年10月7日,布谷鸟沙箱1.1.1在罗伯特·米歇尔披露了一个关键漏洞后发布。
在2015年3月4日,布谷鸟沙箱1.2发布,在布谷鸟的可用性方面有了广泛的改进。
在2015年夏天布谷鸟沙箱开始开发Mac OS X恶意软件分析作为一个谷歌夏季代码项目内的蜜网项目。Dmitry Rodionov获得了该项目的资格,并为Mac OS X开发了一款可以工作的分析仪。
2016年2月21日,2.0版候选1版发布。这个版本通过将近两年的共同努力使布谷鸟沙箱成为一个更好的日常使用项目。
四、用例
Cuckoo被设计成既可以作为独立的应用程序使用,也可以集成到更大的框架中,这要归功于它极其模块化的设计。可用于分析:
(1)Generic Windows executables
(2)DLL files
(3)PDF documents
(4)Microsoft Office documents
(5)URLs and HTML files
(6)PHP scripts
(7)CPL files
(8)Visual Basic (VB) scripts
(9)ZIP files
(10)Java JAR
(11)Python files
(12)Almost anything else
由于它的模块化和强大的脚本功能,使用Cuckoo来实现的功能是无限的。
有关定制布谷鸟的更多信息,请参阅定制一章。
五、体系结构
布谷鸟沙箱由一个中央管理软件组成,处理样品的执行和分析。
每个分析都在一个独立的虚拟或物理机器中启动。布谷鸟的基础设施的主要组件是主机(管理软件)和一些客户机器(虚拟或物理机器进行分析)。
主机运行沙盒的核心组件,管理整个分析过程,而客户端是隔离的环境,恶意软件样本在这里得到安全的执行和分析。
以下图片解释了布谷鸟的主要架构:
六、获得Cuckoo
虽然Cuckoo仍然可以从网站下载,但我们不鼓励这样做,因为通过pip安装Cuckoo是获得Cuckoo的首选方式。请参阅安装Cuckoo(https://cuckoo.sh/docs/installation/host/installation.html)。
Cuckoo可以从发布稳定和打包版本的官方网站下载,也可以从我们的官方git存储库中克隆。