Серверная часть GameAP проверена по стандарту OWASP ASVS (Application Security Verification Standard) — открытому списку конкретных требований к безопасности, выполнение которых можно проверить: от хранения паролей до работы с загруженными файлами.
Требования по одному разбирали AI-агенты, а каждый их вывод затем проверялся вручную. Для каждого требования указано, выполнено оно, выполнено частично или не выполнено, со ссылками на код и тесты. Оба отчёта опубликованы, в том числе с требованиями, которые пока не выполнены.
Отдельный набор тестов, сгруппированный по OWASP API Security Top 10, проверяет, что пользователь не получит доступ к чужим серверам, не обойдёт вход и не повысит себе права. Он запускается при каждом изменении.
Каждое изменение проходит через анализатор кода с правилами безопасности, а тесты запускаются на настоящих MySQL, PostgreSQL и Redis.
Каждую неделю вход, проверки прав и обработку путей к файлам прогоняют на большом объёме случайных и некорректных данных (фаззинг).
Каждую неделю и при каждом изменении основной ветки зависимости сверяются с базой известных уязвимостей Go. Их версии зафиксированы контрольными суммами.
Каждую неделю в код входа и проверки прав намеренно вносятся небольшие ошибки, чтобы убедиться, что тесты их находят.
Код открыт на GitHub под лицензией MIT. К релизам прилагаются контрольные суммы SHA-256, а Docker-образ работает не от root.
gameapctl может получить сертификат Let's Encrypt, а дальше панель будет продлевать его сама. Заодно перенаправьте обычный HTTP на HTTPS.
TLS_FORCE_HTTPS=true
Администраторам даётся 30 дней на настройку, но ждать незачем. Попросите включить её и других пользователей.
Особенно если панель доступна из интернета.
CAPTCHA_PROVIDER
При взаимной TLS-аутентификации панель принимает подключения только от демонов с сертификатом, который она сама выдала.
GRPC_REQUIRE_MTLS=true
Выделите для игровых серверов отдельного системного пользователя или запускайте их в контейнерах Docker или Podman.
И включите проверку разрешений, чтобы каждый плагин получал только тот доступ, который заявил.
PLUGINS_PERMISSIONS_ENFORCE=true
gameapctl создаёт их при установке. При установке через Docker или вручную задайте длинные случайные значения сами.
ENCRYPTION_KEYAUTH_SECRET
Исправления безопасности выходят в обычных релизах. Подпишитесь на репозиторий GameAP на GitHub, чтобы получать уведомления об уязвимостях.
Пожалуйста, не публикуйте сведения об уязвимостях открыто — сообщите о них приватно через GitHub или по почте. Авторов отчётов указывают в примечаниях к релизу и в описании уязвимости.