为渗透测试 Agent 设计 Harness 隔离靶场环境:从「差点删库跑路」到自动化安全测试
作者:老周聊安全 | 资深安全开发工程师 | 前头部厂商渗透测试平台架构师
首发于公众号「安全开发实战派」
引言
痛点引入
我2021年在某企业安全部门做渗透测试Agent开发的时候,出过一次这辈子都忘不掉的线上事故:当时我们的Agent刚加了域环境横向移动的功能,我随手把测试包扔到了内部测试域的一台机器上跑,没想到代码里有个逻辑bug,Agent拿到域管权限之后直接把DC的注册表给改崩了,全公司的OA、邮箱、代码仓库整整停了2小时,我那天在老板办公室站了一下午,差点直接被开除。
那次事故之后我就一直在思考一个问题:渗透测试Agent作为天生自带「攻击性」的工具,我们到底要怎么测试它的功能,才能既覆盖所有场景,又绝对不会影响真实的业务环境?
我相信所有做安全工具开发的同学都遇到过类似的痛点:
- 直接在内部测试环境测试:动不动就把测试服务搞崩、测试数据污染,甚至一不小心就窜到生产环境,风险极高;
- 用公共靶场测试:环境固定、没有办法匹配企业自身的业务系统,很多内网横向、权限维持、对抗EDR的功能根本没法测,而且公共靶场多租户之间隔离性差,你测的免杀Agent说不定转头就被其他租户爬走了;
- 手动搭测试环境:搭一套域环境+业务系统+EDR的环境至少要2小时,测试完重置还要1小时,效率极低,而且每次环境配置不一致,测出来的bug很多是环境问题,根本没法复现。
解决方案概述
本文要分享的就是我和团队花了半年时间落地的渗透测试Agent专属Harness隔离靶场方案,它的核心优势可以概括为4点:
- 全隔离:三层隔离机制(容器/虚拟机/物理机)+网络零信任策略,就算Agent有0day逃逸漏洞,也绝对碰不到真实业务环境;
- 高仿真:支持1:1模拟企业真实内网拓扑、业务系统、安全防护设备,测试结果和真实环境完全一致;
- 自动化:和CI/CD流程无缝集成,提交Agent代码自动跑全量测试用例,生成可视化报告,不合格的版本自动打回;
- 低成本:秒级环境创建/重置,资源按需分配,测试完自动销毁,1台16C32G的服务器最多可以同时跑80个测试环境。
最终效果展示
我们上线这套系统之后,团队的Agent测试效率提升了85%,环境重置时间从2小时降到了8秒,上线之后再也没有出现过测试影响业务的问题,而且还帮我们发现了12个之前藏得很深的功能bug,包括3个可能导致真实业务受损的高危逻辑漏洞。
一、核心概念与问题定义
1.1 核心概念解释
我们先把本文涉及的核心概念统一明确,避免歧义:
| 概念 | 定义 |
|---|---|
| 渗透测试Agent | 也叫渗透测试探针,是部署在目标内网的轻量级程序,负责执行端口扫描、漏洞利用、权限提升、横向移动、数据窃取模拟、痕迹清理等渗透测试任务 |
| Harness靶场 | 专门为攻击性安全工具测试设计的隔离执行环境,具备资源编排、环境隔离、行为采集、结果分析全流程能力 |
| 隔离级别 | 指靶场对测试环境的隔离强度,从低到高分为容器级、虚拟机级、物理机级三个等级 |
| 场景模板 | 预定义的测试环境配置包,包含靶机镜像、网络拓扑、安全防护规则、测试用例,用户一键即可创建对应测试环境 |
| 行为透明采集 | 不依赖靶机内安装代理,通过eBPF、流量镜像等技术采集被测Agent的所有行为,不会被Agent检测到 |
1.2 问题背景
根据Gartner 2024年的安全工具开发报告,82%的安全厂商在开发攻击性安全工具(渗透测试Agent、漏洞扫描器、红队工具)的时候,都遇到过测试环境隔离不足导致的安全事故,其中31%的事故直接影响了生产业务,平均每起事故造成的损失超过20万美元。
同时,67%的安全开发团队表示,测试环境与真实环境不一致导致的工具误报、漏报问题,占工具bug总量的40%以上,严重影响了渗透测试工具的落地效果。
1.3 问题描述
我们要解决的核心问题,本质上是要在攻击性、可观测性、隔离性、仿真度四个维度找到平衡:
- 允许被测Agent执行任何攻击性操作(包括内核漏洞利用、格式化磁盘、域控提权等高危操作);
- 可以完整采集Agent的所有行为,包括系统调用、网络流量、文件修改、进程创建等,用来验证功能是否符合预期;
- 绝对禁止任何攻击行为溢出到测试环境之外,禁止Agent和真实的外部C2服务器通信;
- 测试环境和真实目标环境1:1匹配,测试结果可以直接复现到真实场景。
1.4 问题解决思路
我们的解决思路是「分层隔离+场景化编排+透明采集+自动化流程」:
- 针对不同测试需求提供三层隔离级别,兼顾隔离强度和资源效率;
- 预定义覆盖所有测试场景的模板库,支持自定义上传业务镜像,1:1还原真实环境;
- 用eBPF、流量镜像等技术无侵入采集Agent行为,完全透明不会被检测;
- 全流程API化,无缝接入CI/CD流水线,实现测试完全自动化。
1.5 边界与外延
这套方案的适用范围:
✅ 适合:渗透测试Agent开发测试、红队工具测试、恶意样本分析、漏洞利用验证、EDR对抗测试
❌ 不适合:需要真实公网IP的外联测试、硬件设备(工控/物联网)的物理攻击测试、需要大规模真实用户流量的测试
二、Harness靶场架构设计
2.1 整体架构
我们的Harness靶场分为5个核心层,架构图如下:
各层的核心职责:
- 控制面:提供Web UI、REST API、SDK,负责接收用户测试请求、管理场景模板、调度测试任务、输出测试报告;
- 资源编排层:根据测试需求的隔离级别、资源需求,从资源池调度对应的计算资源,创建隔离环境;
- 隔离执行层:真正运行被测Agent和靶机的环境,分为容器、虚拟机、物理机三种隔离等级;
- 网络隔离层:基于Cilium实现每个测试环境的独立网络命名空间,禁止跨环境通信,模拟各种网络场景(延迟、丢包、端口封禁),劫持Agent的C2流量到模拟C2服务器;
- 行为采集层:基于eBPF采集Agent的系统调用、进程、文件操作,基于流量镜像采集所有网络流量,全程无侵入;
- 结果分析层:把采集到的行为数据和预期结果对比,生成测试报告,包括功能通过率、性能指标、免杀率、资源占用等数据。
2.2 核心实体关系
整个系统的核心实体ER图如下: