如何构建一个恶意软件的分析沙箱?

首页 / 业界 / 资讯 /  正文
作者:十六
来源:安全419
发布于:2022-03-28
在搜索恶意软件之前,每个研究人员都需要找到一个系统来分析它。有两种方法可以做到这一点:构建可以分析恶意软件的环境或者使用第三方解决方案。今天,我们将构建可以分析恶意软件的环境——自定义恶意软件沙箱,我们可以在不感染计算机的情况下进行适当的分析。
 

 
阐述步骤之前 我们先来了解一下沙盒
 
沙盒(sandbox,又译为沙箱),在计算机安全领域里是一类安全机制,为运行的程序提供的隔离环境。通常是为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用。沙盒通常严格控制其里的程序所能访问的资源,比如,沙盒可以提供用后即回收的磁盘及内存空间。在沙盒里,网络访问、对真实系统的访问、对输入设备的读取通常被禁止或是严格限制。沙盒里的所有改动对操作系统不会造成任何损失。通常,这类技术被计算机技术人员广泛用于测试可能带毒的程序或是其他的恶意代码。
 
想象一下,在一个装满了平整细沙的盒子里,我们可以尽情随意地在上面作画、涂写,无论画的好坏,最后轻轻一抹,沙盒又回到了原来的平整状态。沙盒的魅力就在于他允许你出错,还可以给你改正的机会。而且沙盒允许检测网络威胁且安全地分析它们。所有信息都会保持安全,并且可疑文件无法访问系统。我们可以监视恶意软件进程,识别其模式并调查其行为。这也就是为什么我们需要沙盒的原因。
 
如何构建自己的恶意软件沙盒?
 
下面,让我们逐步了解为恶意软件设置一个简单的研究环境所需的所有步骤:
 
1.安装虚拟机
运行恶意软件应该发生在适当隔离的环境中,以避免感染主机操作系统。最好有一台独立的计算机,但我们可以设置一台虚拟机,安装不同版本的操作系统。市场上有很多可选的虚拟机:VMWare、VirtualBox、KVM、Oracle VM VirtualBox、Microsoft Hyper-V、Parallels或Xen。
 
2.检查工件
现代恶意软件是智能的 ——它能知晓自己是否在虚拟机上运行。这就是为什么检查至关重要的原因。我们可以检查代码、删除检测等。
 
3.使用其他网络
另一个预防措施是使用不同的网络系统。防止网络上其他计算机受到任何感染是非常重要的。我们需要获取并正确设置VPN服务,不能让流量从真实的IP地址泄漏。
 
4.分配实际数量的资源
我们的目标是使系统看起来尽可能真实,以诱骗任何恶意程序的执行。因此需要确保分配的资源数量符合实际情况:超过4 Gb的RAM,至少4个内核,以及100GB或更多的磁盘空间。这是伪装成合法系统的基本要求。但是,恶意软件会检查设备的配置(敲重点)——如果某个地方有虚拟机的名称,恶意对象就会识别它并停止工作。
 
5.安装常用软件
如果我们安装Windows并维持原样,则恶意对象将对其进行分析,并得到相关信息。我们需要安装一些应用程序,如 Word、浏览器和所有用户通常拥有的其他程序。
 
6.打开多个文件
在这里,我们需要证明它是属于某人的真实计算机。打开一些文档来积累日志和一些临时文件。几种类型的病毒会检查这一点。我们可以使用Regshot或Process监视器来记录注册表和文件系统的更改。但是我们需要关注的是,这些程序在运行时可能被恶意软件检测到。
 
7.模仿网络连接
某些类型的恶意软件会检查它是否可以连接到Google等网站。如何骗过恶意程序让它以为自己在线?像INetSim和FakeNet这样的工具可以模仿真实的互联网连接,并允许我们发出拦截恶意软件发出的请求。我们需要尝试检查恶意对象与其主机服务器之间的网络协议。但在此之前,我们要使用WireShark找出分析样本与什么有关,还需要付出努力才能不将这个工具交给恶意软件。
 
8.安装分析工具
我们可以使用分析工具Flare VM,也可以使用以下程序:
·调试器:x64dbg 通过执行恶意代码来调查恶意代码。
·拆解器:Ghidra使逆向工程更容易,可以访问反编译器的输出。它也可以用作调试器。
·流量分析器:Wireshark检查恶意软件请求的网络通信。
·文件分析器:进程监视器,ProcDOT 旨在监视和了解进程如何处理文件。
·进程监视器:进程资源管理器、进程黑客帮助监视恶意软件行为。
 
9将系统更新到最新版本
我们的系统和所有软件都应该是最新的。这需要过滤掉经常发生的常规Windows更改。但是,我们的实验可能需要不同的版本,例如恶意软件如何利用某些操作系统错误。在这种情况下,请选择并设置必要的版本。
 
10.关闭 Windows Defender 和 Windows 防火墙
禁用像Windows Defender这样的东西。如果我们正在使用恶意软件,它可能会触发防病毒软件。
 
11.准备好要分析的文件
创建共享文件夹,选择需要的目录。设置快照,以便在发生错误时回滚到虚拟机的后期状态。如果完成所有这些步骤,我们就可以开始分析了。