Сканирование Docker-образа на наличие уязвимостей
Вы можете сканировать загруженные в реестр Docker-образы на наличие уязвимостей. Это можно делать:
Важно
- База данных уязвимостей постоянно дополняется источниками с информацией об уязвимостях.
- Для некоторых уязвимостей не указана информация о том, в каких версиях пакетов они будут устранены. Это связано с тем, что в текущих источниках такой информации нет.
- Количество запусков сканирования Docker-образов в одном облаке ограничено.
- Сканирование Docker-образов на наличие уязвимостей тарифицируется.
Вручную
- В консоли управления
выберите каталог, которому принадлежит реестр, содержащий Docker-образ. - Выберите сервис Container Registry.
- Выберите реестр, в который загружен Docker-образ, или создайте новый и загрузите в него образ.
- Откройте репозиторий, в котором находится Docker-образ.
- Нажмите на значок
в строке нужного Docker-образа и выберите Сканировать. - Дождитесь завершения сканирования. Во время его выполнения Docker-образ будет иметь статус сканирования
Сканируется
, а после окончания статус сменится наГотово
. - Просмотрите результаты сканирования. Для этого в строке нужного Docker-образа нажмите на значение в столбце Дата последнего сканирования.
Чтобы посмотреть запуски сканирования по Docker-образу, выберите нужный образ и перейдите на вкладку История сканирований.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Получите список Docker-образов в реестре:
yc container image list --repository-name=<идентификатор_реестра>/<имя_Docker-образа>
Результат:
+----------------------+---------------------+-----------------------------+---------+-----------------+ | ID | CREATED | NAME | TAGS | COMPRESSED SIZE | +----------------------+---------------------+-----------------------------+---------+-----------------+ | crpqmsqp5mtb******** | 2021-02-09 08:57:14 | crpp7p7dovf4********/ubuntu | example | 27.2 MB | +----------------------+---------------------+-----------------------------+---------+-----------------+
-
Запустите сканирование Docker-образа:
yc container image scan <идентификатор_Docker-образа>
Результат:
done (24s) id: che1el9t4t95******** image_id: crpqmsqp5mtb******** ... medium: "6" low: "13" negligible: "3"
-
Получите детальную информацию о результатах сканирования:
yc container image list-vulnerabilities --scan-result-id=<идентификатор_результатов_сканирования>
Результат:
+------------+----------------+---------+-----------------+----------+---------------------------------------------------------------+ | SEVERITY | NAME | PACKAGE | VERSION | FIXED BY | LINK | +------------+----------------+---------+-----------------+----------+---------------------------------------------------------------+ ... | NEGLIGIBLE | CVE-2016-10228 | glibc | 2.31-0ubuntu9.1 | | https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10228 | | NEGLIGIBLE | CVE-2017-11164 | pcre3 | 2:8.39-12build1 | | https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11164 | | NEGLIGIBLE | CVE-2020-14155 | pcre3 | 2:8.39-12build1 | | https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14155 | +------------+----------------+---------+-----------------+----------+---------------------------------------------------------------+
Чтобы посмотреть запуски сканирования по Docker-образу, выполните команду:
yc container image list-scan-results --repository-name=<идентификатор_реестра>/<имя_Docker-образа>
Результат:
+----------------------+----------------------+---------------------+--------+--------------------------------+ | ID | IMAGE | SCANNED AT | STATUS | VULNERABILITIES | +----------------------+----------------------+---------------------+--------+--------------------------------+ | che1el9t4t95******** | crpqmsqp5mtb******** | 2021-03-16 14:34:02 | READY | medium:6, low:13, negligible:3 | +----------------------+----------------------+---------------------+--------+--------------------------------+
Чтобы сканировать Docker-образ, воспользуйтесь методом REST API scan для ресурса Scanner или вызовом gRPC API ScannerService/Scan.
Чтобы получить идентификатор результата сканирования scanResultId
, воспользуйтесь методом REST API getLast для ресурса Scanner или вызовом gRPC API ScannerService/GetLast.
Чтобы получить детальную информацию о результатах сканирования, воспользуйтесь методом REST API listVulnerabilities для ресурса Scanner или вызовом gRPC API ScannerService/ListVulnerabilities.
При загрузке
- В консоли управления
выберите каталог, которому принадлежит реестр с Docker-образами. - Выберите сервис Container Registry.
- Выберите реестр или создайте новый.
- Перейдите на вкладку Сканер уязвимостей.
- Нажмите кнопку Изменить настройки.
- В блоке Сканирование Docker-образов при загрузке выберите Сканировать и один из вариантов сканирования:
Все репозитории
— сканировать все репозитории реестра.Выбранные
— сканировать только выбранные репозитории:- Нажмите кнопку Выбрать репозитории.
- Выберите репозитории из списка.
- Нажмите кнопку Сохранить.
- Нажмите кнопку Сохранить.
Чтобы автоматически сканировать Docker-образы при загрузке в реестр, воспользуйтесь методом REST API create для ресурса ScanPolicy или вызовом gRPC API ScanPolicyService/Create.
Чтобы получить идентификатор результата сканирования scanResultId
, воспользуйтесь методом REST API getLast для ресурса Scanner или вызовом gRPC API ScannerService/GetLast.
Чтобы получить детальную информацию о результатах сканирования, воспользуйтесь методом REST API listVulnerabilities для ресурса Scanner или вызовом gRPC API ScannerService/ListVulnerabilitiesListVulnerabilities.
По расписанию
- В консоли управления
выберите каталог, которому принадлежит реестр с Docker-образами. - Выберите сервис Container Registry.
- Выберите реестр или создайте новый.
- Перейдите на вкладку Сканер уязвимостей.
- Нажмите кнопку Изменить настройки.
- В блоке Сканирование Docker-образов по расписанию нажмите Добавить правило сканирования.
- Выберите Сканировать и один из вариантов сканирования:
Все репозитории
— сканировать все репозитории реестра.Выбранные
— сканировать только выбранные репозитории:- Нажмите кнопку Выбрать репозитории.
- Выберите репозитории из списка.
- Нажмите кнопку Сохранить.
- Укажите, как часто хотите сканировать Docker-образы.
- Нажмите кнопку Сохранить.
Чтобы сканировать Docker-образы по расписанию, воспользуйтесь методом REST API create для ресурса ScanPolicy или вызовом gRPC API ScanPolicyService/Create.
Чтобы получить идентификатор результата сканирования scanResultId
, воспользуйтесь методом REST API getLast для ресурса Scanner или вызовом gRPC API ScannerService/GetLast.
Чтобы получить детальную информацию о результатах сканирования, воспользуйтесь методом REST API listVulnerabilities для ресурса Scanner или вызовом gRPC API ScannerService/ListVulnerabilitiesListVulnerabilities.