The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Доступен Bottlerocket 1.8, дистрибутив на базе изолированных контейнеров

12.06.2022 08:03

Опубликован выпуск Linux-дистрибутива Bottlerocket 1.8.0, развиваемого при участии компании Amazon для эффективного и безопасного запуска изолированных контейнеров. Инструментарий и управляющие компоненты дистрибутива написаны на языке Rust и распространяются под лицензиями MIT и Apache 2.0. Поддерживается запуск Bottlerocket в кластерах Amazon ECS, VMware и AWS EKS Kubernetes, а также создание произвольных сборок и редакций, допускающих применение различных инструментов оркестровки и runtime для контейнеров.

Дистрибутив предоставляет атомарно и автоматически обновляемый неделимый системный образ, включающий ядро Linux и минимальное системное окружение, включающие только компоненты, необходимые для запуска контейнеров. В окружении задействованы системный менеджер systemd, библиотека Glibc, сборочный инструментарий Buildroot, загрузчик GRUB, конфигуратор сети wicked, runtime для изолированных контейнеров containerd, платформа оркестровки контейнеров Kubernetes, аутентификатор aws-iam-authenticator и агент Amazon ECS.

Инструменты для оркестровки контейнеров поставляются в отдельном управляющем контейнере, который включается по умолчанию и управляется через API и AWS SSM Agent. В базовом образе отсутствует командная оболочка, сервер SSH и интерпретируемые языки (например, нет Python или Perl) - средства для администратора и отладочные инструменты вынесены в отдельный служебный контейнер, который по умолчанию отключён.

Ключевым отличием от похожих дистрибутивов, таких как Fedora CoreOS, CentOS/Red Hat Atomic Host является первичная ориентация на предоставление максимальной безопасности в контексте усиления защиты системы от возможных угроз, усложнения эксплуатации уязвимостей в компонентах ОС и повышения изоляции контейнеров. Контейнеры создаются при помощи штатных механизмов ядра Linux - cgroups, пространств имён и seccomp. Для дополнительной изоляции в дистрибутиве применяется SELinux в режиме "enforcing".

Корневой раздел монтируется в режиме только для чтения, а раздел с настройками /etc монтируется в tmpfs и восстанавливает исходное состояние после перезапуска. Прямое изменение файлов в каталоге /etc, таких как /etc/resolv.conf и /etc/containerd/config.toml, не поддерживается - для постоянного сохранения настроек следует использовать API или выносить функциональность в отдельные контейнеры. Для криптографической верификации целостности корневого раздела задействован модуль dm-verity, а в случае выявления попытки модификации данных на уровне блочного устройства система перезагружается.

Большинство системных компонентов написаны на языке Rust, предоставляющем средства для безопасной работы с памятью, позволяющие избежать уязвимостей, вызванных обращением к области памяти после её освобождения, разыменованием нулевых указателей и выходом за границы буфера. При сборке по умолчанию применяются режимы компиляции "--enable-default-pie" и "--enable-default-ssp" для включения рандомизации адресного пространства исполняемых файлов (PIE) и защиты от переполнения стека через подстановку канареечных меток. Для пакетов, написанных на языке C/C++, дополнительно включаются флаги "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" и "-fstack-clash-protection".

