Ошибка «Chunkban» и уязвимости чанков: как игроки крашат сервер через данные чанка
Введение: чанк-бомба
Chunkban (чанк-бан) — это эксплойт, при котором игрок создаёт в мире объект с аномально большими NBT-данными, и когда сервер пытается загрузить этот чанк — он крашится или зависает. Другие игроки, проходящие через этот чанк, также вылетают. Это одна из самых опасных уязвимостей на публичных серверах. В этом гайде — как работает чанк-бан, как его обнаружить и защитить сервер.
Как работает Chunkban
Эксплойт использует ограничения Minecraft на размер данных в чанке. Злоумышленник создаёт предмет с огромным количеством NBT-тегов — например, книгу с тысячами страниц текста, сундук с миллионом вложенных шалкеровых ящиков или табличку с гигабайтом текста. Когда сервер сохраняет чанк с таким объектом, размер region-файла может вырасти до сотен мегабайт. При попытке загрузить этот чанк сервер исчерпывает память или время на декомпрессию и падает.
Типы чанк-банов
| Тип | Объект | Как работает |
|---|---|---|
| Книжный бан | Книга с пером | Текст книги сохраняется в NBT. 1 миллион символов = огромный файл чанка |
| Табличка-бан | Табличка | Текст на табличке в JSON-формате с огромным объёмом данных |
| Шалкер-бан | Шалкеровый ящик | Вложенные шалкеры с предметами, глубоко вложенные NBT |
| Сундук-бан | Сундук | Сундук с тысячами уникальных предметов с кастомными NBT |
Как защитить сервер
Шаг 1: Установите плагин защиты
- AntiChunkBan: бесплатный плагин, ограничивает размер NBT-данных в предметах.
- ItemNBTLimiter: настраиваемые лимиты на разные типы предметов.
Шаг 2: Настройте Paper
В paper.yml:
settings:
max-book-page-length: 2560
max-book-pages: 100
max-item-name-length: 256
max-nbt-size: 2097152
Шаг 3: Ограничьте размер region-файлов
Плагин MaxRegionSize или скрипт мониторинга: если region-файл превышает 10 МБ — админ получает уведомление и может проверить чанк вручную.
Как найти уже существующий чанк-бан
- В папке
world/regionнайдите файлы размером более 5-10 МБ (обычный region-файл — 1-3 МБ). - Запишите координаты файла (имя r.X.Z.mca содержит координаты чанка).
- Используйте NBT Explorer для открытия файла и найдите аномальный объект (предмет с огромным NBT).
- Удалите объект или весь чанк.
💡 Совет профи
Настройте автоматический мониторинг размера region-файлов. Скрипт на Python или Bash проверяет папку region раз в час. Если какой-то файл превышает лимит (например, 8 МБ) — отправляется алерт в Discord с координатами. Админ может удалённо удалить проблемный чанк через консоль, не дожидаясь краша сервера.
💬 Комментарии (0)
🔒 Войдите, чтобы оставить комментарий
😊 Пока нет комментариев. Будьте первым!