AI安全服务接单前如何搭建安全测试环境
AI安全服务接单前如何搭建安全测试环境
接 AI 安全服务单子,第一件事不是写扫描脚本,而是把测试环境隔离好、把授权范围确认清楚。
本文适合刚准备接单、手里只有一台云服务器的零基础读者,按下面的步骤操作,可以在不碰客户生产系统的前提下完成前期验证。
先明确你能在什么范围内操作
接单前必须拿到客户的书面授权,明确测试域名、IP 段、时间窗口和禁止操作项。没有书面授权不要开始任何扫描或探测。
本文所有操作都在你自己的服务器或本地虚拟机中完成,不涉及客户系统。
准备一台独立的 Linux 测试机(2 核 4G 即可),系统建议 Ubuntu 22.04 或 Debian 12。
登录后先更新软件包:
sudo apt update && sudo apt upgrade -y
预期结果是命令正常结束,没有依赖错误。
如果更新失败,先检查 /etc/resolv.conf 中的 DNS 配置和 ping -c 3 8.8.8.8 是否通。
用容器隔离测试工具
直接在主系统安装漏洞扫描工具,容易污染环境,也容易误伤本机服务。
建议用 Docker 把工具隔离开。
安装 Docker:
curl -fsSL https://get.docker.com | sudo sh
sudo systemctl enable --now docker
验证安装:
docker --version
能输出版本号即可。
接着创建一个专用网络,避免容器直接暴露到公网:
docker network create --internal sec-test
--internal 表示该网络没有外网出口,适合跑本地靶场。
启动一个测试用 Web 靶场容器:
docker run -d --name dvwa --network sec-test -p 127.0.0.1:8080:80 vulnerables/web-dvwa
浏览器访问 http://127.0.0.1:8080,如果打不开,先执行 docker ps 确认容器状态,再执行 docker logs dvwa 查看启动日志。
授权与操作留痕
接单过程中,每一次测试操作都要能回溯。
建议在测试机上建立一个工作目录,按客户和日期归档:
mkdir -p ~/sec-work/{客户名}/{日期}
扫描结果、命令记录和截图都放在对应目录。
Linux 下可以用 script 命令记录终端会话:
script ~/sec-work/客户名/日期/session.log
退出记录用 exit。
这样后续和客户核对操作范围时,有据可查。
避坑提醒: 不要在客户授权范围外的 IP 上执行任何探测;
不要使用来源不明的工具镜像;
测试结束后删除临时容器和测试数据:
docker rm -f dvwa
docker network rm sec-test
验证环境是否真正隔离
做完以上步骤,用两个检查确认环境可用。
第一,在测试容器内尝试访问外网,应该失败:
docker run --rm --network sec-test alpine ping -c 1 8.8.8.8
如果返回 Network is unreachable 或超时,说明内部网络隔离生效。
第二,确认靶场端口只监听在本机回环地址:
ss -tlnp | grep 8080
输出中应显示 127.0.0.1:8080,而不是 0.0.0.0:8080。
如果显示 0.0.0.0,说明端口暴露到了公网,需要修改启动参数,把 -p 127.0.0.1:8080:80 中的 127.0.0.1 保留。
接单前的检查清单
- 书面授权文件已拿到,测试范围和时间写清楚
- 测试环境与客户生产环境物理或网络隔离
- 工具镜像来源可查,不使用不明来源的镜像
- 操作日志和扫描结果按客户归档
- 测试结束后清理临时容器、网络和敏感数据
AI 安全服务接单的核心不是工具多,而是边界清楚、过程可查。
先把隔离环境和授权流程跑通,再开始对外接单,能避免大部分低级风险。
常见疑问
没有客户授权可以先做漏洞扫描练习吗?
只能扫描自己搭建的靶场或明确授权的测试目标,扫描公网任意站点都可能违反法律和服务条款。
测试机需要多高配置?
跑本地靶场和基础工具,2 核 4G 通常够用;如果同时开多个容器,建议 4 核 8G 起步。
Docker 安装脚本执行失败怎么办?
先确认系统时间和 DNS 正常,再检查是否已安装旧版本 Docker,必要时卸载后重装。