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, 大语言模型, 安全防御评估, 库, 应急响应, 无后门, 本地优先, 网络安全合规, 请求拦截, 逆向工具