Capa

Segurança de IA: como proteger aplicações com agentes e APIs

O risco mais importante do relatório da Anthropic não é apenas alguém pedir a um chatbot uma resposta proibida: é o uso de modelos de IA como parte de um fluxo de trabalho que pode acelerar pesquisa biológica perigosa, espionagem digital ou extração de capacidades de um serviço. Para quem desenvolve software, a lição é direta: filtros de prompt, sozinhos, não são uma estratégia de segurança.

Segundo o Terra.com.br, a Anthropic afirmou ter frustrado tentativas de uso do Claude relacionadas ao desenvolvimento de armas biológicas, interrompido ações de uma campanha de espionagem eletrônica supostamente ligada à Rússia contra a Ucrânia e identificado tentativas de concorrentes chineses de extrair recursos do modelo. São alegações relatadas pela empresa, não conclusões que eu trataria como verificação independente. Ainda assim, o cenário descrito ajuda a entender como proteger aplicações que integram IA.

O que o relatório da Anthropic revela sobre segurança de IA

A empresa documentou cinco casos em que cientistas usaram seus modelos de formas que poderiam apoiar o desenvolvimento de armas biológicas. O texto de referência não detalha os pedidos nem permite concluir que todos os casos chegaram a produzir resultados perigosos. Essa distinção importa: identificar uma tentativa de uso indevido não é o mesmo que comprovar que um modelo criou uma arma.

O relatório também chama atenção para dois problemas diferentes. Um é o uso malicioso do modelo, quando alguém tenta obter assistência para uma atividade nociva. Outro é o abuso da própria plataforma, como o uso automatizado para copiar, inferir ou reproduzir capacidades de um sistema. Cada problema pede controles diferentes.

Na minha experiência com sistemas de software, tratar tudo como “moderação de conteúdo” deixa lacunas. Uma aplicação pode bloquear uma solicitação explícita e ainda permitir que um agente automatizado faça milhares de chamadas, distribua o tráfego entre contas ou use ferramentas conectadas para executar ações fora do chat.

Por que um filtro de prompt não basta

Filtros de entrada e saída são úteis, mas trabalham sobre partes isoladas de uma interação. Um pedido pode parecer inofensivo fora de contexto e se tornar preocupante quando combinado com chamadas anteriores, acesso a ferramentas e objetivos persistentes de um agente.

Também existe a diferença entre recusar uma resposta e conter um sistema. A recusa atua na interface conversacional. A contenção depende de limites de rede, permissões, cotas, isolamento de ferramentas e monitoramento de comportamento. Se o modelo puder enviar e-mails, executar código ou consultar dados internos, a segurança dessas integrações não pode depender apenas do que o modelo promete fazer.

Por isso, eu separo a proteção em camadas: políticas do provedor, validação na aplicação, permissões mínimas para ferramentas, limites de uso e observabilidade. Se uma camada falhar, as outras ainda podem reduzir o impacto.

Espionagem eletrônica e agentes de IA: onde está o risco técnico

O Terra relata que a Anthropic interrompeu ações associadas a uma campanha de espionagem eletrônica supostamente vinculada à Rússia contra a Ucrânia. Sem detalhes técnicos no material de referência, não dá para afirmar quais ferramentas ou técnicas foram usadas. O ponto para quem constrói sistemas é mais amplo: modelos podem ser inseridos em fluxos de trabalho que já envolvem coleta de informação, automação e ferramentas externas.

Quando um agente recebe acesso a navegador, terminal, repositório ou sistema de tickets, cada integração aumenta a superfície de ataque. Uma instrução maliciosa pode estar em uma página, arquivo ou comentário que o agente consulta. Isso é uma forma de prompt injection: conteúdo não confiável tenta alterar o comportamento do modelo, mesmo sem modificar as instruções do sistema.

Não resolvo isso escrevendo um prompt de sistema cada vez mais longo. Prefiro limitar o que a ferramenta pode fazer. Um agente que só precisa resumir um documento não deveria ter permissão para executar comandos, alterar arquivos ou acessar credenciais de produção.

Extração de modelos e abuso de APIs

Segundo o relato, a Anthropic acusou concorrentes chineses de tentarem extrair recursos do Claude. Em sistemas de IA, “extração” pode descrever tentativas de aprender o comportamento de um modelo por meio de consultas repetidas. Mas o conteúdo de referência não informa a técnica, a escala ou as evidências específicas desses casos. Eu trataria a acusação como uma afirmação da empresa, sem extrapolar além disso.

Do ponto de vista defensivo, o problema pode se parecer com abuso de API: alto volume de chamadas, padrões repetitivos, distribuição por contas ou endereços de rede e uso concentrado em certas funcionalidades. Uma limitação simples por IP não basta quando o tráfego se distribui por várias origens. Da mesma forma, bloquear toda atividade intensa prejudica clientes legítimos, como equipes que executam avaliações automatizadas.

A resposta prática é combinar controles: autenticação por cliente, limites por conta e projeto, cotas, detecção de anomalias e revisão de padrões de uso. Os limites devem refletir o produto. Uma ferramenta interna de análise pode ter um perfil de tráfego diferente de um chatbot público, então não existe um número universal de requisições que sirva para todos.

Na Prática: monitore padrões de uso sem armazenar conversas

Abaixo está um exemplo didático em Python para sinalizar eventos de uso atípico. Ele não identifica intenção maliciosa e não substitui controles de acesso. Serve para demonstrar uma abordagem importante: começar por métricas operacionais e enviar casos suspeitos para revisão, em vez de guardar indiscriminadamente o conteúdo dos prompts.

