amanpanwar1/Dark-Web-Monitoring-System

GitHub: amanpanwar1/Dark-Web-Monitoring-System

基于 Flask、React 和 MongoDB 构建的 AI 驱动暗网与威胁情报监控平台,实时聚合 OSINT 数据并提供可视化分析、风险评分与全球威胁地图。

Stars: 0 | Forks: 0

# 🛡️ 暗网与威胁情报监控系统 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python](https://img.shields.io/badge/Python-3.10%2B-blue.svg)](https://www.python.org/) [![Flask](https://img.shields.io/badge/Flask-3.0%2B-green.svg)](https://flask.palletsprojects.com/) [![React](https://img.shields.io/badge/React-18.2-blue)](https://reactjs.org/) [![MongoDB](https://img.shields.io/badge/MongoDB-Atlas-brightgreen)](https://www.mongodb.com/) [![Code Style: Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier) 一个企业级的全栈网络安全威胁情报平台,旨在实时聚合、分析、可视化和分类恶意订阅源与暗网遥测数据。 该平台基于 **Flask REST API**、**MongoDB Cloud Atlas** 和交互式 **React Dashboard** 构建,能够接入全球开源威胁订阅源 (OSINT),提供 AI 驱动的风险评分,在全球地图上可视化攻击的地理分布,并通过基于角色的监控功能赋能安全分析师。 ## ✨ 核心功能 - **🌐 实时威胁订阅源接入 (OSINT)** - 自动集成 **OpenPhish**、**URLhaus** 和 **AlienVault OTX (Open Threat Exchange)**。 - 后台调度器 (`APScheduler`) 每小时自动获取并对全球威胁订阅源进行去重。 - 提供手动同步功能以立即更新威胁。 - **📊 综合分析与可视化** - **严重性图表**:高、中、低和严重级别的分布情况。 - **威胁类型**:恶意软件、网络钓鱼、僵尸网络、勒索软件、被入侵服务器的追踪。 - **来源细分**:不同订阅源提供商和自定义条目的情报分布。 - **时间轴图表**:历史威胁接入趋势。 - **🗺️ 交互式全球威胁地图** - 基于 **Leaflet** 和 **ip-api** IP 地理定位的威胁发源地实时空间映射。 - 包含国家坐标和 IP 详情的交互式地图标记。 - **🤖 AI 威胁分类与风险评分** - 基于规则和启发式的 NLP 分类模型,用于评估风险级别、类别和潜在影响。 - 为 SOC 分析师生成可操作的缓解建议。 - **🔐 基于角色的访问控制 (RBAC)** - 支持 **Admin** 和 **Analyst** 角色。 - Analyst 可以查看遥测数据、检查详情并进行分析。 - Admin 保留写入权限(添加/删除威胁 IOC)。 - **⚡ 高性能 REST API** - 在 MongoDB 集合上自动建立索引,实现对 URL、IP 和威胁标题的即时正则搜索。 - 内置 **Flask-Limiter** 速率限制保护,保障 API 端点安全。 - **📄 数据导出与报告** - 将实时威胁数据集导出为 **CSV** 和 **Excel (.xlsx)** 格式,以便用于报告和离线分析。 ## 🏗️ 架构与项目结构 ``` Dark-Web-Monitoring-System/ ├── backend/ │ ├── app.py # Flask server entry point & APScheduler configuration │ ├── config.py # Application settings │ ├── requirements.txt # Python dependencies │ ├── .env # Backend environment variables │ ├── database/ │ │ └── mongodb.py # MongoDB connection & index configuration │ ├── models/ │ │ └── threat.py # Threat data model factory │ ├── routes/ │ │ ├── auth.py # User authentication endpoints │ │ ├── dashboard.py # Metrics & telemetry aggregation endpoints │ │ └── threats.py # Threat CRUD, search, and feed sync endpoints │ ├── services/ │ │ ├── classifier.py # AI Threat classification & risk engine │ │ ├── geo_service.py # IP Geolocation service │ │ ├── openphish_service.py # OpenPhish feed consumer │ │ ├── otx_service.py # AlienVault OTX consumer │ │ └── urlhaus_service.py # URLhaus feed consumer │ └── utils/ ├── frontend/ │ ├── package.json # React dependencies & scripts │ ├── public/ │ └── src/ │ ├── App.js # Main routing setup │ ├── components/ # Reusable UI charts, maps, tables, modals & cards │ └── pages/ # Dashboard, Threats, Analytics, Global Map, Settings └── docs/ # Project documentation and presentation files ``` ## 🛠️ 技术栈 | 领域 | 技术 / 库 | | :--- | :--- | | **前端框架** | React 18, React Router v6 | | **数据可视化** | Chart.js, React-Chartjs-2 | | **地理映射**| Leaflet, React-Leaflet | | **HTTP 客户端** | Axios | | **导出引擎** | FileSaver, XLSX | | **后端框架** | Python 3.10+, Flask | | **后台任务** | APScheduler | | **安全与速率限制**| Flask-Limiter, Flask-CORS | | **数据库** | MongoDB Atlas, PyMongo | | **OSINT 情报订阅源**| AlienVault OTX, URLhaus, OpenPhish, AbuseIPDB | ## 🚀 快速入门指南 ### 前置条件 请确保您的机器上已安装以下内容: - [Python 3.10+](https://www.python.org/downloads/) - [Node.js 18+](https://nodejs.org/) & `npm` - [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) 账户(或本地 MongoDB 实例) ### 1️⃣ 后端配置 1. **进入后端目录:** cd backend 2. **创建虚拟环境(可选但推荐):** python -m venv venv # 在 Windows 上: venv\Scripts\activate # 在 macOS/Linux 上: source venv/bin/activate 3. **安装依赖项:** pip install -r requirements.txt 4. **配置环境变量:** 在 `backend/` 目录下创建一个 `.env` 文件,包含以下变量: MONGO_URI=mongodb+srv://:@cluster.mongodb.net/darkweb_db?retryWrites=true&w=majority SECRET_KEY=your_secret_key_here OTX_API_KEY=your_alienvault_otx_api_key ABUSEIPDB_API_KEY=your_abuseipdb_api_key 5. **运行 Flask 开发服务器:** python app.py 后端 API 将在 `http://127.0.0.1:5000` 启动。 ### 2️⃣ 前端配置 1. **打开一个新的终端并进入前端目录:** cd frontend 2. **安装 Node 模块:** npm install 3. **启动 React 应用程序:** npm start 控制面板将自动在 `http://localhost:3000` 打开。 ## 🛰️ API 端点摘要 | 方法 | 端点 | 描述 | 权限 | | :--- | :--- | :--- | :--- | | `GET` | `/` | 系统状态和活跃调度器健康状态 | 公开 | | `GET` | `/api/dashboard/stats` | 汇总的威胁计数、严重性和国家/地区统计信息 | 所有人 | | `GET` | `/api/threats` | 检索所有已记录的威胁情报 IOC | 所有人 | | `POST` | `/api/threats` | 手动插入新的威胁 IOC | Admin | | `DELETE`| `/api/threats/` | 删除特定的威胁 IOC | Admin | | `GET` | `/api/search?q=`| 跨标题、URL、IP 的正则搜索 | 所有人 | | `POST` | `/api/sync-feeds` | 强制立即与 OSINT 订阅源同步 | 所有人 | ## 📜 许可证 基于 **MIT License** 分发。详情请参阅 `LICENSE`。
标签:ESC4, Flask, MongoDB, OSINT, React, Syscalls, 威胁情报, 开发者工具, 自定义脚本