Образы системы контейнеризации Docker небезопасны
1Иллюстрация с сайта computerworld.com
Исследователь и консультант по безопасности Джонатан Руденберг (Jonathan Rudenberg) написал в блоге о потенциальной угрозе и несовершенстве системы проверки образов Docker.
В релизе Docker 1.3 была представлена поддержка цифровой подписи образов. С тех пор создатели платформы контейнеризации активно продвигают эту возможность. Однако реализация подписи небезопасна, утверждает исследователь. Потенциальная уязвимость связана с тем, как Docker верифицируют образы. Руденберг пишет, он скачал «верифицированный» образ, но оказалось, что верифицируется подпись манифеста, при этом Docker не проверяет контрольную сумму образа из манифеста. Злоумышленник может подставить любой образ к подписанному манифесту.
Образы загружаются по HTTPS и проходят через незащищённую потоковую обработку в пайплайне демона Docker:
[decompress] -> [tarsum] -> [unpack]
Это производительное, но небезопасное решение. Ненадёжный ввод не должен обрабатываться пока не пройдёт проверка контрольной суммы, здесь же обработка происходит трижды.
Docker поддерживает три алгоритма: gzip, bzip2 и xz. Первые два — стандартные реализации Go и защищены от доступа к памяти. Максимум, что возможно — это DoS-атака. Для декомпрессии xz вызывается внешняя библиотека из состава XZ Utils. Она написана на C и не обеспечивает безопасного доступа к памяти, при этом Docker выполняет xz от root. Поэтому здесь можно ожидать выполнение произвольного кода и даже компрометации всей системы. На втором шаге потенциальные угрозы могут привести к отказу обслуживания (DoS) и логическим ошибкам, что позволит вмешиваться в файлы, изменять их, пропускать, обрабатывать по-разному и всё это без изменения контрольной суммы. На последнем этапе уже выявлены две уязвимости: CVE-2014-6407 и CVE-2014-9357.
Более подробный разбор и анализ потенциальных угроз, связанных с платформой Docker опубликован в блоге Джонатана Руденберга.
Постоянная ссылка к новости: http://www.nixp.ru/news/13046.html. Никита Лялин по материалам Titanous.Com.
- Docker 1.0: Linux-контейнеры готовы для промышленного применения 3 10 июня 2014 г.
- Представлено первое обновление Docker в ветке 1.x — 1.1.0 7 июля 2014 г.
- Docker 1.3: подпись образов, параметры безопасности и другие возможности 2 3 17 октября 2014 г.
Canonical пропатчила патчи: последняя порция обновлений вызывала регрессию ядра
Исследователи безопасности нашли 26 уязвимостей в USB-драйверах разных ОС — 18 из них на Linux
Canonical пропатчила ядра четырех Ubuntu — все обновления уже в репозиториях
В CNCF приняты Open Source-проекты Notary от Docker и TUF, а также 30 новых компаний-участников
Trireme — новый проект для организации политик безопасности для контейнеров Docker и Kubernetes
Израильский стартап Twistlock представляет систему контроля безопасности контейнеров Docker 1
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
До эпика не хватает сделать манифесту source в баш-скрипте и потом уже распаковывать от рута.