Barath711/SafeSandbox

GitHub: Barath711/SafeSandbox

SafeSandbox 是一个纯离线的本地分析工作区,将可疑文件静态分拣、EVTX 日志解析、IOC 提取和 YARA 规则扫描整合到统一的桌面界面中,解决安全分析师在初步调查阶段频繁切换工具的问题。

Stars: 0 | Forks: 0

# 🛡️ SafeSandbox **一个用于离线文件分拣和 Windows 事件日志分析的工作区。** 检查可疑文件,解析 EVTX 日志,提取 IOC, 运行 YARA 规则,并在不上传证据或不执行文件的情况下审查未知内容。 ![Python](https://img.shields.io/badge/Python-3.10+-3776AB?style=flat&logo=python&logoColor=white) ![PyQt6](https://img.shields.io/badge/Desktop-PyQt6-41CD52?style=flat&logo=qt&logoColor=white) ![Offline](https://img.shields.io/badge/Analysis-100%25%20Offline-5138EE) ![Platform](https://img.shields.io/badge/Platform-Windows-blue) ## ⚡ 为什么开发此工具 初步的文件分拣通常意味着需要在各种查看器、事件日志工具、哈希实用程序、字符串提取器、IOC 解析器和规则扫描器之间频繁切换。 **SafeSandbox** 将这种初步分析整合到了一个本地工作区中: - 拖入文件、文件夹、压缩包或 Windows 事件日志 - 即使文件名没有扩展名也能检测内容 - 审查哈希值、元数据、字符串、IOC 和嵌入的内容 - 将大型 EVTX 文件解析为可搜索的调查时间线 - 运行内置的 YARA 规则,无需将样本发送到任何地方 - 导出有用的发现,用于报告或深入调查 ## 🖥️ 功能概览 ### 🪟 Windows 事件日志分析器 - 将 Windows `.evtx` 文件解析为结构化的事件表 - 审查时间戳、事件 ID、级别、提供者、通道和计算机 - 跨事件时间线构建可视化直方图 - 按事件 ID 堆叠活动,以便更快地识别模式 - 搜索和过滤大型事件集合 - 在调查过程中添加可疑的 IOC - 将时间线和事件数据导出为 CSV - 将多个符合条件的源加载到同一时间线中 ### 🔍 静态文件分拣 - 计算 MD5、SHA-1 和 SHA-256 哈希值 - 使用扩展名、Magic bytes 和内容检查来检测文件类型 - 审查文件大小、时间戳、熵值和可用的元数据 - 提取可读文本并检查原始十六进制数据 - 预览支持的文档、图像、电子邮件、脚本和结构化数据 - 无需在其原生应用程序中打开文件即可检查源内容 - 识别嵌入的文件、压缩包成员和嵌套内容 ### 📡 IOC 提取 - 提取 URL、域名、IP 地址、电子邮件地址和其他 IOC - 按类型和严重程度对发现结果进行分组 - 直接从发现面板中复制单个 IOC - 在调查期间过滤发现结果 - 在支持的视图中高亮显示 IOC - 在复制的分析摘要中包含相关的发现结果 ### 📐 YARA 规则库 - 包含数百条本地 YARA 规则的内置库 - 按文件类型、类别、严重程度或自由文本搜索规则 - 在扫描之前验证规则语法 - 针对活动文件运行选定的规则 - 审查匹配的规则名称、描述、标签和严重程度 - 无需外部规则服务或网络查找 ### 📦 压缩包与嵌入内容审查 - 检查常见的压缩包和打包格式 - 无需先手动解压所有内容即可浏览包含的文件 - 在同一工作区内直接打开支持的成员文件 - 使用调查面包屑导航嵌套内容 - 返回父文件而无需开启新的案例 ### 🕵️ 无扩展名文件检测 - 文件选择器接受带或不带扩展名的文件名 - Magic bytes 检查可识别 PDF、压缩包和二进制文件等格式 - 文本嗅探可在没有签名时识别可读内容 - 对于重命名为 `sample`、`attachment` 或 `report` 的证据非常有用 ### 📊 搜索、摘要与导出 - 在活动文档或渲染的内容中进行搜索 - 在搜索匹配项之间导航 - 将简明的调查摘要复制到剪贴板 - 导出支持的分析和时间线视图 - 缩放文档内容而不更改原始文件 ## 🎨 UI 亮点 - **调查仪表板** — 用于文件、日志、规则和压缩包的简洁起始屏幕 - **基于案例的工作流** — 打开证据、进行调查,然后使用 **Close case** 重置 - **自动发现面板** — 当有分析结果可用时自动出现 - **帮助 + 主题** — 键盘快捷键参考和多种浅色/深色外观 - **原生桌面窗口** — PyQt6 WebEngine 外壳,没有浏览器地址栏 - **动画启动卡片** — 匹配 SafeSandbox 启动体验 - **默认全屏** — 启动时最大化工作区 ## 🚀 快速开始 ### 1. 将应用程序文件保留在一起 ``` SafeSandbox/ ├── SafeSandbox_v2.pyw └── SafeSandbox_v2.html ``` ### 2. 安装依赖项 ``` pip install PyQt6 PyQt6-WebEngine ``` ### 3. 运行桌面应用程序 ``` pythonw SafeSandbox_v2.pyw ``` ### 纯浏览器选项 双击 `SafeSandbox_v2.html` 直接在现代 浏览器中打开相同的工作区。纯浏览器选项 不需要 Python。 ## 🧭 基本工作流 1. 启动 SafeSandbox。 2. 点击 **New investigation**,将证据拖到仪表板上,或 打开一个文件夹。 3. 等待本地解析器和安全检查完成。 4. 审查内容视图、事件时间线、发现结果和 YARA 匹配项。 5. 搜索、过滤、复制 IOC 或导出相关结果。 6. 点击 **Close case** 清除调查并返回仪表板。 ## 📁 支持的内容 | 类别 | 示例 | |----------|----------| | 事件日志 | EVTX, CSV, TSV, 结构化日志 | | 文档 | PDF, DOCX, XLSX, PPTX, RTF, ODT | | 脚本 | PowerShell, JavaScript, VBScript, Batch, HTA | | 可执行文件 | PE, DLL, SYS, ELF, Mach-O | | 压缩包 | ZIP, TAR, GZIP, 7Z, RAR, CAB, JAR | | 电子邮件与快捷方式 | EML, MSG, LNK, URL, Webloc | | 数据 | JSON, XML, YAML, SQLite, 注册表文件 | | 图像与证书 | PNG, JPEG, SVG, PEM, DER, PFX | | 无扩展名证据 | 通过 Magic bytes 或文本嗅探识别的文件 | ## ⌨️ 键盘快捷键 | 快捷键 | 操作 | |----------|--------| | `Y` | 打开 YARA 规则库 | | `T` | 打开主题 | | `?` 或 `H` | 打开帮助 | | `F` | 聚焦内容搜索 | | `Ctrl+Enter` | 复制调查摘要 | | `Ctrl+C` | 未选中文本时复制原始内容 | | `Ctrl+V` | 检查复制到剪贴板的文件 | | `Esc` | 关闭对话框或清除搜索 | ## 🔐 安全模型 - 文件在本地进行分析 - 读取证据但绝不执行 - 显示宏和脚本,而不是运行它们 - 文档不会在其原生应用程序中启动 - 不执行任何引爆、模拟或行为执行 - 严格的 Content Security Policy 阻止来自本地页面的网络请求 - SafeSandbox 不会故意上传任何文件内容 ## 🗂️ 文件结构 ``` SafeSandbox/ ├── SafeSandbox_v2.pyw # Native desktop launcher ├── SafeSandbox_v2.html # Analysis engine and interface └── README.md # Setup and usage guide ``` `.pyw` 和 `.html` 文件必须保留在同一文件夹中。 ## 👤 作者 **Barath A C** SOC Analyst II [LinkedIn](https://linkedin.com/in/barath07) · [GitHub](https://github.com/Barath711) *SafeSandbox 的灵感来源于 [Loupe](https://github.com/Loupe-tools/Loupe)。*
标签:EVTX分析, PyQt6, YARA, 云安全监控, 云资产可视化, 多模态安全, 数字取证, 自动化脚本, 逆向工具, 静态分析