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绕过, 网络安全, 网络安全教育, 网络映射, 网络调试, 自动化, 请求拦截, 逆向工具, 隐私保护