Repository navigation
Security.ru
sikkatu edited this page Nov 2, 2026
·
3 revisions
Постоянные 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); публичное
раскрытие — только после разбора.