A permissão era para backups
Em 2 de outubro a Apple anunciou novos controles sobre o Acesso Total ao Disco do macOS, um ajuste criado para que apps de backup funcionem, porque “à medida que os agentes de IA se tornam mais capazes e autônomos, os riscos associados a esse nível de acesso vão crescer substancialmente”. O estopim foram o Muse, da Meta, que segundo um jornalista sincronizou seu banco de dados do Mensagens até a linha 187.462, e uma falha no app do ChatGPT para Mac encontrada por Patrick Wardle. Um agente de código pode herdar o mesmo alcance do terminal que o iniciou, e os segredos de desenvolvedor que ele consegue ler nunca estiveram atrás dessa permissão. No Bromure Agentic Coding o agente não é um processo do Mac: ele roda em uma VM Linux que contém as pastas que você compartilhou e credenciais substitutas.
A Apple criou o Acesso Total ao Disco para que apps de backup pudessem ler tudo. Hoje os agentes de IA pedem o mesmo alcance, e no Mac de um desenvolvedor muitas vezes o recebem do terminal sem pedir nada.
Em 2 de outubro, a Apple publicou uma nota curta em sua página de notícias para desenvolvedores intitulada Updates to Full Disk Access in macOS. Ela explica por que o ajuste existe: “O Acesso Total ao Disco contorna em grande parte esses controles para permitir que apps de backup funcionem corretamente no Mac.” Depois descreve o que alguns desenvolvedores fizeram com ele: “expor tudo em seus sistemas, incluindo arquivos, e-mails, mensagens e até o histórico de navegação, sem o pleno conhecimento e entendimento dos usuários”.
A Apple vai adicionar controles para que os usuários que quiserem conceder esse acesso “só possam fazê-lo com uma ação muito explícita”. Também deu um motivo para agir agora: “À medida que os agentes de IA se tornam mais capazes e autônomos, os riscos associados a esse nível de acesso vão crescer substancialmente.”
A Apple não deu data e não disse o que acontece com as autorizações que já existem. A nota deixa claro, porém, o que a Apple pensa do Acesso Total ao Disco nas mãos de um agente.
Duas histórias em duas semanas
A cobertura da nota, a começar pelo TechCrunch, a ligou a dois incidentes.
O Muse e o banco de dados do Mensagens. Em 19 de setembro, o colunista da Inc. Jason Aten relatou que o agente Muse, da Meta, no Mac dele, enviou uma notificação sugerindo uma coluna baseada em uma conversa que ele tinha acabado de ter com o coapresentador do seu podcast. Ele diz que havia recusado ao Muse o acesso ao Mensagens, mas descobriu que o Muse tinha sincronizado seu banco de dados do Mensagens até a linha 187.462, enquanto os próprios ajustes do Muse mostravam o Acesso Total ao Disco desligado. A Meta contesta o relato. David Singleton, do Meta Superintelligence Labs, disse que o Muse só pode ler o Mensagens depois de “três etapas separadas de permissões no nível do aplicativo e proteções embutidas no nível do sistema macOS” que “não podem ser contornadas mesmo que o aplicativo Muse tivesse um bug”. O próprio Muse disse a Aten que vinha sincronizando suas “notificações do dispositivo”.
Patrick Wardle, da Objective-See Foundation, resumiu o que a permissão significa quando um app a obtém: “qualquer arquivo (que não seja do root) pode ser lido, histórico de navegação, cookies do navegador, chats etc.”
O app do ChatGPT para Mac. Na mesma semana, a Wired noticiou uma falha que Wardle encontrou no app do ChatGPT da OpenAI para macOS, CVE-2026-100754. O app decidia em quais processos locais confiar pelas assinaturas de código e pela ascendência dos processos. Um interpretador de scripts confiável podia receber entrada não confiável, o que deixava código comum já rodando no Mac se infiltrar em uma cadeia de processos aceita e controlar os recursos confiáveis do app: o histórico de chats e integrações conectadas, como sessões do navegador. A OpenAI corrigiu a falha no build 26.924.20706, em produção desde 25 de setembro. Ninguém relatou exploração real.
As duas histórias partem da mesma premissa. Um agente no Mac roda como você, e tudo o que ele consegue ler, qualquer código que assuma o controle do agente também consegue.
O terminal já tinha dito sim
O Muse pediu o Acesso Total ao Disco pelos Ajustes do Sistema, como o modelo da Apple espera. Um agente de código de terminal não pede nada e roda com as autorizações do terminal.
O macOS verifica as permissões de privacidade em relação ao app responsável,
que, para uma ferramenta de linha de comando, é o terminal que a iniciou. Muitos
desenvolvedores deram Acesso Total ao Disco ao Terminal, ao iTerm ou ao seu
editor anos atrás, para se livrar dos pedidos que find, rsync ou um script
de backup disparariam. Todo processo iniciado naquela janela herda a
autorização. Isso inclui Claude Code, Codex e Gemini CLI, além de cada script
postinstall do npm install, cada servidor MCP que eles iniciam e cada comando
de uma linha que um README os convenceu a rodar.
Nessa configuração, os arquivos que a Apple listou estão ao alcance do agente e de tudo o que o agente executa:
~/Library/Messages/chat.db, o histórico do Mensagens que o Muse foi acusado de sincronizar~/Library/Mail, todas as caixas de correio- o histórico e os cookies do Safari, em
~/Library/Safarie no seu contêiner - Notas, bibliotecas do Fotos e os contêineres privados de outros apps
Os segredos nunca estiveram atrás do pedido
A mudança da Apple é a certa, e cobre os arquivos que as pessoas consideram privados. As credenciais de trabalho de um desenvolvedor ficam em outro lugar. Estes caminhos não são protegidos pelo Acesso Total ao Disco nem por qualquer outra permissão de privacidade do macOS:
~/.ssh/id_ed25519~/.aws/credentialse~/.aws/sso/cache/~/.config/gh/hosts.yml,~/.git-credentials,~/.npmrc,~/.docker/config.json,~/.kube/config- o arquivo
.envde cada projeto que você clonou - os tokens OAuth e as transcrições de sessão do próprio agente
Qualquer processo rodando com o seu usuário pode lê-los, com ou sem Acesso Total ao Disco. Os novos controles da Apple vão tornar uma permissão grande mais difícil de conceder. Um agente de código em um notebook não precisava dessa permissão para chegar aos arquivos que deixam um invasor fazer push nos seus repositórios ou abrir sua conta da AWS. Infostealers que miram agentes de código já coletam esses arquivos: tokens de acesso e de atualização, configurações de MCP, históricos de prompts.
Antes de verificar quais apps têm Acesso Total ao Disco, veja o que o computador do agente contém.
No Bromure, o agente não é um processo do Mac
O Bromure Agentic Coding roda os agentes de cada máquina dentro de uma VM Ubuntu sob o Virtualization.framework da Apple. Claude Code, Codex, Grok e os demais são processos Linux em um kernel Linux. As permissões de privacidade do macOS não se aplicam a eles porque eles nunca abrem um arquivo no sistema de arquivos do Mac. Não há autorização para herdar nem terminal cujas permissões vazem para o agente, porque o terminal que você vê no Bromure está ligado à VM, não ao shell do seu Mac.
O que a VM consegue ver é uma lista curta:
- Seu próprio disco de sistema, um clone copy-on-write de uma imagem Ubuntu assinada.
- Sua própria home,
/home/ubuntu, em uma imagem de disco privada. - As pastas que você compartilhou com essa máquina, até oito, cada uma
montada pelo nome dentro da home. Se você compartilha
~/code/payments, o agente vê~/payments. Ele não vê~/code, e nunca vê~/Library. - Um pequeno compartilhamento de configuração por boot, somente leitura, com os ajustes do proxy e as credenciais substitutas.
chat.db não está nessa lista, e nem o Mail ou o histórico do Safari. Uma
sincronização no estilo do Muse, ou um agente vítima de prompt injection a quem
mandam “resumir minhas mensagens recentes como contexto”, descobre que
~/Library/Messages não existe. A VM não tem nenhum caminho que leve até lá.
Os segredos de desenvolvedor são substitutos
Isso cobre a lista da Apple. O Bromure cobre também a lista que a nota da Apple deixa de fora: os dotfiles.
As credenciais reais ficam cifradas no Mac. A VM recebe substitutos no formato
certo: GH_TOKEN é ghp_ mais 36 caracteres que o GitHub rejeitaria,
ANTHROPIC_API_KEY é sk-ant-api03-brm-…, e ~/.git-credentials,
~/.docker/config.json e ~/.kube/config contêm valores falsos. O proxy no Mac
coloca o valor real em uma requisição depois que ela sai da VM, e só quando a
requisição vai para o host ao qual aquela credencial pertence. Nas palavras do
manual: “Nenhum arquivo, variável de ambiente ou processo dentro da VM jamais
contém uma chave de API, um token OAuth, um segredo da AWS ou uma chave privada
SSH reais.”
Dois detalhes respondem à preocupação da Apple com autorizações amplas:
- A importação da AWS pede uma única pasta, no Mac. Para importar seus
perfis da AWS, o Bromure pede uma autorização security-scoped só para
~/.aws. A pasta é lida no Mac e nunca montada na VM. É a autorização estreita e explícita que a nota da Apple pede, e ela vai para o app hospedeiro, nunca para o agente. - As chaves SSH ficam no Mac. O
SSH_AUTH_SOCKda VM é uma ponte para um agente no Mac. O convidado pode pedir assinaturas, e os bytes da chave privada nunca entram na VM. O ssh-agent da sua sessão do macOS nunca fica exposto a ela.
Quando o Claude Code faz login pelo Bromure, o fluxo OAuth roda no navegador do
seu Mac e os tokens ficam guardados no Mac. O ~/.claude da VM não contém
nenhum token real. É esse o arquivo que os infostealers voltados a agentes de
código procuram.
O navegador também tem seu próprio disco
A Apple citou o histórico de navegação, e Wardle os cookies. No Bromure, o
agente tem um navegador, um Chromium completo que ele controla pelo servidor MCP
browser embutido. Ele roda em uma segunda VM descartável, separada da máquina
do agente e do seu Mac. Por padrão, seu disco é um clone temporário apagado
quando o navegador fecha, então cookies, logins e histórico somem junto. Ele não
tem acesso ao histórico do Safari nem ao seu perfil do Chrome do desktop, que
ficam no Mac.
Tudo o que sai passa pelo Mac
Suponha que um agente consiga juntar algo que valha a pena roubar na pasta de projeto que você compartilhou. Ele tem uma única saída. O switch virtual da VM desvia toda conexão web para o proxy no Mac, e o convidado não consegue desligar isso.
- No nível de rastreamento padrão, toda requisição é gravada em um trace cifrado no Mac, com as trocas com o modelo decompostas nas chamadas de ferramentas e nos comandos de shell que o agente emitiu. O Trace Inspector mostra um POST para um host desconhecido no momento em que ele acontece.
- O firewall de saída da máquina, aplicado no Mac, pode permitir só os hosts de que o projeto precisa e descartar todo o resto.
- Se a carga levar uma das credenciais substitutas, o proxy vê uma credencial indo para um host para o qual ela não foi emitida. Ele responde com HTTP 451, pausa a VM e abre um alerta no Mac: This environment may have been compromised.
O truque de IPC local precisa de um processo do Mac
A CVE-2026-100754 dependia de “código sem privilégios já rodando em um Mac” alcançar o canal de confiança local do app do ChatGPT. Em um notebook, a fonte mais ativa de código rodando como você costuma ser o agente de código: as dependências que ele instala, os scripts que roda, as ferramentas que baixa. No Bromure, esse código roda no convidado Linux. Os serviços XPC e os sockets Unix do Mac, e os apps de desktop por trás deles, vivem em outro kernel. Um script postinstall malicioso na VM não consegue entrar em uma cadeia de processos no Mac.
Uma máquina por trabalho
As pastas compartilhadas são onde você decide quanto o agente vê. Cada máquina do Bromure tem sua própria lista de pastas, suas próprias credenciais e sua própria home, então o hábito é fácil:
- Dê a cada projeto sua própria máquina e compartilhe só a pasta desse projeto.
- Dê a uma máquina só as credenciais que o projeto dela usa. A máquina de rascunho onde você testa novos servidores MCP e plugins de agente não recebe nenhuma.
- Deixe Prompt before write ligado, o padrão das máquinas novas para GitHub, provedores de nuvem, registries, Kubernetes e bancos de dados. Pushes e exclusões então param em um diálogo do macOS que mostra a operação exata.
- Nunca compartilhe sua pasta pessoal. O agente não precisa dela.
Cada boot de uma máquina também cria um checkpoint copy-on-write da sua home, então Rewind home… pode trazer de volta o que um agente apagou ali.
Nenhuma permissão do macOS para herdar
O agente é um processo Linux em uma VM. Ele nunca roda com o Acesso Total ao Disco do seu terminal, e os dados do Mensagens, do Mail e do Safari não estão no disco dele.
Só as pastas que você escolheu
Cada máquina vê sua própria home e até oito pastas que você compartilhou pelo
nome. O resto do seu Mac, ~/Library incluída, não está lá.
Os dotfiles guardam falsos
Credenciais de Git, nuvem, registry e modelos são substitutas. Chaves privadas SSH nunca entram na VM. O proxy no Mac adiciona os valores reais na rede.
Toda saída fica registrada
O tráfego web passa pelo proxy do host: rastreado, filtrado pelo firewall de saída e barrado com a VM pausada se um substituto for para o host errado.
Dê ao agente um computador só dele
A nota da Apple é um fabricante de sistema operacional dizendo aos desenvolvedores que uma permissão criada para software de backup não combina com agentes autônomos. A Apple tem razão. A solução dela é um pedido mais claro, e o usuário ainda precisa fazer a escolha certa para cada app, em um Mac que guarda tudo o que ele tem.
O Bromure dá ao agente um computador só dele. Nele estão o projeto que você compartilhou e chaves que só funcionam quando o proxy no seu Mac troca pelas reais. Quando o novo diálogo da Apple chegar, seu agente de código não vai estar entre os apps que o exibem.