JagunçIA · Segurança de aplicações

Achar vulnerabilidade sem tirar o código da sua rede

O JagunçIA é a plataforma de AppSec da BiExpert. Você sobe um agente, um contêiner, na sua própria infraestrutura. As verificações rodam lá dentro e o painel recebe apenas o resultado, no nível de detalhe que você autorizar.

JagunçIA Emblema circular: um jagunço mascarado, de chapéu de aba levantada com estrela de guarda, entre cactos e serra, sobre uma fita com o nome JagunçIA e a assinatura BIEXPERT. JagunçIA BIEXPERT

O problema

As ferramentas pedem o seu código-fonte. O JagunçIA não.

Toda empresa precisa encontrar vulnerabilidade no código que escreve e no sistema que coloca no ar. O caminho usual é enviar o repositório para a nuvem do fornecedor da ferramenta e deixar a análise acontecer lá.

Em banco, órgão de governo, operadora de saúde e seguradora, isso não é uma questão de preferência: é política interna, frequentemente escrita em contrato e cobrada em auditoria. O time de rede também não vai abrir porta de entrada no firewall para um fornecedor de ferramenta.

O resultado prático costuma ser um dos dois: a empresa abre uma exceção que a área de segurança não deveria assinar, ou fica com processo manual e planilha.

  • O código sai nas outras ferramentas, a nuvem do fornecedor precisa receber o repositório para analisá-lo
  • Política, não preferência em setor regulado, não existe a opção de abrir exceção
  • Firewall fechado liberar porta de entrada para um fornecedor não é negociável

Como funciona

O agente roda na sua infraestrutura; o painel recebe o resultado

O JagunçIA inverte o desenho usual. Em vez de o código ir até a ferramenta, a ferramenta vai até o código: um contêiner que você mesmo executa, dentro do seu perímetro.

Rede do cliente

  • Repositórios: frontend, API, jobs, infraestrutura
  • URLs internas: portal, API, painel administrativo
  • Pipelines do Azure DevOps ou do GitHub

jaguncia-agent

Contêiner na infraestrutura do cliente. É aqui dentro que a análise estática, a leitura de lockfile, a busca de segredos e a geração de SBOM acontecem.

Painel JagunçIA

  • Achados no nível autorizado para cada sistema
  • Priorização determinística, triagem por IA e comentário no pull request
  • Registro de egresso: o que saiu, quando e quanto
A conexão é sempre iniciada pelo agente, por long-poll na porta 443. O painel nunca abre conexão para dentro da rede do cliente. Do lado dele só existe o que o teto configurado na rede permitiu sair.

Um contêiner, do seu lado

O agente é distribuído como imagem de contêiner e roda onde você decidir: servidor próprio, cluster interno, sua subscrição de nuvem. É ele que tem acesso ao repositório e à URL interna. Não nós.

Comunicação somente de saída

Long-poll HTTPS na 443, sempre iniciado pelo agente. Não há porta a liberar, não há túnel a manter, não há endereço nosso a colocar em lista de permissão de entrada.

Resultado no nível autorizado

Antes de qualquer envio, o achado passa pelo nível de compartilhamento escolhido para aquele sistema. O que não está autorizado a sair não sai, e não existe no painel.

Compartilhamento de dados

Cinco níveis, escolhidos por você, sistema por sistema

Não é um interruptor de tudo ou nada. Cada sistema tem o seu nível, do agregado ao completo. O repositório do internet banking não precisa ter a mesma regra do site institucional.

L0

Agregado

Apenas contagens, por severidade e por regra. Zero caminho de arquivo, zero nome de pacote.

L1

Localização

Por achado: a regra, a severidade, o caminho, a linha e o CWE. Nenhum caractere de código.

L1-p

Pseudonimizada

Igual ao L1, mas o caminho viaja como HMAC, e a chave existe só no agente do cliente. O painel mostra ‹src/…/a3f9c1d0›:142. Deduplicação e histórico continuam funcionando: o mesmo arquivo gera sempre o mesmo identificador.

L2

Trecho redigido

Até 40 linhas de contexto, passadas por um redator determinístico que substitui literais, segredos, CPF, CNPJ e endereços internos por marcadores.

L3

Completo

Trecho de código e trilha de dataflow, para quando o objetivo é entender o caminho inteiro do dado até a falha.

