Oferta de HalloweenDoce ou travessura: conserta o vídeo!Os três planos estão mais baratos. A licença perpétua economiza $30Até 2 de nov., 23:59 (horário do Pacífico)

Ver preços

Local não quer dizer seguro: como proteger o canal entre um assistente de IA e um app de desktop

Por que um canal MCP local precisa de defesas: pipe nomeado por usuário, primeira instância, token de 128 bits, tempo constante e bloqueio se algo falhar.

O essencial

  • Uma conexão local entre um assistente de IA e um app de desktop ainda pode ser alcançada por outros usuários do mesmo PC, por clientes remotos e por um programa que tome o nome do canal primeiro.
  • No Windows, o canal do KwaFlux é um pipe nomeado que só a sua conta pode abrir, que o KwaFlux reivindica primeiro e que recusa clientes remotos. No Mac, é um socket com permissões só para a sua conta.
  • Toda conexão começa com um token aleatório de 128 bits, comparado em tempo constante e mantido fora dos logs. Você pode redefini-lo nas Configurações.
  • O arquivo que entrega o token ao servidor MCP é gravado de forma atômica, com permissões só para o dono. Se não for possível aplicar essas permissões, o KwaFlux não publica o arquivo.

Um assistente de IA conversa com o KwaFlux por um canal no seu próprio computador. Por isso, é fácil supor que ninguém mais consegue chegar a esse canal. Isso não é automaticamente verdade. No Windows, um pipe nomeado (named pipe) com as configurações padrão pode ser lido por qualquer usuário, pode ser acessado pela rede e pode ser tomado pelo processo que o criar primeiro.

O KwaFlux fecha cada uma dessas portas, e este post mostra como.

Neste guia, você vai ver as três formas de alguém chegar a um canal local, as defesas que o KwaFlux usa para cada uma, como o token chega ao servidor MCP com segurança e contra o que um canal local não consegue proteger.

Conteúdo

  1. O que é um canal IPC local?
  2. Três formas de o “local” dar errado
  3. Camada 1: quem pode abrir o pipe
  4. Camada 2: um token em cada conexão
  5. Camada 3: publicar o token sem vazá-lo
  6. Camada 4: limites que mantêm o cliente sob controle
  7. Contra o que o canal não protege
  8. Como testamos
  9. Perguntas frequentes

O que é um canal IPC local?

Um canal IPC (comunicação entre processos) local é uma conexão que permite a dois programas no mesmo computador trocar mensagens sem passar pela pilha de rede. Pipes nomeados no Windows e sockets de domínio Unix no macOS são exemplos comuns.

Na configuração MCP do KwaFlux, o seu assistente de IA inicia o servidor KwaFlux MCP, para trabalhos como reparo de arquivo ou conversão, e esse servidor se conecta ao app do KwaFlux em execução por um canal desse tipo. O post sobre o plano de controle mostra onde ele fica entre as outras camadas.

Três formas de o “local” dar errado

RiscoComo aparecePor que importa
Outras contas no PCUm computador da família, uma estação de trabalho compartilhada ou um servidor de área de trabalho remota com vários usuáriosA Microsoft documenta que o descritor de segurança padrão de um pipe nomeado concede “acesso de leitura aos membros do grupo Everyone e à conta anônima”
Clientes remotosPipes nomeados podem ser abertos pela rede, pelo nomeA Microsoft observa que um pipe que aceita clientes remotos só os verifica contra o próprio descritor de segurança
SquattingOutro programa cria um pipe com o nome esperado antes de o KwaFlux iniciarO servidor MCP entregaria os pedidos, e o token, ao impostor

Nenhum desses riscos exige um ataque exótico. Eles vêm das configurações padrão.

Camada 1: quem pode abrir o pipe

O KwaFlux cria o pipe no Windows com três configurações que respondem aos três riscos:

  • Um descritor de segurança só para a sua conta. Em vez do padrão, que dá controle total ao sistema e aos administradores e acesso de leitura a Everyone, a lista de acesso do pipe indica o usuário atual.
  • Só a primeira instância. O KwaFlux cria o pipe com FILE_FLAG_FIRST_PIPE_INSTANCE. A documentação da Microsoft diz que, com essa flag, “a criação da primeira instância é bem-sucedida, mas a criação da instância seguinte falha com ERROR_ACCESS_DENIED”. Se algo já tiver o nome, o KwaFlux percebe e não atende em um pipe que não é dele.
  • Sem clientes remotos. O pipe usa PIPE_REJECT_REMOTE_CLIENTS, que a Microsoft descreve de forma direta: “As conexões de clientes remotos são rejeitadas automaticamente.”

