一句话: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 不做的三件事
- 不扩大测试范围:发现一个入口,不代表可以顺着打下去(除非授权允许)
- 不保留真实数据:证明危害后立即删除,报告中脱敏
- 不公开未授权细节:客户信息、漏洞细节严格保密
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 不停地打,一个错误的配置可能造成持续几小时的破坏。
记住三句话:
- 授权是唯一前提,白名单必须硬编码
- AI 的结果你必须复核,AI 的责任你必须承担
- 数据不出边界,是技术的边界,更是职业的边界
下一篇:AI 渗透测试的未来趋势。
系列文章:AI 渗透测试与漏洞挖掘实战