siddhant-jadhav/SentinelX
GitHub: siddhant-jadhav/SentinelX
SentinelX 是一个聚合 AlienVault OTX 与社区威胁情报的共享平台,同时作为 DevOps 全流程实践项目演示容器化、CI/CD 与云基础设施部署。
Stars: 0 | Forks: 0
# 🛡️ SentinelX — 网络威胁情报共享平台
一个网络威胁情报平台,汇集来自 AlienVault OTX 的公开威胁情报,并结合社区提交的威胁情报。作为一个学期项目构建,展示了包含 CI/CD、容器化、基础设施即代码和容器编排在内的 DevOps 实践。
## 🚀 技术栈
| 层级 | 技术 |
|-------|-----------|
| Frontend | Streamlit (Python) |
| Backend | FastAPI (Python REST API) |
| 数据库 | SQLite with SQLAlchemy ORM |
| 威胁情报源 | AlienVault OTX API |
| 认证 | JWT (python-jose + bcrypt) |
| 图表 | Plotly |
| 容器化 | Docker + Docker Compose |
| CI/CD | Jenkins Pipeline |
| 基础设施 | Terraform (AWS) |
| 编排 | Kubernetes |
## 📋 快速开始
```
# Clone repository
git clone https://github.com/YOUR_USERNAME/SentinelX.git
cd SentinelX
# Make launch script executable
chmod +x run.sh
# 运行 SentinelX(安装 deps,seed DB,启动 servers)
./run.sh
```
然后打开:
- **Frontend**: http://localhost:8503
- **API 文档**: http://localhost:8003/docs
## 🔑 默认凭证
| 角色 | 用户名 | 密码 |
|------|----------|----------|
| Admin | `admin` | `SentinelX@2024` |
| Analyst | `analyst` | `analyst123` |
## 🏗️ 架构
```
┌─────────────────┐ HTTP/REST ┌─────────────────┐
│ Streamlit UI │ ◄──────────────► │ FastAPI API │
│ (Port 8503) │ │ (Port 8003) │
└─────────────────┘ └────────┬────────┘
│
┌────────────────┼────────────────┐
│ │ │
┌─────▼─────┐ ┌──────▼──────┐ ┌─────▼─────┐
│ SQLite │ │ OTX API │ │ JWT Auth │
│ Database │ │ Service │ │ Module │
└───────────┘ └─────────────┘ └───────────┘
```
## 📱 应用模块
| 模块 | 描述 |
|--------|-------------|
| 📊 仪表盘 | 指标、趋势图和最近的威胁情报源 |
| 📡 威胁情报源 | 来自 OTX 和社区源的统一情报源 |
| 🔍 搜索 | 跨本地 DB 和 OTX API 搜索指标 |
| 📤 提交威胁 | 社区威胁情报提交表单 |
| 👥 社区 | 浏览已批准的社区提交威胁 |
| 📈 分析 | 图表、统计和趋势分析 |
| ⚙️ 管理面板 | 审查、批准、拒绝和管理威胁 |
## 🔌 API 端点
| 端点 | 方法 | 描述 |
|----------|--------|-------------|
| `/threats` | GET | 列出威胁(带过滤器) |
| `/threats/{id}` | GET | 按 ID 获取威胁 |
| `/threats` | POST | 提交新威胁 |
| `/threats/{id}` | PUT | 更新威胁 (Admin) |
| `/threats/{id}` | DELETE | 删除威胁 (Admin) |
| `/search` | GET | 搜索指标 |
| `/otx/latest` | GET | 获取 OTX pulse |
| `/otx/sync` | POST | 将 OTX 同步到 DB (Admin) |
| `/analytics/overview` | GET | 分析概览 |
| `/analytics/trends` | GET | 每日趋势 |
| `/auth/login` | POST | 用户登录 |
| `/auth/register` | POST | 用户注册 |
| `/health` | GET | 健康检查 |
## 🐳 Docker 部署
```
cp .env.example .env # Edit with your OTX key
docker compose up --build -d
# Frontend: http://localhost:8503
# API Docs: http://localhost:8003/docs
```
有关 Docker 的详细说明,请参阅 [DOCKER.md](DOCKER.md)。
## 🔧 手动设置
```
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Seed database
python3 -c "from backend.seed import seed_database; seed_database()"
# 启动 backend(terminal 1)
uvicorn backend.main:app --reload --port 8003
# 启动 frontend(terminal 2)
streamlit run frontend/app.py --server.port 8503
```
## 🔑 OTX API 密钥(可选)
要获取实时威胁情报数据,请将您的 AlienVault OTX API 密钥添加到 `.env`:
```
OTX_API_KEY=your_key_here
```
在此获取免费密钥:https://otx.alienvault.com/api
如果没有密钥,平台将在 **演示模式** 下运行,并使用逼真的样本数据。
## 📁 项目结构
```
SentinelX/
├── backend/ # FastAPI backend
│ ├── Dockerfile
│ ├── main.py # App entry point
│ ├── config.py # Environment configuration
│ ├── database.py # SQLAlchemy setup
│ ├── models.py # Database models
│ ├── schemas.py # Pydantic schemas
│ ├── auth.py # JWT authentication
│ ├── seed.py # Database seeding
│ ├── routers/ # API route handlers
│ └── services/ # Business logic
├── frontend/ # Streamlit frontend
│ ├── Dockerfile
│ ├── app.py # Main dashboard
│ ├── assets/styles.css # Custom CSS
│ ├── components/ # Reusable UI components
│ ├── pages/ # Application pages
│ └── utils/ # Helpers and API client
├── k8s/ # Kubernetes manifests
├── terraform/ # Terraform IaC scripts
├── tests/ # Test suites
├── docker-compose.yml # Docker orchestration
├── Jenkinsfile # CI/CD pipeline
├── requirements.txt # Python dependencies
├── run.sh # Local launch script
└── .env.example # Environment template
```
## 🚢 DevOps 交付物
| 交付物 | 位置 | 描述 |
|-------------|----------|-------------|
| Docker | `docker-compose.yml`, `*/Dockerfile` | 容器化部署 |
| Jenkins | `Jenkinsfile`, `JENKINS.md` | 带有测试的 CI/CD 流水线 |
| Terraform | `terraform/` | AWS 基础设施配置 |
| Kubernetes | `k8s/` | 容器编排清单 |
标签:AV绕过, FastAPI, Kubernetes, Streamlit, 威胁情报, 子域名突变, 开发者工具, 漏洞利用检测, 版权保护, 网络安全, 网络测绘, 访问控制, 请求拦截, 逆向工具, 隐私保护