news 2026/10/23 2:36:21

Docker 一键启动:快速搭建 cain-agent AI 渗透 Agent 运行环境

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker 一键启动:快速搭建 cain-agent AI 渗透 Agent 运行环境

【免费下载链接】cain-agent

Real-world AI penetration testing engineer for authorized assessments — built-in cloud module covering AWS/Azure/GCP + Aliyun/Tencent/Huawei clouds. Built on Claude Agent SDK

项目地址:https://gitcode.com/gh_mirrors/ca/cain-agent
点击查看免费下载

cain-agent 是一个面向真实授权场景的 AI 渗透测试 Agent,内置覆盖 AWS / Azure / GCP 与阿里云 / 腾讯云 / 华为云的云安全检测模块。本文介绍如何用Docker 一键启动的方式,跳过繁琐的 Python 依赖配置,快速搭建 cain-agent 的 AI 渗透 Agent 运行环境——只需 3 条命令即可跑起这个安全测试 Agent。

为什么用 Docker 一键启动?

手动安装 cain-agent 需要 Python ≥ 3.11、pip 依赖、可选的 cloud 扩展包,环境不一致时常踩坑。而 Docker 方式把运行时依赖全部封装进一个精简镜像,零环境配置:

对比项pip 本地安装Docker 镜像
Python 版本要求需 ≥ 3.11镜像内置python:3.11-slim
依赖安装手动pip install构建时自动完成
环境一致性因人而异完全一致
隔离性无容器级隔离,非 root 运行

镜像构建逻辑见 Dockerfile,完整说明见 docs/docker.md。

第一步:克隆仓库并构建 Docker 镜像

在终端依次执行:

git clone https://gitcode.com/gh_mirrors/ca/cain-agent cd cain-agent docker build -t cain-agent:latest .

首次构建会拉取python:3.11-slim基础镜像并安装项目依赖,之后构建会命中层缓存,速度很快。.dockerignore已排除tests/、docs/、skills/、.git等目录,保证镜像只包含运行时所需内容。

第二步:一条命令验证镜像可用

docker run --rm cain-agent:latest --version

输出形如cain-agent 0.2.0,说明镜像构建成功。镜像的关键特征如下:

属性值说明
基础镜像python:3.11-slim体积小巧
运行用户cain(uid 1000)非 root,更安全
工作目录/workspaces/cainworkspace 卷挂载点
ENTRYPOINTcain-agent容器入口即 CLI
默认 CMD--help无参数时显示帮助

最快上手:挂载 workspace 卷

cain-agent 的所有状态文件(scope.yaml/assets.json/findings.json等)都保存在 workspace 目录中。通过-v参数把宿主机的目录挂载进容器,运行结束后产物不会丢失:

docker run --rm \ -v "$(pwd)/workspace:/workspaces/cain" \ cain-agent:latest --help

容器内/workspaces/cain对应宿主机./workspace目录,Orchestrator 读写的文件都会落在宿主机卷上。

运行第一次授权测试

准备一个已获授权的测试目标(自建靶场、自有环境或书面授权项目),执行:

docker run --rm \ -v "$(pwd)/workspace:/workspaces/cain" \ cain-agent:latest run \ --target http://127.0.0.1:3000 \ --total-budget 1800
  • --target(必填):目标地址,会写入scope.yaml成为唯一的授权范围;
  • --total-budget:总时间预算(秒),推荐 1800 起步;
  • 目标必须已在授权范围内,超出scope.yaml的工具调用会被 Scope Guard 直接拦截——安全由工程强制,而非 AI 自觉。

运行结束后,workspace/report/目录会生成三份产物:人类可读的report.md、机器可读的aggregated-report.json、校验汇总validation-summary.json。详细参数说明见 docs/usage.md。

云凭证安全注入(以阿里云为例)

红线:严禁把 AccessKey 写进 Dockerfile 或 build-arg。凭证只在运行时通过-e环境变量注入:

docker run --rm \ -e ALIBABA_CLOUD_ACCESS_KEY_ID="your-key-id" \ -e ALIBABA_CLOUD_ACCESS_KEY_SECRET="your-secret" \ -v "$(pwd)/workspace:/workspaces/cain" \ cain-agent:latest <command>

凭证读取顺序为:代码层构造参数 →ALIBABA_CLOUD_ACCESS_KEY_ID/ALIBABA_CLOUD_ACCESS_KEY_SECRET→OSS_ACCESS_KEY_ID/OSS_ACCESS_KEY_SECRET,任一来源缺失会抛出OssCredentialError,绝不静默继续。凭证不落盘、不写日志,evidence 字段只记录 ACL 与 Policy 元数据。

