ogshrug/YEMU

GitHub: ogshrug/YEMU

YEMU 是一个基于 YARA 和 QEMU/KVM 的本地恶意软件分析沙箱,通过隔离虚拟机执行可疑样本并自动生成威胁评分和分析报告。

Stars: 0 | Forks: 0

# 本地恶意软件分析沙箱 一个带有 GTK4 GUI 的本地、离线恶意软件分析沙箱。通过 QEMU/KVM 执行隔离的虚拟机并进行行为监控。 ## 功能 - 隔离的 VM 执行 (QEMU/KVM) - 行为监控(strace,网络捕获) - YARA 静态和内存分析 - 威胁评分和判定生成 - 实时日志流 - PDF 和 JSON 报告 ## 前置条件 ### 系统依赖 (Ubuntu/Debian) ``` sudo apt install qemu-kvm libvirt-daemon-system virt-manager \ python3-gi python3-gi-cairo gir1.2-gtk-4.0 gir1.2-adw-1 \ libgtksourceview-5-dev strace tcpdump yara ``` ### Python 依赖 ``` pip install -r requirements.txt ``` # 用法 本指南说明了如何设置和运行恶意软件分析沙箱。 ## 前置条件 ### 系统要求 - Ubuntu 22.04+(或等效的 Linux 发行版) - 支持 VT-x/AMD-V 的 CPU(用于 KVM) - 已安装 Libvirt 和 QEMU ### 依赖 安装必需的系统包: ``` sudo apt update sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virt-manager \ libguestfs-tools gir1.2-gtk-4.0 gir1.2-adw-1 python3-gi python3-libvirt ``` 安装 Python 依赖: ``` pip install -r requirements.txt ``` ## 虚拟机准备 沙箱需要在 libvirt 中预配置一台虚拟机。你可以手动准备,也可以使用内置的自动化工具。 ### 自动化虚拟机准备(推荐) 1. 启动 MalSandbox:`python main.py`。 2. 点击 **Prepare New VM**。 3. 填写 VM 名称、发行版(Ubuntu、Debian 或 Windows)、RAM、CPU 和磁盘大小。 4. 点击 **Prepare VM** 并等待该过程完成(包括下载镜像、自动化安装和快照)。 ### 手动虚拟机准备 1. **创建 VM**:使用 `virt-manager` 创建 VM(例如命名为 `ubuntu-clean`)。 2. **安装 Guest Agent**:确保在客户机操作系统中安装并运行了 `qemu-guest-agent`。 3. **配置网络**:VM 应位于名为 `malware-analysis` 的隔离网络上。 4. **拍摄快照**:配置完成后,拍摄一个名为 `clean-baseline` 的快照。 virsh snapshot-create-as ubuntu-clean clean-baseline "Clean state for analysis" ## 运行应用程序 通过运行以下命令启动应用程序: ``` python main.py ``` ## 用户界面指南 ### 1. 标题栏 - **Stack Switcher**:位于标题栏中心。使用它在 **Dashboard**、**YARA Rules** 和 **Reports** 标签页之间切换。 - **Submit File for Analysis**:点击此按钮将提交 `malicious_sample.elf` 进行分析。 ### 2. Dashboard - 显示上次分析的高级指标: - **威胁评分**:一个 0-100 的值,表示严重程度。 - **YARA 匹配**:触发的静态特征签名数量。 - **行为警报**:检测到的可疑系统调用数量。 ### 3. YARA Rules - 查看和编辑用于静态分析的 YARA 规则。 - 应用程序会自动从 `rules/yara-rules` 加载规则。 ### 4. 报告 - 过去分析的详细视图,包括元数据、日志和发现。 ### 5. 侧边栏 - **最近分析**:最近完成的分析任务列表。点击其中一个以查看其报告。 ### 6. 日志查看器 - 位于底部。显示分析的实时进度,包括 VM 生命周期事件和 YARA 匹配。 ## 故障排除 - **Libvirt 连接 / 权限错误** 如果你看到“Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied”,这很可能是用户组成员资格问题。 确保你的用户属于 `libvirt` 和 `kvm` 组: sudo usermod -aG libvirt,kvm $USER # 你必须注销并重新登录才能使此操作生效。 如果无法访问 `qemu:///system`,应用程序将自动尝试使用 `qemu:///session`。 - **Libguestfs 内核访问错误** 如果自动化 VM 准备或 `virt-copy-in` 失败并提示“cannot access /boot/vmlinuz”,请通过授予内核映像读取权限来修复它: sudo chmod +r /boot/vmlinuz-* 应用程序还在内部设置了 `LIBGUESTFS_BACKEND=direct`,以绕过一些常见的权限问题。 - **找不到 VM Domain** 如果你收到一条错误提示说找不到 VM,请验证它是否出现在 `virsh list --all` 中。 virsh list --all 如果缺失,请使用 **Prepare New VM** 按钮进行创建,或者通过 `virt-manager` 手动创建,确保名称一致。 - **QEMU Guest Agent 未响应** 如果 Guest Agent 超时,请确保: 1. 该 VM 配置了 Guest Agent 通道: 2. 客户机操作系统中已安装并运行 `qemu-guest-agent` 服务: # 在 Ubuntu/Debian 客户机内部 sudo apt install qemu-guest-agent sudo systemctl enable --now qemu-guest-agent - **隔离网络问题** 如果 `malware-analysis` 网络缺失,应用程序将尝试自动定义它。你也可以手动执行此操作: virsh net-define assets/network.xml virsh net-start malware-analysis virsh net-autostart malware-analysis - **Mock 模式回退** 如果应用程序找不到 KVM 或 libvirt 资源,它将自动降级到 **Mock Mode**。日志流中将显示一条警告。这允许你在没有本地虚拟化环境的情况下也能探索 UI。 ## 项目结构 - `ui/`:GTK4 界面组件 - `core/`:分析引擎和 VM 管理 - `storage/`:数据库和报告持久化 - `rules/`:YARA 规则集 - `assets/`:样式和 ISO 模板
标签:DAST, GTK4, QEMU/KVM, YARA, 云资产可视化, 安全沙箱, 恶意软件分析, 行为监控, 逆向工具