Почему в Docker Hub так много уязвимых образов Nginx?
В настоящее время все они, кажется, имеют не исправленные компоненты и помечены красным https://hub.docker.com/r/library/nginx/tags/
3 ответа
Любой дистрибутив Linux, обновленный до последней версии со всеми примененными исправлениями безопасности, будет иметь уязвимости. Исправления безопасности часто создаются после обнаружения уязвимости. И каждый дистрибутив будет иметь некоторую задержку с момента, когда вышестоящая библиотека выпустит исправление, до его включения в дистрибутив. Когда вы анализируете многие из перечисленных уязвимостей, вы часто обнаруживаете, что в дистрибутиве еще нет патча.
То, что изображение содержит уязвимости, не означает, что его можно использовать. Часто уязвимости связаны с различными включенными библиотеками, которые могут даже не вызываться при доступе к контейнеру через любой из опубликованных портов.
Например, некоторые эксплойты списка, которые позволяют повышение привилегий от пользователя к корню, но многие контейнеры уже работают как корень, так как пользователь root добавил ограничения и может получить доступ только к одному приложению. А для других эксплойтов может потребоваться библиотека для анализа файла, который, если ваш веб-сервер не анализирует изображения из неизвестных источников, может оказаться невозможным для использования этого эксплойта против вашего контейнера.
Лично я чувствую, что Докер просто проливает свет на проблему, которая всегда существовала, но которую было легко игнорировать. Без этих отчетов люди предполагают, что применение всех доступных исправлений безопасности означает, что они исправили все известные уязвимости. А без Docker они запускают приложения в этих системах без какой-либо изоляции между различными приложениями, что позволяет легко использовать эксплойт в одном приложении и предоставлять доступ ко всем другим приложениям и включенным данным на одной машине.
Изображения так же безопасны, как и их наименее безопасный компонент. Все эти образы построены из базового образа, к которому добавляются зависимости, а затем запускается приложение. Если одна из этих зависимостей уязвима, то и весь стек после этого.
Вы можете точно увидеть, какие компоненты уязвимы, посмотрев на страницу тегов. Например официальное изображение nginx.
Существуют технические аргументы в поддержку вашего вопроса, но я полагаю, что в конечном итоге проблема заключается в модели Devops, которая заключается в том, что докер предназначен для помощи "разработчикам", а не "операциям", речь идет о том, чтобы вывести код на улицу и "убрать галочку" из списков. быстро. По состоянию на начало 2017 года докер по-прежнему намного сложнее в работе, чем многие более традиционные методы развертывания кода, я уверен, что он изменится, но если вы сосредоточитесь на скорости, вы всегда будете упускать элементы управления, которые хорошая оперативная команда может дать вам - это быть одним из них.