valinorintelligence/Gridwolf

GitHub: valinorintelligence/Gridwolf

面向 OT/ICS 环境的被动式网络安全评估与威胁情报平台,通过 PCAP 深度解析实现工控设备发现、协议异常检测与漏洞情报聚合。

Stars: 0 | Forks: 0

Gridwolf Logo

Gridwolf

被动 ICS/SCADA 网络发现、漏洞情报与安全评估平台
全栈 OT 安全工具,具备实时 PCAP 处理、协议解析、威胁检测与 ICS 咨询公告订阅源

网站 · 截图 · 安装 · 功能

## 什么是 Gridwolf? Gridwolf 是一个**功能完备**的被动 ICS/SCADA 网络发现与安全评估平台。它通过分析捕获的网络流量(PCAP 文件)来自动识别工业设备、映射通信模式、检测协议异常、执行 C2/信标检测、匹配 CVE 并生成专业的评估报告——**无需向被监控网络发送任何数据包**。 与那些仅仅基于模拟数据构建仪表盘的工具不同,Gridwolf 拥有一个由 Scapy 驱动的**真实处理后端**,支持对 6 种 ICS 协议的深度数据包检测、C2 信标检测引擎、NVD CVE 集成、来自 7 个咨询来源的 ICS 漏洞情报,以及 PDF 报告生成功能。 ## 系统架构 ``` ┌────────────────────────────────────────────────────────────────┐ │ Frontend (React 19 + Vite) │ │ 30+ Pages · Topology Graph · Protocol Analysis · Dark Theme │ ├────────────────────────────────────────────────────────────────┤ │ REST API │ ├────────────────────────────────────────────────────────────────┤ │ Backend (FastAPI + Python) │ │ ┌──────────┐ ┌──────────────┐ ┌────────────┐ ┌────────────┐ │ │ │ PCAP │ │ Protocol │ │ C2 │ │ CVE │ │ │ │Processor │ │ Parsers │ │ Detector │ │ Lookup │ │ │ │ (Scapy) │ │ (6 parsers) │ │(IAT/DNS/ │ │(NVD API + │ │ │ │ │ │ │ │ Asymmetric)│ │ Offline DB)│ │ │ └──────────┘ └──────────────┘ └────────────┘ └────────────┘ │ │ ┌──────────┐ ┌──────────────┐ ┌────────────┐ │ │ │ Vuln │ │ Device │ │ Risk │ │ │ │ Feed │ │ Classifier │ │Assessment │ │ │ │(7 Source)│ │(Purdue/OUI) │ │ Engine │ │ │ └──────────┘ └──────────────┘ └────────────┘ │ │ ┌──────────┐ │ │ │ Report │ │ │ │Generator │ │ │ │(PDF/HTML)│ │ │ └──────────┘ │ ├────────────────────────────────────────────────────────────────┤ │ SQLite Database (aiosqlite) │ │ 17 Tables · Sessions · Devices · Connections · Findings │ └────────────────────────────────────────────────────────────────┘ ``` ## 截图 ### 登录与仪表盘 | 登录 | 指挥中心 | |---|---| | ![Login](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/323ea01790005547.png) | ![Command Center](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/b8e024261c005549.png) | ### 捕获与导入 | PCAP 分析 | 实时捕获 | 外部工具导入 | |---|---|---| | ![PCAP](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/249b46ef45005550.png) | ![Live Capture](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/80d6d3486d005551.png) | ![Integrations](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/1636512e74005552.png) | ### 网络发现 | 拓扑结构 | 设备清单 | 协议分析器 | |---|---|---| | ![Topology](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/1963b6d29e005554.png) | ![Devices](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/f997b47db2005555.png) | ![Protocols](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/5353c55ea6005556.png) | | Purdue 模型 | 签名编辑器 | |---|---| | ![Purdue](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c4414319b9005557.png) | ![Signatures](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/95fef7872a005558.png) | ### 漏洞情报(全新) | ICS/OT 漏洞订阅源 | 我的环境 | |---|---| | ![Vuln Feed](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/409c2fee05005559.png) | ![My Environment](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/55e489406e005600.png) | ### 安全与检测 | MITRE ATT&CK for ICS | 漏洞 / CVE 匹配 | |---|---| | ![MITRE](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/e22232ee9f005601.png) | ![CVE](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6c69735089005603.png) | | C2 / 信标检测 | Purdue 违规 | 写入/编程路径 | |---|---|---| | ![C2](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/f8fb85287c005604.png) | ![Violations](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4b0beb453f005605.png) | ![Write Paths](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/f1297ce553005607.png) | | 基线漂移 | 合规性 (IEC/NIST/NERC) | |---|---| | ![Drift](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d00537724e005608.png) | ![Compliance](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/be44c128eb005609.png) | ### 分析与指标 | OT 指标与分析 | 安全计分卡 | 时间线 | |---|---|---| | ![Metrics](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/7b639493a5005611.png) | ![Scorecard](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/dae82d839c005612.png) | ![Timeline](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/95bc5f8ea1005614.png) | ### 调查 | 关注队列 | 报告差异对比 | |---|---| | ![Investigations](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4ef80988fe005615.png) | ![Report Diff](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/76de46936f005616.png) | ### 报告与管理 | 评估报告 | SBOM | 系统管理 | |---|---|---| | ![Reports](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4f802beefd005618.png) | ![SBOM](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/ad91e82700005620.png) | ![Admin](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a8d541af0d005621.png) | ## 核心特性 ### 真实的 PCAP 处理引擎(非模拟数据) Gridwolf 包含一个**功能完备的后端**——而不仅仅是一个 UI 原型。当您上传 PCAP 文件时,系统会: 1. **摄取** — 通过 Scapy 的 `PcapReader` 流式传输数据包(高效处理大文件) 2. **解析** — 对 6 种 ICS 协议进行深度数据包检测及功能码分析 3. **分类** — 分配设备类型、Purdue 级别、供应商(38 个 OUI 前缀) 4. **检测** — 运行 C2 信标检测、Purdue 违规检查、写入路径分析 5. **存储** — 将所有结果持久化到包含 17 个规范化表的 SQLite 数据库中 ### ICS/OT 漏洞情报订阅源 聚合来自 **7 个 OT 特定来源** 的实时咨询公告,并进行 CVSS v3.1 + CISA KEV + EPSS 丰富化处理: | 来源 | 覆盖范围 | |---|---| | **CISA ICS-CERT** | 所有 ICS 咨询公告 | | **Siemens ProductCERT** | SIMATIC, SCALANCE, SINEMA | | **Schneider Electric** | Modicon, EcoStruxure, Magelis | | **Rockwell Automation** | ControlLogix, CompactLogix, FactoryTalk | | **ABB** | Ability, Symphony, ASPECT | | **Moxa** | EDR, EDS Series, ioLogik | | **CERT@VDE** | 德国工业自动化 | **功能:** - 4 级紧急度分类:**立即行动 (Act Now)** / **计划修补 (Plan Patch)** / **持续监控 (Monitor)** / **低风险 (Low Risk)** - 环境个性化 — 选择您的供应商和行业以获取匹配的警报 - EPSS 概率评分用于评估漏洞利用可能性 - CISA KEV 标记已知被利用的漏洞 - CSV 导出用于合规性报告 ### ICS 协议深度数据包检测 | 协议 | 端口 | Gridwolf 提取的内容 | |---|---|---| | **Modbus TCP** | 502 | MBAP 头、功能码 (FC 1-43)、寄存器地址、写入检测、主/从设备识别 | | **S7comm (Siemens)** | 102 | TPKT/COTP/S7 头解析、作业类型 (0x01-0x07)、程序上传/下载标记 | | **EtherNet/IP / CIP** | 44818 | 封装头、CIP 服务码、标签读写操作 | | **DNP3** | 20000 | DLL + 传输层 + 应用层、主站/子站检测、对象组解析 | | **BACnet** | 47808 | BVLC/NPDU/APDU 解析、服务识别、I-Am/Who-Is 发现 | | **IEC 60870-5-104** | 2404 | APDU 类型检测(I/S/U 格式)、类型 ID 解析、传输原因 | ### C2 / 信标检测引擎 每次会话都会运行三种独立的检测方法: - **IAT 直方图分析** — 通过分析到达时间间隔分布来检测周期性信标。使用变异系数阈值(<0.15)并排除 ICS 轮询,以减少误报 - **DNS 数据泄露检测** — 对每个 DNS 子域标签进行香农熵分析。标记熵值 >4.0 的标签(通常代表 base64/hex 编码的数据隧道传输) - **非对称流量分析** — 识别 TX:RX 比率 >20:1 且总数据量 >100KB 的可疑数据传输 ### CVE 漏洞匹配 - **离线 ICS CVE 数据库** — 12 个预加载的真实 OT CVE(涵盖 Siemens, Schneider Electric, Rockwell Automation, ABB, Fortinet, Moxa) - **NVD API v2.0 集成** — 使用可选 API 密钥对 NIST 国家漏洞数据库进行实时搜索 - **设备匹配** — 将发现的设备供应商/固件与已知 CVE 进行模糊匹配 ### 专业报告生成 - **PDF 报告** — 由 WeasyPrint 驱动的专业评估报告,包含封面、执行摘要、设备表格、协议分析、发现的问题和建议 - **HTML 备用方案** — 在未安装 WeasyPrint 时生成完整的 HTML 报告 - **报告板块** — 执行摘要、设备清单、协议分析、安全发现、建议 ### 网络拓扑与设备分类 - **Purdue 模型分配** — 基于协议行为的自动 L0-L5 + DMZ 分类 - **设备类型检测** — PLC, HMI, 工程师站, Historian, RTU, IED, 网关 - **供应商识别** — 38 个 OUI MAC 地址前缀,涵盖 Siemens, ABB, Rockwell, Schneider, Moxa, Beckhoff, Phoenix Contact 等 - **置信度评分** — 5 级评分(从仅端口检测到深度解析) ### 安全评估 - **MITRE ATT&CK for ICS** — 映射到攻击技术的 40 多条检测规则 - **Purdue 违规检测** — 自动化的跨区域通信异常检测 - **写入/编程路径检测** — 标记危险的 Modbus 写入、S7 程序上传、CIP 标签写入 - **默认凭据检测** — 检查常见的 ICS 默认密码 - **基线漂移** — 评估会话之间的量化漂移评分 ### 50 多个 REST API 端点 | 分类 | 端点数 | 描述 | |---|---|---| | **Auth** | 4 | 注册,登录,演示登录,个人资料 | | **PCAP** | 3 | 上传,状态,列表 | | **设备** | 4 | 列表,拓扑,统计,详情 | | **会话** | 6 | CRUD(增删改查) + 项目 | | **发现** | 4 | 列表,统计,状态更新 | | **CVE** | 2 | 搜索 NVD,匹配设备 | | **漏洞订阅源** | 10 | 咨询公告,统计,来源,导出,环境配置 | | **报告** | 3 | 生成,下载,列表 | | **本体** | 4 | 类型,图形,CRUD | | **仪表盘** | 3 | 统计,已保存的仪表盘 | | **扫描器** | 4 | Semgrep, Trivy, SARIF,通用导入 | ## 安装说明 ### 选项 1:Docker(推荐 — Linux 与 macOS) 启动 Gridwolf 的最快方式。无需安装 Python 或 Node.js。 ``` # 克隆并启动 git clone https://github.com/valinorintelligence/Gridwolf.git cd Gridwolf docker compose up --build # 完成!打开 http://localhost:3000 ``` | 服务 | URL | |---|---| | **前端** | http://localhost:3000 | | **API 文档** | http://localhost:8000/docs | | **登录** | 点击“Demo Login”——无需凭据 | ``` # 停止 docker compose down # 生产环境设置 (PostgreSQL + Redis + Celery worker) docker compose -f docker-compose.prod.yml up --build ``` ### 选项 2:一键安装程序(macOS / Linux) 单条命令,自动检测 Docker 或回退到原生安装: ``` # 直接从 GitHub 运行 curl -fsSL https://raw.githubusercontent.com/valinorintelligence/Gridwolf/main/scripts/install.sh | bash # 或者先克隆,然后运行 git clone https://github.com/valinorintelligence/Gridwolf.git cd Gridwolf bash scripts/install.sh ``` 安装程序将会: 1. 检测 Docker → 使用容器化设置(首选) 2. 没有 Docker → 原生安装 Python + Node.js 依赖 3. 启动后端和前端 4. 自动打开您的浏览器 ### 选项 3:Windows(.bat 启动器) ``` # PowerShell 单行命令 git clone https://github.com/valinorintelligence/Gridwolf.git cd Gridwolf # 选项 A:在 File Explorer 中双击 gridwolf.bat # 选项 B:从 PowerShell 运行 .\scripts\install.ps1 ``` **`gridwolf.bat`** — 双击启动。自动检测 Docker Desktop 或回退到原生的 Python + Node.js。准备就绪后自动打开浏览器。按任意键停止。 ### 选项 4:手动设置 ``` # 1. 克隆 repository git clone https://github.com/valinorintelligence/Gridwolf.git cd Gridwolf # 2. 启动 Backend cd backend python3 -m pip install -e ".[dev]" python3 -m uvicorn app.main:app --host 0.0.0.0 --port 8000 # 3. 在新 terminal 中 — 启动 Frontend cd frontend npm install npm run dev ``` - **后端 API**:http://localhost:8000(Swagger 文档位于 `/docs`) - **前端 UI**:http://localhost:5174 - **演示登录**:点击登录页面上的“Demo Login”——无需凭据 ### 后端可选依赖 ``` # 用于 PDF 报告生成 pip install "gridwolf[pdf]" # 用于 PostgreSQL (生产部署) pip install "gridwolf[postgres]" # 安装所有内容 pip install "gridwolf[full]" ``` ### 环境变量 创建 `backend/.env` 用于后端配置: ``` GRIDWOLF_DATABASE_URL=sqlite+aiosqlite:///./gridwolf.db GRIDWOLF_SECRET_KEY=your-secret-key-change-in-production GRIDWOLF_NVD_API_KEY=your-nvd-api-key # Optional: for faster CVE lookups GRIDWOLF_DEBUG=true ``` 创建 `frontend/.env.local` 用于前端覆盖: ``` VITE_API_URL=http://localhost:8000 VITE_DEMO_MODE=true ``` ## 用法 ### 1. 上传 PCAP 进行分析 ``` # 通过 API curl -X POST http://localhost:8000/api/v1/ics/pcap/upload \ -F "file=@capture.pcap" \ -F "session_name=Plant Assessment Q1" # 检查处理状态 curl http://localhost:8000/api/v1/ics/pcap/status/{pcap_id} ``` 或者在 UI 中使用 **Capture → PCAP Analysis** 页面拖放 PCAP 文件。 ### 2 探索发现的设备 ``` # 列出会话中的所有设备 curl http://localhost:8000/api/v1/ics/devices/?session_id={session_id} # 获取网络拓扑 (nodes + edges) curl http://localhost:8000/api/v1/ics/devices/topology?session_id={session_id} # 设备统计 curl http://localhost:8000/api/v1/ics/devices/stats?session_id={session_id} ``` ### 3. 检查 ICS 漏洞咨询公告 ``` # 列出所有 advisories curl http://localhost:8000/api/v1/ics/advisories/ # 获取 advisory 统计 curl http://localhost:8000/api/v1/ics/advisories/stats # 将 advisories 与会话设备进行匹配 curl http://localhost:8000/api/v1/ics/advisories/matched?session_id={session_id} # 导出为 CSV curl http://localhost:8000/api/v1/ics/advisories/export/csv ``` ### 4. 审查安全发现 ``` # 按严重程度列出 findings curl http://localhost:8000/api/v1/ics/findings/?severity=critical # 将设备与 CVE 数据库进行匹配 curl http://localhost:8000/api/v1/ics/findings/cve/match-devices?session_id={session_id} # 搜索 NVD 以查找 CVEs curl http://localhost:8000/api/v1/ics/findings/cve/search?keyword=siemens+s7 ``` ### 5. 生成评估报告 ``` curl -X POST http://localhost:8000/api/v1/ics/findings/reports/generate \ -H "Content-Type: application/json" \ -d '{ "session_id": "...", "report_type": "full", "client_name": "Acme Industrial", "assessor_name": "OT Security Team" }' ``` ## 技术栈 | 层级 | 技术 | 用途 | |---|---|---| | **前端** | React 19 + TypeScript + Vite 8 | 30 多个页面的单页应用(SPA),采用深色主题优先设计 | | **样式** | Tailwind CSS 4 | 海军蓝/紫色/青色/洋红色的 OT 专属主题 | | **状态管理** | Zustand | 客户端状态管理 | | **可视化** | Cytoscape.js + Recharts | 拓扑图 + 分析 | | **后端** | FastAPI (async) | 50 多个 REST API 端点 | | **PCAP 引擎** | Scapy | 深度数据包检测 | | **数据库** | SQLite (aiosqlite) / PostgreSQL | 17 个规范化表 | | **认证** | JWT (python-jose) + bcrypt | 基于令牌的身份验证与路由守卫 | | **报告** | WeasyPrint / HTML | 专业 PDF 生成 | | **CVE 数据** | NVD API v2.0 + 离线数据库 | 漏洞匹配 | | **漏洞情报** | 7 个 ICS 咨询来源 | CVSS + KEV + EPSS 丰富化 | ## 项目结构 ``` Gridwolf/ ├── frontend/ # React SPA │ ├── src/ │ │ ├── pages/ # 30+ page components │ │ ├── components/ # Reusable UI components │ │ ├── layouts/ # App and Auth layouts (with route guards) │ │ ├── routes/ # React Router configuration │ │ ├── lib/ # Constants, utilities │ │ └── stores/ # Zustand state management │ └── vite.config.ts ├── backend/ # FastAPI backend │ └── app/ │ ├── core/ # Config, database, JWT security │ ├── models/ # SQLAlchemy models (17 tables) │ │ ├── user.py # User authentication model │ │ ├── ontology.py # Object types, links, actions, audit logs │ │ └── ics.py # Sessions, devices, connections, findings, reports │ ├── engine/ # Processing engines │ │ ├── pcap_processor.py # Scapy PCAP ingestion pipeline │ │ ├── protocol_parsers.py # 6 ICS protocol deep parsers │ │ ├── c2_detector.py # C2 beacon/exfiltration detection │ │ ├── cve_lookup.py # NVD API + offline CVE database │ │ ├── vuln_feed.py # ICS advisory feed engine (7 sources) │ │ └── report_generator.py # PDF/HTML report generation │ ├── schemas/ # Pydantic v2 validation │ ├── services/ # Business logic │ └── api/v1/ # REST API routers │ ├── auth.py # Authentication endpoints │ ├── ics/ # ICS-specific endpoints │ │ ├── pcap.py # PCAP upload & processing │ │ ├── devices.py # Device inventory & topology │ │ ├── sessions.py # Session & project management │ │ ├── findings.py # Findings, CVE, reports │ │ └── vuln_feed.py # Vulnerability advisory feed (10 endpoints) │ ├── ontology.py # Object type management │ ├── objects.py # Object CRUD │ ├── dashboard.py # Dashboard stats │ └── scanners.py # External tool import ├── landing/ # Static landing page (gridwolf.net) │ └── index.html # Waitlist + feature showcase ├── docs/ │ └── screenshots/ # 29 application screenshots └── scripts/ └── take-screenshots.mjs # Puppeteer screenshot utility ``` ## API 文档 后端运行后,请访问: - **Swagger UI**:http://localhost:8000/docs - **ReDoc**:http://localhost:8000/redoc ## 数据库架构(17 张表) | 表名 | 用途 | |---|---| | `users` | 身份验证与用户配置 | | `object_types` | 本体架构定义 | | `objects` | 通用实体实例 | | `links` | 对象之间的类型化关系 | | `actions` | 对象类型上的可用操作 | | `audit_logs` | 任意对象的时间线事件 | | `saved_dashboards` | 用户保存的仪表盘布局 | | `integrations` | 外部工具配置 | | `projects` | 多客户端项目组织 | | `sessions` | 带有统计信息的评估会话 | | `pcap_files` | 上传的 PCAP 元数据与状态 | | `devices` | 发现的设备清单 | | `connections` | 网络连接流 | | `protocol_analysis` | ICS 协议解析结果 | | `findings` | 安全发现与警报 | | `reports` | 生成的评估报告 | ## 贡献 Gridwolf 是开源的,欢迎各种贡献。感兴趣的领域包括: - 更多 ICS 协议解析器(OPC UA, PROFINET DCP, GOOSE/MMS) - 更多 MITRE ATT&CK for ICS 检测规则 - 威胁情报订阅源集成(STIX/TAXII) - 定时评估自动化 - 多用户 RBAC 增强 ## 许可证 MIT License - Valinorin Intelligence

Valinorin Intelligence 为 OT 安全社区构建

标签:AV绕过, C2通信检测, CISA项目, CVE匹配, FastAPI, ICS/SCADA安全, IP 地址批量处理, masscan, OT安全, PCAP分析, PE 加载器, PKINIT, React, Scapy, Syscalls, TypeScript, XSS, 仪表盘, 信标检测, 反取证, 威胁情报平台, 安全插件, 安全评估, 工控安全, 开源安全工具, 异常检测, 插件系统, 无线安全, 本体驱动, 测试用例, 深度包检测, 漏洞情报, 统一安全运营, 网络安全, 网络安全分析, 自动化攻击, 被动网络发现, 请求拦截, 逆向工具, 逆向工程平台, 隐私保护