来源:https://zeltser.com/build-malware-analysis-toolkit/
检查恶意软件的能力可以让IT团队更好地评估安全事件的性质,并可能有助于防止进一步的感染。这里是如何建立一个受控的恶意软件分析实验室-免费。
步骤1:为分析实验室分配物理或虚拟系统
步骤2:将实验室系统与生产环境隔离
步骤3:安装行为分析工具
步骤4:安装代码分析工具
步骤5:利用在线分析工具
下一个步骤
大量的计算机入侵都涉及某种形式的恶意软件(malware),它会找到受害者的工作站或服务器。当调查事件时,IT应答者通常会寻求回答这样的问题:恶意软件样本可以在系统上执行什么操作?它是如何传播的?它如何(如果有的话)与攻击者保持联系?这些问题都可以通过在受控环境中分析恶意软件来回答。
一个简单的分析工具集(由免费且易于获得的软件构建)可以帮助您和您的IT团队开发应对当前安全事件的关键技能。下面的步骤将帮助你开始。我们将专注于Windows环境中的恶意软件分析,因为该平台在恶意软件作者中特别流行。如果你对这个话题感兴趣,可以看看我在SANS学院教授的恶意软件逆向工程课程。
步骤1:为分析实验室分配物理或虚拟系统
检查恶意软件的常见方法包括用恶意软件样本感染系统,然后使用适当的监控工具观察其行为。这需要一个实验室系统,可以在不影响生产环境的情况下进行感染。
建立这样一个实验室系统的最流行和最灵活的方法涉及到虚拟化软件,它允许您使用一个物理计算机来托管多个虚拟系统,每个虚拟系统运行一个可能不同的操作系统。免费的虚拟化软件选项包括:
在一台物理计算机上同时运行多个虚拟系统对于分析那些试图与其他系统交互的恶意软件非常有用,这些恶意软件可能是为了泄露数据、从攻击者那里获得指令,或者是为了升级自己。虚拟化使得设置和使用这样的系统变得很容易,而不需要大量的物理设备。
许多虚拟化工具的另一个有用特性是能够为实验室系统拍摄瞬时快照。这样,您就可以在感染系统之前记录系统的状态,并在分析结束时通过单击按钮恢复到原始环境。
如果使用虚拟化软件,请在物理系统中安装尽可能多的RAM,因为内存的可用性是虚拟化工具最重要的性能因素。此外,拥有一个大的硬盘驱动器将允许您托管许多虚拟机,它们的虚拟文件系统通常作为文件存储在物理系统的硬盘驱动器上。
因为恶意软件可能会检测到它是在虚拟环境中运行的,一些分析人士更喜欢依靠物理机器而不是虚拟机器来实现实验室系统。您的旧的和未使用的pc机或服务器可以为您的恶意软件分析实验室提供优秀的系统,它通常不需要高性能cpu或高度冗余的硬件组件。
为了让恶意软件在实验室中发挥其全部潜力,实验室系统通常是互相联网的。这有助于您观察恶意程序的网络交互。如果使用物理系统,则可以使用廉价的集线器或交换机将它们彼此连接起来。
步骤2:将实验室系统与生产环境隔离
您必须采取预防措施将恶意软件分析实验室与生产网络隔离,以减少恶意程序逃脱的风险。您可以使用防火墙将实验室网络与生产网络分开。更好的是,不要连接实验室和生产网络,以避免防火墙配置问题,可能允许恶意软件绕过过滤限制。
如果你的实验室网络是高度隔离的,你可以使用可移动媒体把工具和恶意软件带进实验室。考虑使用一次性写入媒体,如dvd,以防止恶意软件通过写入可移动可写磁盘来逃脱实验室的限制。一个更方便的选择是一个包含物理写保护开关的USB密钥。
一些恶意软件分析场景得益于实验室连接到internet。避免使用生产网络进行此类连接。如果可能的话,提供一个单独的,通常便宜的互联网连接,也许通过专门的DSL或电缆调制解调器线来达到这个目的。避免让实验室一直连接到互联网,以减少恶意软件在你的实验室攻击互联网上其他人的系统的机会。
如果虚拟化您的实验室,一定要跟上虚拟化软件供应商发布的安全补丁。这些软件可能存在漏洞,可以让恶意软件从你感染的虚拟系统中逃到物理主机上。此外,不要将托管虚拟实验室的物理机器用于任何其他目的。
步骤3:安装行为分析工具
在你准备用恶意软件样本感染你的实验室系统之前,你需要安装和激活适当的监控工具。免费的工具,将让你观察如何Windows恶意软件与其环境交互包括:
文件系统和注册表监视:使用ProcDOT的进程监视提供了一种强大的方法来观察本地进程如何读取、写入或删除注册表项和文件。这些工具可以帮助您了解恶意软件是如何在感染时嵌入系统的。
进程监控:进程资源管理器和进程黑客取代内置的Windows任务管理器,帮助您观察恶意进程,包括他们可能试图打开的本地网络端口。
网络监控:Wireshark是一种流行的网络嗅探器,它可以观察实验室网络流量,以发现恶意通信尝试,如DNS解析请求、bot流量或下载。
变更检测:Regshot是一个轻量级工具,用于比较感染前后系统的状态,以突出显示恶意软件对文件系统和注册表所做的关键变更。
行为监视工具可以让您了解恶意软件的关键功能。要了解其特征的更多细节,您可能需要卷起袖子并执行一些代码分析。
步骤4:安装代码分析工具
检查包含标本的代码有助于发现可能难以通过行为分析获得的特征。在恶意可执行文件的情况下,您很少有机会访问创建它的源代码。幸运的是,以下免费工具可以帮助您反向编译Windows可执行文件:
反汇编器和调试器:OllyDbg和IDA Pro免费软件可以解析已编译的Windows可执行文件,并充当反汇编器,将它们的代码显示为汇编指令。这些工具还具有调试功能,允许您在高度控制的条件下缓慢地执行恶意程序中最有趣的部分,以便更好地理解代码的目的。
内存转储器:“Scylla”和“OllyDumpEx”帮助获取位于实验室系统内存中的受保护代码,并将其转储到一个文件中。这种技术在分析打包的可执行文件时特别有用,这些文件很难分解,因为它们对指令进行编码或加密,只有在运行时才将其解压缩到RAM中。
第五步:利用在线分析工具
要使您的恶意软件分析工具包更加完善,请向其中添加一些免费的在线工具,它们可能有助于逆向工程过程。其中一类工具对您提供的可执行文件执行自动化的行为分析。乍一看,这些应用程序类似,但在后端使用不同的技术。考虑提交你的恶意软件样本的几个网站;根据标本的不同,有些地点会比其他地点更有效。这些工具包括:
你可以看到一个免费的自动恶意软件分析服务列表,可以检查编译的Windows可执行文件。
另一组可能有用的在线工具提供有关被怀疑存有恶意代码的网站的详细信息。其中一些工具可以实时检查您指定的站点;还有一些提供历史信息。考虑向这些网站提交可疑的网址,因为每一个网站都可能提供对有问题的网站略有不同的观点:
实时威胁评估:WebInspector和Wepawet
历史信誉数据:URLVoid和MxToolbox
你可以看到一个用于查找潜在恶意网站的免费在线工具列表。
下一个步骤
在组装好最初的工具包后,开始在实验室中试验在web、电子邮件信箱、系统等中遇到的恶意软件。有几个“备忘单”可以帮助你在这个过程中,包括:
逆向工程恶意软件备忘单
分析恶意文档备忘单
使用您最熟悉的工具和方法开始分析。然后,当你变得更加熟悉恶意软件样本的内部工作方式时,冒险离开你的舒适区,尝试其他工具和技术。我在每个步骤中列出的工具实际上是相同的。既然它们都是免费的,你应该都试一试。根据具体情况,您会发现一种工具比另一种工具工作得更好。通过时间、耐心和练习,你将学会将恶意软件彻底铲除。