Skip to content

Security: snaplyze/optimize-debian

SECURITY.md

Политика безопасности

Скрипты этого репозитория запускают от root: они меняют ядро, пользователей, sudoers, SSH, firewall и sysctl. Ошибка в них затрагивает всю систему, поэтому сообщения об уязвимостях принимаются только закрытым каналом.

Поддерживаемые версии

Версия Исправления безопасности
main Да. Команды из README запускают именно main.
Последний выпуск vГГГГ.ММ.ДД Да, в виде следующего выпуска.
Более старые выпуски Нет.

Выпуски неизменяемы, а теги v* нельзя перенести или удалить. Исправление выходит в main и попадает в следующий выпуск; старый выпуск не меняется. Если вы закрепили команду на теге, после исправления замените тег на новый (см. раздел «Версии и выпуски» в README.md).

Как сообщить об уязвимости

Сообщайте только закрыто, через форму GitHub: https://github.com/snaplyze/optimize-debian/security/advisories/new (кнопка «Report a vulnerability» на вкладке Security репозитория).

Не открывайте публичный issue и не описывайте уязвимость в PR: до исправления она станет известна всем, кто запускает скрипты из main.

В сообщении укажите:

  • скрипт и версию: main с датой загрузки или тег выпуска; версия отдельного скрипта — из bash <скрипт> --help или из заголовка его вывода;
  • версию Debian и окружение (VPS, мини-ПК, WSL2);
  • шаги воспроизведения;
  • влияние: что получает атакующий или что ломается в системе.

Не присылайте секреты, ключи, пароли и адреса. Из выдержек логов (/var/log/vps_optimization.log, /var/log/debian-upgrade/) уберите IP-адреса, имена хостов, имена пользователей и ключи SSH.

Чего ждать

Проект поддерживает один владелец, поэтому ответ приходит по возможности, без гарантированного срока. Порядок работы:

  1. Подтверждение, что сообщение получено и воспроизводится.
  2. Исправление в main через PR с обязательной проверкой checks.
  3. Публикация advisory и запись в CHANGELOG.md.
  4. Новый выпуск с исправлением.

До публикации advisory не раскрывайте подробности публично.

Область действия

Политика относится к коду этого репозитория: optimize_*.sh, upgrade-to-debian13.sh, lib/*.sh, тесты и CI.

Уязвимости сторонних пакетов, которые скрипты устанавливают (Docker, NVIDIA Container Toolkit и CUDA, Fish, Starship, пакеты Debian), сообщайте их авторам. Если уязвимость в том, как скрипт устанавливает или настраивает пакет (например, непроверенная загрузка или слабая настройка), это область этого репозитория.

Меры защиты в коде

  • Сторонние загрузки закреплены: файл скачивается по фиксированной версии и сверяется с SHA-256 до запуска (common_fetch_pinned, пины в common_pinned_download). ShellCheck для CI закреплен в .github/shellcheck.txt, действия GitHub — по SHA коммита.
  • Усиление SSH идет через drop-in /etc/ssh/sshd_config.d/00-*.conf; перед перезапуском конфигурация проверяется sshd -t, а итоговые значения — sshd -T (common_sshd_effective_mismatches). При расхождении drop-in откатывается, sshd не перезапускается.
  • Файлы /etc/sudoers.d/* записываются только после проверки visudo -cf на временном файле (common_safe_write_sudoers); при ошибке прежний файл остается без изменений.
  • --help у всех скриптов работает без root и ничего не меняет; шаги optimize_*.sh идут из функции, вызванной последней строкой, поэтому оборванная загрузка ничего не исполняет.
  • Для main действует защита ветки: только PR с зеленой checks, линейная история, без force push.

Подробнее об устройстве скриптов и проверках: docs/ARCHITECTURE.md.

There aren't any published security advisories