Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
klar — Интеграция Clair и Docker Registry | Kitploit
Инструменты/GitHubGitHub/optiopay/klar
Сканеры уязвимостейБезопасность контейнеровАудит конфигурацииDevSecOps
GitHuboptiopay/klar

klar

Интеграция Clair и Docker Registry

Репозиторий
50313422 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Klar

Интеграция Clair и Docker Registry (поддерживает обе версии API Clair: v1 и v3)

Klar — это простой инструмент для анализа образов, хранящихся в частном или публичном Docker registry, на наличие уязвимостей безопасности с помощью Clair (https://github.com/coreos/clair). Klar предназначен для использования в качестве инструмента интеграции, поэтому он полагается на переменные окружения. Это один бинарный файл, не требующий зависимостей.

Klar выступает в роли клиента, который координирует проверки образов между Docker registry и Clair.

Установка бинарного файла

Самый простой способ — скачать последний релиз (для OSX и Linux) с https://github.com/optiopay/klar/releases/ и поместить бинарный файл в папку, находящуюся в вашем 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. По умолчанию 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 доступ к registry с неправильными SSL-сертификатами. По умолчанию false. Clair необходимо запускать с флагом -insecure-tls, чтобы это работало.

  • DOCKER_TIMEOUT — время ожидания в минутах при попытке получить слои из Docker registry.

  • DOCKER_PLATFORM_OS — операционная система Docker-образа. По умолчанию linux. Это необходимо задавать только в том случае, если указанный образ ссылается на Docker ManifestList вместо обычного манифеста.

  • DOCKER_PLATFORM_ARCH — архитектура, для которой оптимизирован Docker-образ. По умолчанию amd64. Это необходимо задавать только в том случае, если указанный образ ссылается на Docker ManifestList вместо обычного манифеста.

  • REGISTRY_INSECURE — разрешить Klar доступ к небезопасным registry (только HTTP). По умолчанию false.

  • JSON_OUTPUT — выводить JSON, а не обычный текст. По умолчанию false.

  • FORMAT_OUTPUT — формат вывода уязвимостей. Поддерживаемые форматы: standard, json, table. По умолчанию standard. Если JSON_OUTPUT установлен в true, этот параметр игнорируется.

  • WHITELIST_FILE — путь к YAML-файлу с белым списком CVE. Посмотрите whitelist-example.yaml для формата файла.

  • IGNORE_UNFIXED — не учитывать уязвимости без исправления при подсчете порога.

Использование:

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) проще всего использовать стандартные учетные данные приложения. Они работают только при запуске Klar из GCP. Единственное требование — 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)"