В новом выпуске:

  • Обновлено содержимое административного и управляющего контейнеров.
  • Runtime для изолированных контейнеров обновлён до ветки containerd 1.6.x.
  • Обеспечен перезапуск фоновых процессов, координирующих работу контейнеров, после изменений в хранилище сертификатов.
  • Предоставлена возможность выставления загрузочных параметров ядра через секцию Boot Configuration.
  • Включено игнорирование пустых блоков при контроле целостности корневого раздела при помощи dm-verity.
  • Предоставлена возможность статической привязки имён хостов в /etc/hosts.
  • Предоставлена возможность генерации сетевой конфигурации при помощи утилиты netdog (добавлена команда generate-net-config).
  • Предложены новые варианты дистрибутива c поддержкой Kubernetes 1.23. Сокращено время запуска pod-ов в Kubernetes за счёт отключения режима configMapAndSecretChangeDetectionStrategy. Добавлены новые настройки kubelet-ов: provider-id и podPidsLimit.
  • Предложен новый вариант дистрибутива "aws-ecs-1-nvidia" для Amazon Elastic Container Service (Amazon ECS), поставляемый с драйверами NVIDIA.
  • Добавлена поддержка устройств хранения Microchip Smart Storage и MegaRAID SAS. Расширена поддержка Ethernet-карт на чипах Broadcom.
  • Обновлены версии пакетов и зависимости для языков Go и Rust, а также версии пакетов со сторонними программами. Bottlerocket SDK обновлён до версии 0.26.0.


  1. Главная ссылка к новости (https://github.com/bottlerocke...)
  2. OpenNews: Выпуск Bottlerocket 1.7, дистрибутива на базе изолированных контейнеров
  3. OpenNews: Доступен TUF 1.0, фреймворк для организации безопасной доставки обновлений
  4. OpenNews: Релиз ОС Qubes 4.1, использующей виртуализацию для изоляции приложений
  5. OpenNews: Четвёртый тестовый выпуск ОС Subgraph
  6. OpenNews: Спецслужбы Франции опубликовали защищённый дистрибутив CLIP OS
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/57336-bottlerocket
Ключевые слова: bottlerocket
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (25) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 08:22, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    единственно безопасное во всем этом rust с супербезопасным crate?
     
     
  • 2.9, Аноним (9), 11:51, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нет, просто остальных слов вы не знаете.
    Это нормально, должен кто-то и сортиры чистить.
     
     
  • 3.25, Аноним (25), 22:39, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Га́дите мимо в сортирах, товарищ, как творческая или технологически приближенная интеллигенция? )
     
  • 3.27, achtosluchilos (ok), 23:04, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Вот вот. А то падают под прогнившие полы граждане и захлебываются насмерть говном. Хотя мы же (оказывается) живем при Петре1, при Петре1 это была норма.
     
     
  • 4.32, Аноним (9), 19:13, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, при Петре I нормой было косить под европейцев.
    Но 40-е годы XX века показали всю абсурдность и опасность такого подхода.
     

  • 1.2, YetAnotherOnanym (ok), 08:55, 12/06/2022 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –3 +/
     
     
  • 2.3, Аноним (3), 09:18, 12/06/2022 Скрыто модератором
  • +/
     
  • 2.6, eigrad (ok), 10:00, 12/06/2022 Скрыто модератором
  • +1 +/
     

     ....ответы скрыты модератором (2)

  • 1.5, Аноним (5), 09:48, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > дистрибутива на базе изолированных контейнеров

    Изолированный пользователь запустил изолированный дистрибутив на изолированных контейнерах и видит картину - изолированные процессы в изолированных контейнерах выполняют изолированные операции над изолированными данными.

    Изолировать бы разработчиков этого изолированного дистрибутива на базе изолированных контейнерах.

     
     
  • 2.8, НяшМяш (ok), 10:36, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Напугали ёжика голой жопой )
     
     
  • 3.30, Аноним (-), 15:26, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    учитывая этимологию псевдонима выше и контекст - на самом деле годный, хороший комментарий, а главное - на бессильную злобу завтрашнего дня (который обязательно настанет, но будет поздно пить Боржоми)
     
  • 2.11, Аноним (9), 11:57, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Изолированный пользователь запустил изолированный дистрибутив на изолированных контейнерах и видит картину - изолированные процессы в изолированных контейнерах выполняют изолированные операции над изолированными данными.

    Примерно так разработчики для реального режима MS DOS смотрели на дикарей-юниксоидов, у которых при попытке залезть в память другого процесса прилетает SIGSEGV.

     

  • 1.7, eigrad (ok), 10:06, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Прикольная штука, юзаю с EKS. Но вот если нужно там tcpdump/ping/netcat/traceroute запустить - начинается цирк с конями, не удалось сходу нормально раскурить как в этом окружении жить вообще.
     
     
  • 2.10, Аноним (9), 11:55, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Для ping/netcat/traceroute логично сделать tool-образ и подселять в поды его через механизм ephemeral containers (не знаю, разрешен ли он в EKS).
    tcpdump, полагаю, никак. Надо делать нормальные трейсы.
     

  • 1.12, Аноним (12), 12:55, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    контейнер != безопасность
     
     
  • 2.13, Аноним (9), 13:19, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    контейнер ∈ безопасность

    Безопасность — это всегда комплекс мер и подходов, а не одна волшебная таблетка, которая делает зашибись.
    В новости описана весьма многообещающая в плане защищённости система. По крайней мере, абсолютное большинство традиционных векторов взлома LAMP-серверовтам не отработают. Но без аудита и пентестинга делать безапелляционные утверждения я бы не стал.

    P.S. Конкретно в случае с контейнером — он действительно может значительно увеличить уровень безопасности, но только при соблюдении множества условий: процессы в контейнере запущены не от рута, не имеют избыточных capabilities (CAP_SYS_ADMIN, CAP_NET_ADMIN), на хосте отключены средства jailbreaking-а (unprivileged ebpf, user namespaces, non-paranoid perf).

     

  • 1.14, Аноним (14), 14:30, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А в реальной жизни, зачем он может понадобиться?
     
     
  • 2.18, Аноним (9), 16:37, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Зависит от того, какая у вас реальная жизнь.
    Если поднимать падающий апач на шаред-хостинге - то незачем вообще.
     

  • 1.23, Аноним (23), 19:34, 12/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > первичная ориентация на предоставление максимальной безопасности в контексте усиления защиты системы от возможных угроз, усложнения эксплуатации уязвимостей ...

    Вот это казёнщина! Когда в технических текстах я вижу подобное построение предложений — у меня рука тянется к нагану.

     
     
  • 2.24, Аноним (24), 19:40, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    ну хоть не к солонке.
     
  • 2.26, Аноним (25), 22:42, 12/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Так вот почему вокруг и в ТВ все так экают и Хавал Хавээлом называют. Выша работа?
     

  • 1.28, Аноним (-), 00:29, 13/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Как дистрибутив с systemd может быть безопасным?
     
     
  • 2.31, Аноним (-), 15:30, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    виртуально.
     

  • 1.29, Аноним (29), 11:53, 13/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чё обои не показали?
     
     
  • 2.33, Аноним (9), 19:15, 13/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Так это же не кульхацкерский crux или void какой-то, а дистрибутив для работы.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру