🐳 Как использовать Harbor для сканирования образов Docker на наличие уязвимостей |

🐳 Как использовать Harbor для сканирования образов Docker на наличие уязвимостей

Мануал
Контейнеры стали ведущими решениями для очень многих предприятий.
По уважительной причине конечно.
Они обеспечивают гибкость и масштабируемость, которые стандартные серверы и службы не могут достичь.
Однако в последнее время стало ясно, что контейнеры действительно представляют определенную проблему.
Упомянутая проблема заключается в безопасности образов, используемых для развертывания контейнеров.
Если вы не создаете свои собственные образы, вы не можете знать со 100% уверенностью, что то, что вы используете, не имеет уязвимостей.
На самом деле, есть способ сканировать образа на наличие уязвимостей.
Harbor – это локальный реестр Docker, который, будучи собранным с поддержкой Clair, позволяет сканировать спушенные образы на наличие известных уязвимостей.
Это должно считаться обязательным в компаниях, которые полагаются на контейнеры.
Но как использовать Harbour для сканирования этих образов?
 
Давайте посмотрим.

Что вам нужно

Самое главное, вам понадобится это Harbor (с поддержкой Clair).
Вам также понадобятся образа для отправки на сервер Harbor и учетную запись пользователя на сервере Harbour. 

Сертификаты

Если вы планируете передавать образы с компьютеров в вашей сети (которые не являются вашим сервером Harbour), вам необходимо скопировать сертификаты с сервера Harbour на клиенты.

Если вы следовали инструкциям по установке Harbor, возможно, вы используете самозаверенные сертификаты.

Я собираюсь предположить, что это так.

И так … вот как скопировать эти сертификаты с сервера на клиент:

  1. подключитесь по ssh (или войдите в консоль) к серверу Harbor.
  2. Получите root-доступ с помощью команды sudo -s.
  3. Перейдите в каталог сертификатов с помощью команды cd /etc/docker/certs.d/SERVER_IP (где SERVER_IP – это IP-адрес вашего сервера).
  4. Скопируйте ключ ca.cert на клиент с помощью команды scp ca.cert USER @ CLIENT_IP: / home / USER (где USER – имя пользователя на клиентском компьютере, а CLIENT_IP – IP-адрес клиентского компьютера).
  5. Скопируйте ключ ca.crt на клиент с помощью команды scp ca.crt USER @ CLIENT_IP: / home / USER (где USER – это имя пользователя на клиентском компьютере, а CLIENT_IP – это IP-адрес клиентского компьютера).
  6. Скопируйте клиентский ключ ca.key с помощью команды scp ca.key USER @ CLIENT_IP: / home / USER (где USER – это имя пользователя на клиентском компьютере, а CLIENT_IP – это IP-адрес клиентского компьютера).
  7. SSH к клиентскому компьютеру с помощью команды ssh USER @ CLIENT_IP (где USER – имя пользователя на клиентском компьютере, а CLIENT_IP – IP-адрес клиентского компьютера).
  8. Создайте новый каталог сертификатов с помощью команды sudo mkdir -p /etc/docker/certs.d/SERVER_IP (где SERVER_IP – это IP-адрес сервера Harbour).
  9. Скопируйте файлы с помощью команды sudo cp ca. * /etc/docker/certs.d/SERVER_IP (где SERVER_IP – IP-адрес сервера Harbor).
Теперь ваш клиент должен иметь возможность войти в репозиторий Harbor и отправлять образы.

Пометка образов ( теги )

Прежде чем отправить образ с клиента на сервер, сначала необходимо пометить его.

Допустим, у вас есть официальный образ Ubuntu, и вы хотите пометить его конкретным именем разработчика.

Чтобы пометить его так, чтобы его можно было перенести в реестр Harbor, команда tag будет выглядеть так:

docker tag ubuntu SERVER_IP/PROJECT_NAME/ubuntu:DEVNAME
Где:
  •  SERVER_IP – это IP-адрес сервера Harbour.
  • PROJECT_NAME – это имя проекта на сервере Harbour.
  • DEVNAME: имя разработчика, которого вы хотите пометить.

 

Таким образом, команда может выглядеть так:

docker tag ubuntu 192.168.1.75/test/ubuntu:jack

Пушинг образа

Сначала вы должны войти в реестр на сервере Harbor.

Для этого выполните команду:

docker login SERVER_IP

Где SERVER_IP – это IP-адрес сервера Harbor.

Вам будет предложено ввести имя пользователя и пароль пользователя на сервере Harbour.

После входа в систему вы можете спушить образ с помощью команды:

docker push 192.168.1.75/test/ubuntu:jack
После завершения вы готовы отсканировать образ на наличие уязвимостей.

Сканирование образа

Войдите в свой реестр Harbor и перейдите к проекту, в котором размещен недавно подтянутый образ

Вы должны увидеть образ в списке:

Щелкните на новый образ и в появившемся окне установите флажок, связанный с тегом образа.

После выбора нажмите кнопку SCAN, чтобы начать сканирование.

 

Когда сканирование завершится, вы увидите полосу, представляющую результаты сканирования.
Наведите курсор на эту полосу, чтобы просмотреть отчет:

Если вы нажмете на имя тега, вы увидите полный отчет, в котором представлены полные результаты, включая CVE для каждой уязвимости:

Прокрутите весь отчет, чтобы просмотреть все уязвимости.

Если вы обнаружите, что образ содержит слишком много общих уязвимостей или достаточно средних или высоких уязвимостей, я предлагаю не использовать его.

Но важно просканировать эти уязвимости!

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий