目标用户: 比赛参与者、安全研究员、比赛组织者。
用例描述: 用户通过平台创建并部署一个 AI Agent 驱动的攻防场景,然后利用 AI Agent 对靶机进行攻击和防御,并监控整个过程和结果。
场景列表页面用例
进入场景(Create Scenario)
- 前置条件: 用户已登录系统。
- 操作步骤:
- 用户点击导航栏,进入“AI Agent 攻防场景模式”。
- 预期结果:
- 如果至少有一个场景:Agent攻防场景模式页面渲染出各个已经创建好的场景
- 如果没有场景:提示没有场景被创建,引导用户创建场景
场景创建(Create Scenario)
- 前置条件: 用户已登录系统,并进入“AI Agent 攻防场景模式”页面。
- 操作步骤:
- 用户点击页面顶部或左侧的“添加场景”按钮。
- 系统弹出“创建场景”表单页面。
- 用户在表单中填写:
- 场景名称: (文本输入框,例如:“WebLogic CVE-2017-10271 渗透测试”)
- 场景说明: (Markdown 编辑器,用于详细描述场景背景、漏洞类型、技术细节、网络拓扑等信息)
- 用户上传或者选择以下三类压缩包文件:
- 攻击容器包(选择): (后端已经配置好的
hacker.zip或hacker.tar.gz,包含 Dockerfile、脚本和工具) - 防御容器包(选择): (后端已经配置好的
defender.zip或defender.tar.gz,包含 Dockerfile、脚本和工具) - 靶机环境包: (用户上传的
target.zip或target.tar.gz,包含docker-compose.yml及相关构建上下文)
- 攻击容器包(选择): (后端已经配置好的
- 用户点击“创建场景”按钮。
- 预期结果:
- 系统提示“场景创建成功(pending),正在构建中(building)”。
- 页面自动跳转到AI Agent 攻防场景模式主页,主页显示用户创建的场景卡片。
- 场景卡片状态栏显示为“构建中(building)”。
- 如果创建成功,场景状态栏显示构建成功(stopped)
- 如果构建失败,状态变为“错误(error)”,弹出创建失败提示框,引导用户可以点击“详细信息”来进行修改场景配置,重新构建。
场景删除
- 前置条件: 用户已登录系统,进入“AI Agent 攻防场景模式”页面,且页面至少有一个场景创建。
- 操作步骤:
- 用户点击要删除的场景的”删除”按钮。
- 系统弹出“是否删除场景”的提示表单页面。
- 用户点击确认/取消
- 预期结果:
- 如果用户点击确认,该场景被删除,主页面的该场景卡片消失
- 如果用户点击取消,该场景不会被删除,主页面的该场景卡片不消失
场景启动(Start Scenario)
- 前置条件: 用户已登录系统,在“AI Agent 攻防场景模式”页面,场景已成功构建完成,状态为“已停止/已构建(stopped)且未启动。
- 操作步骤:
- 在“AI Agent 攻防场景模式”列表页,用户找到目标场景卡片。
- 用户点击场景卡片上的“启动”按钮。
- 预期结果:
- 系统提示“场景启动中”。
- 场景状态更新为“启动中(starting)” 。
- 如果启动成功,场景状态更新为“运行中(running)” 。
- 如果启动失败,场景状态更新为“错误(error),引导用户修改场景所需附件和配置” 。
场景配置修改
- 前置条件: 用户已登录系统,在“AI Agent 攻防场景模式”列表页, 场景已成功构建完成,状态为“已停止/已构建(stopped)。
- 操作步骤:
- 如果场景状态为”stopped“ ,用户点击”详细信息“,可弹出场景修改表单。
- 用户修改场景配置,点击确认,提交修改信息
- 预期结果:
- 如果用户修改的是附件信息(包含得有例如Dockerfile的附件):回到场景模式主页面,场景状态提示重新构建中(building)
- 如果用户修改的是场景配置信息(场景名字、场景介绍):回到场景模式主页面,场景状态提示(stopped),并修改好场景的文字配置信息。
场景错误重构
- 前置条件: 用户已登录系统,在“AI Agent 攻防场景模式”列表页, 目标场景状态为错误(error)。
- 操作步骤:
- 用户点击该错误场景的“详细信息”按钮,修改好该场景配置,点击确定
- 预期结果:
- 系统提示正在重新构建中(building)”。
- 页面自动跳转到AI Agent 攻防场景模式主页,主页显示用户正在重新构建的场景卡片。
- 场景卡片状态栏显示为“构建中(building)”。
- 如果创建成功,场景状态栏显示构建成功(stopped)
- 如果构建失败,状态变为“错误(error)”,弹出创建失败提示框,引导用户可以点击“详细信息”来进行修改场景配置,重新构建。
进入场景详情页面用例
利用 ChatBot 进行攻防操作(Attack & Defense with AI Agent)
- 前置条件: 场景状态为“运行中(running)”。
- 操作步骤:
- 用户进入该“运行中”场景的“场景详情页”。
- 页面上显示一个 ChatBot 交互界面(或连接到 AI Client 的入口)。
- 攻击阶段: 用户切换到attacker的上下文对话窗口,通过 ChatBot 输入指令,指示 AI Agent 驱动 Attack Agent 对靶机进行攻击。例如,用户可以输入:“请利用 CVE-2017-10271 漏洞对靶机进行渗透测试。”
- 防御阶段: 用户切换到defender的上下文对话窗口,通过 ChatBot 输入指令,指示 AI Agent 驱动 Defender Agent 对靶机进行防御。例如,用户可以输入:“请部署防御策略,阻止攻击。”
- 预期结果:
- attacker ChatBot 实时显示 LLM 通过攻击容器的MCP服务器,调用了哪些知识库,发现靶机的哪些问题,写了哪些脚本,调用了哪些工具,如何攻击靶机等等。
- defender ChatBot 实时显示 LLM 通过防御容器的MCP服务器,访问靶场,发现了哪些漏洞,调用哪些知识库,如何修补这些漏洞等等。
- 攻防容器的日志区域会实时滚动显示攻击和防御过程中容器内部的日志输出。
- 靶机容器的服务端口在攻击或防御过程中可能会有状态变化或异常,可以查看靶机容器的日志输出
- 整个攻防过程会在后续的“战斗日志”中记录。
**查看“战斗日志”
- 前置条件: 场景已运行,并进行了攻防操作。
- 操作步骤:
- 在“场景详情页”中,用户找到“主日志面板”区域。
- 用户可以查看整场攻防推演的高层次日志,这些日志通常是攻防 AI Agent 决策、各个容器间的日志报告记录。
- 用户可以点击各个容器的按钮,以此来过滤只显示某个容器或者Agent决策的日志信息
- 用户也可以进行搜索关键词准确定位包含关键词的日志
- 预期结果:
- 主日志区域显示相应的日志信息,支持实时滚动、复制等操作。
- 日志可能会有颜色区分或高亮显示,以便用户快速识别关键信息或错误。
查看容器资源使用情况(View Container Resources)
- 前置条件: 场景正在运行中。
- 操作步骤:
- 在“场景详情页”中,用户找到“资源监控”区域。
- 用户查看该区域展示的图表或数据。
- 预期结果:
- 页面实时或定时更新显示攻击容器、防御容器和靶机 DinD 容器的 CPU 使用率、内存占用、网络 I/O 等资源使用情况。
进入各个容器(可选用户调试用例)
- 前置条件: 场景正在运行中。
- 操作步骤:
- 在“场景详情页”中,用户找到“端口信息”区域,获取攻击容器、防御容器、靶机DinD容器的 SSH 映射端口 。
- 用户点击“快速连接指引”提供的 SSH 连接命令模板 。
- 用户可以点击攻击容器/防御容器/靶机容器下方的“进入终端”按钮,启动一个新开窗口的网页版终端
- 预期结果:
- 如果用户通过 SSH 命令行连接,用户可以通过本地终端成功连接到容器的 SSH 服务。
- 如果通过网页版终端,新开窗口的终端窗口成功启动,用户可以在新开的浏览器窗口中直接与容器的 Linux 环境进行命令行交互。