Presidio e LiteLLM escondem dados pessoais de LLMs externas: teste de três configurações em 20 textos
Enviar a uma LLM na nuvem e-mails de clientes com nome completo, telefones e endereços é um risco que não se resolve com um simples «não guardamos logs». O autor da análise publicada no Habr mostra como configurar o Microsoft Presidio para o russo, adicionar regras próprias e integrar o mascaramento ao proxy LiteLLM. Os nomes são substituídos por marcadores antes da requisição e restaurados após a resposta. O teste com 20 textos fictícios mostrou que o endereço às vezes permanece parcialmente exposto.
Processado por IA de Хабр: NLP; editado por Hamidun News
Situação familiar: a empresa quer passar pelo GPT ou pelo Claude as solicitações de clientes, e nelas há sobrenomes, telefones, e-mails e endereços. Os advogados torcem o nariz, o time de segurança pede que se faça «alguma coisa». A solução mais simples é não enviar dados pessoais de forma alguma: substituí-los por marcadores, esperar a resposta e recolocar os valores originais. Foi exatamente esse esquema, baseado em Presidio e LiteLLM, que foi analisado no Habr.
Uma ressalva importante: temos apenas o anúncio do artigo, e não o texto completo. Por isso, abaixo estão o que o autor declara diretamente e a mecânica geral das ferramentas, conhecida a partir da documentação delas.
Como funciona num exemplo simples
O Presidio é uma biblioteca open source da Microsoft para detectar e anonimizar dados pessoais. Ela tem duas partes. O Analyzer encontra entidades no texto: nomes, telefones, e-mails, números de cartão. O Anonymizer substitui o que foi encontrado de acordo com a regra escolhida: remove, mascara ou insere um marcador.
Imagine a requisição: «Ivan Petrov pede que liguem para o número +7 900 123-45-67». Para o modelo vai: «<PERSON_1> pede que liguem para o número <PHONE_1>». O modelo responde usando os mesmos marcadores, e o proxy recoloca os valores reais. O provedor externo não vê os dados reais, e o usuário recebe uma resposta coerente.
O LiteLLM faz aqui o papel de proxy entre a sua aplicação e os provedores de modelos. Ele tem integração com o Presidio na forma de guardrail: o mascaramento e a substituição reversa ficam num único ponto, sem necessidade de reescrever o código de cada serviço.
Onde começam as dificuldades com o russo
De fábrica, o Presidio é voltado ao inglês. Para o russo, é preciso conectar um modelo de linguagem adequado, por exemplo do spaCy, e verificar se ele realmente encontra nomes nos diferentes casos gramaticais. «Ивану Петрову», «у Ивана Петрова» e «Петрова И. А.» são tarefas diferentes para o modelo.
Depois, são necessárias regras próprias. O Presidio permite adicionar reconhecedores próprios baseados em expressões regulares, palavras de contexto e listas. Para a realidade russa, isso significa números de contrato, INN, SNILS e identificadores internos de clientes. Provavelmente não existe um reconhecedor pronto para esses dados, e será preciso escrevê-lo por conta própria. O autor analisa essa configuração em separado.
O que o teste mostrou
O autor comparou três configurações em 20 textos fictícios. O anúncio não traz números detalhados, mas uma conclusão é apontada de forma direta: em alguns casos, parte do endereço permanece exposta.
A causa é típica de endereços. Trata-se de uma entidade composta de cidade, rua, número do prédio e apartamento. O modelo marca com confiança a cidade ou a região, mas ignora a rua com o número ou a corta ao meio. Para haver vazamento, basta um fragmento: «ул. Лесная, 12» (rua Lesnaya, 12), combinado com outros dados, já aponta para uma pessoa.
O que fazer na prática
- Não trate o mascaramento como «ligou e esqueceu». Monte um conjunto de testes próprio com textos em russo e os dados típicos do seu caso, e meça a taxa de omissões antes de ir para produção.
- Cubra endereços, números de documentos e identificadores internos com regras separadas. Um modelo NER padrão não basta para eles.
- Decida o que pesa mais: deixar passar algo ou mascarar demais. Para dados de clientes, é melhor tolerar falsos positivos do que vazamentos.
- Guarde a correspondência entre marcadores e valores apenas no lado do proxy e somente durante a requisição.
Limitações
Uma amostra de 20 textos fictícios é pequena para julgar a precisão real em um fluxo de produção. E-mails reais são mais longos, com erros de digitação, abreviações e mistura de idiomas. Os marcadores no texto podem influenciar a resposta do modelo: ele perde contexto como gênero ou nacionalidade, e a qualidade em algumas tarefas cai.
O resumo é este: a combinação de Presidio e LiteLLM é uma forma funcional e barata de reduzir o risco ao usar LLMs externas. Mas não é uma garantia enquanto você não a testar com os seus dados e não fechar brechas como endereços parcialmente expostos. Para equipes que já usam modelos na nuvem com textos de clientes, vale a pena ler o original e repetir o teste com o próprio conjunto de dados.
- 12 de nov. de 2026Jensen Huang deixa o cargo de CEO da Nvidia: empresa perde US$ 1,4 trilhão em duas semanas
- 12 de nov. de 2026Claude in Chrome exige autorização para cada clique em sites da categoria 3
- 12 de nov. de 2026AWS Quick ganha seis agentes para product managers: das reclamações de clientes à especificação
- 12 de nov. de 2026Anthropic fecha o Claude para empresas russas a partir de 12 de novembro, mesmo com entidade jurídica no exterior
Perguntas frequentes sobre a notícia
Como funciona num exemplo simples?
O Presidio é uma biblioteca open source da Microsoft para detectar e anonimizar dados pessoais. Ela tem duas partes. O Analyzer encontra entidades no texto: nomes, telefones, e-mails, números de cartão. O Anonymizer substitui o que foi encontrado de acordo com a regra escolhida: remove, mascara ou insere um marcador. Imagine a requisição: «Ivan Petrov pede que liguem para o número +7 900 123-45-67». Para o modelo vai: «<PERSON_1> pede que liguem para o número <PHONE_1>».
Onde começam as dificuldades com o russo?
De fábrica, o Presidio é voltado ao inglês. Para o russo, é preciso conectar um modelo de linguagem adequado, por exemplo do spaCy, e verificar se ele realmente encontra nomes nos diferentes casos gramaticais. «Ивану Петрову», «у Ивана Петрова» e «Петрова И. А.» são tarefas diferentes para o modelo. Depois, são necessárias regras próprias. O Presidio permite adicionar reconhecedores próprios baseados em expressões regulares, palavras de contexto e listas.
O que o teste mostrou?
O autor comparou três configurações em 20 textos fictícios. O anúncio não traz números detalhados, mas uma conclusão é apontada de forma direta: em alguns casos, parte do endereço permanece exposta. A causa é típica de endereços. Trata-se de uma entidade composta de cidade, rua, número do prédio e apartamento. O modelo marca com confiança a cidade ou a região, mas ignora a rua com o número ou a corta ao meio. Para haver vazamento, basta um fragmento: «ул.
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
O essencial da IA — uma vez por semana
Sete histórias que realmente importaram, escolhidas a dedo. Sem ruído nem releases.
Pronto! Verifique seu e-mail para a confirmação.