Актуально | Краш-спреи (путем подделки CRC32)

Madness aka null138

Участник
Сообщения
715
Реакции
767
Приветствую всех.
Хочу обратить внимание на новую, актуальную, но пока не масштабную проблему. (для CS:S и всех игр, где есть спреи)

Сценария:
На многих серверах отсутствует защита от краш-спреев - на таких серверах массово загружают спреи игроки или даже сами серверы, которые затем могут быть использованы на любых других серверах.
Для атаки подделываются CRC32-хеши спреев, поэтому даже на серверах с включённой защитой такие «легитимные» спреи могут быть приняты и по-прежнему крашить тех игроков, которым настоящие краш-спреи были загружены ранее.

Серверной защиты от этой схемы практически нет: остаётся либо полное отключение спреев, либо ручная блокировка хешей после длительного отслеживания виновного файла бесконечное количество раз. (Постоянно будут новые)
Для продвинутых: технически на стороне сервера можно подправить файл спреев перед отправкой игрокам, чтобы поменять CRC32‑хеш. Однако это трудоёмко и затратно - игроки будут заново загружать те же спреи при каждом переподключении, что засоряет память.

Не буду указывать хостинг и называть его защиту, но данная схема должна работать и на таких серверах с включённой защитой, насколько мне известно.

Рекомендация:
Администраторам серверов: сообщите игрокам, чтобы они периодически очищали папку "downloads/user_custom" и не заходили на ненадёжные серверы - это хоть немного но поможет. Можно поставить уведомление в чате, чтобы такое напоминание появлялось периодически.

Автоматическое решение для обнаружения таких файлов на стороне игроков скоро будет готово, но не думаю, что охват будет большим. Поэтому всё равно стоит предупредить своих игроков.
Проектом можно ознакомиться здесь: GitHub
 
Последнее редактирование:

DENZEL519

Работаю с AI !
Сообщения
462
Реакции
255
Это старая система взлома, и проще отключить спреи на сервере и очистить папку на сервере downloads. Защиты нормальной от этого не будет, всё равно найдут обход защиты, так что проще отключить спреи толку от них нет, а геморроя с ними много.
 

Madness aka null138

Участник
Сообщения
715
Реакции
767
Это старая система взлома, и проще отключить спреи на сервере и очистить папку на сервере downloads. Защиты нормальной от этого не будет, всё равно найдут обход защиты, так что проще отключить спреи толку от них нет, а геморроя с ними много.
Новые краш-спреи действительно продолжают появляться. За последние два обновления CSS разработчики Valve пытались исправить проблему, однако каждый раз мне удавалось находить способы создания новых, всё ещё работающих вариантов.

Я активно участвовал в поиске и устранении таких уязвимостей совместно с автором публичного плагина на AlliedModders, ещё до "короны". Мы вместе находили и исправляли всё больше разновидностей, о которых плагин ранее не знал - и, уверен, впереди нас ждёт ещё немало таких случаев.

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

DENZEL519

Работаю с AI !
Сообщения
462
Реакции
255
Для многих игроков спреи - это часть атмосферы и культуры игры, ставшая привычной за годы. Полностью отнимать эту возможность у всех, на мой взгляд, было бы несправедливо.
Возможно, но и есть другие игроки которые на спреи ставять всякую фигню в виде порнографии итд
 

Слава156

Участник
Сообщения
44
Реакции
11
А если плагин написать который будет иметь меню с выбором стандартных спреев и загрузки их игрокам как скины и звуки при заходе, и блокирующий загрузку спреев на сервер со стороны игроков, так не прокатит? по типу как тут Продам - Realistic Spray
 

Nekro

Терра инкогнита
Сообщения
4,054
Реакции
2,317
А если плагин написать который будет иметь меню с выбором стандартных спреев и загрузки их игрокам как скины и звуки при заходе, и блокирующий загрузку спреев на сервер со стороны игроков, так не прокатит? по типу как тут Продам - Realistic Spray
Можно, но это ограничит выбор спреев. С индивидуальностью попрощаться.

Если только не использовать общую базу, с возможностью добавлять что-то свое, чего не будет реализовано
 

InFro

Участник
Сообщения
19
Реакции
40
Автоматическое решение для обнаружения таких файлов на стороне игроков скоро будет готово
Если брать опыт ProcessCmds, было очень много попыток обнаружить такой спрей, постоянно находились новые вариации спрея.
Сомневаюсь что получится всё это решить без постоянных обновлений.
 

Слава156

Участник
Сообщения
44
Реакции
11
Можно, но это ограничит выбор спреев. С индивидуальностью попрощаться.

Если только не использовать общую базу, с возможностью добавлять что-то свое, чего не будет реализовано
Ну это даст возможность вообще сохранить спреи на сервере, а не отлючать их совсем, ну и можно в плагине дать возможность админам серверов свои загружать спреи и загружать их игрокам и выводить их в меню (например 5 штук на выбор)
 

Nekro

Терра инкогнита
Сообщения
4,054
Реакции
2,317
Ну это даст возможность вообще сохранить спреи на сервере, а не отлючать их совсем, ну и можно в плагине дать возможность админам серверов свои загружать спреи и загружать их игрокам и выводить их в меню
Это будут уже не спреи, а детали доступные игрокам.
Добавление своего спрея кажется фантастикой, при реализации которой будет очень мутарно и создавать эту систему и пользоваться ей
 

