jurgenskenderi1/cyberevidence-ai
GitHub: jurgenskenderi1/cyberevidence-ai
一款本地优先的网络安全合规与事件响应 Copilot,帮助小型 IT 团队将基础设施数据转化为风险发现、修复计划与审计证据。
Stars: 0 | Forks: 0
# CyberEvidence AI
**本地优先的网络安全合规与事件 Copilot**
CyberEvidence AI 可帮助小型 IT 团队将基础设施数据转化为按优先级排序的风险发现、纠正措施以及可用于审计的证据。它将确定性的本地生命周期引擎与通过 OpenAI Responses API 接入的 GPT-5.6 Sol 相结合。当未配置 API key 或 API 调用不可用时,完整的演示将继续在本地模式下运行。
## MVP 功能
- 导入并验证六列格式的 CSV 基础设施文件。
- 将资产清单、分析和文档元数据存储在本地 SQLite 中。
- 标记 Ubuntu 16.04、VMware ESXi 6.0 和 Windows 10 的已知生命周期风险。
- 在完成配置后,使用 `gpt-5.6-sol` 优化结构化资产清单和事件评估。
- 生成 Markdown 格式的风险报告、变更请求、修复计划和审计回复。
- 为诸如 TCP/8291 暴露在公网等发现创建防御性事件记录。
- 保留确定性的本地回退机制,确保黑客松演示绝不依赖网络可用性。
## 使用 Docker 快速开始
```
cp .env.example .env
# 如果需要实时的 GPT-5.6 分析,请将 OPENAI_API_KEY 添加到 .env 中。
docker compose up --build
```
打开 `http://localhost:8000`。
在 PowerShell 中,使用以下命令创建环境文件:
```
Copy-Item .env.example .env
docker compose up --build
```
## 本地 Python 环境配置
推荐使用 Python 3.11 或更高版本。
```
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
Copy-Item .env.example .env
uvicorn app.main:app --reload
```
打开 `http://127.0.0.1:8000`。
即使不提供 key,应用程序也能立即工作。要启用 OpenAI 路径,请在 `.env` 中设置 `OPENAI_API_KEY` 并重启服务器。SDK 会在服务器端读取凭证;该凭证绝不会暴露给浏览器端的 JavaScript。
## 一分钟演示流程
1. 选择 **Load demo scenario**。
2. 查看导入的三个资产。
3. 选择 **Analyze risk**。
4. 展开某项发现,查看生命周期状态、修复措施和证据。
5. 在 Evidence Studio 中生成 **Remediation plan**。
6. 打开 **Incident copilot**,使用 MikroTik 示例并生成回复。
## CSV schema
```
hostname,ip_address,operating_system,version,role,owner
SRV-ODOO,192.168.1.10,Ubuntu,16.04,Application Server,IT
ESXI-01,192.168.1.20,VMware ESXi,6.0,Hypervisor,IT
PC-FIN-01,192.168.2.25,Windows,10,Finance Workstation,Finance
```
导入仅限于 2 MB 及 500 个资产以内的 UTF-8 编码 CSV 文件。新的导入将替换当前的资产清单。
## OpenAI 集成
后端使用 OpenAI Python SDK 和 Responses API:
- 模型:默认为 `gpt-5.6-sol`;可通过 `OPENAI_MODEL` 配置。
- 推理 (Reasoning):明确指定为 `medium`;可通过 `OPENAI_REASONING_EFFORT` 配置。
- 输出:严格匹配 Pydantic 模型的 JSON Schema。
- Prompts:简洁、具有防御性且以结果为导向,并附带严格的输出契约。
- 回退机制:只要 API key 或 API 响应不可用,就会使用经过验证的本地发现结果。
实时模型用于优化经过本地验证的基线,而不是随意捏造生命周期事实。在对外提交之前,供应商提供的日期必须经过授权审查人员的验证。
## API 接口
| 方法 | 接口 | 用途 |
|---|---|---|
| `GET` | `/api/health` | 引擎与本地工作区状态 |
| `GET` | `/api/inventory` | 列出当前资产 |
| `POST` | `/api/inventory/import` | 导入 CSV 文件 |
| `POST` | `/api/inventory/sample` | 加载安全的合成演示数据 |
| `POST` | `/api/analyze` | 创建资产清单风险评估 |
| `GET` | `/api/analysis/latest` | 恢复最新的资产清单评估 |
| `POST` | `/api/incidents/analyze` | 创建防御性事件响应 |
| `POST` | `/api/reports/generate` | 生成 Markdown 证据文档 |
| `GET` | `/api/reports` | 列出已生成的报告 |
交互式 OpenAPI 文档可在 `/docs` 访问。
## 测试
```
pip install -r requirements-dev.txt
pytest -q
```
测试套件涵盖了健康检查与回退模式、从资产清单到报告的完整流程、CSV 拒绝机制以及防御性事件场景。
## 项目结构
```
cyberevidence-ai/
├── app/ FastAPI, SQLite, AI and reporting services
├── static/ Responsive single-page interface
├── templates/ Jinja2 application shell
├── sample-data/ Synthetic infrastructure CSV
├── data/ Local SQLite database (ignored)
├── generated-reports/ Markdown exports (ignored)
├── tests/ End-to-end API tests
├── Dockerfile
├── docker-compose.yml
└── .env.example
```
## 安全与隐私姿态
- 使用合成的或经过明确授权的基础设施数据。
- 资产清单和报告默认存储在本地。
- 仅在配置了 `OPENAI_API_KEY` 时才会发起 OpenAI 请求。
- 密钥仅保留在服务器端,且 `.env` 已被排除在 Git 之外。
- 会验证 CSV 大小、行数、必填字段和 IP 地址。
- 报告下载被限制在配置好的报告目录内。
- 生成的内容用于辅助决策,而非证明某项控制措施已落实。
## 演示规则使用的生命周期参考
- [Ubuntu 16.04 生命周期](https://ubuntu.com/16-04)
- [VMware vSphere 6.0 常规支持结束](https://knowledge.broadcom.com/external/article/318892/end-of-general-support-for-vsphere-60.html)
- [Windows 10 支持结束](https://learn.microsoft.com/en-us/lifecycle/announcements/windows-10-end-of-support)
## 许可证
MIT
标签:DLL 劫持, Docker, Petitpotam, Python, 大语言模型, 安全防御评估, 库, 应急响应, 无后门, 本地优先, 网络安全合规, 请求拦截, 逆向工具