Garantias

Quem define o limite é você, no seu servidor

Todo fornecedor promete respeitar o combinado. Aqui você não precisa da nossa palavra: o limite fica num arquivo da sua infraestrutura, e o agente nunca envia mais do que ele autoriza.

Na instalação do agente, você escreve numa linha de configuração o nível máximo que pode sair daquele servidor. Por exemplo, JAGUNCIA_MAX_EGRESS_LEVEL=1 significa "nunca envie trecho de código, mesmo que o painel peça".

A partir daí, em cada envio o agente compara duas coisas: o nível pedido pelo painel e o limite do seu arquivo. Vale sempre o menor dos dois.

Se o painel pede L3 e o seu arquivo diz L1, sai L1. O agente recusa o pedido. O contrário não existe: nenhuma configuração no painel consegue elevar o limite do seu servidor.

O arquivo é lido uma vez, quando o agente liga, e não existe nenhum comando ou chamada capaz de alterá-lo depois. Isso vale inclusive na pior hipótese: se o nosso painel fosse invadido, o invasor ainda não conseguiria fazer o agente enviar mais do que você autorizou.

E dá para verificar em trinta segundos, sem depender de nós. No servidor do agente, o comando jaguncia-agent doctor imprime o limite em vigor. O arquivo de configuração é seu e o código do agente é auditável.

Limite na sua infraestrutura

Configurado por você, no seu servidor, fora do alcance do painel. O agente pode recusar um pedido do painel. O painel nunca pode ampliar o que o agente aceita.

Registro de egresso auditável

Cada envio fica registrado com data, destino, nível aplicado, tamanho e hash do conteúdo. O comando egress-dump devolve o conteúdo exato do que saiu, e o painel mostra, por sistema, quantos bytes de código deixaram a sua rede no período. Em L0 e L1, zero. É o entregável que fecha uma análise de risco de fornecedor, e por isso é requisito e não item opcional.

Isolamento por organização

Cada cliente é uma organização isolada por Row-Level Security do PostgreSQL, verificada por teste automatizado que percorre todas as rotas da API. Os papéis são distintos (proprietário, administrador, analista de segurança, desenvolvedor e auditor), e só o proprietário pode afrouxar a política de dados.

Verificações

O que o agente executa

Catálogo de ferramentas consagradas, cada uma fixada por digest da imagem: o mesmo commit analisado duas vezes produz o mesmo resultado. Nada aqui é motor proprietário reinventado.

SAST

Análise estática do código, com Semgrep.

SCA

Dependências vulneráveis, por análise de lockfile, com Trivy.

Segredos

Credenciais no código e no histórico do Git, com Gitleaks.

IaC e contêineres

Configuração de infraestrutura e Dockerfile, com Trivy e hadolint.

SBOM

Inventário de componentes, com Syft.

Descoberta de ativos

O agente classifica repositório e URL, inclusive interna, e diz quais ferramentas se aplicam a cada um.

Uma decisão consciente: o JagunçIA nunca executa gerenciador de pacotes nem compila o código do cliente. A análise de dependência é feita pela leitura do lockfile. Isso elimina uma classe inteira de risco, como script de postinstall, que ferramentas que precisam resolver a árvore de dependências carregam por desenho.

O JagunçIA analisa o próprio código do JagunçIA. O nosso repositório é um sistema cadastrado no produto, e achado no nosso código entra na mesma fila, com a mesma regra de bloqueio, sem exceção para a casa. Uma consultoria de segurança que não usa a própria ferramenta no próprio produto não tem argumento.

Inventário

Um sistema não é um repositório só

Na vida real, um sistema tem frontend, API, jobs e infraestrutura em repositórios diferentes, e portal, API, painel administrativo e monitoração em URLs diferentes. Tratar tudo como uma coisa só produz ruído e escopo errado.

Você informa o tipo de cada repositório e de cada URL, ou deixa o JagunçIA descobrir: primeiro pelo endereço, depois por uma sondagem que o próprio agente executa, porque URL interna não é alcançável de fora.

Cada tipo recebe só as ferramentas que fazem sentido nele:

  • Repositório de Terraform não recebe análise estática de aplicação.
  • Repositório só de documentação recebe apenas busca de segredos.
  • Endpoint de monitoração não recebe verificação nenhuma.

