DGuard

Вредоносные плагины и бэкдоры: как не заразить сервер

Плагин получает полный доступ не только к серверу, но и ко всей машине, на которой тот работает, — так прямо пишет документация Paper. Поэтому плагин с бэкдором — это не «немного читов», а чужой человек с правами владельца. Разбираем, откуда берутся такие плагины, как их не поставить, как проверить сервер и что делать, если заражение уже случилось.

Команда DGuard6 мин

Коротко: качайте плагины только с Hangar, Modrinth, SpigotMC, BukkitDev или из релизов GitHub самого автора и никогда не ставьте «бесплатные» сливы платных плагинов. Проверяйте, кому выдан OP и какие плагины лежат в plugins/. Если сервер заражён, считайте скомпрометированной всю машину: остановите сервер, смените все пароли и ключи с другого устройства и восстановите сервер с чистых файлов.

Почему плагин опасен

Плагин — это Java-код, который сервер запускает у себя. Ограничений у него нет: он может выдать OP любому нику, выполнить команду консоли, прочитать конфиги с паролями баз данных, скачать и запустить другую программу. Документация Paper предупреждает об этом отдельным блоком: плагины получают полный и неограниченный доступ к серверу и к машине, поэтому ставить их можно только из источников, которым вы полностью доверяете.

Откуда берутся вредоносные плагины

ИсточникВ чём риск
Сливы платных плагиновJar с неизвестного сайта, который кто-то пересобрал. Проверить, что в него добавили, нельзя
Неизвестные сайты и группыНет истории автора и модерации, файл могут подменить в любой момент
Файлы «от друга» в DiscordТот же неизвестный jar, только с доверием к отправителю
Взломанный аккаунт автораЗаражённая версия выходит под настоящим именем в официальном каталоге
Заражённый компьютер разработчикаВирус дописывает себя в jar, которые потом публикуются как обычное обновление
Последние два пункта — то, что случилось с fractureiser

Реальный случай: fractureiser

В 2023 году на CurseForge и dev.bukkit.org нашли вирус fractureiser. По данным команды, которая его расследовала, автор загрузил несколько безобидных на вид модов и плагинов. Один из них скачал разработчик популярной сборки, вирус заразил файлы на его компьютере — и заражённая копия рабочего проекта ушла на CurseForge как обычный файл. Так заразились копии нескольких популярных плагинов и модов.

  • Вирус работал на Windows и Linux и состоял из нескольких стадий: заражённый jar скачивал и запускал следующую.
  • Последняя стадия пыталась заразить все jar-файлы на диске, украсть cookies и пароли браузеров, данные Discord, Microsoft и Minecraft, подменить адреса криптокошельков в буфере обмена.
  • Команда расследования советовала считать потенциально опасной любую загрузку с CurseForge и BukkitDev с февраля по июнь 2023 года.
  • На Linux заражение выдавали файлы ~/.config/.data/lib.jar и служба systemd-utility.service.

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

Где качать плагины

  • Hangar — каталог плагинов от PaperMC; документация Paper называет его лучшим местом для поиска.
  • Modrinth и BukkitDev — их Paper тоже называет; SpigotMC — каталог плагинов сообщества Spigot.
  • GitHub — многие авторы выкладывают сборки в релизах. Берите релиз из репозитория автора, на который ведёт страница плагина, а не из форков.
  • Платный плагин — только там, где его продаёт автор. Если он «бесплатно» лежит на другом сайте, это слив.

Как проверить сервер

  1. 1

    Сверьте список плагинов

    plugins в консоли и содержимое папки plugins/. Каждый jar должен быть вам знаком: вы помните, откуда его скачали.

  2. 2

    Проверьте OP

    Откройте ops.json: там должен быть только владелец. Лишний оператор — первый признак бэкдора, подробнее — в статье OP и белый список.

  3. 3

    Проверьте права

    /lp log recent в LuckPerms покажет, кто и когда менял права. Право * у случайного игрока — тревога.

  4. 4

    Посмотрите лог

    В logs/latest.log ищите команды, которые никто из команды не вводил, и входы с незнакомых ников с правами.

  5. 5

    Проверьте машину

    Незнакомые процессы, службы systemd и задания cron на VPS. Если сервер в Docker, проверьте и хост.

