xr3iracer/ubuntu-arm64-malware-lab
GitHub: xr3iracer/ubuntu-arm64-malware-lab
为 Apple Silicon 上的 UTM 虚拟机提供一键部署的 Ubuntu ARM64 恶意软件分析工具包与隔离网络实验室。
Stars: 0 | Forks: 0
# 适用于 UTM 的 Ubuntu ARM64 恶意软件分析实验室
本项目将一个实用的恶意软件分析工具包安装到运行在 Apple Silicon Mac 上的 UTM 中的 Ubuntu ARM64 虚拟机内。它遵循 FLARE-VM 的分类理念,但使用 Linux 原生且兼容 ARM64 的工具,而不是尝试安装专注于 Windows 的 FLARE-VM 发行版。
受支持的客户机系统为 **Ubuntu 24.04 ARM64**。安装程序会在运行时检查软件包的可用性,因此缺少某个可选软件包不会中断整个构建过程。
## 安装内容
默认的 `core` 配置包含:
- 静态分析:YARA、ClamAV、ssdeep、hashdeep、ExifTool、binwalk、Sleuth Kit、PE 实用程序、UPX 以及 Python PE 库。
- 逆向工程:Ghidra、radare2、GDB multiarch、Capstone、Unicorn、strace、ltrace、valgrind、QEMU user emulation、apktool 以及 Java 反编译器。
- 网络分析:INetSim、TShark、tcpdump、ngrep、Nmap、mitmproxy、tcpflow、tcpreplay、termshark、socat 以及 Netcat。
- 文档分析:oletools、PDF 实用程序、qpdf、pdfminer、pdfcrack 以及 pdfresurrect。
- 内存分析:Volatility 3。
- FLARE 工具(在可用的情况下包含兼容 ARM 的 Python 安装):FLOSS 和 capa。
`full` 配置添加了 Wireshark、GUI 十六进制/数据库工具,以及占用更大磁盘空间的取证和时间线分析软件包。
安装程序会检查每一个 apt 软件包,并在遇到不可用的软件包时进行报告,而不是直接中止整个构建过程。
## UTM 虚拟机设置
1. 使用 Ubuntu 24.04 ARM64 ISO 创建一个新的 **Virtualize > Linux** 虚拟机。
2. 如果您希望使用 UTM 的可重置运行模式,请使用 QEMU 后端。
3. 至少分配 4 个 CPU 核心、8 GB 内存和 100 GB 存储空间。Ghidra 和大型样本分析建议使用 12-16 GB 内存以获得更好性能。
4. UTM 官方的 ARM 指南使用的是 Ubuntu Server。如果需要桌面版实验室,请在安装此工具包之前使用 `sudo apt install ubuntu-desktop` 安装 GUI,然后重新启动。
5. 仅在安装 Ubuntu 和这些工具期间使用共享网络。
6. 在分析恶意软件时,切勿挂载真实的 Mac 文件夹。在保留纯净基础快照之前,请禁用共享剪贴板和目录共享。
7. 安装完成后,请关闭虚拟机电源,并禁用/移除其 UTM 网络适配器。这比单纯依赖客户机防火墙更为安全。
8. 保留一份处于关机状态的纯净虚拟机副本。使用 QEMU 后端时,选择 **Run without saving changes** 可进行一次性的分析会话。
对于多虚拟机实验室,UTM 的 **macOS Host Only** 网络会拦截 WAN 流量,但不提供 DHCP。请分配静态客户机地址并启用 **Isolate Guest from Host**。在恶意软件分析中切勿使用桥接模式。
## 安装
在 Ubuntu 虚拟机仍具有互联网访问权限时,将本项目克隆到其中:
```
sudo apt update
sudo apt install -y git
git clone https://github.com/xr3iracer/ubuntu-arm64-malware-lab.git
cd ubuntu-arm64-malware-lab
chmod +x install.sh
sudo ./install.sh
```
如需安装包含更大规模 GUI/取证工具的配置:
```
sudo ./install.sh --profile full
```
常用选项:
```
--no-ghidra
--no-python-tools
--dry-run
```
安装程序会下载最新的官方 Ghidra 发行版,验证其发布的 SHA-256 校验和,将其解压到 `/opt/malware-lab` 目录下,并删除临时压缩包。它还会在 `/opt/malware-lab` 目录下写入 apt 和 pipx 清单,以便进行离线审计。
## 模拟互联网与隔离执行
FakeNet-NG 是面向 Windows 的。本项目使用 INetSim 和 Linux network namespace 来提供类似的单虚拟机工作流程:
```
sudo labnet start
sudo labnet test
malrun ./suspected-sample
sudo labnet stop
```
`labnet` 会创建以下专用网络拓扑:
```
sample process (10.66.0.2)
|
| isolated veth; no external forwarding
v
INetSim (10.66.0.1)
```
DNS 响应会将所有域名解析指向 `10.66.0.1`。发往硬编码 IPv4 地址的流量将被重写至 INetSim 地址,同时保留请求的端口号。转发防火墙会丢弃所有未在本地处理的数据包。
报告和日志会保存在 `/var/log/inetsim` 目录下。
您还可以在该 network namespace 中打开一个交互式 shell:
```
sudo labnet shell
```
该 network namespace 仅用于控制网络访问;它**不是**进程或内核沙箱。请务必仅在可重置的虚拟机会话中、以非特权用户身份运行样本,并在每次分析完成后恢复到纯净基础快照。
## 架构说明
- REMnux 目前的完整发行版仅支持 x86/amd64 架构,因此无法在此 Apple Silicon ARM64 客户机中原生安装。
- 诸如 Ghidra 和 radare2 之类的静态分析工具可以分析 x86、x64、ARM、MIPS 及其他架构的二进制文件,而不管客户机的 CPU 架构如何。
- 包含 QEMU user emulation 用于受控执行外来 Linux 二进制文件,但动态样本可能需要匹配相应的客户机库。
- x86 内核驱动程序、内核恶意软件以及某些反虚拟机行为无法在 ARM64 客户机中被真实地分析。对于这些情况,请保留一个单独的 x86_64 模拟虚拟机,并接受由此带来的显著性能开销。
## 验证
运行:
```
malware-lab-verify
sudo labnet start
sudo labnet test
sudo labnet stop
```
请在虚拟机断开互联网连接并保留纯净基础快照之前完成这些检查。
## 安全须知
- 切勿为用于分析的虚拟机使用桥接网络。
- 安装完成后,请禁用 UTM 网络适配器。
- 切勿向正在运行的样本暴露 Mac 共享文件夹、USB 存储、SSH 或远程桌面。
- 在样本进入虚拟机之前,请始终将其保存在受密码保护的压缩包中。
- 切勿使用 `sudo` 或以 root 身份运行样本。
- 请将 network namespace、INetSim、容器和客户机防火墙视为实验室便利工具,绝不能将其作为虚拟机隔离和快照回滚的替代方案。
标签:ARM64, DAST, SecList, 云资产清单, 内存取证, 应用安全, 恶意软件分析, 网络流量分析, 虚拟化环境, 身份验证强制, 逆向工具, 逆向工程