cutewizzy11/telnora-soc-platform
GitHub: cutewizzy11/telnora-soc-platform
一个开源、可自托管的安全运营中心平台,提供告警分诊、事件管理、威胁情报关联和分析报告功能,帮助安全团队高效运营和响应。
Stars: 1 | Forks: 0
# Telnora SOC 平台
一个可自托管的安全运营中心(SOC)Web 应用程序,用于警报分诊、安全事件案例管理、威胁情报关联和 SOC 分析分析——旨在为安全团队、MSSP 和研究人员提供一个开源参考平台。
由 **[Telnora Technologies](https://github.com/Telnora-Technologies)** 构建和维护。
## 功能
- **警报分诊流** — 支持按严重程度、状态、来源和资产提取、过滤和分诊安全警报,并带有 MITRE ATT&CK 战术/技术标签。
- **事件案例管理** — 看板风格的案例面板(打开 → 进行中 → 已控制 → 已解决 → 已关闭),支持指派以及每个事件的评论/时间线记录。
- **真实威胁情报关联** — 从 **AbuseIPDB**(恶意 IP 信誉)、**AlienVault OTX**(社区威胁脉冲)和 **NVD**(CVE 订阅源)中提取实时指标,并自动将传入的警报与已知的恶意 IP 进行关联,以提高风险评分并提升严重级别。
- **分析与 SLA 报告** — 平均检测时间 (MTTD)、平均解决时间 (MTTR) 以及基于严重程度的 SLA 合规性跟踪。
- **基于角色的访问控制** — 在每个 API 路由上强制执行四种内置角色(`admin`、`soc_lead`、`analyst`、`viewer`)。
- **审计日志** — 记录每一个改变状态的操作(登录、警报分诊、事件更新、用户管理、威胁情报刷新),并包含操作者、目标和时间戳。
- **警报模拟器** — 生成逼真的合成警报(部分警报会特意匹配真实的威胁情报 IOC),因此无需接入实时的 SIEM 订阅源即可完整演示该平台。
## 技术栈
| 层级 | 技术 |
|------------|-----------------------------------------------|
| 前端 | React + TypeScript + Vite + Tailwind CSS + Recharts |
| 后端 | Python + FastAPI + SQLAlchemy |
| 数据库 | PostgreSQL(支持使用 SQLite 进行快速的本地运行) |
| 认证 | JWT (OAuth2 密码流) + bcrypt 密码哈希 |
| 威胁情报 | AbuseIPDB, AlienVault OTX, NVD (NIST) REST API |
有关数据模型和关联引擎的更深入了解,请参阅 [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)。
## 截图
_在本地运行该应用程序后,请在此处添加仪表盘、警报流和事件面板的截图——将 PNG 文件放入 `docs/screenshots/` 目录中,并在下方引用它们。_
## 快速开始
### 方式 1:Docker Compose(推荐)
```
git clone https://github.com/Telnora-Technologies/telnora-soc-platform.git
cd telnora-soc-platform
cp .env.example .env # fill in threat intel API keys if you have them (optional)
docker compose up --build
```
- 前端: http://localhost:5173
- 后端 API 文档 (Swagger): http://localhost:8000/docs
然后填充演示数据(包括用户、模拟警报,如果设置了密钥,还会拉取实时威胁情报):
```
docker compose exec backend python -m app.scripts.seed
```
使用 `admin@telnora.io` / `ChangeMe123!` 登录(也可以使用 `lead@`、`analyst@`、`viewer@telnora.io`)。
**在部署到任何公开环境之前,请务必更改默认密码和 `SECRET_KEY`。**
### 方式 2:不使用 Docker 在本地运行
**后端**
```
cd backend
pip install -r requirements.txt --break-system-packages # or use a virtualenv
cp ../.env.example ../.env # DATABASE_URL defaults to sqlite:///./soc.db if unset
python -m app.scripts.seed
uvicorn app.main:app --reload
```
**前端**
```
cd frontend
npm install
npm run dev
```
### 威胁情报 API 密钥(全为可选,提供免费层级)
该平台在仅有模拟数据的情况下即可开箱即用。要拉取**真实**的威胁情报,请将免费的 API 密钥添加到 `.env` 中:
- **AbuseIPDB** — https://www.abuseipdb.com/account/api
- **AlienVault OTX** — https://otx.alienvault.com/api
- **NVD** — 无需密钥即可使用;可在 https://nvd.nist.gov/developers/request-an-api-key 申请密钥以提高速率限制
系统会妥善处理缺失的密钥——仅跳过相应的订阅源,警报模拟器会继续为演示提供数据。
## 角色
| 角色 | 权限 |
|------------|-------------|
| `admin` | 所有权限,包括用户管理和审计日志 |
| `soc_lead` | 管理事件/警报,刷新威胁情报,查看审计日志和分析 |
| `analyst` | 分诊警报,处理事件,添加评论 |
| `viewer` | 整个平台的只读访问权限 |
## 运行测试
```
cd backend
pip install -r requirements.txt --break-system-packages
pytest -v
```
## 项目结构
```
telnora-soc-platform/
├── backend/
│ ├── app/
│ │ ├── models/ # SQLAlchemy models (User, Alert, Incident, IOC, AuditLog)
│ │ ├── schemas/ # Pydantic request/response schemas
│ │ ├── core/ # security (JWT/bcrypt) + RBAC dependencies
│ │ ├── routers/ # FastAPI route modules
│ │ ├── services/ # threat intel fetchers, correlation engine, alert simulator
│ │ └── scripts/ # seed.py — demo data bootstrap
│ └── tests/
├── frontend/
│ └── src/
│ ├── pages/ # Dashboard, Alerts, Incidents, Threat Intel, Analytics, Admin, Audit Log
│ ├── components/ # Layout, SeverityBadge, StatCard, ProtectedRoute
│ └── context/ # AuthContext (JWT session state)
├── docker-compose.yml
└── .env.example
```
## 路线图 / 贡献者建议
- Alembic 迁移(目前通过 `Base.metadata.create_all` 创建 schema)
- 使用 WebSocket 推送实时警报更新以代替轮询
- 添加更多威胁情报源(MISP, Shodan, VirusTotal)
- SOAR 风格的自动化剧本(通过防火墙 API 自动拦截 IOC IP)
- 多租户组织支持
## 许可证
MIT — 详见 [`LICENSE`](LICENSE)。可免费使用、分叉和修改。
由 [Telnora Technologies](https://github.com/Telnora-Technologies) 为安全社区构建的开源 SOC 平台。
标签:AV绕过, FastAPI, React, Syscalls, 告警分诊, 威胁情报, 安全运营中心, 开发者工具, 测试用例, 网络映射, 请求拦截, 逆向工具