O que é o Power Automate?
O Power Automate, antigo Microsoft Flow, permite que os usuários automatizem fluxos de trabalho entre vários aplicativos e serviços. Com ele, você pode criar “fluxos” no Microsoft 365 para Outlook, SharePoint e OneDrive para compartilhar ou enviar arquivos, encaminhar e-mails e muito mais, tudo de maneira automática.
Esse recurso é poderoso para automação diária, mas também pode ser usado por agentes de ameaças para automatizar a exfiltração de dados, a comunicação C2 e o movimento lateral e evitar soluções de DLP.
Como isso funciona?
O Power Automate é ativado como padrão com as aplicações Microsoft 365. Ele permite que qualquer usuário crie seus próprios fluxos, por programação ou usando a UI do planejador de fluxo.
Para criar um fluxo, o usuário deve primeiro criar uma conexão, que permite que o fluxo acesse a aplicação ou o recurso usando as permissões do usuário.
Assim que a conexão for estabelecida e o fluxo for salvo, ele será executado. Qualquer atividade executada pelo fluxo será registrada pelo usuário que criou a conexão.
Um exemplo disso é o log a seguir em compliance.microsoft.com/auditlogsearch.Este exemplo é um log de uma ação automatizada em que o fluxo do usuário Ringo cria um link de compartilhamento para o arquivo “Share_me.docx”. As ações são registradas sob o usuário Ringo desde que a conexão foi criada com sua conta, mas, na realidade, elas são automatizadas.
Como os invasores exploram o Power Automate?
Semelhante à forma como as regras de encaminhamento em clientes de e-mail podem ser usadas para exfiltração, os fluxos do Power Automate podem ser usados para extrair não apenas e-mails, mas também arquivos do SharePoint e do OneDrive. Também é possível extrair dados de outras aplicações do Microsoft 365 (até mesmo o MsGraph).
Vamos ver alguns exemplos.
Extração de e-mails
Essa não é uma regra de encaminhamento no Outlook/Exchange e, portanto, as detecções e prevenções de criação de regra de encaminhamento não bloquearão nem detectarão essa ação.
Exfiltração de arquivos via links compartilhados
O fluxo a seguir cria um link de compartilhamento anônimo para cada arquivo criado no site do SharePoint ao qual o usuário tem acesso e PUBLICA o link por meio de uma solicitação de API para o servidor do invasor.
Ao criar um fluxo que usa a criação de arquivos como acionador (ou seja, quando um arquivo for criado, execute X), o fluxo monitorará cada arquivo criado no site do SharePoint, mesmo que o proprietário do fluxo não tenha criado o arquivo pessoalmente. Se o proprietário do fluxo tiver permissão para visualizar o arquivo, o fluxo será acionado.
Na maioria dos ambientes, as permissões do SharePoint são complicadas e difíceis de manter. Como resultado, muitos usuários têm acesso excessivo às informações das quais não precisam, oferecendo aos invasores um grande raio de exposição.
Ainda por cima, se o fluxo for desativado por alguns dias, as criações de arquivos perdidas serão coletadas pelo fluxo reativado e enviadas ao invasor.
Criação de fluxos com um script
Os fluxos podem ser criados por programação usando a API do fluxo. Embora não haja uma API do Power Automate dedicada, os endpoints podem ser usados para consultar conexões existentes e criar um fluxo.
Nosso script mostra a abordagem de um invasor em relação ao comprometimento do e-mail comercial.
Quando uma conta do Microsoft 365 é comprometida, os invasores podem simplesmente executar um comando que vazará os dados confidenciais, sem a necessidade de criar o fluxo do Power Automate de forma manual.
O script a seguir cria um fluxo chamado “Encaminhamento de e-mail” para encaminhar automaticamente todos os e-mails recebidos para a caixa de entrada do invasor.
O fluxo vai aparecer na UI e será ativado:
O nome do fluxo pode ser personalizado e alterado para um valor mais obscuro.
Fluxos mal-intencionados podem ser usados para outras atividades, como obter organogramas do Delve, coletar estatísticas de arquivos do SharePoint e muito mais.
Uso de fluxos via aplicações do Azure
Como discutimos em nossa pesquisa anterior, os invasores podem induzir os usuários a instalar aplicações maliciosas do Azure que parecem ser oficiais e aprovados pela Microsoft.
Depois que o usuário instala a aplicação maliciosa do Azure, um agente de ameaça pode explorar o Power Automate sem ter acesso às credenciais da conta.
Primeiro, criamos um aplicativo no nosso tenant invasor e enviamos um link para a vítima. Ao clicar no link, a vítima é direcionada automaticamente para a página inicial de consentimento da aplicação do Azure. Com o consentimento do usuário, nossa aplicação terá as permissões necessárias para criar um fluxo.
Aqui podemos ver nossa aplicação maliciosa solicitando o consentimento de um usuário para criar e editar fluxos:
A aplicação autentica a solicitação usando um domínio e um URL válidos da Microsoft, o que aumenta as chances de sucesso.
Esse método tem uma ressalva: não consegui encontrar uma maneira de criar uma nova conexão do Power Automate usando a aplicação do Azure. Só consegui usar as conexões existentes, pois o token da aplicação não tem permissão para criar uma conexão. Isso significa que o uso de aplicações do Azure para esse ataque nos limita aos usuários que já estabeleceram conexões no Power Automate.
O método mais infalível seria usar as credenciais do usuário ou um token de autenticação do Power Automate. Com esse método, você pode criar conexões e fluxos por programação, sem interação do usuário, e gerar fluxos de exfiltração automáticos da forma que quiser.
Detecção e prevenção
Os ataques que discutimos descrevem alguns vetores que os agentes de ameaças podem usar para acessar o Power Automate em uma organização.
A Varonis adiciona alertas baseados em comportamento ao Microsoft 365, que conseguem detectar acesso irregular aos dados e atividades de e-mail com base no parâmetro histórico do usuário. Isso se aplica mesmo se as ações forem executadas manualmente pelo usuário, por meio de scripts ou usando o Power Automate.
Essa talvez seja a linha de defesa mais prática contra a exfiltração do Power Automate, pois não exige que você escreva regras de detecção específicas nem busque manualmente alterações suspeitas nos endereços IP ou strings do agente do usuário.
Os alertas baseados em comportamento também são extremamente eficazes para detectar quando um usuário está infectado com malware que está operando sob o contexto do usuário. É muito difícil para os invasores emular o comportamento normal do usuário no dia a dia.
Monitoramento da autenticação irregular no recurso Power Automate
O Azure AD monitora cada login em seus logs. Essa pode ser uma ferramenta poderosa para monitorar o acesso aos recursos.
Nesse caso, podemos ver os logins feitos no recurso Power Automate (também conhecido como “Microsoft Flow Service”) e alertar quando ocorrerem irregularidades.
O evento de login acima mostra nosso script sendo executado como usuário Ringo e autenticado no Microsoft Flow Service usando a aplicação Azure Active Directory PowerShell, o que é inesperado. A autenticação regular por meio da UI usará a aplicação Microsoft Flow Portal.
Estas são outras irregularidades que você pode procurar:
- Logins de locais na lista de bloqueio
- Logins por contas de administrador dedicadas
- Uso incomum de dados por um usuário
Monitoramento de criações de fluxos do Power Automate
Podemos examinar diretamente os logs para ter uma ideia dos fluxos recém-criados:
Observe que os logs não têm dados sobre o que exatamente mudou no fluxo ou qual fluxo foi criado com qual conexão. No entanto, ainda podemos usar essas informações para ter uma visão mais precisa do que acontece depois que o usuário autentica no recurso Power Automate. Pode ser que o usuário tenha permissão para fazer login de todos os locais, mas não para criar fluxos a partir deles.
Monitoramento da atividade de fluxos automatizada
As ações automáticas realizadas pelo Power Automate são indicadas pelo User Agent “azure-logic-apps/*” nos logs, como pode ser visto aqui:
Outra coisa a notar é que a ação é sempre feita a partir de um IP da Microsoft, mas confiar nisso pode causar falsos positivos, já que estamos lidando com uma plataforma da Microsoft.
Com esse agente de usuário indicativo, podemos alertar abertamente sobre ações suspeitas ou comparar a atividade automatizada com a atividade regular do usuário e a atividade automatizada passada para encontrar irregularidades.
Monitoramento de aplicações do Azure
O uso de aplicações do Azure para esse ataque cria um rastreamento de log diferente do que o uso de credenciais direto. Podemos ver a diferença nos logs de login do Azure AD:
A aplicação usada para autenticação é a aplicação “MicrosoftOffice”, que é nossa aplicação maliciosa (chamada “MicrosoftOffice” por motivos de phishing), e o recurso é o Microsoft Flow Service (o mesmo de antes).
Monitorar ou limitar a autenticação ao serviço Flow apenas para aplicativos aprovados limitará a área de ataque e, por sua vez, ajudará a impedir a exploração do Power Automate.
Os consentimentos de monitoramento dados às aplicações também podem ajudar a evitar esse ataque e outros ataques potencialmente destrutivos.
Bloqueio de e-mails encaminhados do Power Automate
Bloqueie diretamente a exfiltração de e-mail configurando controles para conectores:
https://docs.microsoft.com/pt-br/power-platform/admin/block-forwarded-email-from-power-automate
Referências:
O que devo fazer agora?
Listamos abaixo três recomendações para reduzir os riscos de dados na sua organização:
Agende uma demonstração conosco: Veja a usabilidade de Varonis em uma sessão personalizada com base nas necessidades de segurança de dados da sua organização. Responderemos a todas as suas perguntas.
Veja um exemplo do nosso Relatório de Risco de Dados: Conheça as ameaças que podem permanecer no seu ambiente. O Relatório da Varonis é gratuito e demonstra claramente como realizar a remediação automatizada.
Siga-nos no LinkedIn, YouTube e X (Twitter): Obtenha insights detalhados sobre todos os aspectos da segurança de dados, incluindo DSPM, detecção de ameaças, segurança de IA, entre outros.