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, 威胁情报, 子域名突变, 开发者工具, 漏洞利用检测, 版权保护, 网络安全, 网络测绘, 访问控制, 请求拦截, 逆向工具, 隐私保护