N7EX1T/ForensIQ-DFIR

GitHub: N7EX1T/ForensIQ-DFIR

一款面向 Linux 系统的桌面端 DFIR 快速取证分析器,集成 19 个数据源采集、攻击链关联可视化和可选 AI 分析,帮助安全团队在无需部署 SIEM 的情况下完成事件响应分类。

Stars: 0 | Forks: 0

# ForensIQ ### Linux 数字取证与事件响应分析器 **v2.0** · 现代化的一站式 DFIR 分类工具,支持 AI 驱动分析
## 概述 **ForensIQ** 是一款桌面端 DFIR (数字取证与事件响应) 分析器,能够在不到一分钟内对 Linux 系统进行全面分类。它从 19 个不同的来源收集数据,将事件关联成攻击链,在交互式仪表板中可视化调查结果,并可选择使用 AI 分析师以通俗易懂的语言解释这些发现。 专为需要快速获取答案但不想部署完整 SIEM 的 **中小企业安全团队、IT 管理员和应急响应人员** 而构建。 ## 功能特性 ### 全面扫描 (19 个扫描器) - **进程** — 运行中的进程、CPU/内存异常、可疑命令行 - **网络** — 开放端口、活动连接、恶意目标、IP 地理位置 - **持久化** — 自启动项、cron 任务、systemd 服务 - **用户** — 登录事件、认证失败尝试、活动会话 - **文件** — SUID/SGID 二进制文件、近期修改的文件、已删除的痕迹 - **设备** — USB 历史记录、浏览器活动 - **日志** — auth.log、syslog、journalctl、内核日志、dpkg 历史 ### 交互式仪表板 - 实时风险评分 (0–100) 及严重级别细分 - 支持点击过滤的活动时间线 (1H / 1D / 1W / 1MO / 全部) - 类别分布环形图 - 顶部发现,支持一键导航 - 按描述、来源、严重程度在所有发现中进行搜索 ### 事件图 (关联引擎) - 使用 D3.js 力导向图关联进程、端口、连接、文件、用户 - 智能过滤 — 按严重程度和连接度自动排定优先级 - 攻击链 — 自动检测包含 HIGH/CRITICAL 节点的连通子图 - 交互式:支持拖拽、缩放、平移、点击查看详情 ### AI 分析师 (可选) - 通过 **Ollama** 实现本地 AI (免费,在您的硬件上运行) 或通过 **Anthropic Claude API** 实现云端 AI - 扫描后自动评估,提供结论、主要威胁及即时应对措施 - 结合完整扫描上下文的交互式聊天 - 每次会话 100 条消息历史记录 - 默认禁用 — 在 `forensiq_app.py` 中启用 ### 实时监控 - 后台线程每 60 秒监控新端口和可疑进程 - 系统托盘通知 + 应用内 Toast 提示 - 基于严重程度的颜色编码 (CRITICAL / HIGH / MEDIUM) ### 导出与报告 - **PDF 报告** — 包含封面、执行摘要和发现表格的专业多页文档 - **CSV 导出** — 用于电子表格分析 - **JSON 导出** — 完整原始数据转储 - **会话比较** — 任意两次扫描之间的差异对比 (风险评分变化、新增/已解决发现、进程/端口变化) ### 现代化 UI - 暗色 / 亮色主题 (状态持久化) - 针对大型数据集的虚拟滚动 - 支持一键复制的详情浮层 - 附带国家旗帜的 IP 地理位置 ## 安装 ### 快速安装 (Linux) ``` git clone [https://github.com/N7EX1T/ForensIQ-DFIR.git] cd forensiq chmod +x install.sh ./install.sh ``` 安装完成后,从您的应用程序菜单中启动 (搜索 "ForensIQ"),或在终端中运行 `forensiq`。 ### 手动安装 ``` # 1. 安装 Python 依赖 pip install --user PyQt6 PyQt6-WebEngine reportlab # 2. 克隆 repo git clone [https://github.com/N7EX1T/ForensIQ-DFIR.git] cd forensiq # 3. 直接运行 sudo python3 forensiq_app.py ``` ### 卸载 ``` ./uninstall.sh ``` 位于 `~/.forensiq/` 的用户数据默认会被保留。 ## 使用 ### 首次启动 启动 ForensIQ 时,会弹出一个包含三个选项的会话对话框: 1. **打开之前的会话** — 从列表中加载已保存的扫描 2. **加载日志文件 (.json)** — 从任意路径打开扫描结果 3. **新建扫描** — 自动运行一次全新扫描 (默认操作) ### 运行扫描 - 点击右上角的 **▶ RUN SCAN** - 左下角会显示进度 - 顶部栏会出现一个实时计时器 - 根据系统规模,扫描通常在 10–60 秒内完成 ### 查看结果 - **仪表板** — 高级别概览、风险评分、统计卡片 - **发现** — 带有严重级别过滤器的完整事件列表 - **事件图** — 相关事件的可视化关联 - **比较** — 两次会话之间的差异对比 - 点击任意事件可查看包含原始数据的完整详情浮层 ### 导出 - **PDF 报告** — 点击顶部栏的 `PDF` 按钮 (保存至 `~/Downloads/`) - **CSV / JSON** — 导出控件旁边的按钮 ### 数据位置 所有用户数据均存储在 `~/.forensiq/` 中: ``` ~/.forensiq/ ├── sessions/ # Saved scan history │ ├── 2026-04-27_14-32_host.json │ └── 2026-04-26_09-15_host.json └── forensiq_report.json # Most recent scan ``` 这意味着**在计算机之间移动程序不会转移数据** — 每台机器都有其独立的会话历史记录。 ## 启用 AI 分析师 AI 分析师选项卡**默认禁用**。如需启用: ### 方式 1:通过 Ollama 实现本地 AI (推荐,免费) ``` # 1. 安装 Ollama curl -fsSL https://ollama.com/install.sh | sh # 2. Pull 一个 model (~4.7 GB) ollama pull llama3.1:8b # 3. 启用 systemd 服务 sudo systemctl enable --now ollama ``` 然后编辑 `~/.local/share/forensiq/forensiq_app.py`: ``` AI_ENABLED = True OLLAMA_ENABLED = True OLLAMA_MODEL = "llama3.1:8b" ``` ### 方式 2:Anthropic Claude API ``` AI_ENABLED = True OLLAMA_ENABLED = False ANTHROPIC_API_KEY = "sk-ant-api03-..." # from console.anthropic.com ``` 重启 ForensIQ — AI 分析师选项卡将出现在侧边栏中。 ## 架构 ``` ┌──────────────────────────────────────────────────────────┐ │ forensiq_app.py │ │ (PyQt6 desktop wrapper + HTTP proxy) │ │ │ │ ┌────────────────┐ ┌──────────────────────────────┐ │ │ │ QWebEngine │←──│ Local HTTP Server (:18765) │ │ │ │ (loads HTML) │ │ │ │ │ └────────────────┘ │ /api/report │ │ │ ↑ │ /api/correlations │ │ │ │ │ /api/sessions │ │ │ │ │ /api/ai (proxy) │ │ │ │ │ /api/pdf │ │ │ │ └──────────────────────────────┘ │ │ │ ↓ │ │ │ ┌──────────────────────────────┐ │ │ │ │ forensiq_engine.py │ │ │ │ │ • 19 scanners │ │ │ │ │ • Correlation engine │ │ │ │ │ • PDF generator │ │ │ │ │ • Windows/Linux dispatch │ │ │ │ └──────────────────────────────┘ │ │ │ │ │ ┌──────┴───────────────────────────────────────────┐ │ │ │ ForensIQ.html │ │ │ │ Vanilla JS + D3.js + Chart.js dashboard │ │ │ └───────────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────────┘ ↓ ┌───────────────────────┐ │ ~/.forensiq/ │ │ sessions/*.json │ └───────────────────────┘ ``` ### 文件结构 ``` forensiq/ ├── forensiq_app.py # Main entry — PyQt6 window + HTTP server ├── forensiq_engine.py # Scanner engine + correlation + PDF generator ├── ForensIQ.html # Dashboard UI (HTML + JS + CSS) ├── install.sh # One-click installer for Linux ├── uninstall.sh # Uninstaller ├── requirements.txt # Python dependencies ├── README.md # This file └── LICENSE # MIT license ``` ## 路线图 ### v3.0 (计划中) - **MITRE ATT&CK 映射** — 使用技术 ID (T1059, T1078 等) 自动标记发现 - **评分解释** — "风险 87,因为:2 个关键进程 + 3 个可疑自启动项" - **RAM 分析** — 集成 Volatility3 以检测隐藏进程 - **Rootkit 检测** — `/proc` 与文件系统对比 - **文件恢复** — 集成 `extundelete` / `testdisk` - **深度网络分析** — pcap 捕获与分析 (通过 `scapy`) - **VirusTotal 集成** — 可疑二进制文件的哈希值查询 - **微调 AI** — 基于 DFIR 数据训练,提供特定领域的回复 - **RAG 知识库** — MITRE ATT&CK + CVE 数据库 ### v4.0 (未来) - 用于远程机器监控的分布式 Agent - 集中式的 PostgreSQL 事件存储 - 多主机关联 - 基于 Web 的管理控制台 ## 许可证 MIT © 2026 Jegor Gubarev ## 致谢 - **Chart.js** — 仪表板可视化 - **D3.js** — 事件图渲染 - **PyQt6** — 桌面框架 - **ReportLab** — PDF 生成 - **Ollama** — 本地 AI 推理
标签:AI安全分析师, AI风险缓解, Anthropic Claude, CSV导出, D3.js, DLL 劫持, GUI, HTTP请求, IP 地址批量处理, IT管理工具, Linux取证, LLM评估, Ollama, Python, Webshell检测, WSL, 大语言模型, 子域名变形, 安全可视化, 库, 应急响应, 持久化检测, 攻击链分析, 数字取证, 无后门, 桌面安全工具, 溯源分析, 用户行为分析, 系统分诊, 结构化查询, 网络安全, 网络连接分析, 自动化安全, 自动化脚本, 逆向工具, 隐私保护