# uncertain-attack-RL **Repository Path**: li-zhengyang2023/uncertain-attack-RL ## Basic Information - **Project Name**: uncertain-attack-RL - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-09 - **Last Updated**: 2025-07-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 基于强化学习的网络攻击智能体设计 #### 背景 在网络安全领域,攻击者常利用网络中的不确定性进行攻击。本次作业要求设计一个基于强化学习的网络攻击智能体,利用**不确定性计算(通过决策熵)**辅助决策,形成完整的攻击行为链条。智能体的目标是在自适应网络中,通过一系列攻击步骤,最终达成攻击目标。 #### 目标 1. **设计强化学习智能体**:利用不确定性计算(如决策熵)辅助智能体决策。 2. **生成攻击链**:智能体应生成一系列攻击步骤,形成完整的攻击链。 3. **解决决策问题**:当前智能体存在明显问,如高信心攻击但成功率为0,或直接攻击防守严密的AD节点,需分析并解决这些问题。 #### 架构 1. **环境**:自适应网络,包含多个节点(如Web、DB、AD等)和攻击类型(如SQL注入、钓鱼、后门等)。 2. **智能体**:基于强化学习的攻击智能体,利用不确定性计算(决策熵)进行决策。 3. **攻击链**:智能体生成的一系列攻击步骤,包含以下信息: - **Step**:攻击步骤编号。 - **Start**:攻击起始节点。 - **Target**:攻击目标节点。 - **Attack Type**:攻击类型。 - **Confidence**:智能体对攻击成功的信心。 - **Prob**:攻击成功的概率。 - **State**:攻击是否可行。 #### 问题 当前智能体的决策存在明显问题,如下表所示: | Step | Start | Target | Attack Type | Confidence | Prob | State | | ---- | ----- | ------ | ----------- | ------------------ | ---- | ----- | | 1 | Web | AD | phishing | 0.9999995231628418 | 0.0 | 可行 | 1. **高信心但成功率为0**:智能体对攻击成功的信心接近1,但攻击成功概率为0,表明智能体的不确定性计算存在问题,或环境反馈机制未正确反映攻击结果。 2. **攻击链断裂**:智能体未形成完整攻击链,而是直接攻击防守最严密的AD节点,表明智能体的策略可能未考虑攻击的逐步渗透,或奖励函数设计不合理。 3. **目标选择不当**:AD节点通常是网络中防守最严密的节点,智能体直接攻击AD节点,表明策略可能未考虑节点的防守强度。 #### 任务 1. **问题分析**:分析当前智能体决策问题的根本原因,可能涉及以下方面: - **不确定性计算**:决策熵的计算是否正确?是否合理反映了攻击的不确定性? - **奖励函数设计**:奖励函数是否鼓励逐步渗透?是否考虑了节点的防守强度? - **环境反馈机制**:环境是否正确反馈了攻击结果?是否提供了足够的决策信息? 2. **改进设计**:基于问题分析,改进智能体的设计,包括: - **不确定性计算**:重新设计决策熵的计算方法,确保其合理反映攻击的不确定性。 - **攻击策略**:调整智能体的策略,鼓励逐步渗透,避免直接攻击防守严密的节点。 - **奖励函数**:重新设计奖励函数,考虑攻击步骤的合理性和节点的防守强度。 3. **实验验证**:在自适应网络环境中测试改进后的智能体,生成合理的攻击链,并验证其有效性。 #### 示例输出 改进后的智能体应生成如下合理的攻击链: | Step | Start | Target | Attack Type | Confidence | Prob | State | | ---- | ----- | ------ | ------------- | ---------- | ---- | ----- | | 1 | Web | DB | sql_injection | 0.85 | 0.9 | 可行 | | 2 | DB | AD | backdoor | 0.82 | 0.8 | 可行 | #### 提交规则 gitee项目地址:https://gitee.com/li-zhengyang2023/uncertain-attack-RL 建立自己的分支,名称是学号,然后在自己的分支内改进代码。可以自由添加文件或者数据 #### 思路 1. 修改adaptive_environment - 修改防御机制:环境遇到网络攻击,会进行对应的防御措施。可以修改这些措施,使得其能与攻击者更好地互动 - 增加网络的复杂性:添加其他节点模拟更现实的网络环境,可能会得到一个攻击行为链 2. 修改攻击者智能体 - 修改攻击者的决策机制:攻击者通过攻击成功的可能性与决策熵共同决定下一步攻击 - 比如,如果决策熵过大,说明攻击者没有把握,可能会随机采取一种形式进行网络攻击(见attack_agent) - 这个决策方式是否有其他替代方案? - 修改攻击者强化学习网络 - 示例: - ``` # 策略网络 self.policy_net = nn.Sequential( nn.Linear(64, 128), nn.ReLU(), nn.Dropout(0.2), nn.Linear(128, action_dim) ) ```