CacheSolidarity: Preventing Prefix Caching Side Channels in Multi-tenant LLM Serving Systems

O artigo apresenta o CacheSolidarity, um sistema que protege ambientes de inferência de LLMs multi-tenant contra canais laterais de temporização decorrentes do cache de prefixos, permitindo a reutilização segura de cache e melhor desempenho sem sacrificar a eficiência.

Panagiotis Georgios Pennas, Konstantinos Papaioannou, Marco Guarnieri, Thaleia Dimitra Doudali

Publicado Thu, 12 Ma
📖 5 min de leitura🧠 Leitura aprofundada

Each language version is independently generated for its own context, not a direct translation.

Imagine que você está em um restaurante muito popular e eficiente, onde os chefs (os modelos de Inteligência Artificial) preparam pratos complexos para milhares de clientes ao mesmo tempo. Para não perder tempo, o restaurante usa um truque genial: se dois clientes pedem pratos que começam com a mesma receita (por exemplo, "Faça uma salada com tomate, alface e..."), o chef para de recomeçar do zero. Ele pega a parte que já foi preparada ("salada com tomate e alface") e guarda em uma prateleira especial, pronta para ser usada novamente. Isso é chamado de Cache de Prefixo Automático. É como se o restaurante tivesse uma "prateleira de sobras inteligentes" que acelera muito o serviço.

No entanto, esse truque cria um problema de segurança invisível.

O Problema: O "Relógio" que Vaza Segredos

Imagine que um cliente mal-intencionado (o "atacante") quer saber o segredo do prato que o cliente ao lado (a "vítima") está pedindo. A vítima pediu: "Faça um bolo de chocolate para o João". O atacante não sabe o nome "João", mas ele pode tentar adivinhar.

O atacante pede: "Faça um bolo de chocolate para o Pedro".

  • Se o chef demorar um pouco mais para responder, significa que ele teve que recomeçar tudo do zero (o "cache" não ajudou, porque "Pedro" não estava na prateleira).
  • Se o chef responder muito rápido, significa que ele pegou a parte "Faça um bolo de chocolate para o" da prateleira e só precisou escrever "Pedro".

O atacante percebeu: "Ei, quando eu digo 'Pedro', demora. Quando eu digo 'João', é rápido? Não, espera... quando eu digo 'João', é rápido porque a vítima já pediu isso antes!".

Através de apenas medir o tempo que o chef leva para começar a responder, o atacante consegue adivinhar letra por letra o que a vítima pediu, sem nunca ter acesso ao pedido dela. É como se o tempo de espera fosse um código secreto que vazava a informação.

A Solução Antiga: "Todos na Própria Cozinha"

Para resolver isso, os restaurantes anteriores decidiram: "Ok, vamos proibir a prateleira de sobras compartilhada". Agora, cada cliente tem sua própria cozinha e seus próprios ingredientes.

  • Vantagem: Ninguém pode espionar ninguém.
  • Desvantagem: O restaurante fica lento e caro. Se 100 pessoas pedirem "Café com leite", o chef tem que fazer 100 vezes o café do zero, em vez de fazer uma vez e servir a todos. Isso é um desperdício enorme de tempo e dinheiro.

A Nova Solução: "CacheSolidarity" (Solidariedade do Cache)

Os autores deste artigo criaram um sistema chamado CacheSolidarity. A ideia é inteligente e baseada em "solidariedade", mas com limites.

Imagine que o restaurante agora tem um Gerente de Segurança muito esperto que vigia a prateleira de sobras.

  1. A Regra da Solidariedade: Se você e seu amigo pedirem a mesma coisa, o gerente deixa vocês usarem a mesma prateleira. Vocês são "amigos" (usuários benignos) e isso acelera o serviço para todos.
  2. O Sinal de Alerta: O gerente observa quem está usando a prateleira. Se ele vê que o "Cliente A" criou uma sobra (ex: "Bolo de chocolate para...") e o "Cliente B" (um estranho) começa a tentar usar essa mesma sobra para adivinhar o final, o gerente levanta uma bandeira vermelha.
  3. O Bloqueio Seletivo: Assim que o gerente vê o "Cliente B" tentando usar a sobra do "Cliente A", ele bloqueia apenas aquele pedaço específico da prateleira para o Cliente B.
    • O Cliente B ainda pode usar as primeiras partes do pedido (que são públicas), mas no momento em que entra no "segredo", o sistema diz: "Pare! O Chef vai ter que fazer essa parte do zero para você".
    • Isso impede que o Cliente B descubra o segredo pelo tempo de espera, porque o tempo agora é sempre o mesmo (tempo de fazer do zero), não importa o que ele tente adivinhar.

Por que isso é genial?

  • Não é um martelada: A solução antiga (isolar tudo) era como trancar a porta de todos os clientes. O CacheSolidarity é como trancar apenas a gaveta onde está o segredo, deixando o resto da casa aberto.
  • Velocidade: Como a maioria dos pedidos não envolve segredos ou ataques, a "prateleira compartilhada" continua funcionando para 99% das pessoas. O restaurante continua super rápido.
  • Segurança: O atacante não consegue mais medir o tempo para descobrir o segredo, porque o sistema força o recálculo sempre que detecta uma tentativa suspeita de compartilhar um prefixo sensível.

Resumo em uma frase

O CacheSolidarity é como um gerente de restaurante que deixa todos usarem os ingredientes comuns para serem rápidos, mas, assim que percebe alguém tentando "bisbilhotar" o segredo de outro cliente usando a mesma prateleira, ele imediatamente separa os ingredientes daquela pessoa específica, garantindo que o segredo permaneça seguro sem deixar o restaurante lento.

O sistema é leve, inteligente e garante que a segurança não precise custar a eficiência que torna a Inteligência Artificial tão útil hoje em dia.