Agentes de IA e credenciais roubadas da ConnectWise usados para sondar mais de 2.250 tenants do Microsoft 365
Um ator de ameaças alinhado com um Estado combinou um framework de agentes de IA com credenciais roubadas de aplicações ConnectWise para tentar aceder a mais de 2.250 tenants do Microsoft 365. A campanha não dependeu de uma vulnerabilidade nova da Microsoft. Apoiou-se em permissões que os clientes já tinham concedido a aplicações ConnectWise em que confiavam.
O que aconteceu
A Microsoft atribui a atividade ao Storm-0940, um grupo que acompanha como alinhado com os interesses do Estado chinês, e indica que os operadores usaram um framework de penetration testing multiagente chamado ARTEX para acelerar o reconhecimento, as tentativas de autenticação e a persistência dentro dos tenants na cloud. O ARTEX foi concebido para encadear tarefas desde a descoberta inicial até à exfiltração de dados, mantendo um mapa ligado dos ativos e fraquezas que vai encontrando.
O ponto de entrada foi a identidade de aplicação. Em vez de iniciarem sessão como utilizadores, os atacantes autenticaram-se como aplicações ConnectWise com credenciais obtidas numa fase anterior da campanha. Como os inícios de sessão vinham de um principal de aplicação, não houve introdução interativa de palavra-passe nem pedido de autenticação multifator que uma pessoa pudesse recusar. O sistema de autenticação da Microsoft não foi quebrado. Foi usado exatamente como foi desenhado, com as chaves de outra pessoa.
Fases anteriores da mesma campanha já tinham produzido inícios de sessão não autorizados em 173 tenants de parceiros e clientes, depois do comprometimento de credenciais de backup da ConnectWise. O número de 2.250 conta tenants visados, não tenants violados.
Automatização à velocidade da máquina
A maior parte da atividade concentrou-se numa janela inferior a 14 horas, a 15 de outubro. Uma única varredura percorreu quase 1.000 tenants por ordem crescente de identificador. Rajadas separadas dispararam cerca de 100 pedidos de token falhados em dez segundos, o que aponta para workers paralelos a correr sem parar para avaliar cada resposta.
A prova mais reveladora é a forma como as ferramentas se adaptaram entre execuções. Depois de um carregamento de certificado falhar por a impressão digital não coincidir, uma nova execução arrancou 55 segundos mais tarde com lógica de repetição adicionada. Repetiu ao fim de cerca de 3,5 e 7,1 segundos, levou depois a sequência corrigida para outro tenant e adicionou ambas as chaves numa só passagem. Quando uma tentativa de remoção foi negada, a ferramenta recorreu a atribuir a função Privileged Role Administrator a um principal irmão e apagou o principal de serviço original minutos depois.
Dentro dos tenants, foram adicionados, removidos e restaurados segredos, a par de alterações em funções privilegiadas. Num caso, uma identidade de aplicação do Teams atribuiu a si própria a função Global Administrator, uma ilustração clara de como o acesso de uma aplicação de confiança se pode transformar em controlo administrativo.
Nem tudo pareceu inteligente. Depois de um principal de serviço do Teams ter sido apagado, os pedidos continuaram a chegar a cada quatro a oito segundos durante mais 22 minutos, um comportamento mais próximo de scripts sem supervisão ou tarefas em fundo do que de um operador a reagir ao resultado. Apenas pelo comportamento, a confiança de que um agente de IA esteve envolvido é baixa a média. Sobe para média ou alta apenas quando se incorpora a atribuição da Microsoft, e vale a pena manter essa reserva: as provas descrevem atividade maliciosa de aplicações e ferramentas de ataque, não uma família de malware recém-identificada.
Porque é que importa
Três coisas tornam esta campanha desconfortável para quem defende.
- As identidades de aplicação contornam controlos pensados para pessoas. A MFA, os pedidos de acesso condicional e os alertas centrados no utilizador pouco fazem quando o ator é uma aplicação registada legitimamente com credenciais válidas.
- A visibilidade é reduzida. Os registos de auditoria do Entra não captam leituras do Microsoft Graph, e nenhuma das vítimas conhecidas tinha o registo de atividade do Graph ativado. Um início de sessão bem-sucedido não permite, por isso, saber o que foi lido ou levado. A própria Microsoft separa três categorias: tenants visados, inícios de sessão bem-sucedidos e acesso confirmado a dados.
- Os números são fáceis de interpretar mal. Uma fase anterior de password spray da campanha registou mais de 151.000 inícios de sessão falhados contra 327 contas em oito organizações, com um pico de 2.900 falhas por minuto. Esse ritmo pertence ao spray, não a uma contagem de inícios de sessão bem-sucedidos na ConnectWise.
O que fazer
- Crie alertas para aplicações que se concedem poder a si próprias. Qualquer principal de serviço que atribua a si mesmo Global Administrator ou Privileged Role Administrator, ou que adicione credenciais inesperadas, merece uma análise imediata.
- Defina uma linha de base para as identidades de fornecedores. Conheça o que as suas aplicações ConnectWise e de outros terceiros fazem normalmente e trate como incidentes os desvios de IP de origem, user agent ou cadência de pedidos.
- Procure entre tenants, não dentro de um só. Uma atividade que parece menor num único ambiente torna-se uma campanha evidente quando correlacionada entre clientes ou departamentos.
- Siga as orientações de contenção da Microsoft. Mantenha as ligações afetadas desativadas até à publicação das orientações oficiais de restauro, preserve as provas antes de apagar aplicações e reveja credenciais, permissões e atribuições de funções. Remover a via de acesso original pode deixar credenciais plantadas noutro lado.
- Ative o registo de atividade do Microsoft Graph onde o licenciamento o permitir e investigue a atividade de caixas de correio e ficheiros em conjunto com as alterações de identidade.
Indicadores de comprometimento
Os indicadores estão neutralizados com [.]. Reative-os apenas dentro de ferramentas controladas, como o seu SIEM ou a sua plataforma de threat intelligence.
| Tipo | Indicador | Contexto |
|---|---|---|
| IP | 144.172.64[.]128 | Inícios de sessão de aplicações e atividade Graph |
| IP | 144.172.64[.]99 | Password spraying entre tenants, 10–14 de outubro |
| IP | 194.165.16[.]21 | Possível ligação através de um user agent reutilizado |
| IP | 144.172.64[.]60 | Assinalado tanto pela ConnectWise como pela Microsoft |
| User agent | Python-urllib/3.12 | Ferramentas de enumeração e escalada |
| User agent | curl/7.88.1 | Consistente com ferramentas em contentores |
| User agent | python-requests/2.31 e 2.31.0 | Varreduras dirigidas |
| User agent | python-requests/2.34.2 | Telemetria de password spray |
| User agent | azure-toolkit/1.0 | Listado pela Microsoft, não visto na telemetria das vítimas |
Seja qual for o grau real de envolvimento da IA, a lição defensiva não muda: a confiança que concede a aplicações de terceiros faz parte da sua superfície de ataque. Os nossos serviços de penetration testing cobrem a camada de identidade do Microsoft 365, incluindo registos de aplicações, permissões de principais de serviço e consentimentos concedidos, para que o acesso sobreprivilegiado de fornecedores seja encontrado e removido antes que as chaves roubadas a outra pessoa o transformem em controlo administrativo.
