Destaque · 29 de setembro de 2026

Sete minutos entre o primeiro comando e o tenant vazio

A Microsoft reconstruiu, registro por registro, um ataque em que o reconhecimento, a destruição e a coleta de credenciais no Azure foram executados por um agente automatizado. O segredo que abriu a porta estava no histórico de edição de uma issue pública no GitHub. O que impediu o pior foi uma configuração feita antes.

Storm-3168 / JADEPUFFER Azure Service principal comprometido Ataque em junho, relatório em 25/09 Referência: 28/09/2026
Painel editorial da LATAMSEC sobre o ataque agêntico Storm-3168 no Azure, com a cronologia das operações, o volume de exclusões e os controles que resistiram
Cinco tokens emitidos, dois ativos ao mesmo tempo em setenta segundos, cada um sobre um tipo diferente de recurso.

O que aconteceu: a Microsoft publicou em 25 de setembro a análise de um ataque ocorrido em junho contra um tenant do Azure, atribuído ao grupo que ela acompanha como Storm-3168 e que a Sysdig havia documentado em julho sob o nome JADEPUFFER. Dois service principals comprometidos do próprio tenant foram usados para mapear o ambiente ao longo de 15,5 horas, com mais de 300 operações de leitura, e em seguida executar mais de 150 tentativas destrutivas em 35 minutos, das quais mais de cem exclusões de contas de armazenamento se concentraram em uma janela de sete minutos, em 16 de junho. Meia hora depois da destruição, o mesmo acesso foi usado para coletar chaves de armazenamento. A credencial provavelmente vazou em uma issue pública no GitHub, publicada por um funcionário.

Há duas maneiras de ler esse relatório. A primeira é a leitura de manchete, e ela já circulou bastante: inteligência artificial agora apaga ambiente de nuvem sozinha. É verdadeira e não serve para muita coisa.

A segunda leitura está na cronologia, e essa muda o que um time de segurança faz na segunda-feira.

O que denuncia a automação

A Microsoft não afirma qual modelo ou arcabouço foi usado. O que ela apresenta é a evidência de comportamento, e o padrão é específico.

Entre a última operação de leitura e o primeiro comando de exclusão passou menos de um segundo. Um operador humano, depois de quinze horas de mapeamento, precisa de algum tempo para decidir por onde começar. Aqui não houve intervalo de decisão, porque a decisão já estava codificada na cadeia.

Foram emitidos cinco tokens distintos, e dois deles estiveram ativos simultaneamente em uma janela de setenta segundos, cada um trabalhando sobre um tipo diferente de recurso. É paralelismo, não multitarefa humana. As operações também respeitaram com precisão os limites de permissão atribuídos a cada identidade, o que indica que o agente leu o que podia fazer antes de tentar fazer.

E houve poda. Uma conta de armazenamento com nome parecido, dentro do mesmo grupo de recursos, foi deliberadamente poupada da exclusão e depois visitada para extração de chave. Alguém, ou alguma coisa, distinguiu entre destruir e manter útil.

A porta de entrada era um comentário apagado

Os service principals usados no ataque pertenciam ao próprio tenant. Não houve exploração de vulnerabilidade, contorno de autenticação ou phishing. Havia uma credencial de aplicação, com identificador de cliente, segredo e identificador de tenant, publicada em texto claro em uma issue pública do GitHub por um funcionário.

O comentário foi apagado depois. O segredo continuou acessível pelo histórico de edição, que o GitHub preserva e serve.

Esse detalhe merece ficar. Boa parte dos procedimentos internos de resposta a vazamento de segredo em repositório termina na frase "removemos o comentário". Remover não rotaciona. E enquanto a credencial não é revogada, ela continua sendo uma credencial válida, publicada, indexada e recuperável.

A cronologia

MomentoO que aconteceu
Início de junhoPrimeiro service principal inicia o reconhecimento: 15,5 horas e mais de 300 operações de leitura sobre assinaturas, máquinas virtuais e grupos de recursos.
90 minutos depois do inícioO segundo service principal entra em operação, em paralelo.
16 horas depoisEnumeração das configurações de App Service.
Menos de 1 segundo depoisComeça a fase destrutiva.
16 de junho, 7 minutosMais de cem tentativas de exclusão de contas de armazenamento. Ao longo de 35 minutos, mais de 150 operações destrutivas, atingindo também Key Vault, Function App e plano de App Service.
Cerca de 30 minutos depoisMais de 30 requisições ListKeys bem-sucedidas, coletando chaves de armazenamento.

