一、官方文档
二、沙盒简介
在计算机安全领域,沙盒(英语:sandbox,又译为沙箱)是一种安全机制,为运行中的程序提供的隔离环境。通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用。
这个概念也适用于恶意软件分析的沙盒:我们的目标是在隔离环境中运行未知和不受信任的应用程序或文件,并获取有关它的功能的信息。简单的说,Cuckoo是一个允许执行沙盒恶意软件分析的工具。
三、Cuckoo简介
Cuckoo是一个开源的自动恶意软件分析系统。
它用于自动运行和分析文件,并收集所有的分析结果,输出恶意软件在隔离操作系统内运行时的情况。
它可以检索以下类型的结果:
- 由恶意软件生成的所有进程执行的调用跟踪。
- 恶意软件在执行期间创建,删除和下载的文件。
- 恶意软件进程的内存转储。
- PCAP格式的网络流量跟踪。
- 在执行恶意软件期间拍摄的屏幕截图。
- 机器的完整内存转储。
由于其极为模块化的设计,Cuckoo既可以作为独立应用程序使用,也可以集成到更大的框架中。
它可以用来分析:
- 通用Windows可执行文件
- DLL文件 PDF文件
- Microsoft Office文档
- 网址和HTML文件
- PHP脚本
- CPL文件
- Visual Basic(VB)脚本
- ZIP文件
- Java JAR
- Python文件
- 几乎其他任何东西
由于其模块化和强大的脚本功能,使用Cuckoo可以实现的目标没有限制。
四、Cuckoo架构
Cuckoo的每个分析 都在一个 全新的 隔离的 虚拟机或物理机 中启动。Cuckoo基础架构的主要组件是主机(管理软件)和许多客户机(用于分析的虚拟机或物理机)。
主机上的管理软件是 整个分析过程的核心组件,而客户机是实际安全执行和分析恶意软件样本的隔离环境。
下图解释了Cuckoo的主要架构:
五、cuckoo的安装
我安装的系统:
主机:Ubuntu16.04 LTS
虚拟机:VMware
客户机:win xp
1 准备主机
1.1 准备cuckoo需要的环境
1.1.1安装python库
Cuckoo主机组件完全用Python编写,因此需要安装适当版本的Python。此时我们只完全支持Python 2.7。需要以下来自apt存储库的软件包才能使Cuckoo正确安装和运行:
$ sudo apt-get install python python-pip python-dev libffi-dev libssl-dev
$ sudo apt-get install python-virtualenv python-setuptools
$ sudo apt-get install libjpeg-dev zlib1g-dev swig
1.1.2 安装MongoDB
为了使用基于Django的Web界面,需要使用MongoDB:
$ sudo apt-get install mongodb
1.1.3 安装PostgreSQL
为了使用PostgreSQL作为数据库(我们的推荐),还必须安装PostgreSQL:
$ sudo apt-get install postgresql libpq-dev
1.1.4 安装虚拟机
我装的是VMware。(也试过virtualBox,但是在virtualBox上装win xp的时候没装上xp,就选择了VMware)
1.1.5安装tcpdump
为了在执行期间转储恶意软件执行的网络活动,需要正确配置网络嗅探器以捕获流量并将其转储到文件中。
$ sudo apt-get install tcpdump apparmor-utils
$ sudo aa-disable /usr/sbin/tcpdump
请注意,只有在使用默认目录时才需要apparmor禁用配置文件(aa-disable命令),CWD因为apparmor会阻止创建实际的PCAP文件(另请参阅 tcpdump的权限被拒绝)。
对于禁用apparmor的Linux平台(例如,Debian),以下命令就足以安装tcpdump:
$ sudo apt-get install tcpdump
Tcpdump需要root权限,但由于不希望Cuckoo以root身份运行,因此必须为二进制文件设置特定的Linux功能:
$ sudo groupadd pcap
$ sudo usermod -a -G pcap cuckoo
$ sudo chgrp pcap /usr/sbin/tcpdump
$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
可以使用以下命令验证上一个命令的结果:
$ getcap /usr/sbin/tcpdump
/usr/sbin/tcpdump = cap_net_admin,cap_net_raw+eip
如果没有安装setcap,可以使用:
$ sudo apt-get install libcap2-bin
或者以其他方式(不推荐)做:
$ sudo chmod +s /usr/sbin/tcpdump
1.1.6 安装Volatility(内存取证分析工具)
Volatility是一种可选工具,可对内存转储进行取证分析。与Cuckoo结合使用,它可以自动提供对操作系统深度修改的额外可视性,并检测逃脱Cuckoo分析器监控域的rootkit技术的存在。(本文未安装)可以从他们的官方存储库下载它。
1.1.7安装M2Crypto
目前M2Crypto只有在安装SWIG时才支持该库。在Ubuntu /类似Debian的系统上,可以按如下方式完成:
$ sudo apt-get install swig
如果SWIG系统中存在,可以M2Crypto按如下方式安装:
$ sudo pip install m2crypto==0.24.0
1.1.8安装guacd
guacd 是一项可选服务,为Cuckoo Web界面中的远程控制功能提供RDP,VNC和SSH转换层。没有它,遥控器将无法工作。0.9.9及更高版本可以使用,但我们建议安装最新版本。在Ubuntu 17.04机器上,以下命令将安装版本0.9.9-2:
$sudo apt install libguac-client-rdp0 libguac-client-vnc0 libguac-client-ssh0 guacd
如果只需要RDP支持,则可以跳过libguac-client-vnc0和libguac-client-ssh0软件包的安装 。
如果使用的是较旧的发行版,或者只是想使用最新版本(我们的推荐),则以下内容0.9.14将从源代码构建最新版本():
$ sudo apt -y install libcairo2-dev libjpeg-turbo8-dev libpng-dev libossp-uuid-dev libfreerdp-dev
$ mkdir /tmp/guac-build && cd /tmp/guac-build
$ wget https://www.apache.org/dist/guacamole/0.9.14/source/guacamole-server-0.9.14.tar.gz
$ tar xvf guacamole-server-0.9.14.tar.gz && cd guacamole-server-0.9