T1609: Средства администрирования контейнера

Злоумышленники могут использовать службу администрирования контейнера для выполнения команд в контейнере. Службы администрирования контейнеров, такие как демон Docker, сервер Kubernetes API или агент kubelet, позволяют удаленно управлять контейнерами в среде.

В Docker злоумышленники могут обеспечить выполнение сценария или команды при развертывании контейнера, задав точку входа. Они также могут использовать такую команду, как docker exec, чтобы выполнять операции в уже работающем контейнере. В Kubernetes, если у злоумышленника есть достаточные права, он может получить удаленный доступ к выполнению команд в контейнере кластера через API-сервер Kubernetes, kubelet или с помощью таких команд, как kubectl exec.

Какие продукты Positive Technologies покрывают технику

Экспертиза MaxPatrol SIEM

Мониторинг событий запуска процессов, в командной строке которых содержатся фрагменты «docker exec» и «kubectl exec»

Требуется эксперт. Техника обнаруживается только в связке «Продукт PT + эксперт»

Способы обнаружения

IDDS0017Источник и компонент данныхКоманда: Выполнение командОписание

Отслеживайте выполнение команд службами контейнеров и их аргументы. В средах Docker анализируйте журналы демона, чтобы отследить события на уровне демона и службы контейнеров. Анализируйте журналы системных компонентов Kubernetes, чтобы выявить активность внутри контейнеров кластера и за их пределами.

IDDS0009Источник и компонент данныхПроцесс: Создание процессаОписание

Для отслеживания активности служб администрирования контейнеров и выполненных команд можно анализировать зарегистрированные в журнале процессы, запущенные из командной строки в контейнере и на узле, где он развернут, и их аргументы.

Меры противодействия

IDM1018НазваниеУправление учетными записямиОписание

Внедрите аутентификацию и управление доступом на основе ролей для службы контейнера, чтобы пользователи имели минимально необходимые им привилегии. При использовании Kubernetes избегайте предоставления пользователям разрешений с метасимволами или добавления пользователей в группу system:masters, а также используйте RoleBindings вместо ClusterRoleBindings для ограничения привилегий пользователей конкретными пространствами имен.

IDM1026НазваниеУправление привилегированными учетными записямиОписание

Проследите, чтобы контейнеры не запускались по умолчанию от имени root. В средах Kubernetes следует определить стандарты безопасности модулей, которые не позволяют стручкам запускать привилегированные контейнеры, и использовать контроллер допуска NodeRestriction, чтобы запретить кублету доступ к узлам и стручкам за пределами узла, к которому он принадлежит.

IDM1035НазваниеОграничение доступа к ресурсам по сетиОписание

Ограничьте взаимодействие со службой контейнера управляемыми и защищенными каналами, такими как локальные сокеты Unix или удаленный доступ через SSH. Требуйте безопасного доступа к портам для связи с API по TLS, отключив неаутентифицированный доступ к Docker API и Kubernetes API Server. В кластерах Kubernetes, развернутых в облачных средах, используйте встроенные функции облачной платформы для ограничения диапазонов IP-адресов, которым разрешен доступ к серверу API. По возможности включите доступ к API Kubernetes по принципу "точно в срок" (JIT), чтобы установить дополнительные ограничения на доступ.

IDM1038НазваниеЗащита от выполненияОписание

По возможности используйте контейнеры только для чтения, файловые системы только для чтения и минимальные образы, чтобы предотвратить выполнение команд. По возможности используйте средства контроля приложений и ограничения программного обеспечения (например, предоставляемые SELinux), чтобы ограничить доступ к файлам, процессам и системным вызовам в контейнерах.

IDM1042НазваниеОтключение или удаление компонента или программыОписание

Удалите из контейнеров ненужные инструменты и программное обеспечение.