from dataclasses import dataclass
from typing import List


@dataclass
class UsageEvent:
    requests_5m: int
    distinct_ips_1h: int
    denied_rate: float
    tokens_per_request: float


def assess_usage(event: UsageEvent) -> tuple[str, List[str]]:
    reasons = []

    # Valores ilustrativos: calibre com dados legítimos do seu serviço.
    if event.requests_5m > 120:
        reasons.append("volume elevado em cinco minutos")

    if event.distinct_ips_1h > 8:
        reasons.append("muitas origens para a mesma identidade")

    if event.denied_rate > 0.35:
        reasons.append("proporção alta de solicitações recusadas")

    if event.tokens_per_request > 6000:
        reasons.append("média de tokens por solicitação incomum")

    if len(reasons) >= 2:
        return "review", reasons

    if reasons:
        return "monitor", reasons

    return "allow", []


if __name__ == "__main__":
    sample = UsageEvent(
        requests_5m=150,
        distinct_ips_1h=10,
        denied_rate=0.40,
        tokens_per_request=7200,
    )

    action, reasons = assess_usage(sample)
    print({"action": action, "reasons": reasons})

Os números do exemplo são apenas ilustrativos; copiar esses limites para produção sem medir o tráfego real costuma gerar falsos positivos. Eu começaria registrando métricas agregadas por conta ou projeto, mediria a variação normal e só depois definiria alertas. Se uma sinalização puder bloquear um cliente, inclua revisão humana ou uma etapa de confirmação.

Também evite registrar prompts completos por padrão. Eles podem conter dados pessoais, segredos comerciais ou código proprietário. Para investigação, prefira identificadores pseudonimizados, contadores, horários e códigos de decisão. Se precisar preservar conteúdo por uma razão legítima, defina acesso restrito, prazo de retenção e regras claras de auditoria.

Erros comuns ao integrar modelos de IA

  • Confiar apenas na instrução de sistema: instruções ajudam a orientar o modelo, mas não impõem permissões técnicas. Restrinja as ferramentas na aplicação.
  • Dar acesso amplo ao agente: use o princípio do menor privilégio. Separe leitura e escrita, e mantenha ações sensíveis atrás de confirmação explícita.
  • Usar um limite global de requisições: cotas por conta, projeto e tipo de operação ajudam a diferenciar abuso de automação legítima.
  • Bloquear qualquer padrão incomum automaticamente: picos podem vir de testes, lotes legítimos ou mudanças no produto. Comece com alertas e calibração.
  • Guardar todas as conversas “para investigar depois”: retenção excessiva aumenta o impacto de vazamentos e cria obrigações de privacidade.
  • Confundir recusa com segurança: um modelo pode recusar uma solicitação e ainda estar inserido em uma arquitetura com permissões excessivas ou monitoramento insuficiente.

O que muda para quem desenvolve aplicações com IA

O relatório também reforça que a segurança de IA precisa acompanhar o ciclo de vida do produto. Antes do lançamento, teste abuso de ferramentas, tentativas de contornar políticas e situações em que dados não confiáveis entram no contexto. Depois, monitore alterações de volume, permissões e comportamento dos usuários.

Na prática, eu incluiria no checklist de uma integração: chaves separadas por ambiente; rotação de credenciais; limites de uso; ferramentas com permissões mínimas; validação de argumentos antes da execução; logs sem conteúdo sensível por padrão; e um procedimento para suspender uma integração comprometida. Esses controles não resolvem todos os riscos, mas reduzem a chance de uma falha conversacional virar uma falha operacional.

Também compararia as opções de implementação pelo que elas realmente oferecem: controles de API, transparência de logs, configurações de retenção, suporte a avaliação e facilidade para restringir ferramentas. Não escolheria um provedor apenas por uma promessa genérica de segurança. O modelo é uma peça da arquitetura; a aplicação que o envolve continua sendo responsabilidade de quem a constrói.

FAQ: segurança de Claude e uso de IA em aplicações

O relatório prova que o Claude criou armas biológicas?

Não. Segundo o relato do Terra, a Anthropic documentou cinco exemplos de cientistas usando modelos de formas que poderiam apoiar o desenvolvimento de armas biológicas e afirmou ter frustrado tentativas. Isso não equivale a afirmar que o modelo criou uma arma ou que todos os casos produziram resultados perigosos.

Um filtro de conteúdo é suficiente para proteger uma aplicação com IA?

Não. Ele pode ajudar a detectar solicitações inadequadas, mas não substitui limites de API, permissões mínimas, isolamento de ferramentas, monitoramento e controles sobre dados. Segurança depende de várias camadas.

Como reduzir o risco de prompt injection em agentes?

Trate páginas, arquivos e mensagens externas como dados não confiáveis. Limite as ações disponíveis ao agente, valide argumentos antes de executar ferramentas e exija confirmação para operações sensíveis. Não dependa apenas de instruções no prompt.

Devo bloquear automaticamente contas com uso fora do padrão?

Nem sempre. Um alerta pode indicar abuso, mas também pode corresponder a um teste legítimo ou a um pico esperado. Calibre limites com métricas reais e use revisão ou bloqueio gradual quando o impacto sobre clientes for alto.

Gostou? Me segue no GitHub e deixa um comentário se tiver dúvida ou quiser aprofundar algum ponto.

Y

Yuri Sousa

Front-End Developer / Designer

Desenvolvedor apaixonado por criar experiências digitais acessíveis e visualmente perfeitas. Escrevo sobre desenvolvimento web, design e tecnologia.