Pensando em segurança para LLMs
Dando um passo a mais na segurança de LLMs com LangChain e JWT
Tudo começou com uma calculadora. Era só uma ferramenta pra somar e multiplicar números porque, como a gente sabe, LLMs ainda tropeçam em contas básicas. Mas o tempo passou e as tools evoluíram: hoje, elas já acessam bancos de dados, CRMs com dados sensíveis, e executam queries com um simples comando em linguagem natural.
Prompt injection é um problema real. E é muito mais fácil de acontecer do que parece, especialmente quando a validação de permissões se resume a instruções em texto como "você só pode acessar a tabela X"
Um primeiro passo
Com tudo isso em mente, eu queria começar a contribuir para esse ecossistema de LLMs mais seguros. Decidi começar pequeno, criar algo simples, funcional e que já pudesse ser útil para quem já está explorando o uso de tools com LangChain.
O langchain-auth-tools é um package npm que já está disponível e possui um adaptador leve que te permite controlar quais ferramentas um modelo pode acessar, com base em scopes definidos num JWT ou fornecidos diretamente. A ideia principal é minimizar a exposição de ferramentas desnecessariamente.
Como funciona
Você pode usar JWTs com scopes
como "calculator" ou "crm_read", e instanciar seu modelo com apenas essas ferramentas ativas. Se preferir, pode ignorar o JWT e passar os scopes manualmente (bom pra testes ou ambientes fechados).
const adapter = new AuthToolAdapter(allTools, { skipJwt: true }); const allowedTools = adapter.getAllowedToolsFromScopes(['calculator']);
Ou, com JWT:
const adapter = new AuthToolAdapter(allTools, { jwtSecret: 'sua-chave-secreta' }); const allowedTools = await adapter.getAllowedToolsFromJwt(token);
Pronto! Agora seu modelo só tem acesso ao que ele realmente pode acessar.
E os próximos passos?
Suporte para integração com projetos em Python 🚀
Um sistema de contexto fixo (tipo um "Auth Memory") pra manter autorizações vivas por mais tempo
npm: https://www.npmjs.com/package/langchain-auth-tools
github: https://github.com/ianig/langchain-auth-tools
Sou novo no open source, sugestões e contribuições da comunidades são bem-vindos!!!