T1552.007: API контейнера

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

Получив доступ к API Docker, злоумышленники могут собирать журналы, содержащие учетные данные для доступа к облачным, контейнерным и другим ресурсам в этой среде. Получив достаточные разрешения, например через учетную запись службы модуля, злоумышленник может использовать API Kubernetes для извлечения учетных данных с сервера API Kubernetes. Среди них могут быть учетные данные, необходимые для аутентификации в API Docker, или секреты из компонентов кластера Kubernetes.

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

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

Существует возможность собирать учетные данные, используя API контейнеров. Так, например, для Kubernetes это возможно сделать, выполнив следующие команды: kubectl get secrets -n #{namespace} kubectl --context kind-atomic-cluster exec atomic-pod -- cat /run/secrets/kubernetes.io/serviceaccount/token Таким образом, для указанного выше случая аналитику рекомендуется выполнять мониторинг событий запуска процесса kubectl с одним из паттернов в командной строке: "get secrets", "/run/secrets/kubernetes.io/serviceaccount/token"

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

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

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

Настройте централизованное ведение журналов, регистрирующих данные об активности компонентов контейнеров и кластеров Kubernetes. Отслеживайте в журналах записи о действиях, направленных на сбор учетных данных для доступа к контейнерной и облачной инфраструктуре, в том числе о совершении вызовов API с целью изучения окружения новыми пользователями или пользователями, которые обычно этого не делают, а также о доступе к журналам Docker через API.

IDDS0002Источник и компонент данныхУчетная запись пользователя: Аутентификация с помощью учетной записиОписание

Можно обнаружить использование злоумышленниками учетных данных, например полученных из существующих учетных записей.

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

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

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

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

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

IDM1030НазваниеСегментация сетиОписание

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

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

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