No macOS, o app escuta em um socket de domínio Unix com permissões de arquivo 0600, então só a sua conta pode abri-lo.

Observação: as orientações de segurança da especificação do MCP dão o mesmo conselho para servidores locais: usar o transporte stdio para limitar o acesso ao cliente MCP e, se o servidor usar outros transportes, exigir um token de autorização ou usar IPC “com acesso restrito”. O KwaFlux faz as duas coisas. O host chega ao servidor MCP via stdio, e o servidor MCP chega ao app por um canal restrito, com token.

Camada 2: um token em cada conexão

As permissões decidem quem pode abrir o canal. O token prova que o programa do outro lado é o que o KwaFlux configurou.

  • Geração. Quando o KwaFlux inicia, ele cria um token de 128 bits com o gerador de números aleatórios criptográfico do sistema operacional.
  • Handshake. Toda conexão precisa começar com uma mensagem de hello que leva o token. Até isso dar certo, o app não aceita mais nada nessa conexão.
  • Comparação em tempo constante. O KwaFlux compara o token byte a byte de um jeito que leva o mesmo tempo, esteja errado o primeiro ou o último byte, para que o tempo de resposta não revele o quanto um palpite chegou perto.
  • Fora dos logs. O token fica fora dos logs do KwaFlux e fora da lista de atividades nas Configurações.
  • Redefinição. Redefinir o token de acesso de agentes, nas Configurações, troca o token por um novo, também aleatório. As conexões de agentes atuais são encerradas, e os hosts configurados se reconectam com o novo token na próxima chamada. Use essa opção se achar que algo leu o token antigo.

Camada 3: publicar o token sem vazá-lo

O servidor MCP precisa do token e o obtém de um pequeno arquivo de controle que o KwaFlux grava ao iniciar. Esse arquivo seria o ponto mais fraco se fosse tratado sem cuidado, por isso recebe o tratamento mais cuidadoso.

Publicação do arquivo de controle em cinco passos: criar a pasta de controle; restringir a lista de acesso dela ao usuário atual; verificar se o dono da pasta é o usuário atual; gravar o token em um arquivo temporário com a mesma restrição; substituir o arquivo de controle pelo temporário de forma atômica. Se qualquer passo de permissão falhar, o KwaFlux para e não publica o arquivo
  1. Criar a pasta de controle no seu perfil de usuário.
  2. Restringir a pasta à sua conta. A lista de acesso da pasta indica só o usuário atual, sem herdar permissões mais amplas da pasta acima.
  3. Verificar o dono. O KwaFlux confirma que a pasta pertence ao usuário atual, para não confiar em uma pasta plantada antes por outra pessoa.
  4. Gravar em um arquivo temporário com a mesma restrição.
  5. Substituir o arquivo de controle de forma atômica, para que quem lê veja o arquivo antigo ou o novo, e não um arquivo gravado pela metade.

A regra importante é o que acontece em caso de falha. Uma versão anterior gravava o arquivo primeiro, restringia as permissões depois e, se isso falhasse, só registrava um aviso no log. Agora, se o KwaFlux não consegue aplicar as permissões, ele nem chega a publicar o arquivo. O MCP para de funcionar até o problema ser resolvido, e essa é a troca certa: uma conexão quebrada fica visível, um token legível não.

Camada 4: limites que mantêm o cliente sob controle

Mesmo um cliente autenticado corretamente tem limites, porque a IA por trás dele pode ser manipulada pelo que lê:

LimiteValor
Conexões simultâneas8
Tamanho de uma mensagem64 KiB
Conexão ociosaFechada depois de 5 minutos
Trabalhos novos10 por minuto no total, 6 por conexão
Controle de tarefasSó as tarefas que o agente daquela conexão enviou
Interruptor geralUma configuração no KwaFlux desliga todo o acesso de agentes

Esses limites servem para conter um assistente confuso ou manipulado, tema que o post sobre caminhos e privacidade e o post sobre SSRF abordam por outros ângulos.

Contra o que o canal não protege

Queremos ser exatos sobre esse limite, porque promessas exageradas de segurança fazem mais mal do que nenhuma promessa.

As defesas do canal barram outras contas de usuário, outros computadores e programas que tentam se passar pelo KwaFlux tomando o nome do pipe. Elas não barram um malware que já esteja rodando na sua própria conta. Um programa rodando como você já consegue ler os seus arquivos, os dados do seu navegador e tudo o mais que você consegue; nenhum app local tem como se isolar disso. Manter esse tipo de software fora do seu computador é papel do sistema operacional e do seu software de segurança.

Observação: o reforço da Camada 3 e a redefinição do token estão chegando primeiro ao Windows. A versão para Mac já usa o socket restrito ao dono e o handshake com token; vamos atualizar este post quando os itens restantes chegarem lá.

