首页/安全/漏洞与攻击面速查/Harbor 镜像仓库暴露风险
主机与服务风险面53 条

Harbor 镜像仓库暴露风险

Harbor 安装后的管理员初始口令为文档给定的默认值,必须在首次登录时修改;项目默认可设为公开,仓库 API(/api/v2.0/projects、/v2/_catalog)匿名可读时会泄露镜像清单。

漏洞与攻击面速查安全更新于 2026-10-13

Harbor 暴露风险是什么

Harbor 是开源的企业级镜像仓库,提供角色权限、项目隔离、镜像扫描与复制能力。它安装后自带一个管理员账号,初始口令是文档中公开的固定值,若不修改即等同无认证;此外项目可见性默认可能为公开,导致仓库接口匿名可读。镜像仓库处在供应链的关键位置:被读取时泄露的是镜像内的源码、配置与内嵌凭据,被写入时则可能被投毒替换,影响所有下游部署。

基本信息

定位企业级容器镜像仓库(含 RBAC 与扫描)
默认端口HTTP 80 / HTTPS 443(部署时可自定义)
关键接口/api/v2.0/projects、/v2/_catalog、/v2/<项目>/manifests
初始账号admin,初始口令为文档给定的固定值,必须首次登录修改
常见误配项目公开 + 匿名可拉取 + 弱口令管理员

典型使用场景

  • 部署完成后立即登录修改管理员口令,并开启登录失败锁定
  • 对公网可达的仓库做匿名视角自查,确认接口不返回项目与镜像清单
  • 按项目划分子团队权限,开发者只拥有推送权限而非管理员
  • 开启内置漏洞扫描与内容信任策略,阻止高危镜像进入生产
  • 迁移或下线旧 registry 时同步回收其访问凭据与 DNS 解析

匿名可读性测试

匿名可读性测试
curl -s -o /dev/null -w '%{http_code}\n' https://harbor.example.com/v2/_catalog
curl -s -o /dev/null -w '%{http_code}\n' https://harbor.example.com/api/v2.0/projects
# 期望未认证返回 401;返回 200 说明匿名访问未关闭
curl -s https://harbor.example.com/api/v2.0/projects | head -c 300
# 已登录状态下枚举可拉取项目,核对与授权清单是否一致

暴露项与处置

暴露项表现处置
管理员口令使用文档默认口令即可登录首次登录立即修改并启用锁定策略
项目可见性匿名可枚举项目与镜像标签项目设为私有,按角色授权
仓库接口/v2/_catalog 匿名返回仓库列表关闭匿名拉取,接口经网关鉴权
网络暴露仓库端口对公网直接开放仅对构建网段开放,外网走网关

收敛检查清单

收敛检查清单
1. 修改 admin 初始口令,启用登录失败锁定与管理员操作审计
2. 项目可见性设为私有,按团队与角色授予拉取/推送权限
3. 开启镜像漏洞扫描(内置 Trivy)并设置阻断策略
4. 仓库仅对构建网段开放,公网入口统一走网关鉴权
5. 定期审计机器人账号与访问令牌,回收不再使用的凭据
Harbor 的初始口令来自官方文档,属于公开信息,任何部署在公网的实例都应在被扫描之前完成口令修改与匿名访问关闭。
镜像仓库是供应链关键资产:读取泄露镜像内的凭据与源码,写入则能被投毒替换,影响所有基于该镜像的下游环境。

易错点

  • 修改了 admin 口令但没有核查项目可见性:业务项目仍允许匿名拉取镜像
  • 仓库机器人账号权限过大且长期不轮换:一次泄露即可推送恶意镜像
  • 只在内网开放但未做网段限制:任意办公终端都能拉取全部镜像内容
  • 把仓库与构建机、生产集群放在同一网段:其沦陷路径直接连到发布链路

数据来源与参考

  • Harbor 文档(用户权限与内置认证)
  • Harbor 发行版与安全公告
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