E a tela mostra o que não vai rodar, com o motivo: falta autorização de teste, falta agente instalado, ambiente não liberado. Escopo que se explica é escopo que dá para discutir com a área de segurança em vez de defender depois.

  • Por tipo de ativo repositório de aplicação, de infraestrutura, de documentação; portal, API, painel, monitoração
  • Descoberta pelo agente a sondagem sai de dentro da rede, que é o único lugar de onde a URL interna responde
  • O que não roda, e por quê a ausência de verificação é exibida, não escondida

Triagem

A IA opina, e mostra exatamente o que enviou

A IA lê o achado e responde se é exploração real ou falso positivo, com justificativa e sugestão de correção em português. Cada triagem registra o que foi enviado ao modelo, para qual provedor, com quais redações aplicadas e quanto custou. Sem isso, “a IA disse” é uma caixa preta dentro da sua análise de segurança.

Provedor da BiExpert

O caminho mais simples: nós mantemos o provedor de modelo e você acompanha, achado por achado, o que saiu e a que custo.

A sua própria conta

Aponte para o seu Azure OpenAI ou para o seu Bedrock. O tráfego de IA fica no seu contrato de nuvem, sob a sua política.

Modelo local no agente

Um modelo rodando dentro do próprio agente, na sua infraestrutura: egresso zero para a triagem.

Ou desligue a IA. Sem ela o produto continua funcionando: a priorização é determinística e combina severidade, criticidade do sistema, exposição de rede, exploração conhecida e idade do achado. A IA ajusta essa ordem e explica o achado; ela não é o que sustenta a fila.

Fluxo de trabalho

Comenta no pull request, em português, só no que é novo

Ferramenta de segurança que atravessa o caminho do desenvolvimento acaba desligada. O JagunçIA entra pelo caminho por onde o time já trabalha, e começa sem poder de veto.

  • Conexão com Azure DevOps e GitHub, inclusive nas versões instaladas na infraestrutura do cliente. O Azure DevOps vem primeiro, porque é o caminho mais comum nos nossos clientes.
  • Comentário no pull request apenas nos achados novos daquele PR, e nunca o mesmo comentário reposto a cada envio.
  • Começa em modo consultivo: não reprova pull request nenhum. Passar a bloquear exige decisão explícita do cliente, depois de ver a previsão de impacto.
  • A instalação abre um pull request explicando exatamente o que muda no repositório e quais dados saem da rede.
  • Modo consultivo por padrão bloquear é uma decisão do cliente, com previsão de impacto na mesa
  • Só o que é novo o passivo antigo não vira ruído no PR de hoje
  • Instalação por pull request a própria adoção passa pela revisão de código do time

Roteiro

No roteiro

O que vem a seguir. Se algum destes itens for decisivo para o seu caso, vale conversar: a ordem do roteiro acompanha a necessidade dos clientes.

DAST

Varredura do sistema em execução, com o mesmo desenho de egresso: a varredura sai do agente, de dentro da rede.

Teste de API

Teste dirigido pela especificação OpenAPI, para cobrir rota, parâmetro e autorização de cada endpoint declarado.

Pentest assistido por IA

Teste de intrusão conduzido por especialista, com apoio de IA, relatório em português e carta de atestação.

GitLab e Bitbucket

Depois do Azure DevOps e do GitHub, que vêm primeiro.

Gráfico Helm

Instalação do agente em Kubernetes pelo caminho que a plataforma do cliente já usa.

Ambiente sem internet

Pacote para rede sem saída para a internet, em que nem o long-poll existe.

Feito para quem tem código que não pode sair da rede: banco, governo, saúde, seguradora. E para time de desenvolvimento que precisa de segurança no fluxo de trabalho sem virar gargalo.

Motores que o agente executa

  • Semgrep SAST
  • Trivy SCA · IaC
  • Gitleaks Segredos
  • hadolint Dockerfile
  • Syft SBOM

Cada imagem é fixada por digest, então o mesmo commit analisado duas vezes produz o mesmo resultado. DAST e teste de API estão no roteiro, e não em produção.

Contato

Quer ver o JagunçIA de perto?

Mostramos o produto rodando, inclusive o registro de egresso, para você acompanhar exatamente o que sai da rede em cada nível.

Pedir uma demonstração

ou escreva para contato@biexpert.com.br