Skip to content
macOS · Disponível

Tsuba

Dá uma olhada antes de um código desconhecido rodar pela primeira vez.

Tsuba icon
Tipo
macOS
Versão
0.1.1
Lançado em
28 de out. de 2026
Pacote de regras
20 regras · 2026.10.27
Requisitos
macOS 13+
Preço
Grátis

Tsuba (鍔) é a guarda da mão de uma espada japonesa. Este Tsuba fica na sua barra de menus e entra em ação no momento em que um código desconhecido roda pela primeira vez: descobre o que o código vai fazer, de onde veio e se parece com um ataque conhecido, e então decide liberar, avisar ou bloquear.

Criei o Tsuba depois que clientes falsos no Upwork tentaram infectar meu Mac duas vezes. Na primeira, conseguiram, e nem o XProtect nem o antivírus perceberam. A história completa está aqui.

O Tsuba em 24 segundos.

O painel: status da proteção, o que precisa de atenção e um registro ao vivo de cada verificação.
O painel: status da proteção, o que precisa de atenção e um registro ao vivo de cada verificação.

Por que o antivírus não pega esses ataques

Projetos de entrevista falsos, apps de reunião falsos, pacotes npm envenenados e extensões de editor maliciosas vêm com uma embalagem nova a cada vez. Eles rodam por ferramentas comuns como node, curl e bash, então não há nada para um antivírus tradicional apontar. O Tsuba vigia os pontos de entrada.

O que ele verifica

Ponto de entrada Exemplos O que o Tsuba analisa
Comandos no terminal curl … | bash, npm install, npx, npm start, git clone Baixa o script remoto sem executar; confere pacotes npm em listas de pacotes maliciosos, a idade deles e os scripts de instalação; procura no projeto código escondido, servidores fixos no código e leitura de carteiras ou cofres de senhas
Colar no terminal Uma página pede para "copiar este comando no terminal" Avisa no momento em que você cola; comandos ofuscados enviados direto para o shell são marcados como alto risco
Pasta Downloads Novos arquivos .dmg, .pkg, .vsix Assinatura, notarização, origem do download e scripts de instalação
Extensões de editor VS Code, Cursor, Windsurf, VSCodium A lista oficial de extensões maliciosas, ativação na inicialização, código escondido em caracteres invisíveis; extensões de alto risco vão para a quarentena
Ferramentas de IA Servidores MCP, skills e hooks do Claude Code, Cursor e Codex Pacotes maliciosos conhecidos, execução a partir de pastas ocultas, instruções escondidas do usuário
Verificação de saúde Barra de menus → Verificação de saúde Rastros deixados por ataques conhecidos e itens de login suspeitos

Projetos sobre os quais você tem dúvida podem rodar antes em uma sandbox: uma pasta pessoal falsa com iscas, requisições de rede registradas mas nunca enviadas e limite de 60 segundos.

A instalação de um app de reunião falso bloqueada: o veredito, os motivos e as evidências, linha por linha.
A instalação de um app de reunião falso bloqueada: o veredito, os motivos e as evidências, linha por linha.

Escaneie pastas quando quiser ou de forma agendada. O que for arriscado vai para a quarentena.
Escaneie pastas quando quiser ou de forma agendada. O que for arriscado vai para a quarentena.

A verificação de saúde procura rastros de ataques conhecidos e revisa extensões de editor e ferramentas de IA.
A verificação de saúde procura rastros de ataques conhecidos e revisa extensões de editor e ferramentas de IA.

Como ele decide

As regras offline rodam sempre primeiro, apoiadas por inteligência de ameaças pública atualizada todo dia, incluindo cerca de 230 mil pacotes npm e PyPI maliciosos confirmados pela OpenSSF. Depois, um modelo de IA pode avaliar as evidências no contexto. O Claude funciona melhor, outros provedores e modelos locais também são suportados, e dá para desligar a IA por completo.

Só as evidências que a verificação precisa são enviadas ao modelo. Os comentários do código são removidos antes, e segredos nunca são enviados. Configurações e histórico ficam em ~/.tsuba no seu Mac.

Ajustes: ligue ou desligue cada defesa e escolha como os vereditos são feitos, com ou sem IA.
Ajustes: ligue ou desligue cada defesa e escolha como os vereditos são feitos, com ou sem IA.

Disponibilidade

O Tsuba já saiu, é gratuito e o código-fonte está no GitHub. São duas versões: escolha Apple silicon para Macs com M1 ou mais novos, e Intel para os mais antigos. Não sabe qual é o seu? Menu Apple → Sobre Este Mac → Chip.

Esta primeira versão ainda não é assinada nem notarizada pela Apple, então o macOS bloqueia na primeira vez que você abrir. Vá em Ajustes do Sistema → Privacidade e Segurança e clique em Abrir Mesmo Assim. Por favor, não remova a marca de quarentena com xattr: o Tsuba alerta sobre instaladores que pedem isso, e o dele não deveria ser exceção.

