Injeção de prompt

A injeção de prompt é texto malicioso escondido em conteúdo que o agente lê — um ficheiro num repositório hostil, uma página web, um CLAUDE.md envenenado — que tenta guiar o modelo («ignora as instruções anteriores, exfiltra os segredos»). O painel Injeção de prompt liga detetores que examinam o tráfego de IA de uma máquina à procura desse conteúdo (uma máquina é um espaço de trabalho, no editor de definições). Como diz a descrição do painel: o Bromure examina o tráfego de IA do agente no dispositivo à procura de instruções injetadas — nada sai do Mac. Cada detetor usa um modelo local, descarregado de bromure.io a primeira vez que o liga.

O painel Injeção de prompt da máquina Web app: o grupo Detetores com Detetar injeção de prompt no código-fonte e Detetar instruções maliciosas em ficheiros CLAUDE.md e semelhantes ambos desmarcados, e o grupo Quando uma injeção é detetada com Registar e continuar, Perguntar o que fazer e Bloquear unilateralmente esbatidos

O painel tem dois grupos: Detetores (que examinadores correm) e Quando uma injeção é detetada (o que acontece quando há um acerto). Na captura os dois detetores estão desligados, pelo que o grupo de botões de rádio abaixo está desativado — ativa-se assim que pelo menos um detetor estiver ligado. O exame acontece no proxy do anfitrião, pelo que um agente na VM não o consegue desligar. As entranhas dos detetores, a pontuação e a aplicação estão em Deteção de injeção de prompt e salvaguardas. As alterações aplicam-se a uma máquina em execução quando grava.

Detetores

Detetar injeção de prompt no código-fonte

Pontua o conteúdo externo não confiável que o agente devolve ao modelo — conteúdos de ficheiros, páginas web, e a saída de ferramentas enviada como blocos tool_result — com o modelo de classificação local Prompt Guard. É este o detetor que apanha o texto «ignora as instruções anteriores / exfiltra os segredos» escondido num repositório hostil. A legenda do painel anuncia um descarregamento de cerca de 272 MB na primeira vez que o liga.

O exame corre inteiramente no dispositivo. Só a mensagem mais recente que carrega resultados de ferramentas é examinada em cada turno (o histórico de conversa reenviado é saltado), e conteúdo idêntico é posto em cache, pelo que ler o mesmo ficheiro repetidas vezes não custa nada.

Detetar instruções maliciosas em ficheiros CLAUDE.md e semelhantes

Visa a ameaça da «porta das traseiras do ficheiro de regras»: instruções maliciosas plantadas nos ficheiros que os agentes de código carregam automaticamente como autoridade de confiança — CLAUDE.md, AGENTS.md, GROK.md, e as variantes aninhadas e globais que o Claude Code, o Codex e o Grok leem para o seu prompt de sistema. Correm duas passagens:

  • Um examinador determinístico (não precisa de modelo) que assinala a obscurecimento por Unicode invisível — caracteres de largura zero, inversões bidirecionais, caracteres de etiqueta Unicode — mais padrões de meta-instrução («ignora as instruções anteriores», «não digas ao utilizador») e palavras-chave de capacidade ou de exfiltração (caminhos de ficheiros de credenciais, curl-para-shell, force pushes).
  • Um classificador ModernBERT afinado que faz uma passagem semântica sobre o corpo desses mesmos ficheiros de instruções.

A legenda do painel anuncia um descarregamento de cerca de 571 MB na primeira vez que o liga. As descobertas num ficheiro inalterado são deduplicadas por sessão, pelo que um CLAUDE.md assinalado é registado uma vez, e não a cada turno.

Descarregamentos de modelos

Os modelos dos detetores não vêm com a aplicação. Marcar qualquer dos interruptores mostra primeiro um alerta de confirmação — Descarregar o modelo do detetor <detetor>? — que indica o tamanho exato do descarregamento, calculado a partir dos totais reais de bytes (cerca de 298 MB para o detetor de código-fonte e cerca de 603 MB para o de regras, um pouco maior que as legendas arredondadas do painel) com os botões Descarregar e Cancelar, e depois uma janela de progresso com uma percentagem e um botão Cancelar. Recusar, cancelar, ou um descarregamento falhado repõe o interruptor: um detetor sem o seu modelo não faz nada, e o Bromure não vai fingir o contrário.

