T1528: Кража токена доступа к приложению

Злоумышленники могут украсть токены доступа к приложениям и использовать их для доступа к удаленным системам и ресурсам.

Токены доступа к приложениям используются для отправки авторизованных запросов к API от имени пользователя или службы, обычно для доступа к ресурсам в облачных, контейнеризованных и SaaS-средах. Злоумышленники, похитившие токены API учетных записей в облачных и контейнерных средах, могут получать доступ к данным и выполнять различные действия, используя разрешения этих учетных записей, в том числе для повышения привилегий и дальнейшей компрометации среды.

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

Кража токенов может осуществляться и с помощью методов социальной инженерии — в этом случае для получения доступа может потребоваться действие пользователя. Одним из распространенных фреймворков авторизации, выдающих пользователям токены для доступа к системам, является OAuth. Приложение, которому требуется доступ к облачным службам или защищенным API, может получить его с помощью OAuth 2.0 через различные протоколы авторизации. Примером часто используемой последовательности действий может служить процесс выдачи кода авторизации (Authorization Code Grant) в решениях Microsoft. Токен доступа OAuth позволяет стороннему приложению взаимодействовать с ресурсами, содержащими пользовательские данные, без получения учетных данных пользователя.

Злоумышленники могут использовать авторизацию OAuth, создав вредоносное приложение для получения доступа к ресурсам с помощью токена OAuth целевого пользователя. Злоумышленникам нужно будет зарегистрировать это приложение с помощью сервера авторизации (например, платформы удостоверений Microsoft), используя портал Azure, среду разработки Visual Studio, интерфейс командной строки, PowerShell или вызовы REST API. Затем они могут использовать целевой фишинг со ссылкой, чтобы убедить целевого пользователя предоставить доступ приложению. После получения токена доступа OAuth приложение может получить потенциально долгосрочный доступ к функциям учетной записи пользователя с помощью токена доступа к приложению.

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

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

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

Администраторам следует настроить мониторинг для автоматической выдачи оповещений при выполнении определенных критериев политики. Например, с помощью брокера безопасного доступа в облако (CASB) администраторы могут создать политику "Разрешения приложений высокой степени серьезности", которая выдает предупреждения, если приложения запрашивают разрешения высокой степени серьезности или отправляют запросы на разрешения для слишком большого количества пользователей. Аналитики служб безопасности могут искать вредоносные приложения с помощью инструментов, представляемых CASB, поставщиком удостоверений или поставщиком ресурсов (в зависимости от платформы). Например, они могут искать приложения, авторизованные для небольшого числа пользователей либо запрашивающие высокорисковые разрешения или разрешения, не соответствующие их цели, а также приложения с давними последними авторизациями. Конкретное приложение можно изучить с помощью его журнала активности, где отображаются выполненные им действия. Однако некоторые из них могут быть ошибочно записаны как действия пользователя. Магазины приложений могут оказаться полезными ресурсами для дальнейшего изучения подозрительных приложений. Администраторы могут настроить различные журналы и использовать инструменты аудита для отслеживания действий, совершаемых при доступе по протоколу OAuth 2.0. Например, с помощью аудиторских отчетов администраторы могут обнаружить действия по повышению привилегий (например, создание ролей или изменение политик), которые могут выполняться после получения первоначального доступа.

IDDS0026Источник и компонент данныхActive Directory: Изменение объекта Active DirectoryОписание

Отслеживайте в журналах аудита M365 операции по добавлению пользователям назначений ролей приложений и (или) предоставлению приложениям согласия на взаимодействие с рабочими нагрузками Azure Active Directory.

ПРИМЕЧАНИЕ. Схожие события создаются в журналах аудита Azure AD (Entra ID).

Анализ 1. Похищенный токен доступа

source="*Azure:m365" workload == “AzureActiveDirectory” AND (operation == “Add app role assignment grant to user” OR operation == “Consent to application”)

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

IDM1021НазваниеОграничения для веб-контентаОписание

Администраторы могут блокировать согласие конечного пользователя на использование приложений OAuth, запрещая пользователям авторизовать сторонние приложения через OAuth 2.0 и принудительно требуя согласие администратора на все запросы. Они также могут блокировать регистрацию приложений конечными пользователями, чтобы снизить риск. Для блокировки приложений можно также использовать Cloud Access Security Broker.

Azure предлагает некоторые параметры корпоративных политик на Azure Management Portal, которые могут быть полезны:

Чтобы запретить пользователям регистрировать новые приложения, можно установить для параметра "Users -> User settings -> App registrations: Users can register applications" значение "no". Для параметра "Enterprise applications -> User settings -> Enterprise applications: Users can consent to apps accessing company data on their behalf" можно установить значение "no", чтобы запретить пользователям соглашаться на запуск сторонних многотенантных приложений.

IDM1047НазваниеАудитОписание

Администраторы должны проверять все облачные и контейнерные учетные записи, чтобы убедиться в их необходимости и в том, что предоставленные им разрешения соответствуют действительности. Кроме того, администраторы должны провести аудит всех приложений OAuth и предоставленных им разрешений на доступ к данным организации. Это должно быть сделано во всех приложениях, чтобы установить базовый уровень, а затем периодически проводить аудит новых или обновленных приложений. Подозрительные приложения должны быть проверены и удалены.

IDM1017НазваниеОбучение пользователейОписание

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

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

Обеспечьте управление доступом на основе ролей, чтобы назначать учетным записям минимальные необходимые привилегии. Брокер безопасности доступа к облаку (CASB) можно использовать для настройки политик использования и управления правами пользователей облачных приложений, чтобы предотвратить доступ к токенам доступа приложений. В приложениях Kubernetes установите настройку "automountServiceAccountToken: false" в спецификации YAML для модулей, которым не необходим доступ к токенам служебных учетных записей.