Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
klar — Clair与Docker Registry的集成 | Kitploit
工具/GitHubGitHub/optiopay/klar
漏洞扫描器容器安全配置审计DevSecOps
GitHuboptiopay/klar

klar

Clair与Docker Registry的集成

查看仓库
5031342年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Klar

Clair与Docker Registry的集成(同时支持Clair API v1和v3)

Klar是一款简单工具,用于分析存储在私有或公共Docker Registry中的镜像是否存在安全漏洞,它利用Clair https://github.com/coreos/clair 进行检测。Klar设计为集成工具,因此依赖环境变量进行配置。它是一个独立的二进制文件,无需额外依赖。

Klar充当客户端,协调Docker Registry与Clair之间的镜像检查。

二进制安装

最简单的方式是从 https://github.com/optiopay/klar/releases/ 下载最新版本(支持OSX和Linux),并将二进制文件放入PATH中的某个文件夹(确保具有执行权限)。

从源码安装

确保已安装并配置好Go语言编译器 https://golang.org/doc/install

然后运行

root@kitploit:~
go get github.com/optiopay/klar

确保你的Go二进制文件夹在PATH中(例如export PATH=$PATH:/usr/local/go/bin)

用法

Klar进程返回0表示镜像中检测到的高严重性漏洞数量小于或等于阈值(见下文),如果超过则返回1。如果因错误导致镜像无法被分析,则返回2。

Klar可通过以下环境变量进行配置:

  • CLAIR_ADDR - Clair服务器的地址。格式为protocol://host:port - protocol和port分别默认为http和6060,可省略。你也可以在URL中指定基本身份验证:protocol://login:password@host:port。

  • CLAIR_OUTPUT - 严重级别阈值,将输出高于或等于此阈值的漏洞。支持的级别有Unknown、Negligible、Low、Medium、High、Critical、Defcon1。默认为。

用法:

root@kitploit:~
CLAIR_ADDR=localhost CLAIR_OUTPUT=High CLAIR_THRESHOLD=10 DOCKER_USER=docker DOCKER_PASSWORD=secret klar postgres:9.5.1

调试输出

你可以通过将KLAR_TRACE设置为true来启用更详细的输出。

  • 运行export KLAR_TRACE=true以在多次运行间保持设置。

Docker化版本

Klar可以Docker化。进入$GOPATH/src/github.com/optiopay/klar并在项目根目录构建Klar。如果你在Linux上:

root@kitploit:~
CGO_ENABLED=0 go build -a -installsuffix cgo .

如果你在Mac上,记得为Linux构建:

root@kitploit:~
GOOS=linux go build .

然后在项目根目录构建Docker镜像(如果你想,可以用完全限定名称替换klar):

root@kitploit:~
docker build -t klar .

然后将环境变量作为单独的--env参数传递,或者创建环境文件并作为--env-file参数传递。例如将环境变量保存为my-klar.env:

root@kitploit:~
CLAIR_ADDR=localhost
CLAIR_OUTPUT=High
CLAIR_THRESHOLD=10
DOCKER_USER=docker
DOCKER_PASSWORD=secret

然后运行

root@kitploit:~
docker run --env-file=my-klar.env klar postgres:9.5.1

Amazon ECR支持

Amazon ECR没有永久的用户名/密码,必须使用aws ecr get-login获取凭证,且有效期为12小时。以下是一个示例脚本,可用于为Klar提供ECR凭证:

root@kitploit:~
DOCKER_LOGIN=`aws ecr get-login --no-include-email`
PASSWORD=`echo $DOCKER_LOGIN | cut -d' ' -f6`
REGISTRY=`echo $DOCKER_LOGIN | cut -d' ' -f7 | sed "s/https:\/\///"`
DOCKER_USER=AWS DOCKER_PASSWORD=${PASSWORD} ./klar ${REGISTRY}/my-image

Google GCR支持

对于向GCR(Google Cloud Registry)进行身份验证,最简单的方法是使用应用默认凭据。这仅在从GCP运行Klar时有效。唯一的要求是Google Cloud SDK。

root@kitploit:~
DOCKER_USER=oauth2accesstoken
DOCKER_PASSWORD="$(gcloud auth application-default print-access-token)"

使用Docker时:

root@kitploit:~
DOCKER_USER=oauth2accesstoken
DOCKER_PASSWORD="$(docker run --rm google/cloud-sdk:alpine gcloud auth application-default print-access-token)"
下载工具
Unknown
  • CLAIR_THRESHOLD - Klar在返回1之前可容忍的输出漏洞数量。默认为0。

  • CLAIR_TIMEOUT - Klar取消镜像扫描前的超时时间(分钟)。默认为1。

  • DOCKER_USER - Docker Registry账户名称。

  • DOCKER_PASSWORD - Docker Registry账户密码。

  • DOCKER_TOKEN - Docker Registry账户令牌。(可替代DOCKER_USER和DOCKER_PASSWORD使用)

  • DOCKER_INSECURE - 允许Klar访问SSL证书有问题的注册表。默认为false。Clair需要以-insecure-tls参数启动才能生效。

  • DOCKER_TIMEOUT - 从Docker注册表获取层时的超时时间(分钟)。

  • DOCKER_PLATFORM_OS - Docker镜像的操作系统。默认为linux。仅当指定的镜像引用的是Docker ManifestList而非常规清单时需要设置。

  • DOCKER_PLATFORM_ARCH - Docker镜像优化的架构。默认为amd64。仅当指定的镜像引用的是Docker ManifestList而非常规清单时需要设置。

  • REGISTRY_INSECURE - 允许Klar访问不安全的注册表(仅HTTP)。默认为false。

  • JSON_OUTPUT - 输出JSON格式,而非纯文本。默认为false。

  • FORMAT_OUTPUT - 漏洞的输出格式。支持的格式有standard、json、table。默认为standard。如果JSON_OUTPUT设为true,则忽略此选项。

  • WHITELIST_FILE - CVE白名单的YAML文件路径。文件格式请参考whitelist-example.yaml。

  • IGNORE_UNFIXED - 不计入没有修复方案的漏洞到阈值中。