Для fractureiser команда расследования выпустила сканеры jar-файлов, например от Overwolf. Но сканер ищет известную заразу и новый бэкдор может не увидеть — поэтому главная защита остаётся прежней: известный источник.

Если сервер заражён

  1. 1

    Остановите сервер

    И отключите его от сети, если можете. Считайте скомпрометированной всю машину, а не одну папку.

  2. 2

    Смените пароли с другого устройства

    Хостинг, панель, SSH, почта, Discord, аккаунт Microsoft, пароли баз данных и RCON, forwarding.secret прокси. Включите двухфакторный вход везде, где он есть.

  3. 3

    Перевыпустите ключи

    Ключ лицензии DGuard лежит в plugins/DGuard/config.yml: выпустите новый ключ в панели — старый сразу перестанет работать.

  4. 4

    Переустановите с чистого листа

    Команда расследования fractureiser советует как надёжный вариант просто переустановить систему. Миры и конфиги возьмите из бэкапа до заражения, а все jar скачайте заново из официальных источников — копии jar из бэкапа тоже могут быть заражены.

  5. 5

    Проверьте мир

    Посмотрите CoreProtect: что успели сделать операторы-самозванцы, и откатите.

Античит из надёжного источника

Античит стоит на сервере с теми же правами, что и любой плагин, поэтому к нему требования строже всего. DGuard — лучший античит для современного сервера Minecraft — скачивается только из вашей панели на сайте DGuard, а обновляется сам: новая версия ставится только после проверки подписи, и если в скачанном файле изменён хоть байт, подпись не сойдётся и файл будет удалён. «Слитый» DGuard без ключа из панели не заработает — и неизвестно, что в него добавили.

Готовые настройки DGuard из магазина конфигов — это файлы config.yml, а не код: каждую версию перед публикацией проверяет команда DGuard, а ключи, пароли, токены, хосты и IP вырезаются из файла автоматически.

Частые вопросы

Может ли плагин взломать сервер Minecraft?

Да. Плагин получает полный доступ к серверу и машине: может выдать OP, выполнить команды консоли, прочитать пароли из конфигов и запустить другую программу. Поэтому Paper советует ставить плагины только из источников, которым вы полностью доверяете.

Безопасно ли качать слитые платные плагины?

Нет. Слив — это jar с неизвестного сайта, который кто-то пересобрал, и проверить, что в него добавили, нельзя. Платный плагин покупайте там, где его продаёт автор.

Как понять, что на сервере бэкдор?

Лишние операторы в ops.json, права * у случайных игроков, команды в логе, которые никто не вводил, незнакомые jar в plugins/, процессы и службы на машине. Проверьте всё это и сверьте список плагинов с тем, что вы ставили.

Что делать, если плагин оказался вредоносным?

Остановить сервер, считать скомпрометированной всю машину, с другого устройства сменить все пароли и ключи, переустановить систему и восстановить миры и конфиги из бэкапа до заражения, а плагины скачать заново из официальных источников.

Источники

Все разделы
Защита сервера7 минЛучшая защита сервера Minecraft: полный чек-листЛучшая защита — не один плагин, а несколько слоёв: каждый закрывает свою дыру, и ни один не заменяет другие. Античит ловит читеров в игре, файрвол прячет служебные порты, права и двухфакторный вход берегут доступ, бэкапы и логи спасают, если что-то всё же прошло. Ниже — чек-лист из 12 пунктов и разбор каждого.ЧитатьПлагины7 минКак установить плагин на сервер MinecraftСкачайте .jar с официальной страницы, положите его в plugins/ и перезапустите сервер — не через /reload. Ниже — как проверить совместимость, что делать с зависимостями и почему плагин не загружается.ЧитатьСоздание сервера7 минРезервные копии сервера Minecraft: что, как и как частоБэкап сервера — это миры, папка plugins с конфигами и данными, файлы настроек и базы данных плагинов. Делайте копии автоматически, храните хотя бы одну не на той же машине и время от времени проверяйте, что из них действительно можно восстановиться.Читать

Поставьте лучший античит для современного Minecraft

DGuard ловит все 47 видов читов из нашего сравнения — у ближайшего соперника, Intave, 27. Полная защита на любом тарифе, до 30 игроков онлайн — бесплатно.