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.
EXPERT
JagunçIA · Segurança de aplicações
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.
O problema
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.
Como funciona
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
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.
HTTPS 443 · somente saída
O agente pergunta se há trabalho e devolve o resultado. Nenhuma porta é aberta no firewall do cliente.
Painel JagunçIA
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.
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.
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
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.
Apenas contagens, por severidade e por regra. Zero caminho de arquivo, zero nome de pacote.
Por achado: a regra, a severidade, o caminho, a linha e o CWE. Nenhum caractere de código.
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.
Até 40 linhas de contexto, passadas por um redator determinístico que substitui literais, segredos, CPF, CNPJ e endereços internos por marcadores.
Trecho de código e trilha de dataflow, para quando o objetivo é entender o caminho inteiro do dado até a falha.
Garantias
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.
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.
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.
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
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.
Análise estática do código, com Semgrep.
Dependências vulneráveis, por análise de lockfile, com Trivy.
Credenciais no código e no histórico do Git, com Gitleaks.
Configuração de infraestrutura e Dockerfile, com Trivy e hadolint.
Inventário de componentes, com Syft.
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
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:
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.
Triagem
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.
O caminho mais simples: nós mantemos o provedor de modelo e você acompanha, achado por achado, o que saiu e a que custo.
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.
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
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.
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.
Varredura do sistema em execução, com o mesmo desenho de egresso: a varredura sai do agente, de dentro da rede.
Teste dirigido pela especificação OpenAPI, para cobrir rota, parâmetro e autorização de cada endpoint declarado.
Teste de intrusão conduzido por especialista, com apoio de IA, relatório em português e carta de atestação.
Depois do Azure DevOps e do GitHub, que vêm primeiro.
Instalação do agente em Kubernetes pelo caminho que a plataforma do cliente já usa.
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.
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
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çãoou escreva para contato@biexpert.com.br