Изучение путей атак приложений OAuth в Defender for Cloud Apps (предварительная версия)

Управление рисками Microsoft Security помогает эффективно управлять областью атак и рисками раскрытия информации в вашей компании. Объединяя ресурсы и методы, пути атаки иллюстрируют сквозные пути, которые злоумышленники могут использовать для перехода от точки входа в организации к критически важным ресурсам. Microsoft Defender for Cloud Apps наблюдается увеличение числа злоумышленников, использующих приложения OAuth для доступа к конфиденциальным данным в критически важных для бизнеса приложениях, таких как Microsoft Teams, SharePoint, Outlook и т. д. Для поддержки исследования и устранения рисков эти приложения интегрируются в путь атаки и представления карты направлений атаки в Управление рисками Microsoft Security.

Предварительные условия

Чтобы приступить к работе с функциями пути атаки приложений OAuth в управлении экспозицией, убедитесь, что вы соответствуете следующим требованиям.

Обязательные роли и разрешения

Чтобы получить доступ ко всем возможностям Exposure Management, вам потребуется либо роль Unified Role-Based-Access-Control (RBAC), либо роль Entra ID. Требуется только один.

  • Управление экспозицией (чтение) (унифицированное RBAC)

Кроме того, можно использовать одну из следующих ролей Entra ID:

Разрешение Действия
Администратор безопасности (разрешения на чтение и запись)
Оператор безопасности (чтение и ограниченные разрешения на запись)
Глобальный ридер (разрешения на чтение)
Читатель сведений о безопасности (разрешения на чтение)

Примечание.

В настоящее время доступно только в коммерческих облачных средах. Данные и возможности Microsoft Security Exposure Management в настоящее время недоступны в государственных облаках США — GCC, GCC High, DoD и China Gov.

Управление критически важными активами — субъекты-служб

Субъекты-службы — это объекты идентификации, которые Microsoft Entra ID назначает приложениям, чтобы те могли проходить аутентификацию и получать доступ к ресурсам от имени приложения, а не от имени пользователя. Microsoft Defender for Cloud Apps определяет набор критически важных разрешений OAuth. Приложения OAuth с этими разрешениями считаются высокоценными ресурсами. В случае компрометации злоумышленник может получить высокие привилегии для приложений SaaS. Чтобы учесть этот риск, цепочки атак рассматривают служебные субъекты с такими разрешениями как целевые объекты.

Просмотр разрешений для критически важных ресурсов

Чтобы просмотреть полный список разрешений, перейдите на портал Microsoft Defender и выберите Параметры > Microsoft Defender XDR > правила > Критическое управление ресурсами.

Снимок экрана: страница

Поток исследования пользователя: просмотр путей атаки с участием приложений OAuth

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

Примечание.

Приложения OAuth отображаются в схеме направлений атаки только при обнаружении определенных условий.
Например, приложение OAuth может появиться в пути атаки при обнаружении уязвимого компонента с легко эксплуатируемой точкой входа. Эта точка входа позволяет осуществлять латеральное перемещение к сервисным субъектам с высокими привилегиями.

  1. Перейдите в раздел Управление рисками > Поверхность атаки > Пути атак.

  2. Фильтровать по "Тип целевого объекта: субъект-служба AAD"

    Снимок экрана службы путей атаки: добавление целевого типа «субъект»

  3. Выберите путь атаки под названием "Устройство с уязвимостями с высоким уровнем серьезности разрешает боковое перемещение к субъекту-службе с конфиденциальными разрешениями".

    Снимок экрана: имя пути атаки

  4. Нажмите кнопку Просмотреть на карте, чтобы увидеть путь атаки.

    Снимок экрана: кнопка представления на карте

  5. Выберите знак +, чтобы развернуть узлы и просмотреть подробные подключения.

    Снимок экрана: карта направлений атаки

  6. Наведите указатель мыши или выберите узлы и ребра, чтобы просмотреть дополнительные данные, например разрешения, которые имеет приложение OAuth.

    Снимок экрана: разрешения, назначенные приложению OAuth, как показано на карте направлений атаки

  7. Скопируйте имя приложения OAuth и вставьте его в строку поиска на странице Приложения.

    Снимок экрана: вкладка

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

    Снимок экрана: разрешения, назначенные приложению Oauth

  9. Необязательно. Если вы определили, что приложение OAuth должно быть отключено, его можно отключить на странице Приложения.