Madness aka null138

Участник
Сообщения
715
Реакции
767
Если брать опыт ProcessCmds, было очень много попыток обнаружить такой спрей, постоянно находились новые вариации спрея.
Сомневаюсь что получится всё это решить без постоянных обновлений.
Планируется симуляция фонового запуска спрея с использованием библиотеки vtflib и отлов соответствующих крашей. Пока что сделать это полностью без костылей не получается - мне не хватает опыта и знаний в этой области.
В начальной версии релиза будет реализована проверка заголовка (header) на наличие известных комбинаций.
 

Reg1oxeN

Участник
Сообщения
403
Реакции
322
не понимаю в чем там сложность. (не беря в расчет плагины сурсмода)
1. проверить в заголовке данные на валидность.
2. проверить что в файле достаточно места для чтения превью и самого изображения.
3. профит.
 

Madness aka null138

Участник
Сообщения
715
Реакции
767
не понимаю в чем там сложность. (не беря в расчет плагины сурсмода)
1. проверить в заголовке данные на валидность.
2. проверить что в файле достаточно места для чтения превью и самого изображения.
3. профит.
Могу уточнить: это предполагается на стороне сервера или на стороне игроков?
В первом случае это от способа с подделкой crc32 не поможет.
Любой обычный спрей можно взять и манипулировать его crc32, который будет совпадать с тем что у игроков. Для сервера это обыкновеный спрей.
Две разных спрея, но обе после отправки имеют один и тот же хеш. У игроков будет использоваться тот, что уже имеется.
1761224993566.png
 
Последнее редактирование:

Reg1oxeN

Участник
Сообщения
403
Реакции
322
Могу уточнить: это предполагается на стороне сервера или на стороне игроков?
В первом случае это от способа с подделкой crc32 не поможет.
Любой обычный спрей можно взять и манипулировать его crc32, который будет совпадать с тем что у игроков. Для сервера это обыкновеный спрей.
Две разных спрея, но обе после отправки имеют один и тот же хеш. У игроков будет использоваться тот, что уже имеется.
Посмотреть вложение 122508
но ведь для этого необходимо чтобы у клиента уже был такой спрей.
а чтобы такое совпало, нужно очень постараться.
 

Madness aka null138

Участник
Сообщения
715
Реакции
767
но ведь для этого необходимо чтобы у клиента уже был такой спрей.
а чтобы такое совпало, нужно очень постараться.
Верно, но особенно стараться не обязательно. Новые спреи появляются постоянно, и не все серверы их блокируют. Игроки, которые часто играют на разных серверах, могут легко получить такие спреи.
Для проверки я в течение двух месяцев загружал один и тот же спрей на разные серверы(Заходил пару раз в неделю). В итоге, при согласованной проверке на двух самых популярных серверах (а это, разумеется, ЗЕ), оказалось, что более чем у половины игроков этот спрей уже был.
 

Nebraska

Участник
Сообщения
240
Реакции
318
А если плагин написать который будет иметь меню с выбором стандартных спреев и загрузки их игрокам как скины и звуки при заходе, и блокирующий загрузку спреев на сервер со стороны игроков, так не прокатит? по типу как тут Продам - Realistic Spray
Прокатит. Вся система работает кастомно - начиная с выбора спрея через меню и заканчивая его отображением. В новой версии предусмотрена возможность использовать клиентский спрей, но она опциональна и по умолчанию может быть отключена.
 

Reg1oxeN

Участник
Сообщения
403
Реакции
322
Для проверки я в течение двух месяцев загружал один и тот же спрей на разные серверы(Заходил пару раз в неделю). В итоге, при согласованной проверке на двух самых популярных серверах (а это, разумеется, ЗЕ), оказалось, что более чем у половины игроков этот спрей уже был.
я не совсем понял как это работает. (к crc атаке вопросов нет)
плагины пропускают поломанный спрей для передачи игроку, если в нем буквально изменили один байт в изображении?
 

Synd1qate

Участник
Сообщения
844
Реакции
309
Был же фикс плагин, который чекает не правильные спреи и блочит их
 

Madness aka null138

Участник
Сообщения
715
Реакции
767
я не совсем понял как это работает. (к crc атаке вопросов нет)
плагины пропускают поломанный спрей для передачи игроку, если в нем буквально изменили один байт в изображении?
Игрок A заходит на сервер без защиты - в результате ему загрузили краш-спреи. Потом этот игрок A заходит, например, на защищённый сервер X, и вроде бы всё отлично. Но тот, кто подгрузил свой краш-спрей, заходит на сервер с, казалось бы, обычным спреем. Плагин проверяет его и не находит в нём ничего плохого(заголовки, содержимое - всё чисто), но стоит злоумышленнику нанести этот спрей - крашатся те, у кого были эти спреи.
Сервер не может отправить новый или заменить игроку файл спрея, если он уже у игрока имеется.

Не все играют только на защищённых серверах, а новые спреи, которые обходят защиту, постепенно появляются. Зеркала также способствуют их распространению, так как многие из них не имеют защиты, и туда заходит очень много людей.
 
Сверху Снизу