K31C0/GemmaSecuritySuite

GitHub: K31C0/GemmaSecuritySuite

一款基于 Gemma 2 2B 的物理隔离、USB 便携式 AI 安全运营中心,专为应急响应和离线取证分析而设计。

Stars: 0 | Forks: 0

🛡️ Gemma AI — 安全套件

一个用于应急响应的物理隔离、可从 USB 驱动器便携运行的 AI 安全运营中心。
通过 llama-cpp-python 在本地运行 Google 的 Gemma 2 2B 模型 —— 零安装、零云依赖、零主机痕迹。

专为 SOC 分析师、应急响应人员和网络安全专业人员设计,
需要在受损或隔离的机器上进行快速、私密的威胁分析。

## 🎯 概述 **Gemma AI 安全套件**正在转型为一个**完全便携、企业级就绪的 USB 应急响应工具包**。它将 AI 驱动的网络安全工具、离线威胁情报和取证功能捆绑到一个应用程序中,该程序可直接从 USB 驱动器运行 —— 在主机上留下**零痕迹**。 该应用程序完全在目标机器的硬件上运行 [Google 的 Gemma 2 2B](https://huggingface.co/bartowski/gemma-2-2b-it-GGUF),并带有自动的 CUDA/CPU 检测。您的数据永远不会离开设备。无需安装。无需互联网。无需 API 密钥。 ## ✨ 功能 ### 🤖 AI 驱动工具 (Gemma 2 2B — 本地推理) | 工具 | 描述 | |------|-------------| | 💬 **IT 支持副驾驶** | 用于实时 IT 故障排除的交互式聊天助手。以技术性、无废话的拟态保持完整的对话上下文。 | | 📊 **日志分析器** | 解析 Windows Event Log CSV,提取 Error/Critical 事件,并使用 AI 总结根本原因以及建议的修复步骤。 | | 📜 **脚本审计器** | 粘贴任何 PowerShell 或 Bash 脚本 —— AI 会识别安全风险、恶意模式,并解释每个代码块。 | | ⚡ **Regex 向导** | 将简单的英语翻译为 Regular Expressions,或将复杂的 Regex 字符串分解为人类可读的解释。 | | 🎣 **钓鱼分析器** | 分析原始邮件头和正文文本,查找钓鱼指标、SPF/DKIM 失败以及社会工程学策略。 | ### 🔧 实用工具 (无需 AI) | 工具 | 描述 | |------|-------------| | 🔐 **文件哈希验证器** | 使用内存安全的分块读取计算任何文件的 MD5 和 SHA-256 哈希值。用于验证文件完整性。 | | 🌐 **网络诊断** | 针对任何主机或 IP 地址运行 ICMP ping 测试和 TCP 端口扫描 (HTTP, HTTPS, SSH, RDP 等)。 | | 🌍 **IP 信誉查询** | 通过内置的 IP2Location LITE 数据库实现完全离线的 IP 地理定位和 ASN 查询 —— 无需任何网络调用。 | ### 🔬 取证与应急响应工具 | 工具 | 描述 | |------|-------------| | 📋 **证据监管链记录器** | 具有 SHA-256 完整性验证的仅追加 JSONL 审计跟踪。每个工具包操作都会被记录,以确保取证的防御性。 | | 🔍 **环境指纹** | 在单个快照中捕获 OS、运行中的进程、网络接口、ARP 表、TCP 连接和 Windows Event Log 条目。 | | ⚠️ **YARA 规则引擎** | 在 AI 分析之前,根据恶意软件特征预扫描脚本。捆绑的规则可检测凭证窃取、持久化机制、PowerShell cradles 等。 | | 🔒 **证据保险库** | 用于可疑文件的 AES-256-GCM 加密存储。PBKDF2 密钥派生(60 万次迭代)、SHA-256 完整性验证、仅追加清单。 | | 📡 **PCAP 分析器** | 离线解析网络流量 (`.pcap`),提取 DNS 查询、HTTP 明文、TLS SNI 主机名,并检测周期性的 C2 beaconing。 | | 📄 **事件报告生成器** | 将所有会话调查结果(指纹、YARA、AI 分析、聊天、保险库、监管链、PCAP)导出为专业的、自包含的 HTML 报告。 | ### 🛡️ 便携性与安全性 | 功能 | 描述 | |---------|-------------| | 📁 **零痕迹运行时** | 所有路径都相对于工具包根目录解析。不向 `%APPDATA%`、注册表或主机临时目录进行写入。 | | ⚡ **硬件自动性能分析** | 启动时自动检测 CUDA GPU、CPU 核心和可用 RAM。无需手动调优即可为 LLM 配置最佳性能。 | | 🌐 **100% 离线运行** | IP 查询使用本地数据库。AI 模型在本地运行。没有任何类型的外部 API 调用。 | | ⚙️ **便携式配置** | USB 根目录上的可选 `config.ini` 允许覆盖数据路径,以便进行自定义部署。 | ## 🏗️ 架构 ``` ┌──────────────────────────────────────────────────────────────────┐ │ main.py │ │ (Application Orchestrator) │ │ config.ensure_dirs() → HW Detect → GUI ↔ Backends → AI │ ├──────────┬────────────────────────────────────┬──────────────────┤ │ │ │ │ │ gui_manager.py ai_inference.py │ │ (CustomTkinter UI) (Gemma 2 via llama.cpp) │ │ • 10 stacked frames • Lazy model loading │ │ • Animated dashboard • Auto HW profiling │ │ • Responsive layout • 8192-token context │ │ │ │ │ │ config.py ──────────────────── hardware_profiler.py │ │ (Portable path resolver) (CUDA/CPU/RAM detection) │ │ • Relative paths only • nvidia-smi parsing │ │ • config.ini overrides • Optimal Llama() kwargs │ │ • PyInstaller aware • psutil integration │ │ │ │ │ ├──────────┴────────────┬───────────────────────┘ │ │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌───────────────────┐ │ │ │ log_parser │ │ hash_checker │ │ network_scanner │ │ │ │ (.csv/.evtx) │ │ (MD5/SHA256) │ │ (ping/port scan) │ │ │ └──────────────┘ └──────────────┘ └───────────────────┘ │ │ ┌──────────────┐ ┌─────────────────────────────────────┐ │ │ │ ip_lookup │ │ downloader.py │ │ │ │ (IP2Location) │ │ (Threaded HuggingFace download) │ │ │ │ 100% offline │ │ Portable model storage │ │ │ └──────────────┘ └─────────────────────────────────────┘ │ │ │ │ ┌─────────────────── Forensic Layer ──────────────────────┐ │ │ │ custody_logger.py │ env_fingerprint.py │ yara_scanner │ │ │ │ (JSONL + SHA-256) │ (OS/Net snapshot) │ (.yar rules) │ │ │ ├────────────────────┼────────────────────┼────────────────┤ │ │ │ evidence_vault.py │ report_generator │ │ │ │ │ (AES-256-GCM) │ (HTML/PDF export) │ │ │ │ └────────────────────┴────────────────────┴────────────────┘ │ └──────────────────────────────────────────────────────────────────┘ ``` ### 设计原则 - **零主机痕迹** —— 所有文件路径都通过 `config.py` 相对于工具包根目录解析。该套件从不写入 `%APPDATA%`、Windows 注册表或任何主机目录。专为在受损机器上进行取证而设计。 - **清晰的关注点分离** —— GUI (`gui_manager.py`) 不包含任何业务逻辑。所有 AI 和工具回调都在 `main.py` 中连接,使代码库可测试且模块化。 - **线程安全** —— 所有文件 I/O 和 AI 推理操作都在后台线程上运行。GUI 更新通过 `app.after()` 安全地封送到主线程。 - **硬件自动性能分析** —— 在首次加载模型时,`hardware_profiler.py` 会检测 CUDA GPU、CPU 核心和可用 RAM,然后自动配置 `llama-cpp-python` 以获得最佳性能(GPU offload、线程数、batch size)。 - **优雅降级** —— 二进制 `.evtx` 文件会被及早检测到并提示有用的错误。缺失的数据库会显示明确的下载说明。该套件可在仅限 CPU 的机器上运行,但性能会降低。 ## 🚀 快速开始 ### 选项 A:USB 部署(推荐) 1. 在您的构建机器上克隆并安装依赖项: git clone https://github.com/K31C0/GemmaSecuritySuite.git cd GemmaSecuritySuite pip install -r requirements.txt 2. 将整个项目目录复制到 USB 驱动器。 3. 下载 **Gemma 2 2B IT** 模型 (~1.6 GB) 并将其放在 `data/models/` 中: USB:\GemmaSecuritySuite\data\models\gemma-2-2b-it.gguf 4. *(可选)* 下载 [IP2Location LITE](https://lite.ip2location.com) 数据库并放在 `data/databases/` 中: USB:\GemmaSecuritySuite\data\databases\IP2LOCATION-LITE-DB11.BIN USB:\GemmaSecuritySuite\data\databases\IP2LOCATION-LITE-ASN.BIN 5. 在目标机器上,只需双击启动脚本: Launch.bat *启动器将自动验证环境,确保 Python/依赖项可用,并启动应用程序。* ### 选项 B:开发设置 ``` # 克隆 repository git clone https://github.com/K31C0/GemmaSecuritySuite.git cd GemmaSecuritySuite # 安装 dependencies pip install customtkinter llama-cpp-python psutil IP2Location # 启动 application python main.py ``` 首次启动时,应用程序将: 1. 自动检测您的硬件(CUDA GPU、CPU 核心、RAM) 2. 将 **Gemma 2 2B IT** 模型 (~1.6 GB) 下载到 `data/models/`(如果尚未存在) 3. 显示仪表板 ### 前置条件 - **Python 3.12+** - **Windows 10/11**(某些实用程序使用 Windows 特定的 subprocess 标志) - 约 2 GB 磁盘空间,用于 Gemma 2 2B GGUF 模型 - *(可选)* 带有 CUDA 驱动程序的 NVIDIA GPU,用于加速推理 ## 📂 项目结构 ``` GemmaSecuritySuite/ ├── main.py # Entry point — orchestrates all tool wiring ├── config.py # Portable path resolver (zero host footprint) ├── gui_manager.py # Full UI: 14 frames, animated dashboard, responsive grid ├── ai_inference.py # LocalAI wrapper — Gemma 2 via llama-cpp-python ├── hardware_profiler.py # Auto-detects CUDA/CPU/RAM, configures LLM ├── downloader.py # Threaded model downloader with progress callbacks ├── log_parser.py # Windows Event Log CSV parser with .evtx detection ├── hash_checker.py # MD5/SHA-256 file hashing (chunked, memory-safe) ├── network_scanner.py # ICMP ping + TCP port scan diagnostics ├── ip_lookup.py # Offline IP geolocation via IP2Location LITE ├── custody_logger.py # Forensic chain of custody (JSONL + SHA-256 sidecar) ├── env_fingerprint.py # Environment snapshot (OS/procs/network/ARP/events) ├── yara_scanner.py # YARA rule engine with graceful fallback ├── evidence_vault.py # AES-256-GCM encrypted evidence storage ├── report_generator.py # Automated incident report (HTML/PDF) generation ├── GemmaSecuritySuite.spec # PyInstaller build configuration ├── requirements.txt # Python package dependencies └── data/ # Portable data directory (on USB drive) ├── models/ # GGUF model files ├── databases/ # IP2Location BIN files ├── logs/ # Chain of custody logs + env fingerprints ├── evidence/ # Encrypted .vault files + manifest ├── exports/ # Generated HTML/PDF reports ├── playbooks/ # RAG source PDFs (Phase 3) └── yara_rules/ # YARA signature files ├── community/ # Bundled rules (ir_essentials.yar) └── custom/ # Analyst's own rules ``` ## ⚙️ 便携式配置 工具包根目录中可选的 `config.ini` 允许您重定向数据路径 —— 当证据或日志应写入单独的分区时非常有用: ``` [paths] models_dir = E:\CustomModels databases_dir = E:\GeoDBs logs_dir = E:\IR_Logs evidence_dir = E:\Evidence exports_dir = E:\Reports ``` 文件中省略的任何键都将保留其默认值(`data/` 子目录)。相对路径相对于工具包根目录进行解析。 ## 🎨 UI 设计 该界面具有自定义的 **"Gemma AI"** 深色主题,带有: - **调色板**:深海军蓝背景 (`#070914`)、青色强调 (`#00E5FF`)、紫色高光 (`#B388FF`) - **动画仪表板**:在主屏幕上扫过的 Canvas 渲染的水平“数据流”线 - **响应式网格**:4×2 工具卡片布局,具有横跨全宽的特色 Co-Pilot 按钮 - **上下文指导**:每个工具都包含一个说明其用途的信息横幅 - **聊天界面**:完整的对话历史记录,具有视觉分隔符和格式化的消息块 ## 🔒 隐私与安全 - **100% 离线** —— Gemma 模型完全在本地硬件(CPU 或 CUDA GPU)上运行。不会向外部 AI 服务发送任何数据。 - **零主机痕迹** —— 所有数据都存储在 USB 驱动器上。不向 `%APPDATA%`、临时目录或 Windows 注册表写入数据。 - **无遥测** —— 该应用程序不收集、存储或传输任何使用数据。 - **无外部 API 调用** —— IP 地理定位使用本地捆绑的数据库。任何工具都不会进行网络调用。 - **开源** —— 每一行代码都是可审计的。 ## 🛣️ 路线图 该套件正通过三个阶段转型为综合性的**物理隔离 USB 应急响应工具包**: ### 阶段 1:便携性 ✅ - [x] **零痕迹运行时** —— 通过 `config.py` 实现便携式路径解析,`config.ini` 覆盖 - [x] **离线威胁情报** —— IP2Location LITE 替换 `ip-api.com`,实现 100% 离线的 IP/ASN 查询 - [x] **硬件自动性能分析** —— 自动检测 CUDA/CPU/RAM,为 LLM 配置最佳性能 - [ ] **独立二进制文件** —— PyInstaller `.exe` 编译(推迟到项目结束) ### 阶段 2:企业取证与应急响应 ✅ - [x] **不可变的证据监管链记录** —— 具有 SHA-256 边车完整性验证的仅追加 JSONL 审计跟踪 - [x] **自动化环境指纹识别** —— 快照主机 OS、进程、网络状态、ARP 表、TCP 连接、Windows Event Log - [x] **YARA 规则引擎** —— 根据恶意软件特征预扫描脚本;捆绑了用于凭证窃取、PowerShell cradles、持久化、网络侦察的规则 - [x] **加密的证据保险库** —— 使用 PBKDF2 (60 万次迭代) 进行 AES-256-GCM 加密存储,SHA-256 验证,仅追加清单 - [x] **PCAP 流量分析** —— 离线 `.pcap` 解析,用于 DNS、HTTP、beaconing、TLS 分析 - [x] **自动化事件报告** —— 将所有会话数据导出为专业的、自包含的 HTML 报告 ### 阶段 3:AI 功能与用户体验 - [ ] **动态上下文窗口管理** —— 自动总结旧的聊天记录以防止上下文溢出 - [ ] **多模型回退** —— 在低 RAM 机器上优雅地切换到更小的模型(Phi-3、Qwen2) - [ ] **RAG 手册** —— 对捆绑的 IR 手册和 NIST 框架进行本地 FAISS 向量搜索 - [ ] **实时资源遥测** —— 实时 CPU/RAM/VRAM 仪表板小部件 - [ ] **紧急按钮 / 紧急停止开关** —— 瞬间优雅终止,不留痕迹 - [ ] **进程树可视化** —— 针对可疑活动的可视化父子进程映射 - [ ] **色盲与高对比度模式** —— 企业无障碍合规性 ### 阶段 4:即插即用启动器与弹性 ✅ - [x] **零摩擦 USB 启动器** —— 一键式 `Launch.bat` 和 `bootstrap.py` 预检检查在启动前验证环境依赖项。 - [x] **模块健康检查与自动恢复** —— 集中式 watchdog 监控所有后端引擎。在发生故障时自动重新加载模型、规则并轮换日志。 - [x] **会话自动保存与恢复** —— 通过定期保存 UI 状态和聊天记录,防止主机重启/崩溃期间的数据丢失。 - [x] **优雅降级** —— 如果在隔离的机器上缺少依赖项,特定工具会自行禁用(带有有用的 UI 提示),而不是导致应用程序崩溃。 [x] **UI 优化** —— Toast 通知、降级状态的 UI 卡片、AI 输出流式传输、上下文右键菜单和键盘快捷键。 ## 🧰 技术栈 | 层级 | 技术 | |-------|-----------| | **语言** | Python 3.12+ | | **GUI 框架** | CustomTkinter (Tkinter wrapper) | | **AI 运行时** | llama-cpp-python (GGML/GGUF) | | **AI 模型** | Google Gemma 2 2B Instruct (Q4_K_M) | | **IP 地理定位** | IP2Location LITE (离线 BIN 数据库) | | **硬件检测** | psutil + nvidia-smi | | **哈希** | 标准库 (`hashlib`) | | **网络** | 标准库 (`socket`, `subprocess`) | | **并发** | `threading` (daemon workers + `app.after()` marshalling) | ### 依赖项 | 包 | 用途 | |---------|---------| | `customtkinter` | 现代深色主题 GUI 框架 | | `llama-cpp-python` | 本地 GGUF 模型推理引擎 | | `psutil` | 硬件检测、进程/网络枚举 | | `IP2Location` | 离线 IP 地理定位数据库读取器 | | `yara-python` | YARA 规则编译和扫描引擎 | | `cryptography` | 用于证据保险库的 AES-256-GCM 加密 | | `dpkt` | 纯 Python PCAP 解析和网络协议解码 | 所有其他模块均使用 **Python 标准库**:`threading`, `hashlib`, `subprocess`, `socket`, `csv`, `os`, `sys`, `configparser`, `tkinter`。 ## 📄 许可证 该项目基于 MIT 许可证授权 —— 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 IP 地理定位数据由 [IP2Location LITE](https://lite.ip2location.com) 提供。

为应急响应人员构建。由本地 AI 驱动。
无云。无 API。无安装。无痕迹。

标签:llama.cpp, 安全运营中心, 库, 应急响应, 数字取证, 本地大模型, 离线工具, 网络映射, 自动化脚本, 逆向工具