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, 安全运营中心, 库, 应急响应, 数字取证, 本地大模型, 离线工具, 网络映射, 自动化脚本, 逆向工具