Обеспечение безопасности ваших контейнеризованных моделей и нагрузок

Гарантированная безопасность для ваших контейнеризованных моделей и нагрузок

Переключитесь на не-root пользователя!

Контейнеризация является теперь стандартным способом развертывания большинства приложений, при чем Docker является основным программным обеспечением, обеспечивающим его принятие. В связи с его популярностью также возрастает риск атак [1]. Поэтому нам необходимо обеспечить безопасность наших docker-приложений. Самый фундаментальный способ сделать это – убедиться, что мы устанавливаем пользователя внутри наших контейнеров как не-root.

CONTENTS========Why use Non-Root?What You Can & Cannot Do as a Default Non-Root UserThe Four Scenarios  1) Serve a Model from Host (Read Only)  2) Run Data Processing Pipelines (Write within Container)  3) Libraries Automatically Writing Files (Write within Container)  4) Save Trained Models (Write to Host)Summary

Зачем использовать не-root пользователя?

Или, скорее, почему не использовать root пользователя? Давайте рассмотрим пример фиктивной архитектуры, подобной приведенной ниже.

Хакер с доступом root входит в контейнер. Изображение автора

Безопасность часто рассматривается с многоуровневым подходом. Если злоумышленник сумеет проникнуть в контейнер, разрешения, которые он получит как пользователь, будут первым уровнем защиты. Если пользователю контейнера назначен доступ root, злоумышленник может свободно управлять всем внутри контейнера. Обладая таким широким доступом, он также может использовать любые возможные уязвимости и, используя их, потенциально выбраться на хост и получить полный доступ ко всем соединенным системам. Негативные последствия серьезны и включают следующее:

  • получение сохраненных секретов
  • перехват и нарушение вашего трафика
  • запуск вредоносных служб, например, майнинга криптовалюты
  • получение доступа к любым подключенным чувствительным услугам, таким как базы данных
С использованием берут не-контейнер твои услуги вашей инфраструктуры. Изображение автора

Черт, это звучит страшно! Ну, решение просто – измените свои контейнеры на не-root пользователя!

Прежде чем продолжить чтение остальных статей, если у вас не очень хорошо разбирается в правах доступа Linux, обратите внимание на мою предыдущую статью [2].

Что вы можете или не можете делать как пользователь по умолчанию, не-root…