Фанат Titanfall провел реверс-инжиниринг игры и рассказал разработчикам, как ее исправить
Избавиться от хакерских атак проще, чем кажется.
Кстати, на сайте читать удобнее
У первой части Titanfall уже давно отрицательные отзывы в Steam: так фанаты пытаются привлечь внимание разработчиков к техническим проблемам, от обычных багов до хакерских атак, мешающих играть в мультиплеер. Польский фанат и разработчик p0358 пошел дальше.
Он провел реверс-инжиниринг первой части Titanfall и рассказал, что конкретно нужно сделать разработчикам, чтобы улучшить защиту игры и избавиться от значительной части атак. По словам p0358, все гораздо проще, чем может казаться со стороны: масштабные переработки кода не нужны.
В Titanfall отключена проверка длины ника игрока, она может превышать 330 символов. Сервер это не беспокоит, но на клиенте все иначе: из-за особенностей устройства сетевого протокола с помощью длинных ников можно вызывать на клиенте разнообразные побочные эффекты.
Например, так можно показывать на клиенте кастомные сообщения, вынуждать игру выходить в меню или отключаться от сервера. Хакеры активно пользуются этими возможностями.
Было бы неплохо не только вернуть проверку длины ника, но и сделать так, чтобы ник игрока всегда совпадал с ником, используемым в Origin.
Сообщения о событиях содержат IP-адреса игроков, причем эти сообщения рассылаются всем остальным участникам матча. Смысла в этом нет никакого: Titanfall использует выделенные сервера, а не пиринговую модель.
Разработчики отключили защиту от DoS, встроенную в движок Source. Предполагается, что таким образом разработчики хотели гарантировать высокую скорость работы клиента во время активного обмена данных с сервером при синхронизации данных.
Зная IP-адреса игроков благодаря предыдущей уязвимости, хакеры могут забивать их каналы — это приводит к отключению от сервера. В свой статье p0358 предлагает простой патч, решающий эту проблему и не замедляющий работу с сервером.
Надо переделать авторизацию на сервере. У Titanfall фиксированное количество серверов, при желании все место на них могут занять боты и игроки не увидят ни одного доступного сервера.
Есть нюанс: боты не пересылают серверу клиентский ключ Origin, а просто поддерживают соединение — этого достаточно, чтоб занять слот на сервере. Для защиты от них достаточно ограничить время на отправку такого ключа и весь процесс авторизации в целом.
У сервера нет защиты от спама консольными командами. Такая защита уже присутствует в более современных версиях игр на базе Source, но в Titanfall используется очень старый билд.
Защита реализуется просто: надо лишь ограничить количество обрабатываемых консольных команд до примерно 40 в секунду — это гораздо больше, чем необходимо в обычных условиях.
И еще кое-что
- Возможность использовать команду LeaveMatchWithParty, выбивающую всю группу из матча, должна быть только у лидера группы.
- Надо изменить алгоритм проверки наличия DLC: нынешняя реализация позволяет хакерам блокировать доступ к серверам.
- При ошибке подключения к серверу из-за отсутствия ключа Origin стоит временно блокировать IP-адрес.
- Нужно запретить параллельное подключение к серверу игроков с одинаковыми IP-адресами: пусть подключаются по очереди.
- Количество серверов стоит увеличить.
Фанат надеется, что разработчики Titanfall обратят внимание на его исследование и все-таки найдут время поправить игру. Некоторые из этих проблем, пишет p0358, есть и на серверах Titanfall 2.
- Продажи Titanfall остановлены, игру уберут из подписочных сервисов
- Инженер объяснил, как починить Titanfall. Фанаты доказали, что он и есть хакер
- Sony: студия Nixxes будет портировать эксклюзивы на PC
- Самолеты в PUBG теперь будут совершать аварийные посадки
- В сюжетной короткометражке Apex Legends показали титана из Titanfall
- Titanfall вышел в Steam, но есть проблема — игра сломана, мультиплеер захвачен хакером