olimposec.com
Radar / Bugs / OS-2026-871
risco altoBUG2026-11-05 · 3 min de leitura
0

Falha de integridade entre texto e vetor permite sequestrar sistemas de RAG offline mesmo com pacotes assinados

Resumo executivo

Pesquisadores mostram que pacotes de conhecimento assinados, usados para atualizar sistemas de RAG offline em dispositivos de borda, têm uma lacuna entre assinatura e integridade: a assinatura garante quem publicou o pacote, mas não garante que os vetores de embedding nele realmente correspondem ao texto. Usando uma 'lei de margem' que relaciona a taxa de sucesso de um ataque de sequestro de recuperação à distribuição de margens angulares entre documentos, os autores demonstram ataques práticos contra índices FAISS reais e mostram que até verificadores de similaridade calibrados deixam a maioria das consultas expostas.

Sistemas de RAG (retrieval-augmented generation) que operam offline em dispositivos de borda são atualizados por meio de 'pacotes de conhecimento' assinados digitalmente, que carregam tanto o texto original quanto os vetores de embedding já pré-computados correspondentes a esse texto — pré-computar o embedding evita que o dispositivo de borda, tipicamente limitado em poder de processamento, precise rodar o modelo de embedding localmente. O problema é que a assinatura digital do pacote garante apenas a autenticidade de quem o publicou; ela nada diz sobre se o vetor de embedding associado a um texto realmente foi gerado a partir desse texto, abrindo espaço para um atacante substituir vetores por outros, mantendo o texto inalterado, sem violar a assinatura.

Os autores formalizam essa lacuna com o que chamam de 'margin law' (lei de margem): quando um verificador tenta mitigar o problema recomputando os vetores e aceitando-os dentro de uma tolerância de similaridade de cosseno, a taxa de sucesso do atacante (hijack rate) passa a ser exatamente igual à distribuição de margens angulares de recuperação dentro dessa tolerância — quanto mais próximos os documentos legítimos já estão entre si no espaço vetorial, menos margem o verificador tem para distinguir um vetor genuíno de um forjado. Em cinco corpora e dois modelos de embedding testados, essas margens se mostraram pequenas: mesmo uma tolerância idealizada, no nível do ruído de ponto flutuante, já deixa de 1,2% a 5,5% das consultas expostas, e uma tolerância calibrada de forma realista deixa de 98% a 100% das consultas vulneráveis.

Em um teste mais concreto contra um índice FAISS com quantização de produto sobre 57.638 documentos, vetores adulterados que passam integralmente pela auditoria de integridade ainda conseguem colocar o documento do atacante em primeiro lugar no ranking de recuperação para 25% dos alvos — e, num experimento com um modelo de linguagem local rodando em um Raspberry Pi 5, esse tipo de ataque reduziu a fração de respostas corretas de 0,75 para 0,39. A defesa proposta pelos autores — verificar diretamente os códigos de quantização, em vez dos vetores reconstruídos, com uma margem de segurança calibrada e canonicalização — conseguiu aceitar todos os vetores honestos testados em três plataformas sem deixar espaço de manobra para o atacante, mas o achado prático mais importante é que o modelo mental comum de 'se está assinado, está íntegro' simplesmente não vale para RAG baseado em embeddings pré-computados, e qualquer pipeline que distribua pacotes de conhecimento assim precisa verificar a integridade semântica do vetor, não só a assinatura do arquivo.

Fonte ↗
0 comentários

Entre para comentar.

Nenhum comentário ainda — seja o primeiro.