Protegendo agentes de IA e o uso de ferramentas
Restrinja as ações de agentes autônomos.
Protegendo agentes de IA e o uso de ferramentas é uma aula grátis de Cyber Security Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cyber Security Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cyber Security Academy inclui 4 aulas no total.
O que torna os agentes arriscados
Um agente de IA é um LLM conectado a ferramentas e a um ciclo: ele raciocina, chama funções (pesquisa, execução de código, APIs, acesso a arquivos), observa os resultados e repete o processo até atingir um objetivo. Essa autonomia é poderosa e perigosa.
A principal mudança de segurança é esta: em um chatbot comum, uma saída inadequada é apenas texto. Em um agente, uma decisão inadequada se torna uma ação real: um registro excluído, um e-mail enviado, um valor gasto ou um segredo vazado.
Como conteúdo não confiável pode entrar no ciclo de raciocínio, toda ferramenta que o agente possui é uma superfície de ataque para injeção de instruções.
Menor privilégio para as ferramentas
O controle mais importante é o menor privilégio. Conceda a cada ferramenta o escopo mais restrito que ainda permita realizar a tarefa.
- Prefira somente leitura a leitura e gravação; restrinja as leituras aos dados do usuário atual.
- Divida ferramentas amplas em ferramentas restritas (uma ferramenta
get_invoice, e não uma ferramenta de SQL bruto). - Associe as credenciais da ferramenta à identidade do usuário final, e não a uma conta de serviço compartilhada, para que o agente herde apenas o que o usuário pode fazer.
# Scope queries to the authenticated user, never raw SQL
def get_invoice(invoice_id: str, *, user_id: str):
return db.query(
"SELECT * FROM invoices WHERE id=%s AND owner=%s",
(invoice_id, user_id),
)Pontos de verificação com participação humana
Para ações de alto impacto ou irreversíveis, exija aprovação humana explícita antes da execução. O agente propõe; uma pessoa confirma.
- Enviar e-mails ou mensagens externas.
- Realizar transações financeiras ou compras.
- Excluir ou substituir dados.
- Implantar código ou alterar a infraestrutura.
Mostre ao usuário a ação exata e os argumentos em linguagem simples, para que ele possa identificar um comando injetado ou inventado pelo modelo antes da execução.
Isolamento de código e comandos
Agentes que executam código ou comandos de um interpretador devem fazê-lo em um ambiente isolado, nunca na máquina hospedeira.
- Use contêineres efêmeros ou microVMs sem montagens da máquina hospedeira.
- Desative o acesso à rede por padrão; permita apenas uma lista explícita de permissões de saída.
- Defina limites de CPU, memória e tempo para conter códigos descontrolados ou maliciosos.
- Execute como um usuário sem privilégios de superusuário, com um sistema de arquivos raiz somente leitura.
docker run --rm \
--network none \
--read-only \
--user 1000:1000 \
--memory 256m --cpus 0.5 \
--pids-limit 64 \
agent-sandbox:latest python /work/task.pyRompendo a tríade letal
Um agente se torna uma ferramenta de exfiltração de dados quando tem simultaneamente acesso a dados privados, exposição a conteúdo não confiável e capacidade de se comunicar externamente. Essa combinação é a tríade letal.
Projete o sistema para remover pelo menos um desses elementos em qualquer fluxo de trabalho:
- Isole as sessões que acessam conteúdo não confiável daquelas que contêm dados confidenciais.
- Restrinja a saída da rede a uma lista de permissões rigorosa.
- Exija aprovação antes de qualquer envio externo quando houver dados privados no contexto.
Saída de ferramenta não confiável
Os resultados das ferramentas retornam ao contexto do modelo, portanto a saída da ferramenta é uma entrada não confiável. Uma página da Web, um arquivo obtido ou uma resposta da API pode conter instruções injetadas destinadas à próxima etapa de raciocínio.
- Envolva a saída da ferramenta em delimitadores claros e identifique-a como dados, não como comandos.
- Remova ou neutralize textos ocultos (comentários HTML, caracteres de largura zero e CSS fora da área visível).
- Limite o tamanho do conteúdo injetado para reduzir o espaço disponível para a carga útil.
Nunca permita que a saída bruta de uma ferramenta determine silenciosamente a próxima chamada sem verificações de política.
Listas de permissões de ações e aplicação de políticas
Não confie que o modelo fiscalize a si mesmo. Aplique uma camada de política no código entre o agente e cada ferramenta.
- Valide cada chamada de ferramenta comparando-a com uma lista de permissões de ações permitidas e formatos de argumentos.
- Rejeite chamadas que estejam fora do escopo da tarefa atual.
- Aplique limites de taxa e orçamentos por ferramenta e por usuário.
Essa barreira determinística é executada independentemente da decisão do modelo, portanto uma injeção bem-sucedida ainda encontra um bloqueio intransponível.
def authorize(call):
if call.name not in ALLOWED_TOOLS:
raise PolicyError("tool not allowed")
if not SCHEMA[call.name].validate(call.args):
raise PolicyError("bad arguments")
if exceeds_budget(call):
raise PolicyError("rate limit")Limitando o ciclo
Ciclos autônomos podem sair de controle: tentativas infinitas, chamadas recursivas de ferramentas e gastos descontrolados (esgotamento financeiro). Estabeleça limites.
- Limite o número máximo de etapas e o total de tokens por tarefa.
- Defina limites de tempo de execução para todo o processo.
- Acompanhe o custo acumulado e interrompa a execução ao atingir o limiar.
- Detecte ciclos (chamadas idênticas repetidas) e saia deles.
Esses limites também reduzem o impacto de ataques de negação de serviço e de consumo sem limites (OWASP LLM10).
Riscos da memória e de vários agentes
Sistemas com memória persistente do agente e vários agentes adicionam uma nova superfície de ataque:
- Envenenamento da memória: uma injeção gravada na memória de longo prazo em uma sessão influencia sessões posteriores. Use validate e restrinja o escopo do que é persistido.
- Confiança entre agentes: um agente comprometido pode injetar conteúdo em outro. Trate as mensagens entre agentes como não confiáveis.
- Confusão de autoridade: um agente privilegiado age com base na solicitação de um agente menos confiável. Propague a autorização da identidade original por toda a cadeia.
Registro e observabilidade
Não é possível proteger aquilo que não se consegue ver. Instrumente o rastreamento completo do agente:
- Registre cada chamada de ferramenta, seus argumentos e seu resultado.
- Registre o contexto do raciocínio e todo conteúdo recuperado para análise forense.
- Emita alertas sobre anomalias: saída de rede inesperada, uso de privilégios, recusas repetidas e picos de custo.
- Mantenha uma trilha de auditoria imutável vinculada ao usuário que executou a ação.
Uma boa telemetria transforma um comprometimento silencioso em um incidente detectável e investigável.
Uma arquitetura de agente em camadas
Reunindo tudo, uma pilha de agente defensável se parece com isto:
- Identidade: as ações são executadas como o usuário final, com escopos de menor privilégio.
- Barreira de política: lista de permissões determinística e validação de esquema em cada chamada de ferramenta.
- Ambiente isolado: execução isolada com rede e recursos restritos.
- Pontos de verificação humana: aprovação para ações irreversíveis.
- Limites: orçamentos de etapas, tokens, tempo e custo.
- Observabilidade: registro completo de auditoria e alertas de anomalias.
Presuma que o modelo possa ser sequestrado; garanta que, quando isso acontecer, o alcance dos danos permaneça pequeno.
Verificação rápida
Teste sua compreensão dos controles de segurança de agentes.
Recapitulação
Proteção de agentes de IA e do uso de ferramentas:
- Os agentes transformam saídas inadequadas em ações reais, portanto toda ferramenta é uma superfície de ataque.
- Aplique o privilégio mínimo a cada ferramenta e associe as credenciais ao usuário final.
- Exija aprovação humana para ações irreversíveis e execute código em um ambiente isolado.
- Desfaça a tríade letal; trate a saída das ferramentas como entrada não confiável.
- Aplique no código, e não no comando, uma barreira de política determinística (listas de permissões, validação de esquema).
- Limite o ciclo (etapas, tokens, tempo, custo) e registre cada chamada de ferramenta para fins de detecção.
Perguntas Frequentes
A aula “Protegendo agentes de IA e o uso de ferramentas” é grátis?
Sim — o texto completo de “Protegendo agentes de IA e o uso de ferramentas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cyber Security Academy, atualize para CoddyKit PRO. O curso de Cyber Security Academy inclui 4 aulas no total.
O que vou aprender em “Protegendo agentes de IA e o uso de ferramentas”?
Restrinja as ações de agentes autônomos. Você pratica Cyber Security Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cyber Security Academy?
Nenhuma experiência prévia é necessária. Cyber Security Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Protegendo agentes de IA e o uso de ferramentas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cyber Security Academy?
Sim. Cada aula de Cyber Security Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Injeção de solicitações e jailbreaks
- Os 10 principais riscos de LLM da OWASP
- Protegendo agentes de IA e o uso de ferramentas
- Riscos de modelo, dados e cadeia de suprimentos