EclipseManic/ThreatSentry-AI

GitHub: EclipseManic/ThreatSentry-AI

一款结合机器学习的智能威胁狩猎仪表板,通过自动化资产发现与多源数据富化,帮助安全团队主动识别并优先处理关键网络风险。

Stars: 1 | Forks: 0

# ThreatSentry AI:AI 驱动的威胁狩猎工具 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python Version](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/) [![Framework](https://img.shields.io/badge/UI-PyQt5-green.svg)](https://www.qt.io/qt-for-python) [![ML Stack](https://img.shields.io/badge/ML-Scikit--learn-orange.svg)](https://scikit-learn.org/) [![Database](https://img.shields.io/badge/Database-SQLAlchemy-blue.svg)](https://www.sqlalchemy.org/) ## 🚀 项目使命 **ThreatSentry AI** 旨在消除安全告警疲劳,并通过智能风险优先级排序实现主动威胁狩猎。它结合了自动化资产发现、多源数据富化和先进的机器学习技术,将原始安全数据转化为可操作的情报。 ## 👨‍💻 作者与致谢 **项目负责人:** EclipseManic **开发说明:** 这个全面的企业安全平台由一名开发者在 AI 开发工具的辅助下完成架构设计与开发(包括代码生成、优化和文档编写),展示了 AI 辅助软件工程在复杂系统开发中的可行性。 ## 📋 执行摘要 现代安全团队面临着前所未有的挑战: - **告警疲劳**:每日产生数千条告警,信噪比极低,使得人工分类不可能实现 - **数据碎片化**:关键上下文分散在 SIEM、CMDB、补丁系统和网络监控中 - **被动姿态**:仅对已知威胁做出反应,而不是搜寻新兴风险 - **资源限制**:在日益复杂的基础设施中,预算和人员有限 **ThreatSentry AI** 通过以下方式解决这些问题: 1. **自动化外部资产发现**:通过 Shodan API 实现持续可见性 2. **智能多源富化**:来自 NVD、内部系统和行为分析的数据 3. **ML 驱动的风险评分**:使用集成模型进行准确的威胁优先级排序 4. **面向管理层的仪表板**:提供可操作的情报和快速响应能力 5. **主动告警**:在事件发生前突显高风险资产 ## ✨ 核心功能 ### 🤖 智能风险评分引擎 - **集成机器学习模型**:结合 Random Forest、Gradient Boosting 和 Neural Networks,实现稳健的风险分类 - **多因素分析**:评估 40 多项安全和业务属性,而不仅仅是简单的漏洞数量: - **时间上下文**:暴露持续时间、补丁滞后、事件历史 - **网络位置**:关键服务状态、网段、防火墙保护 - **行为信号**:认证失败、流量异常、误报历史 - **合规影响**:数据敏感性、监管要求、连接的关键资产 - **置信度评分**:每个预测都包含一个置信度指标(0-1),供分析师衡量可靠性 - **持续学习**:模型在可配置的间隔内自动重训,并集成反馈机制 ### 🌐 自动化资产发现与情报融合 - **Shodan 集成**:持续发现面向互联网的设备,支持高级查询 - 针对常见场景的预设查询(SSL 证书、RDP 服务、ICS/Modbus 等) - 支持针对组织特定资产的定制查询 - **NVD 富化**:使用智能 Banner 解析自动关联 CVE - Banner 服务提取支持 14 种以上产品类型(Apache、Nginx、MySQL、IIS 等) - CVSS 评分和严重性分类 - 防止数据丢失:仅在发现漏洞时更新 CVE 指标 - **内部数据集成**(适用于您环境的可扩展架构): - **CMDB 收集器**:资产分类、关键性级别、合规标签 - **SIEM 收集器**:行为指标、认证模式、异常分数 - **补丁管理收集器**:补丁时效性、缺失更新、补丁滞后分析 - **网络监控收集器**:流量模式、DDoS 检测、异常分数 - **统一数据库**:SQLite,拥有 40 多个索引列,用于高效查询和报告 ### 📊 管理仪表板与分析工具 - **基于 PyQt5 的 GUI**,支持深色/浅色主题: - 实时风险分布可视化(使用 Matplotlib 绘制条形图) - 可排序、可过滤的设备表,带有颜色编码的风险指示器 - 按组织、国家、风险级别快速过滤 - 跨 IP、组织、国家、风险字段自动搜索 - **交互式设备检查**: - 详细的漏洞列表及 CVSS 评分 - 漏洞时间线和历史跟踪 - 解释评分的风险因素细分 - **批量操作**: - 手动触发扫描(Shodan + NVD 富化) - 带字段验证的 CSV/JSON 数据导入 - 伴随性能指标进行的模型重训 - 手动发送告警以验证配置 - **分析面板**(高级): - 风险分布趋势 - CVE 影响分析 - 按组织划分的漏洞指标 ### 📧 主动邮件告警 - **SendGrid 集成**:针对高风险资产的自动 HTML 邮件通知 - 风险标签变更时立即触发(低/中 → 高) - 通过 "notified" 状态跟踪防止重复告警 - **丰富的告警内容**: - 包含风险评分和置信度的执行摘要 - 详细的漏洞列表(按 CVSS 排名的前 N 个) - 针对安全团队背景的风险因素细分 - 可操作的补救建议 - **灵活配置**:定义告警收件人、邮件模板和触发条件 #### 示例告警邮件 ![Automated Security Alert Email Template] Screenshot 2026-01-10 160955 *通过 SendGrid 发送的 HTML 格式邮件,包含风险摘要、CVE 详情和补救指导* ### 📈 模型透明度与持续改进 - **性能监控**: - 跨训练周期的准确率跟踪 - 混淆矩阵和分类报告 - 特征重要性分析以理解模型决策 - 数据漂移检测指标 - **反馈循环**: - 分析师手动修正风险标签 - 真阳性/假阳性跟踪 - 基于反馈调整模型权重 - 带有元数据记录的自动重训计划 ### ⚡ 性能与可靠性 - **针对规模优化**: - 5 个以上列的数据库索引,实现亚毫秒级查询 - 频繁访问数据的结果缓存(28.7 倍加速) - 针对大数据集的分页与 "Load More" 功能(初始 50 行 + 每次增量 50 行) - 使用工作线程的非阻塞 UI(QThread, ThreadPoolExecutor) - **健壮的错误处理**: - API 故障的指数退避重试逻辑(Shodan, NVD, SendGrid) - 可选服务不可用时的优雅降级 - 带文件轮转的全面日志记录 - 线程安全的信号/槽架构防止竞争条件 - **内存高效**: - 图表渲染后的垃圾回收 - UI 标签页延迟加载以减少启动时间 - 会话上下文管理器确保正确清理 ## 🖼️ 视觉概览 ### 主仪表板 ![ThreatSentry AI Dashboard - Main Threat Hunting Interface] Screenshot 2026-01-10 153154 *实时风险可视化,包含可排序的设备表和风险分布条形图* ### 设备风险评估表 ![Device Table with Risk Indicators] image *可排序和过滤的设备列表,带有颜色编码的风险级别(绿色=低,黄色=中,红色=高)* ### 高级过滤面板 ![Advanced Filters - CVSS Range, Organization, Country, Risk Level] *强大的过滤控件,包含 CVSS 范围、组织、国家和风险级别过滤器 + "Clear All" 按钮* - **CVSS 范围过滤器**:调整最小和最大 CVSS 分数(0-10)以关注特定严重级别 - **组织过滤器**:从数据库中所有组织的下拉菜单中快速筛选特定组织 - **国家过滤器**:按地理位置筛选以识别区域风险 - **风险级别过滤器**:仅显示高、中、低或所有设备,以便集中分析 - **清除所有按钮**:一键将所有过滤器重置为默认值,以再次查看完整数据集 - **应用过滤器**:立即应用所有选定的过滤器,结果实时反映 ### 全数据库搜索能力 ![Search Input - Multi-Column Search Across Entire Database] *智能搜索涵盖整个设备数据库,而不仅仅是当前显示的行* - **全面搜索**:跨 IP 地址、组织名称、国家和风险级别搜索 - **自动 IP 检测**:自动检测 IP 地址格式并据此搜索 - **全数据库覆盖**:搜索结果包括数据库中的所有设备,不限于前 50 行 - **实时结果**:300ms 防抖延迟,实现响应式搜索且不影响性能 - **分页集成**:搜索结果遵循分页系统以实现高效加载 ### 智能分页与大数据集支持 ![Load More Button - Pagination Controls] *优化的分页系统,用于高效处理数千台设备* - **默认显示 50 行**:仪表板加载初始 50 台设备以实现快速渲染 - **渐进式加载**:"Load More (50 rows)" 按钮允许增量加载而不超时 - **内存高效**:仅显示请求的行;从不将整个数据集加载到内存中 - **性能优化**:非阻塞 UI 防止加载大型数据集时冻结 - **状态指示器**:显示 "Showing X of Y devices" 以透明展示总可用数据 - **搜索集成**:搜索过滤器与分页无缝协作,实现快速结果 ### 分析与报告面板 ![Analytics Tab - Risk Trends and CVE Analysis] Screenshot 2026-01-10 153300 *历史风险趋势、漏洞分析和按组织划分的安全指标* ### 工具与配置 ![Tools Tab - Model Status and Data Export] Screenshot 2026-01-10 153240 *模型训练信息、性能指标、数据导出和高级过滤选项* ### 邮件告警通知 Screenshot 2026-01-10 153939 ![Automated Security Alert Email] *HTML 格式邮件,包含执行摘要、漏洞详情和补救指导* ### 手动扫描工作流 ![Scan Trigger Dialog] Screenshot 2026-01-10 153710 *执行 Shodan + NVD 富化,包含详细的错误报告和进度指示* ## 🛠️ 技术栈 | 层级 | 技术 | |-------|---------------| | **后端 (Backend)** | Python 3.9+, SQLAlchemy ORM, APScheduler | | **ML/AI** | Scikit-learn (Random Forest, Gradient Boosting, MLP), NumPy, Joblib | | **前端 (Frontend)** | PyQt5, Matplotlib, 自定义主题管理器 | | **数据** | Pandas, NumPy, SQLite3 | | **APIs** | Shodan, NVDLib, SendGrid, Requests | | **工具** | Python-dotenv, Logging 模块, 配置管理 | ## 🏗️ 架构与数据流 ``` ┌─────────────────────────────────────────────────────────────┐ │ ThreatSentry AI │ ├─────────────────────────────────────────────────────────────┤ │ Scheduler (APScheduler) │ ├──────────┬──────────────┬──────────────┬───────────┬─────────┤ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ ▼ Shodan NVD Lib CMDB SIEM Patch Network Collector Collector Collector Collector Mgmt Monitor │ │ │ │ │ └──────────────┴──────────────┴───────────┴─────────┘ │ ▼ ┌─────────────────┐ │ SQLite DB │ │ (40+ Columns) │ └────────┬────────┘ │ ┌──────────────────┼──────────────────┐ ▼ ▼ ▼ Feature Engine Model Training Predictions │ │ │ └─────────┬───────┴──────────┬──────┘ ▼ ▼ ┌──────────────────────┐ │ Ensemble Model │ │ (RF + GB + MLP) │ └──────────┬───────────┘ │ ┌────────────┼────────────┐ ▼ ▼ ▼ PyQt5 GUI Email Alerts Analytics ``` ### 数据处理流水线 1. **发现阶段**(可配置间隔,默认 30 分钟) - 使用可配置查询进行 Shodan 扫描 - 使用 CVE 关联进行 NVD 富化 - 内部系统富化以提供上下文 2. **分析阶段** - 从 40 多个属性中进行特征工程 - 集成模型预测(Random Forest 40% + Gradient Boosting 40% + MLP 20%) - 风险标签生成(0=低, 1=中, 2=高) - 置信度评分 3. **告警阶段** - 检查新的高风险资产 - 通过 SendGrid 生成并发送邮件告警 - 更新通知状态 4. **模型重训**(可配置间隔,默认 60 分钟) - 加载所有历史数据 - 提取特征 - 使用平衡类权重训练集成模型 - 验证性能指标 - 保存元数据以供审计 ## 📋 入门指南 ### 前置条件 - **Python**:3.9 或更高版本 - **API Keys**(必需): - Shodan API key (https://www.shodan.io/) - SendGrid API key (https://sendgrid.com/) - 用于邮件告警 - **可选 API Keys**(用于增强富化): - CMDB 端点和凭据 - SIEM 端点和凭据 - 补丁管理系统端点和凭据 - 网络监控端点和凭据 ### 安装 #### 步骤 1:克隆仓库 ``` git clone https://github.com/EclipseManic/ThreatSentry-AI.git cd ThreatSentry-AI ``` #### 步骤 2:创建虚拟环境 ``` # 在 Windows 上 python -m venv .venv .venv\Scripts\activate # 在 macOS/Linux 上 python3 -m venv .venv source .venv/bin/activate ``` #### 步骤 3:安装依赖 ``` pip install -r requirements.txt ``` #### 步骤 4:配置环境 在项目根目录创建一个 `.env` 文件: ``` cp .env.example .env # If provided, or create new ``` 编辑 `.env` 填入您的凭据: ``` # 必需 - Threat Discovery SHODAN_API_KEY=your_shodan_api_key_here SHODAN_QUERY= # Leave empty to use presets SHODAN_QUERY_EMPTY_TO_PRESET=True # Use preset queries when SHODAN_QUERY is empty # 可选 - 邮件告警 SENDGRID_API_KEY=your_sendgrid_key_here SENDER_EMAIL=alerts@yourcompany.com # Must be verified in SendGrid ALERT_RECIPIENTS=security@yourcompany.com,ciso@yourcompany.com # 可选 - 内部丰富 (在 collectors/ 中实现) CMDB_API_ENDPOINT=https://cmdb.internal/api CMDB_API_KEY=your_cmdb_key SIEM_API_ENDPOINT=https://siem.internal/api SIEM_API_KEY=your_siem_key # 配置 SCAN_INTERVAL_MINUTES=30 # How often to scan for new assets RETRAIN_INTERVAL_MINUTES=60 # How often to retrain the model MAX_SHODAN_RESULTS=50 # Results per Shodan query LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR # 路径 (可选) SQLITE_PATH=data/db/threat_sentric_ai.db MODEL_PATH=data/models/rf_model.pkl LOG_FILE_PATH=data/logs/threat_sentric_ai.log ``` #### 步骤 5:初始化数据库 ``` python -c "from data import init_db; init_db()" ``` #### 步骤 6:运行应用程序 ``` python run.py ``` 仪表板将启动,并在后台运行调度程序。 ## 🚀 使用指南 ### 仪表板组件概览 ![Dashboard Main Interface with All Tabs] *概览、分析和工具标签页用于全面的威胁评估* ### 1. 设备表与发现 ![Organization and Country Filters with Device List] *带有颜色编码风险指示器的可排序设备表(绿色=低,黄色=中,红色=高)* - **颜色编码**:即时视觉风险评估 - **可排序/过滤**:点击列标题或使用快速过滤器进行快速搜索 - **实时更新**:仪表板在检测到新威胁时刷新 ### 2. 风险分布图 ![Risk Distribution Bar Chart] *整体安全态势可视化,显示每个风险级别的设备数量* - 显示所有风险类别的设备数量 - 随着模型预测的变化实时更新 - 识别需要立即关注的安全热点 ### 3. 关键操作按钮 - **Scan Now**:手动触发 Shodan + NVD 富化,包含详细的错误报告 - **Refresh**:从最新数据库状态更新仪表板 - **Upload Data**:批量导入包含设备信息的 CSV/JSON - **Train Model**:使用当前数据手动重训集成模型 ### 高级功能 #### 分析标签页 ![Analytics Panel - Risk Trends and Metrics] - 随时间变化的详细风险趋势及历史分析 - 识别最易受攻击的服务 - 组织级风险指标和比较 - CVE 影响分析和漏洞趋势 #### 工具标签页 ![Tools Panel - Model Status and Export - 模型状态和训练信息 ### 配置 #### 预设查询(编辑 `core/config.py`) ``` SHODAN_QUERIES = { "default": "product:apache", "web_apps": "http.title:\"login\" org:\"Your Company\"", "database": "port:27017 OR port:3306", "iot": "device:camera OR device:printer", "rdp": "port:3389", "vpn": "port:500 OR port:1194" } ``` #### 自定义内部收集器 在 `collectors/` 目录中实现: 1. 从现有收集器复制模板 2. 使用您的 API 调用更新 `_collect()` 方法 3. 返回富化数据 4. 在调度器中注册(`core/scheduler.py`) #### 邮件告警自定义 编辑 `alerts/email_alerts.py`: - 修改 HTML 模板以使用品牌邮件 - 添加自定义风险因素描述 - 调整补救建议 ## 📊 数据模型 ### 设备表(40+ 列) ``` Core Identifiers: ip, org, country, first_seen, last_seen Vulnerability: cve_count, max_cvss, vulnerabilities (rel) Security Metrics: auth_failures_24h, traffic_anomaly_score, patch_lag_days Risk Assessment: risk_label, risk_score, confidence_score Context: network_segment, service_category, is_critical_service Compliance: compliance_requirements, data_sensitivity_level Historical: incident_history_count, last_compromise_date, false_positive_count Alerting: notified, alert_history ``` ### 漏洞表 ``` Linked to Device: device_id (FK) CVE Info: cve_id, cvss, summary ``` ## 🔄 工作流示例 ### 场景 1:日常威胁狩猎 1. 打开仪表板 → 审查 风险=高 的设备(红色) 2. 点击设备 → 查看详细的 CVE 列表 3. 记录组织和基础设施类型 4. 与 SIEM 交叉对比,查看最近的可疑活动 5. 根据关键性和补丁滞后情况确定补救优先级 ### 场景 2:事件响应 1. 收到关于新高风险设备的告警 2. 仪表板显示漏洞详情和风险因素 3. 检查资产管理标签页 → 查看设备是否已知 4. 向值班 SOC 团队发送手动告警 5. 补救后,当 Shodan 反映变化时,仪表板自动更新 ### 场景 3:风险报告 1. 转到分析标签页 2. 导出风险分布和趋势图表 3. 识别组织风险热点 4. 生成补救路线图 5. 通过定期重新导出跟踪进度 ## 🔧 故障排除 ### 常见问题 #### 问题:"Shodan API Key invalid" (403 Forbidden) - **解决方案**:验证 `.env` 文件中的 Shodan API 密钥。仪表板将显示错误但继续处理 - **注意**:NVD 富化将不会运行(防止 API 故障时的数据丢失) #### 问题:"No CVEs found for device" - **解决方案**:检查 Banner 提取。编辑 `collectors/nvd_collector.py` 关键字列表 - **预防**:通过 CSV 上传手动富化以手动设置 CVE 数据 #### 问题:"Model confidence too low" - **解决方案**:使用更多标记数据重训。提供对错误分类设备的反馈 - **预防**:使用反馈系统提高训练数据质量 #### 问题:邮件告警未发送 - **解决方案**:验证 SendGrid API 密钥和发件人邮箱是否已验证 - **检查**:`ENABLE_EMAIL_ALERTS` 环境变量设置为 True #### 问题:数据库锁定或查询缓慢 - **解决方案**:确保索引已创建(init_db() 会执行此操作) - **检查**:无重复的数据库连接(仅刷新 UI,而非持续写入) ## 🛡️ 安全考量 1. **API 密钥管理**:使用环境变量,切勿将 `.env` 提交到 Git 2. **数据库安全**:SQLite 适用于单用户;对于多用户请迁移到 PostgreSQL 3. **网络安全**:在受信任的网络上运行;如果暴露 API,请实施网络分段 4. **数据隐私**:配置日志轮转以限制磁盘空间。实施数据保留策略 5. **审计日志**:所有模型决策均记录特征值以供审计 ## 📈 性能优化提示 | 问题 | 解决方案 | |-------|----------| | 仪表板加载缓慢 | 增加配置中的分页大小 | | 训练期间 CPU 占用高 | 减少 `model/advanced_model.py` 中的 `n_estimators` | | 内存使用率高 | 启用日志清理,降低图表分辨率 | | Shodan 扫描缓慢 | 减少 `MAX_SHODAN_RESULTS`,使用更具体的查询 | | NVD 富化缓慢 | 实施 API 缓存,减少产品关键字提取 | ## 🤝 贡献 欢迎贡献!请参阅 [CONTRIBUTING.md](https://raw.githubusercontent.com/EclipseManic/ThreatSentry-AI/main/CONTRIBUTING.md) 获取指南。 增强领域: - 额外的收集器实现(Nessus, Tenable, Qualys 集成) - 用于程序化访问的 Web API - 具有基于角色访问控制的多用户支持 - 高级可视化(Grafana/ELK 集成) - Kubernetes 部署支持 ## 📄 许可证 本项目根据 MIT 许可证授权——详情请参阅 [LICENSE](LICENSE) 文件。 ## 📞 支持与联系 - **Issues**:使用 GitHub Issues 进行错误报告和功能请求 - **文档**:参阅 [docs/](docs/) 目录获取详细技术文档 - **Email**:维护者信息见 [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) ## 🙏 致谢 - **Shodan**:提供全面的互联网设备发现 - **NVD/NIST**:提供权威的漏洞数据 - **Scikit-learn**:提供健壮的 ML 库和文档 - **PyQt5**:优秀的 GUI 框架 - **社区**:所有提供反馈的贡献者和用户 **由 EclipseManic 用 ❤️ 制作 | 即刻保障未来基础设施的安全** pip install -r requirements.txt ``` --- ## 🔐 配置 ### 1. 环境变量 (`.env` 文件) Create a `.env` file in the root directory with the following structure: ```bash # --- Shodan API Key (必需) --- SHODAN_API_KEY="YOUR_SHODAN_API_KEY" # --- SendGrid 邮件告警 (必需) --- SENDGRID_API_KEY="YOUR_SENDGRID_API_KEY" SENDER_EMAIL="your_verified_sender@example.com" ALERT_RECIPIENTS="recipient1@example.com,recipient2@example.com" # --- 数据库 --- SQLITE_PATH="threat_sentric_ai.db" # --- 模型 --- MODEL_PATH="threatsentry_model.pkl" # --- 调度器 --- SCAN_INTERVAL_MINUTES="30" RETRAIN_INTERVAL_MINUTES="60" RETRAIN_ON_SCHEDULE="True" # --- Shodan 查询行为控制 --- SHODAN_QUERY="" SHODAN_QUERY_EMPTY_TO_PRESET="True" # --- 日志记录 --- LOG_LEVEL="INFO" # DEBUG, INFO, WARNING, ERROR, CRITICAL # --- 内部系统凭据 (可选 - 根据您的 collectors 需要添加) --- # CMDB_API_ENDPOINT="..." # CMDB_API_KEY="..." # SIEM_API_ENDPOINT="..." # SIEM_API_KEY="..." # PATCH_API_ENDPOINT="..." # PATCH_API_KEY="..." # NETWORK_MONITOR_ENDPOINT="..." # NETWORK_MONITOR_KEY="..." ``` ## 🔍 Shodan 查询预设 (`config.py`) 修改 `SHODAN_QUERIES` 字典以定义您的自定义查询预设: ``` SHODAN_QUERIES = { "default": "product:apache", "org": 'org:"Your Company Name"', "net": 'net:"123.45.67.0/24"', "ssl": 'ssl:"yourcompany.com"', "hostname": 'hostname:".yourcompany.com"', "rdp": 'port:3389 "remote desktop"', "mongodb": 'port:27017 "mongodb"', "ics_modbus": 'port:502 "modbus"', "vuln_example": 'vuln:CVE-2024-12345', "http_login": 'http.title:"Login" org:"Your Company"' } ``` 如果 `.env` 中的 `SHODAN_QUERY` 为空 **且** `SHODAN_QUERY_EMPTY_TO_PRESET=True`, 调度器将自动循环使用这些预设。 ## 🧠 实现内部收集器 您需要: - 使用 API、数据库或 SDK 获取内部数据。 - 将获取的数据映射到 `Device` 模型属性。 - 使用此富化信息更新数据库会话。 如果没有这些集成,模型将缺乏准确预测所需的上下文。 ## 🧪 运行应用程序 ### (可选)生成初始训练数据 ``` python scripts/generate_realistic_training_data.py --count 1000 ``` 创建 `scripts/my_training_data.json`。 您可以通过 GUI 的 **Upload** 选项上传此文件以初始化训练数据。 ### 启动应用程序 ``` python run.py ``` GUI 将打开,调度器将自动开始扫描、富化和预测。 ## ⚡ 使用生成数据的快速演示 1. 完成安装(步骤 1–3)。 2. 设置您的 `.env` 文件(即使使用占位符密钥)。 3. 可选择在 `config.py` 中调整 Shodan 预设。 4. 生成数据: python scripts/generate_realistic_training_data.py --count 500 5. 启动应用: python run.py 6. 在 GUI 中: - 选择 **Upload** → 选择 `scripts/my_training_data.json` - 点击 **Refresh** 查看填充的设备数据和风险级别。 ## 🛠️ 脚本与使用指南 | 脚本 | 描述 | |--------|--------------| | **run.py** | 主入口点。启动 DB、调度器和 GUI。 | | **scheduler.py** | 处理定期扫描、富化、预测和重训。 | | **scripts/generate_realistic_training_data.py** | 生成用于测试或引导的仿真训练数据。 | | **scripts/clear_db_enhanced.py** | 交互式清理数据库或重置通知标志。 | | **scripts/reset_db.py** | 完全重置数据库。请谨慎使用。 | ### 示例命令 ``` # 生成 1000 条记录 python scripts/generate_realistic_training_data.py --count 1000 # 查看清理选项 python scripts/clear_db_enhanced.py --help # 删除所有设备与漏洞 python scripts/clear_db_enhanced.py --delete-devices --delete-vulns # 重置通知标志 python scripts/clear_db_enhanced.py --reset-notified # 危险操作:完全重置 python scripts/reset_db.py ``` ## 💬 反馈与建议 本项目由 **EclipseManic** 开发。 虽然目前不接受代码贡献,但非常感谢您的 **反馈和错误报告**。 请打开一个 [Issue](https://github.com/EclipseManic/ThreatSentry-AI/issues) 分享您的想法或报告问题。 ## 📄 许可证 本项目根据 **MIT 许可证** 授权。 详情请参阅 [LICENSE](./LICENSE) 文件。
标签:Apex, GPT, HTTP/HTTPS抓包, NVD, PyQt5, Python, Scikit-learn, SQLAlchemy, 人工智能, 企业安全, 告警分流, 威胁搜寻, 安全仪表盘, 实时处理, 密码管理, 态势感知, 插件系统, 数据富化, 无后门, 无线安全, 机器学习, 漏洞管理, 用户模式Hook绕过, 结构化查询, 网络安全, 网络资产管理, 自动化安全, 逆向工具, 隐私保护, 风险优先级