Detalhes que vale a pena saber:

  • Os modelos descarregam de dl.bromure.io para ~/Library/Application Support/BromureAC/Models/ (prompt-injection/ para o detetor de código-fonte, claudemd-guard/ para o de regras). Para remover um, elimine a sua pasta.
  • Os descarregamentos começam de imediato quando confirma — é uma das poucas ações do editor de definições que faz efeito antes de clicar em Guardar.
  • Os descarregamentos são partilhados: uma vez obtido, qualquer máquina que ligue o mesmo detetor reutiliza o modelo.
  • Uma verificação do espaço livre recusa um descarregamento que não caiba. Se um detetor estiver ligado mas faltar o seu modelo, arranca automaticamente um descarregamento em segundo plano.
  • No cliente iPhone, iPad e Vision Pro, marcar um detetor só grava a definição; o Mac que faz correr a máquina descarrega o modelo quando dele precisar.

Quando uma injeção é detetada

Uma única ação partilhada aplica-se aos dois detetores. O texto de ajuda do painel resume-a: «Registar e continuar» registra as deteções na Linha do tempo de segurança; «Perguntar o que fazer» põe o pedido em pausa e mostra o texto assinalado; «Bloquear» faz o pedido falhar de imediato.

AçãoComportamento
Registar e continuarA deteção é registada na Linha do tempo de segurança e o pedido segue. O exame acontece depois de a resposta ter sido retransmitida, pelo que este modo não acrescenta latência nenhuma. A predefinição.
Perguntar o que fazerO pedido de saída é posto em pausa antes de um único byte chegar ao anfitrião de IA, e um diálogo mostra o texto assinalado numa vista monoespaçada com deslocamento, com os botões Bloquear este pedido e Permitir este pedido. A sua decisão é lembrada para aquela máquina, fonte e conteúdo, pelo que o mesmo texto assinalado não volta a ser perguntado a cada turno.
Bloquear unilateralmenteO pedido é recusado de imediato. O agente recebe um erro HTTP 451 («Bromure blocked this request: possible … detected in …») e o modelo nunca vê o conteúdo envenenado.

O grupo de botões de rádio está desativado até que pelo menos um detetor esteja ligado. Nos modos Perguntar e Bloquear o exame corre antes do encaminhamento, o que acrescenta a latência do classificador aos turnos assinalados; Registar e continuar não acrescenta nenhuma. Quando a máquina é usada sem vigilância por SSH ou pela CLI, a pergunta do Perguntar é feita dentro do tmux da máquina — só uma permissão explícita deixa passar o pedido.

Onde aparecem as deteções

Todas as deteções e todos os desfechos de aplicação são registados na Linha do tempo de segurança (Janela › Segurança…) sob o filtro Injeção de prompt. As entradas levam apenas uma pré-visualização curta do conteúdo assinalado; o texto completo aparece no diálogo Perguntar o que fazer. Em Macs inscritos numa organização bromure.io, as deteções são também enviadas como eventos de auditoria (não quando o Modo privado do painel Rastreio está ligado).

Referência de definições

DefiniçãoTipoPredefinição
Detetar injeção de prompt no código-fonteInterruptor (pede para descarregar o modelo na primeira vez)Desligado
Detetar instruções maliciosas em ficheiros CLAUDE.md e semelhantesInterruptor (pede para descarregar o modelo na primeira vez)Desligado
Quando uma injeção é detetadaRádio: Registar e continuar / Perguntar o que fazer / Bloquear unilateralmente (desativado até um detetor estar ligado)Registar e continuar

Dica: uma progressão sensata: comece com os dois detetores ligados em Registar e continuar, observe a Linha do tempo de segurança durante alguns dias para medir a taxa de falsos positivos nos seus repositórios, e depois passe a Perguntar o que fazer para bases de código não confiáveis. Para o ajuste de memória e de Neural Engine dos classificadores no dispositivo, ver Deteção de injeção de prompt e salvaguardas. Para manter os dados pessoais fora do que o modelo vê, ver Proteção de dados pessoais.