A coleira que faz sua IA trabalhar sozinha, no seu computador, sem medo do que ela pode fazer.
[!NOTE] O SCC atualmente é um MVP em constante validação e evolução. Serei imensamente grato se quiser ajudar no desenvolvimento do MVP com comentários construtivos e direcionais. Por favor, mantenha a educação e o decoro. Os comentários podem ser feitos no final desta página na área de comentários. Grato pela sua compreensão e apoio.
🚀 Chegando em breve
O SyscallCage está em evolução ativa. Já funciona hoje, de ponta a ponta, em Linux — e o roadmap público já garante que você não vai ficar esperando no escuro:
- Bloqueio síncrono de rede — hoje já bloqueamos filesystem e execução de comando antes deles acontecerem via BPF LSM; rede é o próximo alvo dessa mesma tecnologia.
- Windows (via ETW) e macOS (via EndpointSecurity) — a mesma filosofia de vigilância no kernel, adaptada pra quem não vive em Linux.
- Capabilities refinadas (
CAP_BPF,CAP_PERFMON) no lugar de root completo — menos privilégio, mesma proteção.
Nenhum desses itens é promessa vaga: cada um já tem desenho técnico definido. Comece a usar agora — o que funciona hoje já resolve o problema real, e o que vem por aí só vai deixar ainda mais forte.
O problema
Você usa um agente de IA (Claude Code, Cursor, ou parecido) que edita arquivos e roda comandos sozinho, sem você aprovar cada passo. É rápido e poderoso — mas sempre fica aquele desconforto: e se ele ler minha senha sem eu perceber? E se mandar alguma coisa pra internet sem eu autorizar? E se rodar um comando perigoso achando que estava ajudando?
O que o SyscallCage faz
Ele fica de olho no que o agente realmente faz no seu computador — não no que ele promete fazer. Você define regras simples (que pastas ele pode ler, que sites pode acessar, o que nunca pode rodar), e o SyscallCage garante isso na hora, direto no kernel do Linux, sem depender do agente cooperar ou avisar antes.
Se o kernel do seu sistema suportar (a maioria dos Linux modernos suporta), a barreira age antes da violação completar — o comando nem chega a rodar. Onde isso não é possível, ele age imediatamente depois, encerrando o processo com a mesma agilidade.
Onde ele atua
Na camada mais fundamental que existe entre um programa e o computador: o kernel. Isso significa que ele enxerga qualquer coisa que qualquer processo faça de verdade — abrir arquivo, executar comando, conectar na rede — sem depender do agente ter uma função especial de “avisar antes” (que a maioria nem tem, e que pode ser ignorada ou falhar).
Quando ele age
Toda vez, sem exceção, enquanto o processo protegido estiver vivo.
Por que ele é diferente
A abordagem mais comum pra esse problema hoje é colocar o agente inteiro dentro de um ambiente isolado — um computador dentro do computador. Funciona, mas custa: é pesado, lento de configurar, e você perde a conveniência de trabalhar direto na sua pasta de projeto real.
O SyscallCage não isola nada. Ele deixa o agente trabalhar exatamente onde já estava — e observa, no nível mais fundo do sistema, se algo passa da linha. É a diferença entre trancar alguém numa sala vazia e ter um segurança de confiança de olho na sala de sempre. Você não perde velocidade nem muda seu fluxo de trabalho pra ganhar segurança.
⚖️ Quer entender como isso se compara com Docker (Seccomp), AppArmor, Landlock e Falco? Leia o nosso guia detalhado de Alternativas e Trade-offs.
Como instalar
Instalação em um comando só (baixa o binário já compilado da release, checksum verificado — nenhuma compilação acontece na sua máquina):
| |
Isso instala em ~/.local/bin, sem exigir sudo para o passo de instalação em si. Ao final, confira o ambiente com syscallcage doctor.
(A URL acima usa o GitHub diretamente — é a versão honesta de “funciona hoje”.)
Instalando a partir do código-fonte
| |
Requisitos: Rust (stable + nightly via rustup), bpf-linker (cargo install bpf-linker), clang/llvm.
Como usar
Escreva um arquivo pequeno dizendo o que é permitido:
| |
Depois, aponte o SyscallCage pro processo do seu agente:
| |
Pronto. Ele vigia até o processo terminar ou você mandar parar.
Não sabe o que colocar nas regras?
Deixe o SyscallCage descobrir sozinho, observando uma sessão real:
| |
Ele nunca sugere liberar arquivo de credencial ou comando perigoso, mesmo que apareça na sessão observada — isso fica de fora, sempre.
Entendendo o comando, pedaço por pedaço
Se você nunca usou terminal antes, um comando como esse pode parecer papagaio grego:
| |
Vamos abrir ele. Cada parte tem um motivo:
sudo— “rode isso com permissão de administrador”. O SyscallCage precisa desse nível de acesso porque ele vigia o sistema operacional por dentro, não só o app comum. É o mesmosudoque você usa pra instalar qualquer programa no Linux../target/release/syscallcage— o caminho até o programa que você acabou de compilar. É literalmente “onde o SyscallCage mora no seu computador agora”.--pid <PID>— “qual processo eu devo vigiar”. PID é o número de identificação que o Linux dá a cada programa rodando (tipo um RG temporário). Você descobre o PID do seu agente de IA com o comandopgrep nome-do-programaou olhando no gerenciador de processos.--policy sua-politica.yaml— “onde estão as regras que eu devo seguir”. É o arquivo de texto (mostrado acima) que diz o que é permitido e o que não é.
Se um dia você precisar pesquisar sobre isso no Google, já sabe o nome de cada peça: “PID”, “sudo”, “flag de linha de comando”. Isso ajuda muito mais que decorar o comando inteiro sem entender.
O modo watch — a versão sem precisar descobrir PID
| |
Esse modo elimina o passo mais chato (achar o PID manualmente): o SyscallCage cria o processo do agente com fork+exec, sabendo o PID no instante em que ele nasce, e reinicia automaticamente em caso de crash normal — nunca em caso de violação de política, que sempre exige intervenção humana. Se o syscallcage for morto, o agente recebe SIGTERM junto (via PR_SET_PDEATHSIG): “parado” é sempre preferível a “rodando sem proteção”. Explicando cada parte nova:
watch— diz pro SyscallCage “não é pra vigiar um processo que já existe, é pra você mesmo criar e tomar conta dele desde o nascimento”.--policy minha-politica.yaml— igual antes, o arquivo de regras.--(dois hífens sozinhos) — isso é uma convenção comum em programas de linha de comando. Significa “tudo que vier depois daqui não é mais opção do SyscallCage, é o comando que você quer que ele rode e proteja”. Sem esse separador, o programa não saberia onde terminam as opções do SyscallCage e começa o comando do agente.claude-code --seus-argumentos— o comando que você normalmente usaria pra rodar seu agente, exatamente do jeito que você já usa hoje, só que precedido pelo SyscallCage.
Nesse modo, você nunca precisa descobrir PID nenhum — o SyscallCage já nasce sabendo, porque é ele quem liga o agente.
Importante saber
- Funciona nativamente em Linux e agora em Windows via WSL2 (com as devidas configurações de kernel e BPF LSM).
- Pede permissão de administrador (
sudo) pra anexar a vigilância no nível de kernel. - Limitações atuais estão documentadas com honestidade na página oficial — sem promessa exagerada.
Suporte a Windows (WSL2)
O Windows não possui as interfaces do kernel Linux, mas é possível rodar o SyscallCage em modo síncrono (preventivo) dentro do WSL2, compilando um kernel próprio com CONFIG_BPF_LSM habilitado — o kernel padrão distribuído pela Microsoft no WSL2 vem com essa opção desligada.
Passo a passo completo, reprodutível e auditável (você compila o próprio kernel a partir da fonte oficial da Microsoft — nunca baixe um binário de kernel pronto de terceiros, é risco de segurança real, não excesso de cautela): consulte o guia em docs/WSL_BPF_LSM_Decision.md.
Este documento também registra o histórico técnico completo até chegar nesse suporte funcionando — incluindo um bug real do verifier do kernel que apareceu no caminho e como foi corrigido de verdade, não só contornado.
Licença
MPL 2.0 — use, modifique, use até comercialmente. A única exigência é que mudanças nos arquivos deste projeto continuem abertas sob a mesma licença.
Por que existe
Nasceu da mesma linha de pesquisa do Imunno System, um antivírus de comportamento para servidores Linux com patente registrada no Brasil (INPI). O SyscallCage aplica a mesma ideia — observar comportamento real, nunca confiar em promessa — a um problema novo: deixar IA trabalhar sozinha sem abrir mão de segurança.