Как хакеры поставили на колени самый анархичный сервер Minecraft

Как хакеры поставили на колени самый анархичный сервер Minecraft
Как хакеры поставили на колени самый анархичный сервер Minecraft

На первый взгляд, Minecraft — все о веселье и забаве. Здесь мы восхищаемся людьми, воссоздающими мир «Властелина колец», а также невероятными визуальными трюками, для создания которых достаточно приложить небольшую изобретательность. Но у игры есть куда менее известная (хотя зачастую не менее популярная), более мрачная сторона. 2B2T — один из наиболее популярных «анархичных» серверов игры, где отсутствуют какие-либо правила, а карта размером в несколько терабайт и вовсе не сбрасывалась с далекого 2010 года. Сервер, название которого расшифровывается как 2 Builders 2 Tools, по своей задумке должен был стать негостеприимным и злобным, поэтому временами его награждали титулом «худшего» сервера Minecraft. Само собой, геймеры с сервера не поддерживали подобных высказываний. В соответствии с их точкой зрения, 2B2T — пример невероятно широкой привлекательности и способности Minecraft привлекать игроков к творчеству: это место с реальной историей и действиями, определяющими ландшафт. Благодаря сформировавшемуся сообществу 2B2T и тому, как сервер развивался с годами, он стал частью выставки Videogames: Design / Play / Disrupt, которая прошла в залах лондонского Музея Виктории и Альберта.

Но эта история началась в 2018 году, когда два игрока обнаружили уязвимость в плагине Paper, которые призван исправлять ошибки и повышать производительность многопользовательских серверов Minecraft. Эксплойт, по сути, обманывал сервер, заставляя его думать, что они щелкают по всем блокам на карте — даже тем, которые находятся за областью рендеринга. В результате сервер был вынужден мгновенно обрабатывать тысячи чанков (блоков 16×16, из которых состоят карты Minecraft), что приводило к гарантированному сбою. Казалось бы, это просто очередная фатальная ошибка, которую очень быстро исправят разработчики программного обеспечения PaperMC.

И как раз «быстро» стало главной проблемой.

Лейджурв — один из программистов, работавших над NoCom (но уже с начала 2020 года) — написал большой и подробный пост, в котором объяснил, что именно сумела сделать группа и почему это сработало.

В начале сообщения даётся ссылка на видеоролик YouTube за авторством FitMC, который был создан совместно со злоумышленниками.

Со слов Лейджурва, причина, по которой NoCom так долго оставалась незамеченной, заключается «в том, что в действительности нет «эксплойта» или «бэкдора», который представлял каждый. Другими словами, сервер «не хулиганит» и не делает ничего подозрительного. Это абсолютно ожидаемая и запланированная реакция, код не делает ничего скрытно или тайком, на самом деле все куда проще».

PaperMC, создатель Paper, «исправил» исходный эксплойт таким способом, который ожидали хакеры, впоследствии создавшие NoCom. Теперь нажимать на блоки можно было лишь в той области, которая была зарендерена конкретным игроком. Таким образом, хакеры по-прежнему могли прокликивать блоки, чтобы узнать об их содержимом — и это обычный процесс для Minecraft. При этом блокировались все попытки взаимодействовать с блоками, расположенными далеко за пределами области, где на самом деле находится «игрок»: то есть возможность «щелкнуть» по блоку в любом месте этого бесконечного, генерируемого мира, и получить о нем информацию.

Поэтому это известная и ожидаемая реакция со стороны 2b2t. Не многие люди задумывались о том, что при помощи выхода за пределы рендеринга можно было бы извлечь информацию. Таким образом, вы щелкаете по любому блоку в любом месте сервера, даже если он находится за миллион блоков от вас, и по тому, отвечает вам сервер или нет, узнаете, загружен ли блок в настоящее время.

Руководствуясь здравым смыслом, разработчики Paper сделали патч, который гарантировал ответ сервера лишь в том случае, если чанки были загружены этим игроком (отрендерены), поскольку это имело логический смысл (только те блоки, которые вы могли бы копать, не нарушая правил). Проблема в построении кода связана с тем, что сервер отвечал вам, даже если бы блок был загружен любым игроком на сервере. Явный побочный эффект.

Лейджурв

Как вы думаете, почему это так важно? Как только этот эксплойт стал доступен, люди, стоящие за NoCom, начали проверять, загружены или выгружены определенные чанки карты. Первое указывало на присутствие в конкретной области других игроков, и их местоположения регистрировались и сохранялись, указывая на то, где находятся базы или другие полезные места. Этот гениальный эксплойт NoCom в последние три года огорчал и раздражал игроков сервера, выбранного грифферами в качестве цели для харасмента.

Вот тепловая карта 2B2T, показывающая, где сосредоточены игроки и группы. И тут начинает проявляться дьявольская хитрость хака.