Tazio0/nulltrace
GitHub: Tazio0/nulltrace
Nulltrace 是一个用于防御性网络安全教育目的的威胁情报收集与告警仪表盘原型,展示了从公开威胁 feed 获取情报、标准化指标以及分析师审查工作流的整体设计概念。
Stars: 0 | Forks: 0
# Nulltrace
Nulltrace 是一个专注于威胁情报收集、审查和告警的防御性网络安全仪表盘项目。
该项目目前是一个完善的前端原型,并带有基于 Python/FastAPI 的后端基础。前端使用模拟/演示数据展示了预期的分析师工作流程。后端包含模型、测试、feed 导入器基础、处理框架以及计划中的 API 路由结构,后续可以进一步完善并与前端对接。
这是一个用于作品集和学习目的的项目,而不是企业级安全产品。
## Nulltrace 旨在展示的内容
- 从公开安全 feed 获取威胁情报。
- 跨不同 feed 格式的指标标准化。
- 严重性评分和去重逻辑。
- 针对南非的威胁上下文。
- Discord 告警交付概念。
- 防御性导出/缓解概念。
- 用于在采取行动前审查信号的现代前端界面。
- 使用 FastAPI、SQLAlchemy 和 Pytest 的可测试后端结构。
## 当前状态
### 目前已实现
- 以 Nulltrace 为品牌的现代 React/Vite 前端。
- 带有真实国家轮廓的动画地球仪(由地图数据渲染)。
- 模拟的威胁路由、指标、国家洞察抽屉和仪表盘指标。
- 纯前端的 Discord webhook 测试表单。
- 带有 `/health` 端点的 FastAPI 应用。
- 用于威胁、蜜罐日志和防火墙规则的 SQLAlchemy 模型。
- 针对 AbuseIPDB、AlienVault OTX、URLhaus、PhishTank 和 Blocklist.de 的 feed 导入器类。
- Pytest 测试套件,涵盖模型、数据库结构、导入器、通知器行为、缓解助手以及计划的路由契约。
- 用于路由、repositories、services 和 ingestion 任务的后端框架文件。
### 进行中 / 尚未完成
- 后端 API 路由逻辑已规划但尚未实现。
- 前端目前仍通过 `frontend/src/dataAdapter.js` 使用模拟/演示数据。
- Discord webhook 测试目前直接从浏览器进行;后端代理是未来的改进方向。
- Ingestion pipeline 编排仅停留在框架阶段。
- 严重性评分、富化和去重仍需实际实现。
- 数据库迁移尚未设置。
- 身份验证和生产环境部署尚未实现。
## 技术栈
| 领域 | 技术 |
| --- | --- |
| 前端 | React, Vite, Three.js, GSAP |
| 后端 | Python, FastAPI |
| 数据库 | PostgreSQL, SQLAlchemy |
| 测试 | Pytest |
| 本地服务 | Docker Compose |
| 告警 | Discord Webhooks |
| 地图数据 | world-atlas, topojson-client, d3-geo |
## 项目结构
```
backend/
app/
api/ Planned FastAPI route modules
core/ Feed ingestors, notifier, mitigation helpers
processing/ Scoring, enrichment, deduplication skeletons
repositories/ Planned SQLAlchemy query layer
services/ Planned business logic layer
tasks/ Planned ingestion job entry points
database.py SQLAlchemy engine/session setup
main.py FastAPI application
models.py ORM models
schemas.py Planned schema pseudocode
tests/ Pytest suite
BACKEND_IMPLEMENTATION_GUIDE.md
frontend/
src/ Nulltrace React frontend
assets/ Nulltrace logo/mark
package.json Frontend scripts and dependencies
```
## 运行测试
在项目根目录下运行:
```
PYTHONPATH=. python -m pytest
```
运行特定的测试文件:
```
PYTHONPATH=. python -m pytest backend/tests/test_routes.py -v
```
注意:某些路由测试描述了预期的最终后端行为。在您实现并注册计划的 API 路由之前,这些测试预计会失败。
## 负责任的使用
Nulltrace 被设计为一个防御性和教育性的项目。
该项目可用于:
- 通过网络安全用例学习后端工程
- 练习处理威胁情报数据
- 演示防御性告警和审查工作流程
- 作品集演示和 QA/测试练习
该项目不应作为成品安全产品展示,也不应在没有人工审查的情况下用于自动化拦截决策。
## 路线图
短期:
- 实现严重性评分。
- 实现富化和去重。
- 实现 repository 查询。
- 完成 `/api/threats/*`、`/api/map/*`、`/api/sa/*` 和 `/api/countries/*` 端点。
- 添加针对国家概况和路由端点的测试。
- 将前端数据适配器连接到真实的 API 响应。
中期:
- 添加 ingestion 任务运行器。
- 使用 Alembic 添加数据库迁移。
- 通过 FastAPI 进行 Discord webhook 测试。
- 为后端测试和前端构建添加 CI。
- 添加部署说明。
长期:
- 添加身份验证。
- 添加已保存的分析师笔记或审查状态。
- 添加真实的国家级路由数据。
- 添加可点击的国家多边形,而不仅仅是基于标记的演示命中区域。
- 添加生产环境安全的可观测性和错误处理。
标签:AV绕过, Docker, FastAPI, PostgreSQL, 仪表盘, 威胁情报, 安全, 安全防御评估, 开发者工具, 测试用例, 版权保护, 超时处理, 逆向工具