Что такое Power Automate?
Служба Power Automate, ранее известная как Microsoft Flow, позволяет пользователям автоматизировать рабочие процессы между различными приложениями и сервисами. С помощью Power Automate вы можете создавать процессы («потоки») в Microsoft 365 для Outlook, SharePoint и OneDrive, чтобы автоматически открывать доступ к файлам или отправлять их, пересылать электронные письма и выполнять ряд других действий.
В то же время, используя этот мощный инструмент автоматизации повседневных процессов, злоумышленники могут автоматически осуществлять эксфильтрацию данных, взаимодействовать с серверами C2, перемещаться внутри сети и уклоняться от обнаружения средствами безопасности.
Как это работает?
Служба Power Automate включена по умолчанию для приложений Microsoft 365. Она позволяет любому пользователю создавать собственные процессы: программным путем или через интерфейс планировщика процессов.
Для создания процесса сначала нужно создать соединение. С помощью соединения процесс может получить доступ к приложению или ресурсу с использованием текущих прав пользователя.
После установки соединения и сохранения процесса процесс сразу запускается. Все действия в рамках этого процесса регистрируются для конкретного пользователя, создавшего соединение.
Это можно увидеть в следующем примере журнала с сайта.
В этом примере показан журнал автоматизированных действий, в котором поток пользователя Ringo создает ссылку для общего доступа к файлу Share_me.docx. Действия регистрируются для пользователя Ringo, поскольку соединение было создано в его учётной записи, но на самом деле выполняться автоматически.
Как могут использовать Power Automate злоумышленники?
Подобно тому, как эксфильтрацию данных можно осуществлять с помощью правил пересылки в приложениях электронной почты, процессы Power Automate позволяют извлекать не только электронные письма, но и файлы из SharePoint и OneDrive. Вы также можете эксфильтровать данные из других приложений Microsoft 365 (даже MSGraph).
Рассмотрим несколько примеров.
Эксфильтрация электронных писем
Это не правило пересылки в Outlook/Exchange, поэтому инструменты выявления и предотвращения создания правил пересылки не будут блокировать или обнаруживать такие действия.
Эксфильтрация файлов через общие ссылки
Следующий процесс создает анонимную общую ссылку для каждого файла, созданного на сайте SharePoint, к которому у пользователя есть доступ, и ОТПРАВЛЯЕТ (POST) данную ссылку с помощью вызова API на сервер злоумышленника.
Когда пользователь создаёт процесс, в котором создание файла является триггером (то есть когда создается файл, нужно выполнить действие X), процесс будет отслеживать каждый файл, создаваемый на сайте SharePoint, причем не только владельцем процесса. Процесс будет запущен, если у владельца процесса есть разрешение на просмотр файла.
В большинстве сред разрешения SharePoint очень запутаны и сложны в управлении. В результате многие пользователи имеют чрезмерный доступ к информации, которая им не нужна, что обеспечивает злоумышленникам большой радиус поражения.
Приятным бонусом является то, что если процесс останавливается на несколько дней, файлы, создание которых не было зафиксировано, включаются в процесс после его возобновления и отправляются злоумышленнику.
Создание процессов с помощью скрипта
Процессы можно создавать программным путем с помощью API. Хотя специального API Power Automate не существует, через конечные точки процессов можно опрашивать существующие соединения и создавать процессы.
Наш скрипт показывает, как злоумышленники компрометируют корпоративную электронную почту.
После компрометации учётной записи Microsoft 365 злоумышленники могут просто выполнить команду, которая будет извлекать поступающие конфиденциальные данные без необходимости ручного создания процесса Power Automate.
Следующий скрипт создает процесс под названием Email Forwarding («пересылка эл. почты») для автоматической пересылки всех входящих на почтовый ящик злоумышленника.
Затем процесс появляется в пользовательском интерфейсе с включенным статусом:
Имя процесса настраивается и может быть изменено на менее очевидное.
Вредоносные процессы можно использовать для других действий, например, для получения организационных деревьев из Delve, сбора статистики файлов SharePoint и пр.
Использование процессов во вредоносных целях через приложения Azure
Как мы отмечали в одном из наших исследований, злоумышленники могут обманом заставить пользователей установить вредоносные приложения Azure, которые выглядят как официальный код, одобренный Microsoft.
Как только пользователь устанавливает вредоносное приложение Azure, злоумышленники могут воспользоваться Power Automate, даже не имея доступа к учётным данным аккаунта.
Сначала мы создаём приложение в системе злоумышленника и отправляем ссылку жертве. Нажимая на ссылку, жертва автоматически переходит на целевую страницу предоставления согласия для приложения Azure. Когда пользователь даёт согласие, наше приложение получает необходимые разрешения для создания процесса.
Мы можем увидеть, как наше вредоносное приложение запрашивает у пользователя согласие на создание и редактирование процессов:
Приложение аутентифицирует запрос, используя действительный домен Microsoft и URL-адрес, что увеличивает вероятность успешной атаки.
В этом методе есть один нюанс: нам не удалось найти способ создания нового соединения Power Automate с помощью приложения Azure. Можно было использовать только существующие соединения, поскольку у токена приложения нет разрешений на создание соединения. Это означает, что при использовании приложений Azure для данной атаки можно охватить только пользователей, которые уже подключились к Power Automate.
Более надежным методом является применение учётных данных пользователя или токена аутентификации Power Automate. Так вы можете создавать соединения и процессы программным путем, без взаимодействия с пользователем, а также автоматизировать процессы эксфильтрации данных.
Обнаружение и предотвращение
Выше мы описали несколько векторов атаки, которые злоумышленники могут использовать для доступа к Power Automate внутри организации.
Поведенческий анализ - пожалуй, самый практичный способ защиты от эксфильтрации данных через Power Automate, поскольку он позволяет выявлять подозрительный доступ к данным и активность в электронной почте с отклонениями от базовых показателей конкретного пользователя, независимо от того, выполняются ли действия пользователем вручную, с помощью скриптов или с помощью Power Automate.
Поведенческий анализ также чрезвычайно эффективен в выявлении случаев заражения систем пользователя вредоносными приложениями, работающими в среде пользователя — ведь злоумышленникам очень сложно имитировать типичное повседневное поведение пользователя.
Мониторинг необычной аутентификации в системе Power Automate
Azure AD регистрирует каждый вход в систему в журналах входа. Эти журналы являются мощным инструментом контроля доступа к ресурсам.
Мы можем просмотреть все входы в Power Automate (так называемая служба Microsoft Flow, «служба процессов Microsoft») и получать оповещения при выявлении отклонений от нормы.
В показанном выше событии входа видно, что наш скрипт работает от имени пользователя Ringo и проходит аутентификацию в службе Microsoft Flow с помощью приложения Azure Active Directory PowerShell, что считается необычной активностью. В типичной аутентификации через пользовательский интерфейс используется приложение Microsoft Flow Portal.
Также можно выявлять другие аномальные явления, например:
Вход из мест, занесенных в черный список
Вход через специальные учётные записи администраторов
Необычное использование данных пользователем
Мониторинг создания процессов Power Automate
Мы можем напрямую просмотреть журналы процессов, чтобы получить представление о новых созданных «потоках»:
Обратите внимание, что в журналах процессов отсутствуют данные о том, что именно изменилось в процессе или какой процесс был создан через конкретное соединение. Однако эти журналы дают более точное представление о том, что происходит после аутентификации пользователя в Power Automate. Возможно, пользователю разрешено входить в систему из любого места, но не создавать из этих мест процессы.
Мониторинг создания автоматизированных процессов
Автоматические действия, выполняемые PowerAutomate, обозначаются агентом пользователя azure-logic-apps/* в журналах, как показано ниже:
Следует также отметить, что действие всегда выполняется с IP-адреса Microsoft, однако, ориентация на этот факт может привести к ложным оповещениям — ведь мы имеем дело с платформой Microsoft.
Используя этот характерный пользовательский клиент, мы можем либо напрямую получать оповещения о подозрительной активности, либо сравнивать автоматизированные действия с типичными действиями пользователя и прошлыми автоматизированными действиями для выявления аномалий.
Мониторинг приложений Azure
Использование приложений Azure для этой атаки создаёт другой набор данных в журнале по сравнению с непосредственным применением учётных данных. Разницу можно увидеть в журналах входа в Azure AD:
Для аутентификации используется приложение MicrosoftOffice, которое является нашей вредоносной программой (названной MicrosoftOffice в целях фишинга), а ресурсом выступает служба Microsoft Flow (как и раньше).
Мониторинг аутентификации в службе Flow или доступ к аутентификации исключительно для утвержденных приложений ограничивает поверхность атаки, что, в свою очередь, помогает предотвратить использование PowerAutomate.
Предотвратить эту атаку и другие потенциально разрушительные атаки может помочь мониторинг предоставляемых приложениям разрешений.
Блокировка электронных писем, пересланных из Power Automate
Прямая блокировка эксфильтрации данных с помощью электронной почты путем настройки элементов управления для коннекторов.