O ficheiro que nunca chegou a ser aberto
O investigador plantou um isco. Um único ficheiro, pousado num repositório de teste, que ninguém pediu ao assistente para abrir e que o assistente nunca referiu: um canário. Depois pôs o tráfego a passar por um proxy e ficou a ver o que o Grok Build, a CLI de programação da xAI, enviava mesmo para casa. O canário reapareceu no pacote intercetado. Tinha saído da máquina sem alguma vez ter sido lido.
A análise publicada ao tráfego da versão 0.2.93 descreve dois canais separados. O primeiro é o que qualquer pessoa espera de um assistente de programação na nuvem: um canal ligado ao turno do modelo, que transporta os ficheiros que o agente lê de facto, para poder responder. O segundo é um canal de armazenamento em segundo plano, que envia uma cópia de todo o espaço de trabalho para um bucket de armazenamento, tenha o agente olhado para esses ficheiros ou não.
A descoberta está na distância entre os dois. Num repositório de teste de 12 gigabytes, o canal do turno do modelo moveu cerca de 192 kilobytes. O canal em segundo plano moveu 5,10 gibibytes, em 73 blocos de cerca de 75 megabytes cada um. É uma diferença de cerca de 27 800 vezes. Um canal estava a fazer o trabalho. O outro estava a copiar o edifício.
Entre os ficheiros que saíram estava um .env sob controlo de versões, o ficheiro em que os programadores guardam, por convenção, exatamente aquilo que nunca pode viajar: chaves de API, palavras-passe de bases de dados. Saiu na íntegra e sem qualquer ocultação.
O controlo no ecrã não era o controlo no fio
Todas as ferramentas de programação com IA trazem hoje um botão que diz, numa versão ou noutra, "ajude a melhorar o modelo". É o controlo sobre o qual o departamento de compras pergunta, aquele que o encarregado da proteção de dados escreve na avaliação de impacto e aquele para onde um responsável de engenharia aponta quando alguém quer saber se o código está seguro.
O investigador desligou-o. Depois foi ver o que o servidor achava disso. O endpoint das definições continuava a devolver trace_upload_enabled como true. Os envios prosseguiam.
Vale a pena separar esta parte do título. A falha não é um assistente de programação enviar código para um servidor, que é a premissa inteira de um assistente na nuvem e a razão pela qual se leem os termos antes de instalar um. A falha é que o controlo do consentimento e o caminho dos dados nunca chegaram a estar ligados um ao outro. O botão governava o treino do modelo. O envio corria por outro tubo, e nada do que estava no ecrã lá chegava.
Um controlo que não controla coisa nenhuma é pior do que nenhum controlo, porque a equipa que o vê deixa de procurar.
A correção do lado do servidor é a verdadeira descoberta
A 13 de julho de 2026 os envios pararam. O que é instrutivo é a forma. Não houve nova versão do cliente, não houve mudança de número, não houve entrada no changelog para os utilizadores lerem e aprovarem. O mesmo binário 0.2.93 simplesmente deixou de fazer pedidos de armazenamento, porque o servidor passou a responder com uma nova opção que desativava o envio do código. Elon Musk afirmou que os dados já enviados seriam, palavras dele, "completa e totalmente eliminados".
Releia essa sequência do ponto de vista da governação. O comportamento do software nos portáteis dos seus programadores foi alterado à distância, pelo fornecedor, sem tocar no artefacto que aprovou. O que significa que podia ter sido alterado no sentido contrário exatamente da mesma maneira, e do lado da empresa teria parecido igual.
É esta a lição estrutural, e vai muito além da xAI. Se o comportamento de uma ferramenta com os dados é determinado por opções do lado do servidor, então rever o cliente uma vez diz o que ele fazia no dia em que foi visto. Não diz o que faz agora. Fixar uma versão, ler as notas de lançamento e dar a aprovação é um processo feito para software que traz o seu comportamento dentro do binário. A maior parte das ferramentas de IA já não o faz.
A xAI não publicou por que motivo os envios existiam, durante quanto tempo os dados foram conservados, quem lhes conseguia chegar, nem quantos utilizadores foram afetados. São essas quatro respostas que um cliente precisa de ter para dimensionar o incidente, e a sua ausência é, por si só, informação.
O que uma equipa europeia deve agora aos seus clientes
Comece pela hipótese que sai mais barata se estiver errada: trate como divulgado todo o segredo que alguma vez esteve num repositório aberto com o Grok Build. Troque chaves de API, credenciais de bases de dados, chaves de assinatura e tokens. Faça-o com base nos repositórios que foram abertos, e não nos ficheiros que julga que o assistente leu, porque o sentido inteiro da descoberta é que esses dois conjuntos não são o mesmo.
Depois, veja o que mais estava nesses repositórios. Código-fonte, por si só, é um problema comercial. Dados pessoais, ou credenciais que dão acesso a sistemas que os guardam, são um problema jurídico. Ao abrigo do RGPD, um fornecedor de IA que trata o seu repositório por sua instrução é um subcontratante, e uma cópia desse repositório a aterrar num bucket de armazenamento fora da finalidade acordada é uma divulgação que tem de avaliar. O prazo para notificar a CNPD conta-se a partir do momento em que teve conhecimento do facto, e a correção feita pelo fornecedor não o reinicia.
As entidades essenciais e importantes ao abrigo da NIS2 devem tratar isto como um incidente na cadeia de fornecimento e registá-lo como tal, tendo o CNCS como referência nacional, porque é exatamente isso que ele é: uma falha no produto de um fornecedor que levou os seus dados para um sítio que não escolheu.
Nada disto exige certezas sobre o que a xAI fez com os dados. Exige apenas reconhecer que, neste momento, não consegue provar que não teve importância.
Como comprar uma ferramenta de programação com IA depois disto
A mudança útil não é a proibição. As equipas que proíbem os assistentes de programação com IA acabam quase sempre por descobrir que os seus programadores instalaram um à mesma, e que agora já ninguém está a registar nada. A mudança útil é deixar de tratar o cliente como a fronteira.
Faça três perguntas a um fornecedor antes de a próxima ferramenta entrar num portátil. Com que endpoints é que ela fala, e pode isso ser visto na rede da sua empresa em vez de na documentação do fornecedor. Pode o servidor dele alterar aquilo que o cliente já instalado envia sem lançar uma nova versão e, se pode, o que é que o avisa quando isso acontece. Se uma definição estiver desligada no tenant da sua empresa, qual é a representação dessa definição do lado do servidor, e deixam-no verificá-la.
Depois, torne as respostas testáveis em vez de contratuais. Um proxy e uma tarde produziram esta descoberta. É um controlo mais barato do que qualquer questionário de garantia, e é o único que mede comportamento em vez de intenção. Os segredos, entretanto, não deviam sequer estar num repositório que um agente de programação consegue ver: a injeção de variáveis de ambiente em tempo de execução e um cofre de segredos gerido transformam esta classe de incidentes de uma violação de dados num encolher de ombros.
As ferramentas valem a pena. O que não vale a pena é um processo de revisão que lê o rótulo e nunca olha para o fio.
Leia a seguir: Os preços das bolachas sobem em cada nó avançado | Nenhum laboratório de IA passou de um C+ em segurança



