Skip to content

Security.ru

sikkatu edited this page Nov 2, 2026 · 3 revisions

English | Русский | 中文

Безопасность

Модель угроз

Постоянные KV-данные выводятся из промптов — относитесь к каталогу кэша так, будто в нём лежит текст разговора. Инверсия KV-активаций обратно в содержимое промпта — трудоёмкая, но не невозможная.

Защитные меры проекта

Мера Реализация
Права ФС KVP_CACHE_ROOT создаётся с chmod 700; ни один скрипт их не ослабляет. Обёртка systemd (systemd/kvp-lmcache-server) принудительно ставит 0700 при старте и отказывается работать без него — один StateDirectory= создаёт каталог 0755, а читаемый всеми корень кэша — дыра в этой модели угроз (KV-данные — это текст диалогов).
Эндпоинт управления HTTP-фронтенд lmcache слушает только 127.0.0.1; не проксировать без аутентификации
Порт запросов кэша ZMQ на 127.0.0.1:5555 (loopback)
Учётные данные никогда не в репозитории и не в конфиге кэша; API-ключ vLLM живёт в собственном live/api_key рецепта (chmod 600, в .gitignore)
Логирование скрипты и админ-CLI пишут только ключи, размеры и счётчики — никогда текст промптов или заголовки
Изоляция пространств несовместимые конфигурации не могут читать чужие KV-данные
Безопасность удаления purge отклоняет пути вне KVP_CACHE_ROOT (код 2) и требует --yes. Раскладка ПЛОСКАЯ: файлы *.bin прямо в корне (пространства — префиксы имён файлов), плюс устаревшие каталоги kvp-*, если есть. Точечная очистка по ТОЧНОМУ имени пространства (purge --namespace=NAME --yes), массовая — purge --all --yes, мусор от краша — purge --tmp --yes (не трогает настоящие файлы кэша и идущие записи)
Разделяемое хранилище неприемлемо как корень кэша (preflight предупреждает о сетевых ФС)
Очистка при старте никогда не происходит — данные сохраняются между рестартами и обновлениями
Явная очистка bash scripts/budget-report.sh purge --namespace=NAME --yes / purge --all --yes / purge --tmp --yes — только вручную

Правила для эксплуатации

  • Не ставьте HTTP-фронтенд lmcache за неаутентифицированный обратный прокси. Для удалённой диагностики используйте SSH-туннель, а не публикацию порта.
  • Не копируйте KVP_CACHE_ROOT между хостами (содержимое выводится из промптов).
  • Не логируйте текст промптов при отладке; используйте ключи/счётчики (все поставляемые инструменты следуют этому правилу).
  • Считайте вывод budget-report.sh status конфиденциальным: длины, даты и счётчики переиспользований — метаданные активности пользователей.
  • Уровень чувствительности каталога кэша — равен чат-логам: как минимум те же правила бэкапа и доступа.

Безопасность репозитория

  • В дереве нет учётных данных, токенов, текстов переписок и данных кэша (в чек-листе ревью для внешних проверяющих есть grep на credentials).
  • GitHub fine-grained токены для пуша отзываются и перевыпускаются после рабочей сессии; они никогда не коммитятся — используются только в URL git-команд локально.

Уведомление о проблеме безопасности

Через приватный канал репозитория (issues sikkatu/kv-persistence); публичное раскрытие — только после разбора.

Clone this wiki locally