Prajwal-031/cyber-defense-openenv.

GitHub: Prajwal-031/cyber-defense-openenv.

一个基于OpenEnv规范的仿真环境,旨在通过多步骤攻防场景和奖励机制训练AI代理进行网络安全事件响应。

Stars: 0 | Forks: 0

## 标题:Cyber Incident Response OpenEnv emoji: 🛡️ colorFrom: blue colorTo: purple sdk: docker app_file: server.py pinned: false # Cyber Incident Response OpenEnv 一个全面的仿真环境,用于在网络安全事件响应场景中训练 AI 代理作为蓝队防御者。 ## 功能 - **实时仿真**:具有多个难度级别(简单、中等、困难)的交互式网络安全事件响应环境 - **网络可视化**:显示主机状态、警报和感染传播的实时仪表板 - **防御操作**:调查、隔离和修补主机以遏制网络威胁 - **API 驱动**:RESTful API,支持编程访问和 AI 代理训练 - **基于规则的回退**:当 API 配额超出时,可在没有 LLM 的情况下工作 ## 使用方法 1. **开始游戏**:点击“Start Game”以初始化新场景 2. **选择难度**:在简单、中等或困难任务之间进行选择 3. **监控网络**:观察实时网络状态和警报 4. **执行操作**:使用防御操作来调查和遏制威胁 5. **跟踪进度**:监控您的分数和步数 ## API 端点 - `GET /` - 主仪表板 - `POST /api/reset` - 开始新游戏 - `POST /api/step` - 执行防御者操作 - `GET /api/state` - 获取当前游戏状态 - `GET /api/tasks` - 列出可用任务 - `GET /api/health` - 健康检查 ## 技术细节 - **后端**:使用 Pydantic 验证的 FastAPI - **前端**:响应式 HTML/CSS/JavaScript 仪表板 - **环境**:自定义网络安全事件仿真 - **部署**:Docker 容器化以实现可移植性 - **测试**:18 项全面的自动化测试 ## 开发 本项目包括: - 完整的测试套件(18 个测试,100% 通过率) - 全面的文档(9 个指南) - 生产就绪的 Docker 配置 - 全程的类型提示和错误处理 ## 许可证 MIT License - 详情请参阅 LICENSE 文件 *Built with FastAPI, deployed on Hugging Face Spaces* ### 中等任务 * **目标**:停止恶意软件横向移动。 * **`max_steps`**:20 * **场景**:勒索软件 ### 困难任务 * **目标**:保护关键服务器不被攻陷。 * **`max_steps`**:30 * **场景**:凭据窃取 ## 奖励说明 奖励函数旨在引导代理行为朝着有效的事件响应方向发展。对于主动和被动的防御操作给予正向奖励,而对于感染传播和系统被攻陷则进行惩罚。 | 事件 | 奖励值 | 描述 | | :-------------------- | :----------- | :--------------------------------------------------------------- | | 调查威胁 | `+0.1` | 成功调查受怀疑主机。 | | 遏制感染 | `+0.3` | 隔离受感染主机。 | | 修补漏洞 | `+0.3` | 修补干净主机。 | | 系统恢复 | `+0.4` | 修补被隔离主机。 | | 感染传播 | `-0.2` | 恶意软件传播到新主机的每个实例的惩罚。 | | 系统被攻陷 | `-1.0` | 关键服务器(例如 `db_server`)被攻陷的严重惩罚。 | 最终回合分数在 `0.0`(失败)和 `1.0`(完美防御)之间进行归一化。 ## 设置说明 要在本地设置并运行 Cyber Incident Response OpenEnv 或将其部署到 Hugging Face Spaces,请按照以下步骤操作: 1. **克隆仓库**(或按照指定创建文件): git clone cd cyber-incident-openenv 2. **安装依赖**: 确保您已安装 Python 3.8+ 和 `pip`。然后安装所需的包: pip install -r requirements.txt 3. **环境变量**: 在根目录中创建 `.env` 文件或设置以下环境变量: * `API_BASE_URL`:(可选)OpenAI 兼容 API 的基础 URL。默认为 `https://api.openai.com/v1`。 * `MODEL_NAME`:(可选)用于代理操作的 LLM 模型名称。默认为 `gpt-4.1-mini`。 * `HF_TOKEN`:您的 Hugging Face API 令牌或 OpenAI API 密钥,进行 LLM 调用所必需。 * `LOCAL_IMAGE_NAME`:(可选)用于 Docker 镜像命名。 示例 `.env` 文件: API_BASE_URL=https://api.openai.com/v1 MODEL_NAME=gpt-4.1-mini HF_TOKEN=sk-YOUR_OPENAI_API_KEY 4. **运行 FastAPI 服务器**(用于 Hugging Face Spaces 部署): uvicorn server:app --host 0.0.0.0 --port 7860 这将启动可从 `http://0.0.0.0:7860` 访问的 API 服务器。 5. **运行本地验证**: 为确保环境设置正确并通过基本检查: python validate_local.py 6. **运行基线推理**: 执行 `inference.py` 脚本,使基线 AI 代理针对定义的任务运行并评估其性能: python inference.py ## 基线基准测试结果 `inference.py` 脚本为每个任务(简单、中等、困难)运行多个回合,并计算关键指标。每个任务的预期输出格式为: ``` [START] task=easy [STEP] step=0 reward=0.2 ... [END] task=easy score=0.85 ``` 运行所有任务后,脚本将提供每个任务的平均分数,以及成功率、被攻陷率和平均步数等其他指标(尽管这些指标在当前的 MVP 中没有明确记录,但可以从 `info` 字典中推导出来)。 ### 示例基准测试输出(说明性) ``` [START] task=easy [STEP] step=0 reward=0.10 [STEP] step=1 reward=0.30 [STEP] step=2 reward=0.00 [STEP] step=3 reward=0.40 [END] task=easy score=0.75 [START] task=medium [STEP] step=0 reward=0.10 [STEP] step=1 reward=-0.20 [STEP] step=2 reward=0.30 [END] task=medium score=0.50 [START] task=hard [STEP] step=0 reward=0.10 [STEP] step=1 reward=-1.00 [END] task=hard score=0.00 ``` 这些分数代表了基线 LLM 代理在每个任务 5 个回合中的平均性能。进一步微调 LLM 提示词或代理逻辑可以改善这些结果。 ## 参考文献 [1] OpenAI API Documentation: [https://platform.openai.com/docs/api-reference](https://platform.openai.com/docs/api-reference) [2] FastAPI Documentation: [https://fastapi.tiangolo.com/](https://fastapi.tiangolo.com/) [3] Pydantic Documentation: [https://pydantic-docs.helpmanual.io/](https://pydantic-docs.helpmanual.io/) [4] Hugging Face Spaces: [https://huggingface.co/docs/hub/spaces](https://huggingface.co/docs/hub/spaces)
标签:AV绕过, Docker, FastAPI, LLM, Mutation, OpenEnv, Python, RESTful API, Unmanaged PE, 主机隔离, 人工智能, 仿真训练, 可视化, 后端开发, 大模型, 安全运营中心, 安全防御评估, 强化学习, 提示词优化, 无后门, 模拟环境, 漏洞修补, 用户模式Hook绕过, 网络安全, 网络安全教育, 网络映射, 网络调试, 自动化, 请求拦截, 逆向工具, 隐私保护