archrampart/threat-intelligence-platform
GitHub: archrampart/threat-intelligence-platform
一个可私有化部署的威胁情报平台,整合69+情报源实现IOC查询、CVE追踪、资产监控和报告生成。
Stars: 0 | Forks: 0
# 威胁情报平台
一个用于利用开源威胁情报 API 查询、分析和报告 IOC (失陷指标) 的 Web 应用程序。
## 🎬 演示

## 🚀 快速开始
### 环境要求
- **Python 3.12+** (用于后端)
- **Node.js 20+ 和 npm 10+** (用于前端 - 可选)
- **Docker & Docker Compose** (用于容器化部署 - 可选)
### 方式 1: Docker 部署 (推荐)
```
# 一键启动所有服务
./docker-start.sh
# 或者直接
docker-compose up -d
```
这将启动:
- Redis (用于缓存)
- 后端 API (FastAPI)
- 前端 (React + Nginx)
**访问地址:**
- 前端: http://localhost:4765
- 后端 API: http://localhost:8777
- API 文档: http://localhost:8777/docs
**默认用户:**
| Username | Password | Role |
|----------|----------|------|
| `admin` | `admin123` | ADMIN |
| `analyst` | `analyst123` | ANALYST |
| `viewer` | `viewer123` | VIEWER |
### 方式 2: 本地开发
#### 使用脚本启动
```
./start.sh
```
此脚本:
- ✅ 自动配置并启动后端
- ✅ 配置并启动前端 (如果已安装 Node.js)
- ✅ 创建必要的 `.env` 文件
- ✅ 并行运行两个服务
#### 手动设置
##### 仅后端
```
cd backend
python3 -m venv .venv
source .venv/bin/activate # Linux/Mac
pip install -r requirements.txt
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
```
##### 前端 (需要 Node.js)
```
# 安装 Node.js (Mac - 使用 Homebrew)
brew install node
# 安装 Node.js (Linux)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
# 安装并启动前端
cd frontend
npm install
npm run dev
```
## 📁 项目结构
```
pentest_report_tool/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── api/ # API endpoints
│ │ ├── core/ # Config, security, dependencies
│ │ ├── db/ # Database models and migrations
│ │ ├── models/ # SQLAlchemy models
│ │ ├── schemas/ # Pydantic schemas
│ │ └── services/ # Business logic
│ └── requirements.txt
├── frontend/ # React + Vite frontend
│ ├── src/
│ │ ├── features/ # Feature modules
│ │ ├── components/ # UI components
│ │ └── lib/ # API client
│ └── package.json
├── docker/ # Docker configuration files
│ ├── Dockerfile.backend
│ ├── Dockerfile.frontend
│ └── nginx.conf
├── docker-compose.yml # Docker Compose configuration
├── docker-start.sh # Docker startup script
└── start.sh # Local development startup script
```
## 🌐 访问地址
### 本地开发
后端启动后:
- **后端 API**: http://127.0.0.1:8000
- **API 文档**: http://127.0.0.1:8000/docs
- **健康检查**: http://127.0.0.1:8000/api/v1/health
前端启动后:
- **前端**: http://localhost:5173
### Docker 部署
- **前端**: http://localhost:4765
- **后端 API**: http://localhost:8777
- **API 文档**: http://localhost:8777/docs
## 🔧 配置
### 后端 (.env)
编辑 `backend/.env` 文件:
```
DATABASE_URL=sqlite:///./threat_intel.db
SECRET_KEY=your-secret-key
ENCRYPTION_KEY=your-32-byte-encryption-key!!
REDIS_ENABLED=true
REDIS_URL=redis://localhost:6379/0
```
### 前端 (.env)
编辑 `frontend/.env` 文件:
```
VITE_API_BASE_URL=http://127.0.0.1:8000
```
### Docker (.env)
对于 Docker 部署,将根目录下的 `.env.example` 复制为 `.env`:
```
cp .env.example .env
# 编辑 .env 并修改 SECRET_KEY 和 ENCRYPTION_KEY
```
## 📚 功能特性
### ✅ 已完成模块
- **身份验证**: 基于 JWT 的用户登录和注册
- **IOC 查询**: 支持 69+ 个威胁情报来源的 IP、域名、URL、Hash、邮箱和 CVE 查询
- **仪表盘**: 带有交互式图表的统计数据和指标
- **CVE 数据库**: 集成 NIST NVD,支持搜索和过滤
- **监控清单**: 资产监控和警报系统
- **报告**: 生成包含执行摘要的综合报告 (PDF, HTML, JSON)
- **API 密钥管理**: 加密的 API 密钥管理 (AES-256)
- **API 来源管理**: 69 个预配置来源 + 自定义 API 来源
- **警报系统**: 监控清单项目的实时警报通知
- **Redis 缓存**: 用于 IOC 和 CVE 查询的高性能缓存
- **后台任务**: 自动化监控清单监测
- **用户角色**: Admin、Analyst 和 Viewer 基于角色的访问控制
### 🔄 开发状态
- 大多数核心功能已完成
- 前端 UI 已完全实现
- 已实现受保护路由
- PDF 导出功能可用
- 后台任务系统已实现
## 🛠️ 开发
### 后端测试
```
cd backend
source .venv/bin/activate
pytest
```
### 前端测试
```
cd frontend
npm test # When tests are added
```
## 📝 注意事项
- 开发环境中使用 SQLite
- 生产环境推荐使用 PostgreSQL
- API 密钥使用 AES-256 加密
- JWT token 有效期为 30 分钟
- Docker 中默认启用 Redis 缓存
## 🤝 贡献
1. Fork 本仓库
2. 创建一个功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交您的更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 打开一个 Pull Request
## 📄 许可证
本项目是开源的。
标签:API集成, AV绕过, CVE追踪, Docker, FastAPI, GPT, IOC查询, IP 地址批量处理, masscan, Nginx, nuclei, Python, React, Redis, SOC工具, Syscalls, TIP, 可观测性, 威胁分析, 威胁情报平台, 安全运营, 安全防御评估, 扫描框架, 搜索引擎查询, 无后门, 本地部署, 测试用例, 漏洞发现, 漏洞管理, 网络信息收集, 网络安全, 自动化侦查工具, 请求拦截, 逆向工具, 防御态势感知, 隐私保护, 黑白名单管理