Ir para o conteúdo
CatSuite

Idioma

Escolha se o site segue o navegador ou se deve forçar português do Brasil ou inglês.

Baixar grátis

CatBridge

CatBridge, o conector opcional

O que é o CatBridge, como baixar para Windows e Linux, como parear com o código numérico, a arquitetura isolada e o Protocol 2 com mensagens assinadas.

5 min de leitura

O CatBridge é um conector opcional e portátil, escrito em Go, que roda no seu computador ou servidor e executa ferramentas de linha de comando revisadas a pedido de um fluxo visual aprovado. O aplicativo funciona sem ele; não há conta, loja nem servidor administrado pelo CatSuite.

Quando usar #

  • Você quer reforçar um fluxo com ferramentas consagradas sem sair do CatSuite.
  • O alvo é seu ou você tem autorização explícita, e os destinos cabem num escopo fechado.
  • Você consegue rodar um processo no computador e deixá-lo acessível ao celular na mesma rede.

Se precisa apenas observar e alterar tráfego, criar abas, salvar dados ou registrar achados, nada disso exige o CatBridge: use a API do SDK diretamente.

Como obter #

O CatBridge é distribuído pronto para uso no repositório oficial do CatSuite, sem exigir Go:

SistemaDownload
Windows 64 bitscatbridge-windows-amd64.zip
Linux 64 bitscatbridge-linux-amd64.tar.gz
Somas de verificaçãoSHA256SUMS.txt
Código-fontePasta catbridge no GitHub

O passo a passo para baixar, iniciar e parear está em Instalar e parear o CatBridge.

Pareamento por código numérico #

O pareamento não usa QR Code. Ao iniciar, o CatBridge mostra no terminal o endereço e um código de 24 números em seis grupos. No CatSuite, abra Extensões → Conexões → Parear CatBridge, informe o endereço e cole ou digite o código.

  • O código vale dois minutos e autoriza um único aparelho.
  • O aplicativo verifica a identidade do Bridge antes de enviar o código, pelo canal HTTPS autenticado.
  • O código não fica salvo, e um código errado não instala a conexão.
  • Cada aparelho recebe um certificado próprio, e o TLS do conector é fixado pela impressão digital.

Arquitetura em camadas #

CamadaPapel
Extensão (QuickJS)Pede uma capacidade tipada dentro de uma etapa de fluxo aprovada. Não recebe socket, shell nem rede.
Aplicativo CatSuiteAprova a revisão, assina a autorização, interseca escopos e valida cada resposta antes de qualquer efeito.
Supervisor do CatBridgeMonta o comando tipado, reserva orçamento e controla os executores. Único componente com acesso ao Docker.
Intermediário confiávelÚnico acesso de rede das ferramentas: valida método, caminho, escopo, DNS, redirecionamentos, taxa e TLS.
Executor (container)Roda a ferramenta sem privilégios, com filesystem somente leitura, rede desativada e IPC restrito.

Redirecionamentos e descobertas não ampliam o escopo. O certificado interno da tarefa nunca é apresentado como o certificado do alvo, e o intermediário valida separadamente o TLS do servidor original.

Catálogo de capacidades #

O Bridge publica um catálogo assinado com as capacidades, os executores fixados por versão e hash e o estado de cada uma no seu computador:

EstadoSignificado
availablePronta para executar.
not-installedO executor ainda não foi preparado neste host.
incompatibleO executor presente não corresponde ao contrato esperado.
not-authorizedA capacidade não está autorizada para esta conexão.
unavailableIndisponível no momento.
plannedPrevista, mas não disponível neste Bridge.

Somente available permite execução. O catálogo completo está em Capacidades e ferramentas.

Protocol 2 #

Todas as mensagens, inclusive erros, usam o perfil restrito de HTTP Message Signatures (RFC 9421) com ECDSA P-256 e SHA-256, mais Content-Digest (RFC 9530).

  • A assinatura cobre método, destino, corpo, identidade, mensagem e o vínculo entre request e response.
  • Nonce aleatório e validade de até 60 segundos bloqueiam repetição; o diário do Bridge persiste entre reinícios.
  • A assinatura e o digest são verificados antes do JSON e de qualquer efeito.
  • O Protocol 1 é recusado. Conexões existentes do Protocol 2 continuam funcionando.
  • A autorização assinada vincula aparelho, tarefa, Flow ID, revisão, etapa, capacidade, destinos, dados e orçamento. Mudar qualquer item revoga a aprovação.

A chave do aparelho fica no Android Keystore; a chave do servidor, na pasta de identidade do computador. O estado local do Bridge é criptografado com AES-256-GCM.

Usar em uma etapa #

main.jsJavaScript
cat.pipeline.registerStep({
  id: 'lab.sondar',
  title: {'pt-BR': 'Sondar serviços', en: 'Probe services'},
  inputs: ['endpoint'],
  outputs: ['analysis']
}, async ctx => {
  const catalogo = await cat.connectors.capabilities(ctx.config.connector);
  const capacidade = catalogo.catalog.find(item => item.id === 'http.probe');
  if (!capacidade || capacidade.state !== 'available') throw new Error('E_CAPABILITY_UNAVAILABLE');
  const resultado = await cat.connectors.run({
    connector: ctx.config.connector,
    capability: 'http.probe',
    tool: 'httpx',
    id: 'sonda-1',
    targets: ctx.inputs.map(item => item.data.url).filter(Boolean),
    parameters: ctx.config.parameters
  });
  ctx.emit('analysis', resultado);
});

Declare connector.run e requiresSdk: "1.3.0" ou superior no manifesto. A configuração do bloco precisa declarar o mesmo conector, capacidade, ferramenta e parâmetros da chamada. Para interromper uma tarefa, use cat.connectors.cancel(id) com o mesmo identificador passado em run. IDs idempotentes não repetem tarefas após uma reconexão.

Continuidade #

  • Tarefas privadas dependem de uma autorização renovada periodicamente; se ela deixa de ser renovada, a tarefa pausa.
  • Ao sair do aplicativo, o CatSuite pausa os fluxos e solicita a pausa das tarefas remotas.
  • Depois de um reinício do servidor, uma tarefa de resultado desconhecido fica interrompida e só é repetida com escolha explícita.

Resultados #

Os resultados chegam em páginas assinadas de até 50 registros ou 512 KiB, com recibos verificáveis, versões e hashes do executável. Valores de credenciais e parâmetros reconhecidos como secretos são ocultados.

Próximo passo #