Cymobility-interns/threat_intelligence_tool_updated

GitHub: Cymobility-interns/threat_intelligence_tool_updated

一款专注车联网和 IoT 安全的全栈威胁情报应用,结合 AI 大模型实现非结构化安全数据的自动摄取、结构化分类与可视化展现。

Stars: 0 | Forks: 0

# 🛡️ 威胁情报工具

Frontend FastAPI Database AI

一个全栈、端到端的**威胁情报**应用程序,专为跟踪、分类和可视化持续的汽车和 IoT 漏洞而设计。该项目作为一个聚合器,利用定时的 AI pipeline 获取实时的安全情报(CVE 和非 CVE),并在一个快速、现代的仪表板上呈现分析结果。 ## 📑 目录 1. [功能特性](#-features) 2. [技术栈](#️-tech-stack) 3. [架构与文件夹结构](#-architecture--folder-structure) 4. [组件深度解析](#-component-deep-dive) 5. [数据库 Schema 映射](#-database-schema-map) 6. [入门指南 (本地执行)](#️-getting-started-local-execution) 7. [AI 摄取 Pipeline](#-the-ai-ingestion-pipeline) 8. [API 参考](#-api-reference-endpoints) 9. [故障排除与开发者笔记](#-troubleshooting--developer-notes) ## 🚀 功能特性 - **自动化情报 Pipeline**:与 Grok API 集成的后台脚本(`run_pipeline.py`)高效地抓取、摄取并剖析非结构化的网络情报数据,将其转化为健壮的本地化数据库格式。 - **交互式仪表板与分类账**:利用本地 **Chart.js** 的现代 HTML5 仪表板,按*接口* (CAN, Wi-Fi, Ethernet)、*ECU 上下文*和*协议配置*对数据进行分类,将数千条威胁记录转化为可读的图形。 - **极速 API 引擎**:**FastAPI** 主干可瞬间查询庞大的 SQL 状态。能够精确处理正则表达式边界逻辑,专门用于边缘情况的查询搜索(例如,区分真正的 "CAN" 协议威胁与 "ZDI-CAN" 伪影文本)。 - **表格数据查看**:可通过 `tier1.html`、`company.html` 和 `ledger.html` 视图访问详细的供应商/Tier 1 和品牌相关的日志。 - **安全身份验证**:内置 HTTP-only 会话管理路由,使用 Passlib (Bcrypt) 执行严格的密码哈希协议。 ## 🛠️ 技术栈 ### 🎨 前端 - **语言:** HTML5, 原生 JavaScript (基于 ES Module 的 UI 结构), CSS3 - **样式:** Bootstrap 5.3.2 布局组件和响应式网格 - **图标:** Font Awesome 6.5.0 & Bootstrap Icons - **数据可视化:** Chart.js 4.4.0 ### ⚙️ 后端 - **框架:** Python 3.x (FastAPI 服务器) - **数据库架构:** SQLAlchemy (ORM 设置) + 活跃的 Alembic 迁移 - **认证引擎:** Starlette Session Cookies, CryptContext (bcrypt) schemas - **Pipeline:** 原生 Subprocess 处理,集成了 Grok/OSINT 抓取 Python 脚本 ## 📁 架构与文件夹结构 ``` Threat-Intelligence-Tool/ ├── .env ├── .gitignore ├── README.md ├── alembic │ ├── README │ ├── env.py │ ├── script.py.mako │ └── versions ├── alembic.ini ├── dbapp │ ├── __init__.py │ ├── api_json │ │ ├── __init__.py │ │ ├── custom_ingest_api.py │ │ ├── custom_utils.py │ │ └── modified_ingest_api.py │ ├── automotive_ai │ │ ├── aigeneration.py │ │ ├── aigeneration2.py │ │ ├── usinggrok.py │ │ └── usinggrok2.py │ ├── check_db.py │ ├── config.py │ ├── database.py │ ├── main.py │ ├── models.py │ └── webscraping │ └── webscraping_script.py ├── frontendapp │ ├── assets │ │ ├── css │ │ │ ├── brand.css │ │ │ ├── branddetails.css │ │ │ ├── company.css │ │ │ ├── dashboard.css │ │ │ ├── details.css │ │ │ ├── ledger.css │ │ │ ├── login.css │ │ │ ├── signup.css │ │ │ └── tier1.css │ │ ├── images │ │ │ ├── All Images with .png and .jpg │ │ └── js │ │ ├── api.js │ │ ├── auth.js │ │ ├── brand.js │ │ ├── branddetails.js │ │ ├── dashboard.js │ │ ├── details.js │ │ ├── ledger.js │ │ ├── login.js │ │ ├── main.js │ │ ├── protected.js │ │ ├── signup.js │ │ └── tier1.js │ ├── brand.html │ ├── branddetails.html │ ├── company.html │ ├── components │ │ ├── navbar.html │ │ ├── navbar.js │ │ └── searchbar.html │ ├── dashboard.html │ ├── details.html │ ├── ledger.html │ ├── login.html │ ├── signup.html │ └── tier1.html ├── index.html ├── models │ ├── config.json │ ├── special_tokens_map.json │ ├── tokenizer_config.json │ └── vocab.json ├── requirements.txt ├── results │ └── checkpoint-102 │ ├── config.json │ ├── special_tokens_map.json │ ├── tokenizer.json │ ├── tokenizer_config.json │ └── trainer_state.json ├── run_pipeline.bat ├── run_pipeline.py ├── start_project.bat └── tree.txt ``` ## 🧩 组件深度解析 如果您刚刚开始接触 `frontendapp/` 代码,以下是各个主要模块的功能: - `index.html`:基础入口点,负责将流量立即重定向至 `/login.html` 安全防护墙。 - `login.html` / `signup.html`:捕获并清理基本的用户数据,将参数传回 `assets/js/auth.js` 以进行会话获取。 - `dashboard.html`:核心可视化视图。利用布局槽,`dashboard.js` 在其中遍历数千个全球 CVE,动态汇总针对接口和 ECU 参数的饼图指标。 - `api.js`:所有前端逻辑都在此桥接。您将看到所有的 `fetch()` 查询都通过 `export const API_BASE` 明确路由到 FastAPI 实例。 - `protected.js`:附加到敏感视图;对于缺少活跃本地会话的用户,会立即将其退回到登录屏幕。 ## 🗄️ 数据库 Schema 映射 后端旨在保存深度分类的系统安全缺陷变体。以下是在 `dbapp/models.py` 中跟踪的主要 SQL 模型。 * **`vulnerabilities`**:处理 CVSS 分数、原始源文本、严重性排名以及追踪其是否被处理的布尔状态标志的全局池。 * **`automotive_vulnerabilities`**:深度挖掘的车辆漏洞,对上下文元数据进行分类:`company`、`attack_path`、`interface`、`tools_used`、`ecu_name`、`library_name` 和 `damage_scenario`。 * **`iot_embedded_vulnerabilities`**:与汽车漏洞类似,但专门针对智能设备的元数据,解析 `product_name`、`vendor`、`firmware_version` 和特定的 IoT `protocol` 标准等字段。 * **`users`**:独立的身份状态跟踪,包含标准字符串和通过 Bcrypt 安全哈希处理的 `password` 块。 ## ⚙️ 入门指南 (本地执行) ### 前置条件 - 已安装 Python 3.x(系统范围或通过 pyenv/conda)。 - 确保您的网络可以处理 pipeline 操作期间的出站 API 流量。 ### 1. 安装 创建/使用虚拟环境以强制进行依赖控制: ``` :: Activate the virtual environment .\venv\Scripts\activate :: Extract dependencies pip install -r requirements.txt ``` ### 2. 标准启动流程 我们包含了一个便捷脚本,可以在 Windows 机器上一键启动所有必要的服务器。 ``` :: Launch both nodes simultaneously .\start_project.bat ``` **其作用如下:** 1. 将内部的 **后端 Python 引擎** 全局生成至 `http://127.0.0.1:8000`。 2. 原生提供 **HTML UI 节点**,引用 `http://127.0.0.1:5500`。 初始化完成后,请将您的主浏览器导航至 **[http://127.0.0.1:5500/](http://127.0.0.1:5500/)**。 ## 🧠 AI 摄取 Pipeline 要使用当前的 CVE 或零日威胁填充您的仪表板,您必须手动运行总控 pipeline 命令。 ``` python run_pipeline.py ``` * **阶段 1**:脚本触发存储在 `dbapp/automotive_ai/` 中的顺序后台例程。 * **阶段 2**:非结构化输出通过集成的会话 AI 模型(如 Grok)进行处理。 * **阶段 3**:干净的情报实例被系统地分类并加载到您的本地 SQL schemas(`AutomotiveVulnerabilities` 和 `IotEmbeddedVulnerabilities`)中。 ## 📡 API 参考端点 FastAPI 应用在 `/` 上原生提供以下所有 RESTful 请求。如需本地化的交互式文档,请在服务器激活时导航至 `http://127.0.0.1:8000/docs`。 ### 数据端点 * `GET /automotive_vulnerabilities` - 主威胁查询模块。接受严格的参数:`from` 和 `to`(日期匹配)、`search`(文本解析)和 `cve_type`。 * `GET /automotive_vulnerabilities/cve/{cve_id}` - 解析映射到经过认证的 CVE ID 的单一特定数据 payload。 * `GET /automotive_vulnerabilities/id/{id}` - 原生数据库键搜索。 ### 身份验证端点 * `POST /signup` - 注册标准用户。期望 JSON payload 中包含 `name`、`username`、`email`、`password`、`confirm_password`。 * `POST /login` - 内部利用会话 cookie,原生绑定逻辑 payload。 * `POST /logout` - 清除 Starlette 会话 cookie。 * `GET /me` - 反映登录用户 JSON 块的状态验证路由。 ## 🚨 故障排除与开发者笔记 **常见问题:** - **脚本激活失败**:如果 `.\venv\Scripts\activate` 在 Windows 上失败,请以管理员身份运行 PowerShell 并执行 `Set-ExecutionPolicy Unrestricted -Force`。 - **端口冲突**:如果仪表板未能加载 API 数据,请通过终端输出验证 `uvicorn` 是否成功绑定到端口 `8000`。如果 `8000` 被另一个后台应用占用,请编辑 `start_project.bat` 以在 `8001` 上启动,并更新 `frontendapp/assets/js/api.js` 中的 `API_BASE`。 - **数据库缺失错误**:确保 Alembic 跟踪是最新的,或者在过渡到全新的物理 SQL 实例时运行基本的 SQLAlchemy `Base.metadata.create_all` 脚本。 *构建时包含了逻辑处理,以支持可扩展的、面向未来的零日威胁和数字威胁情报行动。*
标签:AV绕过, Chart.js, CVE, DLL 劫持, FastAPI, GPT, Grok, HTML5, IoT漏洞, SQLAlchemy, URL抓取, Vanilla JS, 代码示例, 仪表盘, 大语言模型, 威胁分析, 威胁情报, 开发者工具, 情报收集, 数字签名, 数据分析, 数据抓取, 数据清洗, 汽车安全, 漏洞研究, 漏洞管理, 漏洞聚合, 物联网安全, 网络安全, 自动化Pipeline, 自动化侦查工具, 车联网安全, 逆向工具, 隐私保护