进阶:docker-compose 一键拉起本地回归靶场

如果你还没有测试目标,项目内置了本地回归靶场——OWASP Juice Shop 和 DVWA,用一条命令即可拉起(bench/docker-compose.yml):

cd bench docker-compose up -d
  • Juice Shop:浏览器访问http://127.0.0.1:3000,开箱即用,覆盖 SQLi / XSS / 访问控制等漏洞面;
  • DVWA:访问http://127.0.0.1:8080,首次需先访问/setup.php完成初始化。

⚠️ 两个靶场的端口仅绑定 127.0.0.1,严禁对外网或局域网暴露;测试完成后用docker-compose down -v彻底销毁,不留任何数据。

注意:pi 执行后端需要 Node.js ≥ 20 与一次性桥接安装(npm ci --prefix toolchain/pi),该步骤需在宿主机完成,详见 toolchain/pi/README.md。

常见问题

Q:docker build很慢?首次构建需要下载基础镜像和 pip 依赖,属正常现象;第二次起会利用层缓存,秒级完成。

Q:中断了测试怎么办?Ctrl-C 会优雅收敛:已完成阶段产物保留,重跑同一条run命令会从断点续走(CLI 入口逻辑见 src/cain_agent/cli.py)。

Q:scope 白名单怎么维护?直接编辑workspace/scope.yaml,支持裸域名、通配子域、IP 与 CIDR;格式参考 templates/scope.example.yaml。判定顺序为:先查out_of_scope(拒绝优先),再查in_scope,两者都不中则默认拒绝。

写在最后

至此,你已完成 cain-agent 的 Docker 一键启动:构建镜像 → 验证版本 → 挂载 workspace → 挂载靶场 → 跑起第一次授权测试。Docker 方式让 AI 渗透 Agent 的部署成本降到最低,而 Scope 硬约束、只读工具链与凭证脱敏这些安全设计,在容器内同样完整生效。

  • 完整 Docker 指南:docs/docker.md
  • 用户手册(后端选型 / 模型路由):docs/usage.md
  • 本地靶场配置:bench/docker-compose.yml

⚠️ 法律提醒:cain-agent 仅限用于已获书面授权的安全测试。你须对所列目标的合法性独自承担责任,请遵守所在地法律法规。

【免费下载链接】cain-agent

Real-world AI penetration testing engineer for authorized assessments — built-in cloud module covering AWS/Azure/GCP + Aliyun/Tencent/Huawei clouds. Built on Claude Agent SDK

项目地址:https://gitcode.com/gh_mirrors/ca/cain-agent
点击查看免费下载

相关推荐

上一篇:QD框架变量系统深度解析:自动化任务的数据流转引擎
下一篇:TorchAir inductor-npu-ext 使用手册:AscendC 后端启用、调测环境变量与问题定位实战指南

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 2:34:58

C++20 ranges与多线程:惰性视图的线程安全陷阱与正确并行姿势

1. 一次多线程撞上惰性视图的崩溃现场1.1 场景回放&#xff1a;某后台批处理服务里的 ranges 改造前阵子给一个后台批处理服务做 C 重构&#xff0c;目标是老旧的 STL 循环改成std::ranges管道风格。原逻辑不复杂&#xff1a;一批记录进来&#xff0c;先过滤掉无效字段&#xf…

作者头像 李华
网站建设 2026/10/23 2:26:40

学术写作AI工具如何使用:从选题到答辩的全流程实操指南

每年到二三月份&#xff0c;我的消息列表就开始循环刷屏&#xff1a;“老师&#xff0c;选题还没定&#xff0c;能不能给个方向&#xff1f;”“学长&#xff0c;文献综述写到一半写不下去了怎么办&#xff1f;”“救命&#xff0c;查重率35%&#xff0c;还有四天交初稿……”毕…

作者头像 李华
网站建设 2026/10/23 2:25:02

iptv-checker 4.1.7 更新速览:后台检测任务不再半途而废

iptv-checker 4.1.7 更新速览&#xff1a;后台检测任务不再半途而废 【免费下载链接】iptv-checker IPTV checker tool for Docker && CMD, check your playlist is available 项目地址: https://gitcode.com/GitHub_Trending/ip/iptv-checker 后台定时检查的播…

作者头像 李华