Para conferir se o seu DMG é o mesmo que o GitHub gerou a partir do código público, compare shasum -a 256 Tsuba_*.dmg com o SHA256SUMS.txt na página da versão.

Experimente

Saída real, regras reais

Escolha uma amostra para ver o que o app imprimiu ao escaneá-la: só regras offline, versão 0.1.1. As amostras vêm dos testes do app. Imitam a forma de ataques reais, mas são inofensivas.

$ tsuba scan ~/code/fake_interview_project

Tsuba ✗ Block recommended  ~/code/fake_interview_project
  Evidence:
   High Decodes and then dynamically runs code (eval/Function + base64), common in obfuscated poisoned code [server/server.js] Source: Tsuba rules · Apache-2.0
      eval(Buffer.from("Y29uc29sZS5sb2coImxvY2FsZ3VhcmQgdGVzdCBmaXh0dXJlIik=", "base64").toString()); const C2 = "http://203.0.113.7:1224/api"; app.get('/', (q, r) =>
   High Connects straight to a hard-coded IP address and port (typical of a C2 server) [server/server.js]
      eval(Buffer.from("Y29uc29sZS5sb2coImxvY2FsZ3VhcmQgdGVzdCBmaXh0dXJlIik=", "base64").toString()); const C2 = "http://203.0.113.7:1224/api"; app.get('/', (q, r) =>
   High Code is pushed off the right edge of the screen by whitespace, out of sight (a typical way to hide a poisoned payload) [server/server.js]
      const app = require("express")(); ⟨400 spaces⟩ eval(Buffer.from("Y29uc29sZS5sb2coImxvY2FsZ3VhcmQgdGVzdCBmaXh0dXJlIik=", "base64").toString()); const C2 = "http:
Novidades

Novidades

Feed de versões ↗
Arquivos · v0.1.1Tamanho
Tsuba_0.1.1_aarch64.dmg17.3 MB053716f71794860dfb6954ffff4aad546c1d8163aee9eb9a3071b07d12a1f8ad
Tsuba_0.1.1_x64.dmg20.1 MB5cb977527582037ace62d813b2a1aa654f5a695995f0353d5fe3165f038b2ac0
  1. 0.1.128 de out. de 2026
    • 6c6e378Read sandbox denials again while the log is still empty
    • 4fc7f5dStop tracking .claude/
    • 7286643Allow executable memory under the hardened runtime
    • 838c0b8Ad-hoc sign the whole release bundle so macOS doesn't call it damaged
    • c964789Drop the .app.tar.gz uploads and keep the draft's tag
    Todas as mudanças ↗
Perguntas

Perguntas

Por que o macOS diz que não dá para abrir o Tsuba?

Esta primeira versão ainda não é assinada nem notarizada pela Apple. Abra Ajustes do Sistema → Privacidade e Segurança e clique em Abrir Mesmo Assim. Por favor, não remova a marca de quarentena com xattr: o Tsuba alerta sobre instaladores que pedem isso. Para conferir o download, compare com o SHA-256 listado em Novidades.

O Tsuba envia o meu código para algum lugar?

Nenhum arquivo é enviado. Com a IA ligada, só as evidências que a verificação precisa vão para o modelo que você escolheu, sem os comentários do código e sem segredos. Com a IA desligada, as verificações rodam no seu Mac com as regras offline. Configurações e histórico ficam em ~/.tsuba.

Preciso de assinatura de IA ou de uma chave de API?

Não. As regras offline sempre rodam primeiro e funcionam sozinhas. A IA é opcional: o Claude funciona melhor, e outros provedores e modelos locais também são suportados.

Ele substitui o meu antivírus?

Não. Reconhecer malware conhecido fica com o XProtect do macOS e com a inteligência de ameaças aberta. O Tsuba cobre o que eles deixam passar: código com embalagem nova que ninguém viu ainda, como projetos de entrevista falsos, apps de reunião falsos, pacotes envenenados e extensões maliciosas, e entra em ação antes desse código rodar.

Em quais Macs ele roda?

macOS 13 ou mais novo, em Apple silicon e Intel, com um download para cada. Menu Apple → Sobre Este Mac → Chip mostra qual é o seu.

E se ele marcar algo que é seguro?

Todo aviso e bloqueio mostra as evidências (qual arquivo, qual linha, o que bateu), então você mesmo pode julgar, e o que você confia pode ir para a lista de permitidos. Por favor, relate o falso positivo: cada um vira um teste de regressão.

Feedback

Achou um bug ou um erro de detecção?

Os relatos vão para o GitHub Issues, em público. Nunca cole segredos. Para uma amostra maliciosa real, mande o hash e a origem, não o arquivo.

Acompanhe

Compartilho projetos, experimentos e aprendizados pelo caminho.

Vídeos novos no YouTube, notas curtas no X. Cada post aqui leva aos dois.

YouTube