大模型下的深度强化学习的多智能体渗透测试(2)
PenGym 单智能体 izumi 当前现状报告:规则基线已完成,深度强化学习分支已建立但尚未并回主线
一、这篇文章要说明什么
这份记录不再描述“理想路线”,只说明当前仓库和当前进度的真实状态。
当前事实可以归纳为三点:
- PenGym 单智能体规则基线
izumi已完成并可运行。 - 仓库中已经存在深度强化学习训练与评估脚本,且已经产出 PPO / MaskablePPO 模型文件。
- 当前 DRL 分支还没有真正并回
run.py -a izumi主线,因此izumi目前仍然是规则型 agent,而不是学习型 agent。
因此,现阶段最准确的判断是:
- 规则型单智能体阶段:已完成
- 深度强化学习单智能体阶段:已开始,已建立独立实验线,但尚未完成与
izumi主线合并
二、实验环境
1. 宿主与虚拟机
- 宿主机:Windows
- 虚拟机:Ubuntu
- 虚拟化软件:VMware
2. 本阶段实际使用的软件栈
- PenGym
- NASim simulation
- Python 虚拟环境
venv - 自定义规则型单智能体:
izumi - Stable-Baselines3 PPO
- SB3-Contrib MaskablePPO
3. 当前尚未并入主线的内容
以下内容目前还不在 run.py -a izumi 主线里:
- LSTM / RecurrentPPO
- LangGraph
- 多智能体协同
- LLM 语义通信
- 零信任 / 半信任通信机制
- 真实网络 / 蜜罐执行后端
也就是说,当前工作的真实定位仍然是:
先把 PenGym 中的单智能体基线和单智能体 DRL 实验线分别建立起来。
三、当前项目结构的真实情况
当前仓库里实际存在三条线:
1. run.py 主线
这是当前最稳定、最可复现的一条线,直接对应 PenGym 的 agent 入口。
目前已确认存在:
deterministicrandomizumi
其中:
deterministic:官方固定动作序列基线random:官方随机动作基线izumi:自定义规则型单智能体基线
2. PPO / MaskablePPO 实验线
仓库中已经存在以下 DRL 相关脚本:
prototype/rl/train_ppo.pyprototype/rl/eval_ppo.pyprototype/rl/train_maskable_ppo.pyprototype/rl/eval_maskable_ppo.py
这条线的特点是:
- 不走
run.py -a izumi - 直接在
prototype/rl/下训练与评估 - 已经生成模型文件
3. BC / 模型评估实验线
还存在一条独立评估脚本线:
prototype/rl/eval_bc_env.py
这条线用于加载模型并在 PenGym / NASim 环境中做动作推理,但它也不是 run.py 主线中的 izumi。
四、izumi 当前到底是什么
izumi 目前并不是 PPO agent,也不是 LSTM agent。
它当前的准确定位是:
规则型单智能体 baseline
也就是说,它当前依赖的是:
build_izumi_path()生成规则路径run_deterministic_agent(env, izumi_path)负责执行动作
从 run.py 当前结构可以确认:
1 | izumi_path = build_izumi_path() |
这说明当前 izumi 的本质仍然是:
- 预先写好动作路径
- 由稳定的 deterministic 执行器顺序执行
因此,当前 izumi 是规则 agent,不是学习 agent。
五、规则基线 izumi 已完成到哪一步
1. 已完成的核心函数
当前 run.py 中已经有:
run_deterministic_agent(env, deterministic_path)build_izumi_path()
2. build_izumi_path() 当前实际逻辑
当前 izumi 的规则路径是:
- 先打
HOST5_1 - 再打
HOST2_0 - 再打
HOST3_1 - 最后打
HOST6_1
对每个目标的动作顺序是:
OS_SCANSERVICE_SCAN- 根据规则选择 exploit
- 部分节点执行
SUBNET_SCAN
对应 exploit 规则为:
HOST5_1 -> EXPLOIT_HTTPHOST2_0 -> EXPLOIT_SMTPHOST3_1 -> EXPLOIT_HTTPHOST6_1 -> EXPLOIT_SAMBA
3. 当前 izumi 的实际运行结果
通过这条规则路径,izumi 已成功实现:
HOST5_1 -> e_http成功,拿到USERHOST2_0 -> e_smtp成功,拿到ROOTHOST3_1 -> e_http成功,拿到USERHOST6_1 -> e_samba成功,拿到ROOT
因此,当前 izumi 已具备:
- OS 扫描
- 服务扫描
- 子网扫描
- 根据规则选 exploit
- 获取
USER / ROOT - 完成一条有效攻击路径
4. 当前状态的准确表述
当前 izumi 已经是一个可运行、可复现、可演示的规则型单智能体基线。
但它还不是:
- 动态决策 agent
- DRL 单智能体
- 多智能体 worker
- LLM 驱动 agent
六、深度强化学习这条线当前做到哪里了
1. 当前仓库中已有的 DRL 脚本
PPO 训练
1 | prototype/rl/train_ppo.py |
该脚本的实际作用是:
- 读取
prototype/configs/system_config.yaml - 创建 PenGym / NASim 环境
- 使用
stable_baselines3.PPO(policy="MlpPolicy") - 在环境中训练
20000步 - 保存模型到
prototype/models/
PPO 评估
1 | prototype/rl/eval_ppo.py |
该脚本会:
- 加载训练好的 PPO 模型
- 运行环境推理
- 打印
action_id / action / reward
MaskablePPO 训练
1 | prototype/rl/train_maskable_ppo.py |
该脚本相比普通 PPO,多了一层:
1 | env = ActionMasker(env, mask_fn) |
其中 mask_fn(env) 调用了:
1 | env.get_action_mask() |
这意味着该训练线支持:
- 屏蔽非法动作
- 减少无效 exploit / scan
- 更贴合渗透任务的动作空间约束
MaskablePPO 评估
1 | prototype/rl/eval_maskable_ppo.py |
用于加载 MaskablePPO 模型并做推理评估。
七、当前已经生成的模型文件
仓库中已确认存在以下模型文件:
prototype/models/ppo_izumi_smoke.zipprototype/models/ppo_izumi_tiny_20k.zipprototype/models/ppo_izumi_20k.zipprototype/models/maskable_ppo_izumi_tiny_20k.zip
这说明当前 DRL 线不是“只有脚本,没有结果”,而是已经至少完成了:
- 模型训练脚本可运行
- 模型文件已被保存
- PPO / MaskablePPO 训练至少执行过一轮
因此,当前 DRL 线的真实状态应描述为:
PPO / MaskablePPO 的独立实验线已建立,并已产出模型文件。
八、当前 DRL 线没有完成的部分
虽然已经有训练脚本、评估脚本和模型文件,但当前还存在一个关键问题:
izumi 主线和 DRL 分支没有真正合并
也就是说,当前事实是:
已完成
run.py -a izumi可以运行规则型izumiprototype/rl/train_ppo.py可以训练 PPOprototype/rl/train_maskable_ppo.py可以训练 MaskablePPOprototype/rl/eval_ppo.py可以做 PPO 评估prototype/rl/eval_maskable_ppo.py可以做 MaskablePPO 评估
尚未完成
- 没有把
run.py -a izumi改成直接调用 PPO / MaskablePPO policy - 当前
izumi还没有真正从规则 agent 替换成 DRL agent - 当前 DRL 还属于独立实验线,而不是主线 agent 身份
因此,现在不能说:
izumi已经变成深度强化学习智能体
更准确的说法是:
izumi的 DRL 替代方案已经开始构建,且已有训练和评估脚本,但当前主线中的izumi仍然是规则型 agent。
九、当前完成情况总结
到目前为止,已经真实完成了以下内容:
1. 环境层
- Ubuntu 虚拟机可用
- PenGym 已部署完成
- NASim simulation 模式可运行
- 配置文件路径已修正
2. 基线层
- 官方
deterministic可运行 - 官方
random可运行 - 自定义规则型单智能体
izumi可运行
3. DRL 层
- PPO 训练脚本已存在并可运行
- PPO 评估脚本已存在并可运行
- MaskablePPO 训练脚本已存在并可运行
- MaskablePPO 评估脚本已存在并可运行
- 已产出若干 PPO / MaskablePPO 模型文件
4. 当前最准确的阶段判断
当前项目已经进入:
规则型单智能体已完成,深度强化学习单智能体实验线已建立,但尚未完成与
izumi主线融合。
十、现场复现怎么做
1. 规则基线复现
1 | cd ~/lab/pengym_lab/PenGym-main |
2. PPO 训练与评估复现
1 | cd ~/lab/pengym_lab/PenGym-main |
3. MaskablePPO 训练与评估复现
1 | cd ~/lab/pengym_lab/PenGym-main |
4. 查看当前已有模型
1 | cd ~/lab/pengym_lab/PenGym-main |
十一、这一阶段到底完成到了哪一步
如果现在要准确描述当前阶段,最合适的表述是:
已完成 PenGym 仿真环境部署,跑通官方
deterministic与random基线,并实现自定义规则型单智能体izumi。同时,仓库中已建立基于 PPO 与 MaskablePPO 的独立深度强化学习实验线,包含训练脚本、评估脚本与已保存模型文件。但当前izumi主线尚未替换为 DRL policy,因此主线 agent 仍为规则型实现。
这个表述是当前最准确的。
十二、下一步最合理的推进方向
当前最合理的下一步,不是继续扩展规则路径,而是做一件明确的事:
把 izumi 从规则 agent 正式切换为 DRL agent
也就是:
- 保留旧规则版
izumi作为对照基线 - 选定当前优先使用的 DRL 线(优先建议
MaskablePPO) - 将
run.py -a izumi的执行逻辑从:
1 | build_izumi_path() + run_deterministic_agent(...) |
切换到:
1 | load policy model + model.predict(...) + env.step(...) |
- 之后再评估是否需要引入:
- LSTM / RecurrentPPO
- 多智能体协同
- LangGraph
- 语义通信
- 真实网络 / 蜜罐后端
十三、未来展望
在当前基础上,后续可以自然扩展为以下路线:
1. 规则型单智能体
已完成。
2. 深度强化学习单智能体
已开始,当前处于独立实验线阶段。
3. DRL 版 izumi
下一步应完成与主线 agent 的真正融合。
4. 多智能体协同
在单智能体 DRL 稳定后再拆分为多个 worker。
5. LangGraph / LLM 编排层
作为上层规划与通信解释器引入,而不是替代底层策略网络。
6. 真实网络 / 蜜罐迁移
在仿真环境中完成策略验证后,再逐步替换环境 backend。
十四、总结
当前最重要的成果不是“概念已经全部提出”,而是:
- PenGym 环境已经跑通
- 单智能体规则基线已经建立
- 自定义 agent
izumi已经能够执行有效攻击路径 - PPO / MaskablePPO 实验线已经建立
- 已经有 DRL 训练脚本、评估脚本和模型文件
当前最关键的现实情况是:
规则型
izumi已完成,DRL 分支已存在,但二者尚未正式合并。
这意味着当前项目已经不再停留在“空想深度强化学习渗透测试”,而是已经有:
- 可运行规则基线
- 可运行 DRL 实验脚本
- 可保存的训练结果
接下来的关键节点,就是把现有 DRL 实验线真正落到 izumi 主线上。
