tarekhebhoub/Cyber-Threat-Intelligence-Platform

GitHub: tarekhebhoub/Cyber-Threat-Intelligence-Platform

一款支持暗网监控的生产级SaaS网络威胁情报平台,可对邮箱、域名、IP等资产进行自动化爬虫扫描和威胁检测告警。

Stars: 0 | Forks: 0

# 网络威胁情报平台 一款生产就绪的 SaaS 网络威胁情报平台 MVP,支持**暗网监控**功能。 ## ✨ 功能特性 - 🔐 **JWT 认证**,支持 `user` / `admin` 角色 - 🗂 **资产管理**:邮箱、域名、IP、软件 - 🕷 **模块化爬虫**:表网 + 粘贴站 + 论坛 + 暗网(Tor) - 🧠 **检测引擎**:正则 + 关键词规则、资产关联、风险评分 (低/中/高/严重)—— 可扩展至机器学习 - 🔔 **告警**:仪表板 + 邮件渠道 - 📊 **仪表板**:时间线、严重程度分布、风险评分 - ⏱ **Celery + Redis** 后台任务(定时扫描和按需扫描) - 🛡 **安全**:输入验证、限速、密码脱敏 (我们从不存储泄露的密码,仅存储单向哈希值) ## 🗂 项目结构 ``` ThreatIntelegence/ ├─ backend/ Django + DRF + Celery │ ├─ config/ Project settings, urls, celery app │ ├─ accounts/ Custom User + JWT │ ├─ assets/ Asset CRUD │ ├─ threats/ Threat models + detection engine │ ├─ crawler/ Modular crawlers (surface + Tor) │ ├─ alerts/ Multi-channel notifications │ └─ requirements.txt └─ frontend/ React + Vite + TailwindCSS ├─ src/ │ ├─ pages/ Dashboard, Assets, Threats, Sources, Alerts, Login, Register │ ├─ components/ Layout, ProtectedRoute, SeverityBadge │ ├─ context/ AuthContext (JWT) │ └─ api/ axios client w/ refresh └─ package.json ``` ## 🗄 数据库模型 | 模型 | 关键字段 | 用途 | |---|---|---| | `accounts.User` | `username`、`email`、`role`、`organization`、`notify_by_email` | 认证 + 角色 + 可选告警 | | `assets.Asset` | `owner`、`type`(email/domain/ip/software)、`value`、`is_active` | 我们监控的对象 | | `crawler.Source` | `name`、`url`、`kind`(surface/paste/forum/darkweb)、`is_active` | 我们搜索的来源 | | `crawler.CrawlJob` | `source`、`status`、`pages_fetched`、`threats_created` | 任务审计日志 | | `threats.ScanResult` | `source`、`url`、`content_hash`、`excerpt`(已净化) | 抓取的原始页面 | | `threats.Threat` | `owner`、`asset`、`category`、`severity`、`risk_score`、`indicators`、`fingerprint` | 检测到的威胁(已去重) | | `alerts.Alert` | `user`、`threat`、`channel`、`is_read`、`delivered` | 已发送的通知 | 已在高流量列上添加索引(`severity+detected_at`、 `type+value`、`owner+status`、`content_hash`、`is_read`)。 ## 🔌 API 端点(v1) 基础路径:`/api/v1/` ### 认证 | 方法 | 路径 | 备注 | |---|---|---| | POST | `/auth/register/` | 公开 | | POST | `/auth/token/` | 获取 JWT(`username`、`password`) | | POST | `/auth/token/refresh/` | 刷新 JWT | | GET / PATCH | `/auth/me/` | 当前用户 | ### 资产 | 方法 | 路径 | |---|---| | GET / POST | `/assets/` | | GET / PUT / PATCH / DELETE | `/assets/{id}/` | | POST | `/assets/{id}/scan_now/` | ### 威胁 | 方法 | 路径 | |---|---| | GET | `/threats/`(筛选条件:`severity`、`category`、`status`、`asset`) | | GET / PATCH | `/threats/{id}/` | | POST | `/threats/{id}/resolve/` | | POST | `/threats/{id}/false_positive/` | | GET | `/threats/scan-results/` | | GET | `/threats/dashboard/stats/` | ### 爬虫(管理员写入) | 方法 | 路径 | |---|---| | GET / POST | `/crawler/sources/` | | GET / PUT / DELETE | `/crawler/sources/{id}/` | | POST | `/crawler/sources/{id}/run/` | | GET | `/crawler/jobs/` | ### 告警 | 方法 | 路径 | |---|---| | GET | `/alerts/` | | POST | `/alerts/{id}/read/` | | POST | `/alerts/read_all/` | | GET | `/alerts/unread_count/` | ## 🚀 后端部署 ``` cd backend python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt cp .env.example .env python manage.py migrate python manage.py createsuperuser python manage.py seed_sources # adds a few example sources python manage.py runserver 0.0.0.0:8000 ``` ### 后台 Worker(在两个额外的终端中运行) ``` # Worker celery -A config worker -l info # Beat (scheduled scans) celery -A config beat -l info ``` 确保 Redis 在本地运行: ``` sudo systemctl start redis # or: docker run -p 6379:6379 redis:7 ``` ### (可选)暗网爬虫 1. 安装 Tor: sudo apt install tor sudo systemctl start tor 2. 验证 Tor SOCKS5 可在 `127.0.0.1:9050` 访问。 3. 在 `backend/.env` 中设置: ENABLE_DARKWEB=True TOR_SOCKS_HOST=127.0.0.1 TOR_SOCKS_PORT=9050 4. 通过**来源**页面添加 `darkweb` 类型的来源(需要 admin 角色)。 ## 🌐 前端部署 ``` cd frontend npm install npm run dev ``` Vite 开发服务器运行在 **http://localhost:5173**,并将 `/api/*` 代理到 Django 后端的 `:8000` 端口。 ## 🧪 测试 ``` cd backend python manage.py test threats ``` 检测引擎包含单元测试,覆盖指标提取、 凭证对检测、密码脱敏和误报抵抗能力。 ## 🔐 安全策略 - 泄露的密码**永不持久化**——仅存储截断的 `sha256` 哈希值。 - 摘录在存储前会经过净化处理(`make_excerpt`)。 - DRF 限速:匿名用户 `30/分钟`,认证用户 `120/分钟`(可根据视图覆盖)。 - 所有资产输入都经过验证(邮箱/域名使用正则,IP 使用 `ipaddress` 模块)。 - JWT 访问令牌短生命周期(60 分钟),刷新令牌 7 天。 - 生产环境设置启用 HSTS、安全 cookie、SSL 重定向(`DEBUG=False`)。 - Django 日志级别保持为 INFO;我们特意避免在 WARN 级别记录暗网点击的 URL。 ## 🛣 路线图(与分阶段计划匹配) - ✅ **阶段 1** – 认证、资产 CRUD、简单关键词/正则扫描器 - ✅ **阶段 2** – 模块化爬虫(表网)+ 实体提取 - ✅ **阶段 3** – 支持 Tor 的暗网爬虫 - 🔜 **阶段 4** – 在 `threats/engine.py::classify_ml` 中接入 ML 分类器 (例如 scikit-learn TF-IDF + LogReg,或 transformer 管道) ## 📎 快速冒烟测试(设置完成后) 1. 在 注册一个用户。 2. 添加一个资产(例如 `email: test@example.com`)。 3. 进入**来源**页面(作为 admin)并点击"运行"已初始化的 "Krebs on Security" 来源——或者更快,打开 Django shell: from threats.engine import analyze from assets.models import Asset from accounts.models import User u = User.objects.first() Asset.objects.create(owner=u, type="email", value="test@example.com") print(analyze("dump: test@example.com:Sup3r!", Asset.objects.filter(owner=u))) 4. 在 UI 中查看**威胁**和**告警**。
标签:AMSI绕过, Celery, Dark Web, DAST, Django, GitHub, HTTP/HTTPS抓包, JWT, masscan, React, Redis, REST API, Syscalls, Tor网络, Web安全, 占用监测, 后端开发, 告警系统, 命令控制, 威胁情报平台, 威胁检测, 密码管理, 库, 应急响应, 态势感知, 恶意软件分析, 搜索引擎查询, 数据可视化, 数据采集, 暗网监控, 测试用例, 爬虫系统, 网络安全, 网络安全审计, 网络空间测绘, 蓝队分析, 资产管理, 逆向工具, 速率限制, 隐私保护