Files
3X-UI_autoVPS/SECURITY.md
T
Claude 0a19858efa 1.1: подписанное автообновление, kit backup и --restore, случайная заглушка
- kit update ставит только релизы, у которых SHA256SUMS подписан ключом автора
  (ssh-keygen -Y verify), версия внутри подписи совпадает, файлы сошлись с хешами;
  откат на старую версию запрещён; после обновления проверяется подписка, иначе возврат
- автообновление: systemd-таймер раз в сутки ночью со случайной задержкой,
  kit update --manual / --auto, журнал /var/log/kit-update.log
- hy2 update тоже проверяет подпись
- tools/release.sh: проверка версий и хеша установщика 3X-UI, SHA256SUMS и подпись
- kit backup и 3x-ui.sh --restore: архив 600, строгая проверка архива, конфиги nginx
  и kit-sub собираются заново, смена IP в подключениях
- сайт-заглушка: случайный из шести шаблонов внутри скрипта
- zashboard закреплён на v3.29.1, короткие тире и 192.168.x.x в текстах и картинках
- CI: ключ подписи одинаковый в kit и hy2, проверка подписи релиза
- CHANGELOG, README, инструкция, SECURITY.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7GrBSRPVXhrz3RAprWDnt
2026-09-30 19:15:19 +00:00

2.9 KiB

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

Нашли уязвимость? Пожалуйста, не публикуйте её в открытом issue.

  • Напишите через закрытый отчёт GitHub (вкладка Security → Report a vulnerability) или в Telegram @itsnotkubrick.
  • Опишите, где проблема (файл и строки), как её воспроизвести и чем она грозит.

Мы ответим, исправим и отметим вас в списке изменений, если вы не против.

Что проект делает для безопасности

  • Установщик 3X-UI закреплён по версии и по SHA256: если файл на GitHub изменится, скрипт его не запустит.
  • Бинарник Hysteria сверяется с SHA256, записанным в самом скрипте.
  • Свои части (kit, kit-sub, hy2 update) скрипт берёт из тега релиза, а не из ветки main.
  • Обновления (kit update, ночное автообновление, hy2 update) ставятся, только если файл SHA256SUMS релиза подписан ключом автора (ssh-keygen -Y sign), версия внутри подписи совпадает, а каждый файл сошёлся с подписанным SHA256. Закрытый ключ не хранится на GitHub. Откат на старую версию запрещён, после обновления проверяется подписка, при сбое – возврат.
  • Резервная копия kit backup доступна только root (права 600); --restore принимает только локальный файл и отклоняет архивы с лишними файлами, ссылками и путями вида ../.
  • Подписка kit-sub работает без прав root: systemd DynamicUser и LoadCredential.
  • Все данные, которые попадают в файлы настроек, проверяются и экранируются.
  • Генераторы конфигов для роутеров работают только в браузере и никуда не отправляют ваши ссылки.

Ограничения

Скрипт ставит стороннее ПО: панель 3X-UI, ядро Xray, Hysteria, nginx. Мы закрепляем их версии, но не проверяем их исходный код целиком. Сгенерированный конфиг Mihomo скачивает списки сайтов (rule-set) и веб-панель zashboard (закреплённой версии) из их проектов на GitHub.