原文地址:Creating a Simple Free Malware Analysis Environment
译者:hello1900@知道创宇404实验室
发表时间:2017年11月17日
计算机要求:
- CPU支持AMD-V 或Intel VT-x(任何调试解调器CPU均适用);
- 4GB RAM(容量越大越好)。
确保启用BIOS虚拟化(AMD-V或Intel VT-x)。需要谷歌搜索“enable virtualization”以及BIOS或主板版本号并遵照以下步骤。
选择系统管理程序
系统管理程序是一款软件,用于创建与真实设备相分离的虚拟计算机(有时称作虚拟机,缩写VM)。接下来,我们就将使用系统管理程序创建一个单独的Windows安装程序,可以在不对自身设备或数据造成危害的情况下感染恶意软件。
我个人经常使用大约5种不同的系统管理程序,每个程序之间存在细小差别,适合不同任务需求。下面我将介绍具体用途与原因。
- VMware Workstation Pro - 性能极高,可能最适合在Windows 操作系统上运行,此外还具备适用于复杂虚拟网络的一整套额外功能。
- VMware Workstation Player - Pro版本的轻量级精简版本,非常适合简单便捷的VM设置,但不支持快照功能,这也是恶意软件分析过程中存在的主要问题。我在笔记本电脑上安装了该版本,用于改进演示。
- KVM - 在Linux操作系统上运行,插件通过去重获取更多内存。KVM在规避恶意软件检测方面具有非常好的性能,因为多数恶意软件依赖于VirtualBox或VMWare的具体功能,不太关注其他系统管理程序的检测。
- ESXi - 不用于操作系统安装,通过在系统管理程序周边搭建操作系统减少开销。
- VirtualBox - 允许欺骗VM底层硬件,通过探测虚拟/物理硬件或固件版本避免恶意软件发现自身位于VM中。免费、设置简单并具备付费系统管理程序的多数功能。
对于初学者而言,推荐使用VirtualBox,因为它免费、支持多数大型操作系统,快照功能允许将VM 恢复到具体某个存储状态。出此考虑,本文内容也将围绕VirtualBox展开。
选择Guest OS
在VM内部运行的操作系统十分重要,具体取决于以下几方面。对此,我将逐一详细介绍。
必备技能
如果你打算对恶意软件实施逆向工程,但只是大致了解或正在学习x86汇编语言,那么运行x86 Windows安装程序比较适合。多数恶意软件在WoW64(Windows在64位系统上运行32位二进制文件所采用的方式)下运行,所以你可能会在不考虑所采用架构的情况下针对32位代码逆向工程。在某些情况下,恶意软件将根据具体架构放置32位或64位有效payload,因此,不熟悉64位汇编语言就需要使用32位payload,也就是说使用32位(x86)操作系统。
硬件要求
x86_64 CPU能够运行32位/64位VM,但x86 CPU只能运行32位VM。如果你的CPU是x86,那么应选择32位操作系统。老式CPU(特别是x86 CPU)可能不支持较新版本的Windows 安装程序具备的功能,所以最好保持在Windows 8以下版本。
如果你的计算机没有足够内存,那么运行Windows XP VM效果更好,因为256M内存即已满足要求(确保使用Service Pack 3,因为它添加了多数恶意软件赖以生存的OS功能。)Windows 7 VM 通常要求1 GB 内存,但实际上可能768MB (Home Edition 512M)即已满足要求。
经验之谈
多数恶意软件在XP Service Pack 3与Windows 10之间的各种Windows系统上运行。所以说如果你更熟悉XP就放心大胆使用吧。Windows 10资源非常集中,可能不支持所有恶意软件,不适合日常恶意软件分析,除非在极端情况下。此外,Windows 10 后台联网服务也异常嘈杂,数据包捕获充斥了大量无用、不相关数据。
恶意软件
64位操作系统利用DSE(驱动程序强制签名)阻拦未签名的核心驱动加载。如需分析安装核心驱动的恶意软件,那么32位操作系统将是你的首选,不会产生恶意软件安装未签名驱动的问题。
工具配置
说到这里,还要感谢我的雇主,在地下室放置了一台强大的机架式服务器,足以安装从OS、XP到Windows 10(32位/64位)的各类操作系统。在此之前,我个人偏好使用支持常用恶意软件的Windows 7 Ultimate Edition (32位)操作系统,主要看中了远程桌面功能。如果你觉得VNC用起来更顺手,那么Home Edition也是不错的选择。
此外,还应记住VM用于恶意软件运行与分析,当试图通过恶意软件感染系统时,弃用存在安全隐患的较老版本操作系统只会适得其反。
设置虚拟机
RAM
建议根据所用操作系统要求选取最小量。
CPU
“处理器”选项定义能够使用多少CPU内核。正常情况下,一个就够用,但如果你的CPU具有多个内核,可考虑放宽限制,为VM提速。
执行上限应保持在100%,除非将处理器设置为与CPU具有相同内核数并考虑降低限制,避免VM死机。
网络
确保勾选NAT选项,可使VM联网但看不到真实网络上的设备或与其他VM通信,后者从安全角度看是件好事。
其他选项可保持原样。虽然对于简单恶意软件分析环境不作要求,但可以通过hifireF0x加载程序强化VirtualBox,防止恶意软件检测到所处的VM环境。
安装Windows
如果已具备有效的产品秘钥(一旦在VM中安装,不得使用产品秘钥激活Windows,否则恶意软件可能窃取秘钥;正确做法是使Windows保持未激活状态),Windows7、8、10 镜像文件可由此获得。Windows XP似乎无法从微软网站获得,但我相信只要安装程序没被破解或修复,下载Windows镜像文件种子就是合法的。简而言之,VM仅运行恶意软件时不要激活Windows,因为激活带来的好处不具有任何实际意义。
无需将安装程序镜像文件安装至CD光盘,仅需导航至选项中的“存储”类别、点击旁边显示Empty的CD图标与右上角第二个CD图标,并选择安装镜像文件。
启动VM后,Windows系统将自动从镜像文件启动。按常规步骤浏览Windows安装流程,略过激活环节,考虑改变计算机名称与用户名,使VM看起来不像是供研究使用的机器。避免安装“Guest Additions”,因为恶意软件使用的工具包通常被用来检测是否在虚拟机内运行。
环境设置
Windows 安装完毕后点击“Machine”> “Take Snapshot” ,创建现有VM状态图像,接下来可以回到原来界面或从相同图像创建新的VM;“roll back”至某张快照类似于用快照期间保存的数据重写硬盘与内存、撤销任何变更,当然包括获取快照后发生的恶意软件感染事件。
现在轮到选择并安装分析工具了,如果不确定该安装哪些工具,可参考以下列表:
反汇编工具 / 调试程序
- OllyDbg
- WinDbg(作为Windows SDK一部分安装)
- x64Dbg
- IDA(Freeware Edition)
- Radare2
PE 工具
- PE Explorer
- Explorer Suite
- PEStudio
进程工具
- Process Hacker
- ProMon
- Process Explorer
- Process Dump
- User Mode Process Dumper
网络工具
- Wireshark
- Fiddler
- mitmproxy
其他
- HxD(Hex Editor)
- PaFish(VM检测测试)
- oledump(从Office 文档提取宏)
- olevba(VBA宏提取器)
- 字符串(从文件提取ASCII与Unicode文本)
安装所选工具后再生成一张快照就大功告成了(如需安装新工具可直接返回至快照界面,安装新工具后生成新快照、删除旧快照)。
注意事项
- 尚无恶意软件使用零日漏洞逃逸虚拟机的案例记载,如果保持VM清洁就应该不存在安全问题。切勿将USB设备插入VM,假定VM中的所有文件均被感染。切勿传输可在VM外部感染的文件,也不得登录受感染VM中的任何服务器。
- 在使用“Shared Folders”等功能在计算机与VM之间分享文件夹时要格外小心。这些文件夹中的所有文件都可被VM中的恶意软件轻松窃取、感染或破坏。
- 不要在联网VM上运行不熟悉的恶意软件样本。恶意软件可通过你的IP地址发动DDoS攻击、入侵计算机、开展金融诈骗活动。最好不通过执法途径开启常规访问路径。
- 如果在VM中运行V**,则该V**可被禁用或由恶意软件绕过,暴露你的真实IP地址。通常情况下,犯罪分子不会针对研究人员,但如果你想隐藏IP地址,那么不妨在你的计算机而非VM中运行V**。
- 避免在危险区域存储可执行恶意软件样本。建议将这些可能接触到你计算机的文件重命名为不可执行文件(例如.bin或.malware)或存储在不可执行目录下的webserver上。
- 在VM中存放的任何文件都可能被其间运行的恶意软件窃取,这是基本常识。
- 在分析过程中用快照保存进程。如果VM在记录期间发生崩溃或被勒索软件加密,未及时备份的数据将面临丢失的风险。
- 杀毒软件仍将扫描并删除匹配恶意签名的不可执行恶意软件样本甚至记事本,建议将重要文件夹设置为白名单。