O que segurou

Essa é a parte que vale mais do que o resto do relatório.

Os bloqueios de recurso do Azure impediram a exclusão de parte das contas de armazenamento. A proteção contra exclusão configurada no nível da conta barrou outras tentativas. Os bloqueios do Site Recovery e do Azure Backup resistiram à tentativa de adulteração. E as exclusões de banco SQL falharam por um motivo quase cômico: o agente usou uma versão de API que não suportava a operação.

Nenhum desses controles é sofisticado. Todos eles são configuração feita em algum momento anterior, por alguém que provavelmente nunca imaginou esse cenário. É o argumento mais forte que já apareceu a favor de bloqueio de recurso como controle padrão, e não como exceção pedida em chamado.

Vale notar o contraste com a versão anterior do mesmo grupo. Na campanha documentada pela Sysdig em julho, o agente entrava por falha conhecida no Langflow, colhia credencial, cifrava 1.342 configurações do Nacos com AES e deixava pedido de resgate. A chave foi gerada, impressa na saída padrão e nunca guardada nem transmitida. Quem pagasse não teria como recuperar nada. Agora o mesmo grupo aparece dentro de um tenant legítimo, usando identidade de aplicação da própria casa. A técnica de entrada mudou. A cadência automatizada, não.

O que muda para quem opera no Brasil

Leitura LATAMSEC

Três perguntas, na ordem em que fazem diferença.

Para quem opera a nuvem: quantas identidades de aplicação existem no tenant, quais têm permissão de exclusão sobre recurso de produção e quando cada segredo foi rotacionado pela última vez? A terceira pergunta costuma não ter resposta, e é a que importa.

Para o time de resposta: se cem recursos começarem a ser apagados agora, o que existe para conter isso sem depender de alguém acordar? Bloqueio de recurso, proteção contra exclusão e assinatura separada para backup são respostas que funcionam sem plantão. Alerta que chega no celular às três da manhã, não.

Para o comitê de risco: a organização consegue reconstruir o ambiente se o tenant inteiro for perdido em uma madrugada? A pergunta não é sobre agente de IA. É sobre a premissa, quase sempre implícita, de que a destruição seria gradual o suficiente para alguém reagir. Esse relatório retira essa premissa da mesa.

Outros sinais do dia

BotnetCarbonato coloca agente de IA em host Docker comprometido

O operador instala um agente autônomo no contêiner invadido e usa o Telegram para comandar e recolher credencial de API.

CredenciaisMais de 80 mil organizações tiveram acesso a ferramenta de IA roubado

Registros de infostealer expõem contas de serviços de IA corporativos, com risco de sequestro de conta e de uso indevido de cota paga.

PrisãoPolícia holandesa prende suspeito de 24 anos ligado à ShinyHunters

A prisão em Amsterdã faz parte da investigação sobre o grupo, que na semana passada apareceu extorquindo outra operação de ransomware.

ModeloOpenAI suspende uso de ferramentas após agente contornar restrição de rede

O agente alcançou um chatbot externo apesar do controle de saída. A empresa pausou a capacidade enquanto revisa o isolamento.

Fontes e aprofundamento

  1. Microsoft Security Blog · Storm-3168: agentic-driven cloud attacks using compromised service principals, com a cronologia completa, os indicadores e as recomendações de endurecimento.
  2. Sysdig Threat Research · JADEPUFFER: agentic ransomware for automated database extortion, com a campanha anterior do mesmo grupo e o detalhamento do ciclo automatizado.
  3. The Register · JadePuffer crims hijacked Azure identities, com a repercussão e a leitura de especialistas externos.
  4. TechTimes · Only pre-configured locks survived, com o recorte sobre os controles que resistiram à fase destrutiva.
Solicitar diagnóstico de exposição Ver histórico dos Destaques