Сценарий пользователя, принимающего решения: приоритизация пути атаки с помощью узких мест

Для крупных организаций с многочисленными путями атак, которые не могут быть изучены вручную, рекомендуется использовать данные о путях атаки и использовать интерфейс Choke Points в качестве средства определения приоритетов. Такой подход позволяет:

  • Определите ресурсы, связанные с наиболее распространенными путями атак.
  • Принимать обоснованные решения о том, какие ресурсы следует приоритизировать для исследования.
  • Отфильтруйте данные по OAuth-приложению Microsoft Entra, чтобы узнать, какие OAuth-приложения участвуют в наибольшем числе путей атак.
  • Определите, к каким приложениям OAuth следует применять разрешения с наименьшими привилегиями.

Для начала сделайте следующее:

  1. Перейдите на страницу Пути атак > Узкие места.

    Снимок экрана со страницей «Узкие места»

  2. Выберите название узкого места, чтобы просмотреть дополнительные сведения об основных путях атаки, такие как название, точка входа и цель.

  3. Нажмите «Показать область влияния», чтобы подробнее изучить узкое место на карте поверхности атаки. Снимок экрана: кнопка представления радиуса взрыва

Если узким местом является приложение OAuth, продолжите расследование, выполнив поиск приложения по имени на странице Applications, просмотрев назначенные ему разрешения и сведения об использовании, а также при необходимости отключив приложение.

Анализ карты направлений атак и поиск с помощью запросов

На карте направлений атаки можно увидеть подключения из принадлежащих пользователю приложений, приложений OAuth и субъектов-служб. Эти данные о связях доступны в:

  • Таблица ExposureGraphEdges (показаны подключения)

  • Таблица ExposureGraphNodes (содержит свойства узла, такие как разрешения)

Используйте следующий запрос Advanced Hunting, чтобы выявить все приложения OAuth с критически важными разрешениями. Этот запрос объединяет таблицы ExposureGraphNodes и ExposureGraphEdges, чтобы найти регистрации приложений OAuth в Microsoft Entra, которые могут проходить аутентификацию как субъекты-службы, классифицируемые как критические (уровень критичности 0), и имеют разрешения Microsoft Graph. Используйте его, чтобы узнать, какие приложения OAuth в клиенте имеют высокий уровень привилегий, и определить приоритеты приложений для проверки:

let RelevantNodes = ExposureGraphNodes
| where NodeLabel == "Microsoft Entra OAuth App" or NodeLabel == "serviceprincipal"
| project NodeId, NodeLabel, NodeName, NodeProperties;
ExposureGraphEdges
| where EdgeLabel == "has permissions to" or EdgeLabel == "can authenticate as"
| make-graph SourceNodeId --> TargetNodeId with RelevantNodes on NodeId
| graph-match (AppRegistration)-[canAuthAs]->(SPN)-[hasPermissionTo]->(Target)
        where AppRegistration.NodeLabel == "Microsoft Entra OAuth App" and
        canAuthAs.EdgeLabel == "can authenticate as" and
        SPN.NodeLabel == "serviceprincipal" and
        SPN.NodeProperties["rawData"]["criticalityLevel"]["criticalityLevel"] == 0 and
        hasPermissionTo.EdgeLabel == @"has permissions to" and
        Target.NodeLabel == "Microsoft Entra OAuth App" and
        Target.NodeName == "Microsoft Graph"
        project AppReg=AppRegistration.NodeLabel,
         canAuthAs=canAuthAs.EdgeLabel, SPN.NodeLabel, DisplayName=SPN.NodeProperties["rawData"]["accountDisplayName"],
         Enabled=SPN.NodeProperties["rawData"]["accountEnabled"], AppTenantID=SPN.NodeProperties["rawData"]["appOwnerOrganizationId"],
         hasPermissionTo=hasPermissionTo.EdgeLabel, Target=Target.NodeName,
         AppPerm=hasPermissionTo.EdgeProperties["rawData"]["applicationPermissions"]["permissions"]
| mv-apply AppPerm on (summarize AppPerm = make_list(AppPerm.permissionValue))
| project AppReg, canAuthAs, DisplayName, Enabled, AppTenantID, hasPermissionTo, Target, AppPerm

Дальнейшие действия

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