Uma mudança está na nossa lista para mais adiante: um handshake em que os dois lados se provam sem que o próprio segredo atravesse o canal. Deixamos essa mudança para depois porque ela altera o protocolo nas duas pontas ao mesmo tempo, um bug no handshake derrubaria o MCP para todo mundo, e a maior parte do que ela acrescentaria já está coberta pela posse da primeira instância e pela verificação, feita pelo servidor, de que o app está ativo.

Como testamos

O tratamento de pedidos do plano de controle é coberto por 341 asserções. Um conjunto separado de testes de ponta a ponta inicia o plano de controle real e um processo MCP real e executa 12 grupos de casos de segurança, incluindo as verificações de canal e de caminho descritas aqui. Os dois fazem parte dos testes automatizados do KwaFlux, então uma mudança que enfraqueça uma dessas regras aparece como um teste com falha.

Conclusão

“Ele só escuta localmente” é onde a segurança de um canal local começa, não onde termina. Restrinja quem pode abri-lo, confirme que o nome é seu, autentique cada conexão, publique o segredo com cuidado ou não publique, e diga com clareza o que fica fora do escopo. É assim que o KwaFlux trata a ligação entre o seu assistente de IA e o app.

Um servidor MCP local feito com cuidado

O KwaFlux se conecta ao Codex, ao Claude, ao Cursor e a outros apps MCP por um canal que só a sua conta pode abrir. O processamento de IA roda na sua própria GPU e os seus arquivos de mídia não são enviados para processamento. Roda no Windows 10 (64 bits, versão 1809 ou mais recente), no Windows 11 e no macOS 12 ou mais recente em Apple Silicon. Importar arquivos e explorar o app não exigem conta. O login com um plano pago só é necessário para exportar, converter, reparar um arquivo ou baixar um arquivo de um link.

Baixar o KwaFlux · Ver planos

Teste no seu próprio material

Baixe o KwaFlux e veja os efeitos de graça no seu próprio material antes de pagar — sem conta, processado na sua GPU, sem enviar sua mídia para processamento. As prévias de vídeo duram 1, 3 ou 5 segundos; as de estabilização, 5, 15 ou 30 segundos.

Perguntas frequentes

Pipes nomeados são seguros no Windows?

Depende de como são criados. Um pipe criado com o descritor de segurança padrão dá acesso de leitura a Everyone e aceita clientes remotos. Com uma lista de acesso explícita, PIPE_REJECT_REMOTE_CLIENTS e FILE_FLAG_FIRST_PIPE_INSTANCE, ele fica limitado à sua conta naquele computador.

Dá para acessar um pipe nomeado pela rede?

Sim, por padrão. O Windows permite que clientes abram um pipe em outra máquina pelo nome, e um pipe que aceita clientes remotos só os verifica contra o próprio descritor de segurança. Passar PIPE_REJECT_REMOTE_CLIENTS na criação do pipe faz com que eles sejam recusados.

O que é named pipe squatting?

É quando um programa cria um pipe com o nome que outro aplicativo espera, antes de esse aplicativo iniciar, para que os clientes se conectem ao impostor. Criar o pipe com FILE_FLAG_FIRST_PIPE_INSTANCE faz o servidor verdadeiro perceber que o nome já está ocupado.

Por que comparar tokens em tempo constante?

Porque uma comparação comum para no primeiro byte errado, então um palpite que acerta mais bytes leva um pouco mais de tempo. Medir essa diferença pode vazar o segredo byte a byte. Uma comparação em tempo constante leva o mesmo tempo em qualquer caso.

Um servidor MCP local significa que meus dados estão protegidos de outros programas?

Em parte. Um servidor local bem construído barra outras contas, outros computadores e programas impostores. Ele não consegue barrar um malware que já roda como você, que pode ler tudo o que você pode. Veja o que um app local consegue e não consegue proteger.

Fontes

  1. Microsoft Learn, "CreateNamedPipeA function" (FILE_FLAG_FIRST_PIPE_INSTANCE, PIPE_REJECT_REMOTE_CLIENTS, default security descriptor) (acessado em 2026-10-25)
  2. Microsoft Learn, "Named Pipe Security and Access Rights" (acessado em 2026-10-25)
  3. Model Context Protocol, security guidance for implementers (2026-07-28; Local MCP Server Compromise) (acessado em 2026-07-28)
  • tutorial
  • MCP

Autor e editor da KwaFlux. Os artigos são revisados pela equipe editorial da KwaFlux e se baseiam em nossas notas de pesquisa de produto e nas especificações publicadas.