rpi: усилить изоляцию Маруси и записать повторную проверку
This commit is contained in:
@@ -61,3 +61,11 @@ skill_id не является криптографическим доказат
|
||||
С 2026-10-11 обязателен `MARUSIA_ALLOWED_USER_IDS`: список точных идентификаторов пользователя Маруси из проверенного запроса отладчика VK. Пустой список закрывает доступ всем; автоматически первого пришедшего пользователя не добавлять. Это не Telegram ID. Schema: version 1.0, SimpleUtterance, ограниченные session_id/message_id, вопрос до 1000 символов, Content-Type application/json, без chunked transfer. TTS экранирует разметку. Только разговор, любые действия подключаются отдельно по решению владельца. systemd: MemoryMax 512M, CPUQuota 100%, TasksMax 64. На fr1 агент уже установил nginx 1 r/s с burst 5; дополнительное ужесточение до 30 r/m и тела 16 KiB рекомендовано, но ещё не установлено на fr1. Локальный сервис уже применяет 30 POST/мин и 16 KiB.
|
||||
|
||||
Проверка 2026-10-11 с rpi через публичный HTTPS: неверный секрет → 404; правильный секрет + посторонние skill/user → 403. SSH-ключ fr1 сверён с указанным отпечатком; туннель active с ExitOnForwardFailure. Тем же клиентским ключом попытки shell, другого reverse-порта (18789) и direct forwarding (`ssh -W`) отклонены сервером. До регистрации навыка и разрешённых пользователей разговор через колонку недоступен. Проверка не даёт административного доступа к fr1 для чтения его firewall/ss/logs; live loopback bind на fr1 проверяет его агент.
|
||||
|
||||
## Повторная проверка безопасности 2026-10-11
|
||||
|
||||
Код astra-bot `7294ea8`, 59 тестов. Исправления: backend получает только PATH/HOME/CODEX_HOME/LANG, без переменных webhook/Telegram; HTTP-сервер ограничен четырьмя соединениями, очередь 8, таймаут чтения заголовков/тела 5 с; глубокий JSON отклоняется без traceback, сравнение секретного пути устойчиво к Unicode. systemd InaccessiblePaths закрывает бэкапы, router/bot/metrics/server-backup/env и другие приложения; ProtectProc=invisible. Авторизация Codex остаётся доступной только через ранее описанный read-only bind, она нужна модели.
|
||||
|
||||
Живая проверка внутри mount namespace службы от UID astra с NoNewPrivileges: home/infra, backup, router.env, bot.env, marusia.env, media скрыты; sudo denied; настоящая модель ответила «Два плюс два — четыре». Через публичный HTTPS: root/health 404, GET webhook 403, неправильный секрет 404, посторонние skill/user 403, неправильная schema 400. HTTP /marusia/ не редиректит. Порты fr1 8788/18788 недоступны с rpi по публичному IPv4; wildcard reverse forward 0.0.0.0:18789 denied. Ранее проверены запреты shell, другого reverse-порта и direct forwarding.
|
||||
|
||||
Границы проверки: административного SSH на fr1 нет, поэтому живые nginx/sshd/firewall, IPv6 bind и отсутствие секрета в логах проверяет агент fr1. Подпись VK не подтверждена: знание URL позволяет подделывать metadata, включая user_id/skill_id; allowlist не заменяет подпись. Сейчас skill_id и список пользователей пусты, доступ к модели через webhook закрыт. Не открывать автоматически первого пользователя.
|
||||
|
||||
Reference in New Issue
Block a user