Agentes de IA para segurança
Por que automatizar recon e teste na API da NotHoly
Ponha no pipeline um modelo que não recusa, com CVE, advisory e leitura de páginas públicas sem custo de tokens. Suas ferramentas fazem o ativo.
O desenho de um pequeno agente de bug bounty: um LLM, ferramentas, memória e guardrails, em um loop que roda na sua máquina sob sua aprovação.
Um hackbot é um pequeno programa que coloca um modelo de linguagem em um loop com ferramentas, para que ele rode parte do seu recon e teste sozinho e pare para a sua aprovação antes de qualquer coisa tocar um alvo. Este é o primeiro de três posts que montam um. Este é o desenho. A parte dois escreve o código, e a parte três o conecta a ferramentas compartilhadas e ao editor. Se agentes são novidade para você, leia antes o que são agentes de IA e uso de ferramentas.
Um hackbot automatiza o meio chato e repetível do loop: rodar um comando de recon, ler a saída, decidir o próximo comando, manter notas. Ele não é um atacante autônomo, e você não deveria montar um. O valor é um assistente incansável que propõe passos e registra o que fez, com você segurando as decisões e o teclado para qualquer coisa que mande tráfego.
| Parte | Papel | Neste projeto |
|---|---|---|
| Modelo | Lê a saída, planeja, chama ferramentas | A API da NotHoly compatível com OpenAI |
| Ferramentas | As coisas que ele pode de fato fazer | Comandos de shell que você permite, mais chamadas de pesquisa |
| Memória | O que ele lembra entre passos | A lista de mensagens, mais um arquivo de notas em disco |
| Guardrails | O que ele não pode fazer | Checagem de escopo e aprovação antes de cada comando |
O modelo não age sozinho. Ele lê, planeja e pede para chamar uma ferramenta. Seu código decide se roda aquela ferramenta. Essa divisão é o desenho inteiro: o modelo é o cérebro, seu código são as mãos, e as mãos pedem permissão.
O loop é curto. Você manda ao modelo o objetivo e as ferramentas que ele pode chamar. O modelo responde com texto ou com um pedido para chamar uma ferramenta. Se ele pede uma ferramenta, seu código a roda, depois da sua aprovação para qualquer coisa que toque um alvo, e manda o resultado de volta. O modelo lê o resultado e decide o próximo passo. Isso repete até o modelo dizer que terminou ou você parar.
O modelo que você usa é a sua escolha no catálogo. Liste os modelos com GET /v1/models e escolha um que suporte tool calling e um contexto grande o bastante para as suas notas. O código nunca fixa um nome de modelo; ele lê um da configuração, então você troca sem tocar no loop.
Dois guardrails importam. O primeiro é escopo: antes de qualquer comando rodar, confira o alvo dele contra o escopo do programa e recuse ou pause em qualquer coisa de fora. O segundo é aprovação: um comando que manda tráfego espera o seu sim. Esses não são extras opcionais; são a razão de a coisa ser segura de rodar.
Um terceiro guardrail é mais quieto e igualmente importante. Saída de ferramenta é dado, não instrução. Uma página ou um resultado de scan pode conter texto que parece um comando para o modelo, e um loop ingênuo vai segui-lo. O OWASP Top 10 para Aplicações de LLM chama isso de prompt injection, o seu risco número um. Seu loop precisa tratar todo resultado de ferramenta como entrada não confiável e nunca deixar que ele amplie o que o agente tem permissão de fazer.
O agente roda na sua máquina para que cada request saia do seu endereço, cada comando seja seu para aprovar, e cada log seja seu para guardar. O modelo roda na API da NotHoly, que faz inferência e nada mais: nunca scaneia nem manda tráfego a um alvo. Essa divisão é o que torna o agente usável para bug bounty. O tráfego vem de onde o programa espera, e você consegue provar o que mandou.
Monte o loop e os guardrails você mesmo, porque são pequenos e porque você precisa entendê-los. Para as ferramentas, reuse o que existe: o shell que você já tem, as ferramentas de pesquisa que a CLI da NotHoly expõe, e depois as ferramentas compartilhadas de MCP. Não escreva um framework. O próximo post é cerca de cem linhas de Python.
A parte dois escreve o loop com tool calling, aprovação e notas, usando o Model Context Protocol depois na parte três.
Agentes de IA para segurança
Ponha no pipeline um modelo que não recusa, com CVE, advisory e leitura de páginas públicas sem custo de tokens. Suas ferramentas fazem o ativo.
Agentes de IA para segurança
Um pequeno agente de bug bounty em Python com tool calling na API da NotHoly: propõe comandos de recon, espera a sua aprovação, lê a saída e mantém notas.
Agentes de IA para segurança
Dê ao seu agente ferramentas compartilhadas via MCP, adicione uma checagem de escopo com notholy engage, e rode tudo pela CLI da NotHoly ou pelo editor.