Релиз Clair 1.0, инструмента для оценки уязвимостей в изолированных контейнерах

Релиз Clair 1.0, инструмента для оценки уязвимостей в изолированных контейнерах

Проект CoreOS, развивающий серверное окружение, основанное на идеях контейнерной изоляции, представил инструмент Clair 1.0, нацеленный на проведение сканирования начинки контейнеров для выявления неисправленных уязвимостей. В качестве источника данных используется база CVE (Common Vulnerabilities and Exposures) и информация об исправлении уязвимостей в дистрибутивах Red Hat Enterprise Linux, Ubuntu и Debian. Исходные тексты написаны на языке Go и доступны под лицензией Apache 2.0. Clair оформлен в виде обособленного движка, работающего на стороне хост-систем, систем непрерывной интеграции или хранилищ образов контейнеров, т.е. выполняет проверку со стороны и не требует запуска программы-агента на стороне контейнера.

После проведения анализа файлов, используемых в контейнере, информация о начинке сохраняется и в будущем может использоваться для определения подверженности проверенной версии контейнера новым уязвимостям, без необходимости полного повторного сканирования. Для определения подверженности уязвимостям применяется сопоставление файлов из репозиториев известных дистрибутивов с файлами, входящими в состав контейнера. Как правило состав контейнера удаётся определить при помощи пакетного менеджера и отслеживания источника сборки репозитория. При отсутствии мета-данных осуществляется дополнительная проверка по хэшам известных исполняемых файлов и библиотек, входящих в типовые дистрибутивы Linux. После проверки создаются отчёты, содержащие предупреждения о наличии проблем и учитывающие возможное совместное использование общих базовых наборов пакетов между контейнерами.

В настоящее время в системах контейнерной виртуализации и репозиториях образов контейнеров наблюдается существенная проблема накопления контейнеров с неисправленными уязвимостями. Clair позволяет отследить подобные контейнеры и информировать их создателей и пользователей о наличии проблем. Например, применение Clair для проверки контейнеров, размещённых в реестре Quay.io показало, что около 80% всех размещённых Docker-контейнеров содержат уязвимость CVE-2014-0160 ("Heartbleed"), которая была исправлена в дистрибутивах два года назад. При этом, основной массы выявленных уязвимостей можно было избежать применив к контейнеру доступные обновления пакетов.