一句话:AI 不会替你坐牢,Agent 也不会替你解释"为什么打到了隔壁单位的服务器"。

一、为什么这一篇不能跳过

前面 18 篇讲的全是"怎么用 AI 挖洞"。但如果你把 Agent 放开跑,可能遇到:

  • 打到了白名单外的目标(AI 幻觉生成 IP)
  • 把生产系统打挂(无速率限制的 Fuzz)
  • 把客户源码贴给了公有云 LLM(数据泄露)
  • 复现 POC 时植入了后门(公开 POC 投毒)
  • dump 了大量真实用户数据(超出测试范围)

这些事故的责任,全部由你承担。

二、法律边界(中国法域)

法律 相关条款 风险
《刑法》第 285 条 非法侵入计算机信息系统罪 3 年以下;情节特别严重 3-7 年
《刑法》第 286 条 破坏计算机信息系统罪 最高 5 年以上
《网络安全法》 第 27 条 禁止非法侵入、干扰
《数据安全法》 数据处理合规 数据泄露责任
《个人信息保护法》 个人信息处理 违规处理 PII

关键:AI 生成的行为也是"你的行为"。 Agent 自己打出去的包,法律上视为你打的。

三、授权是唯一前提

3.1 授权书必须包含

1. 授权方(甲方全称、盖章)
2. 被授权方(乙方全称)
3. 测试目标清单(域名/IP/系统,必须明确列明)
4. 测试时间窗口(起止时间)
5. 测试方式(黑盒/灰盒/白盒)
6. 允许的风险等级(是否允许 DoS、是否允许社工)
7. 数据处理约定(发现的数据如何处置)
8. 免责与责任划分
9. 紧急联系人(出现问题时立即停止的联系方式)

3.2 目标清单要精确

❌ 错误:测试 *.example.com
✅ 正确:测试 api.example.com、www.example.com(不含 *.example.com)

原因:*.example.com 可能包含第三方托管系统,
     打到那里就是未授权。

AI 会"自动扩展"目标(它觉得相关就顺手测了),所以必须在系统层做白名单硬隔离。

四、AI 特有的风险与应对

4.1 幻觉导致越界

# 危险:让 AI 自己决定扫什么
target = llm.decide("目标是什么")

# 安全:AI 只能在给定集合内选择
ALLOWED_TARGETS = ["10.0.0.5", "10.0.0.6"]  # 硬编码,AI 无法修改
if target not in ALLOWED_TARGETS:
    raise PermissionError("目标不在授权范围")

4.2 速率失控

# 必须的限流
import time
from ratelimit import limits, sleep_and_retry

@sleep_and_retry
@limits(calls=10, period=1)   # 每秒最多 10 次
def safe_request(url):
    return requests.get(url, timeout=10)

并设置全局并发上限、总请求数上限。

4.3 数据外泄

❌ 禁止:把客户源码、内网 IP、真实凭据、用户数据
        发送给公有云 LLM

✅ 方案:
   - 使用本地部署模型(Qwen/DeepSeek 本地版)
   - 或私有化 API(数据不出企业)
   - 或对输入做脱敏(替换真实域名/IP/凭据)

这条最容易被忽视,也最容易酿成大事。

4.4 第三方 POC 投毒

# 必须做的检查
运行任何公开 POC 前,让 AI 审计:
1. 是否有向陌生地址发数据的行为
2. 是否写入了非预期文件
3. 是否启动了反弹 shell
4. 是否有混淆/编码的可疑代码
5. 依赖是否有问题

# 且必须在隔离环境(快照可回滚的虚拟机)运行

五、AI Agent 的安全设计清单

- [ ] 目标白名单(硬编码,非 AI 可控)
- [ ] 工具白名单(不暴露破坏性工具)
- [ ] 速率限制(每秒请求上限)
- [ ] 并发限制(同时连接数)
- [ ] 预算限制(最大工具调用次数 / token 上限)
- [ ] 超时限制(单次工具执行上限)
- [ ] 高危操作人工确认(exploit / write / delete)
- [ ] 全量日志(每步可审计)
- [ ] 沙箱隔离(Docker / 独立网络)
- [ ] 数据脱敏(发送给 LLM 前)
- [ ] 紧急停止开关
- [ ] 异常自动熔断(如检测到目标响应异常)

六、伦理问题

6.1 发现的漏洞怎么处理

场景 正确做法
授权范围内 按报告流程交付,不扩散
授权范围外偶然发现 停止测试,通过正规渠道报告(SRC/CNVD)
发现严重 0day 联系厂商,遵循负责任披露
发现涉及国家安全 报告相关部门

6.2 不做的三件事

  1. 不扩大测试范围:发现一个入口,不代表可以顺着打下去(除非授权允许)
  2. 不保留真实数据:证明危害后立即删除,报告中脱敏
  3. 不公开未授权细节:客户信息、漏洞细节严格保密

6.3 AI 的"自动扩大化"倾向

这是 AI 渗透最危险的地方。你让它测 A,它发现 B 相关,顺手测了 B,又发现 C。

必须在 Prompt 里明确禁止:

# 硬性约束
1. 只测试明确列出的目标,发现相关目标时:
   记录但不测试,在报告中标注"建议后续评估"
2. 不得自行扩大测试范围
3. 不得使用任何未列在工具白名单中的手段
4. 每次工具调用前,校验目标是否在白名单内

七、企业落地 AI 渗透的组织保障

1. 制度层
   - 制定"AI 辅助测试管理规范"
   - 明确可用模型(白名单)、可用数据范围
   - 明确审批流程

2. 技术层
   - 私有化部署 LLM 或使用企业级 API
   - Agent 运行在隔离网络
   - 全链路日志审计

3. 人员层
   - 测试人员对 AI 结果负全责
   - 定期培训合规要求
   - 建立事故响应机制

4. 流程层
   - AI 产出必须人工复核
   - 高危操作双人确认
   - 定期审计 Agent 行为日志

八、事故应对预案

如果 Agent 打出了问题:

1. 立即停止(kill switch)
2. 保全日志(不要删任何东西)
3. 评估影响(打到了什么、造成什么后果)
4. 通知客户方应急联系人
5. 记录事件全貌
6. 复盘改进

关键:永远保留 kill switch,且它不能依赖 AI。

九、一个自查清单

在把 AI 用于任何真实目标前,逐条确认:

- [ ] 有书面授权,且目标清单精确到具体域名/IP
- [ ] 授权范围覆盖了我准备测的所有内容
- [ ] Agent 的目标白名单已硬编码,且与授权一致
- [ ] 速率/并发/时长限制已设置
- [ ] 不会把敏感数据发给外部 LLM
- [ ] 所有 POC 已在靶场验证且经安全审计
- [ ] 有 kill switch,且我随时可用
- [ ] 日志完整,可回溯每一步
- [ ] 报告中的敏感信息已脱敏
- [ ] 测试数据已按约定处置
- [ ] 紧急联系人电话已存好

这 11 条全打勾,才有资格开始。

十、小结

技术能力可以学,合规意识是底线。

AI 把渗透测试的门槛降低了,也把事故成本放大了——因为 Agent 可以 7×24 不停地打,一个错误的配置可能造成持续几小时的破坏。

记住三句话:

  1. 授权是唯一前提,白名单必须硬编码
  2. AI 的结果你必须复核,AI 的责任你必须承担
  3. 数据不出边界,是技术的边界,更是职业的边界

下一篇:AI 渗透测试的未来趋势。


系列文章:AI 渗透测试与漏洞挖掘实战