Как устроен VAC и почему в СS 2 так много читеров? Кибер и Gabe Follower отвечают
VACnet или есть?
Недавно CS 2 исполнился год. У игры много проблем, а главная так и не решена – матчмейкинг полон читеров, античит то работает слабо, то не работает вовсе. Разработчики вручную банят игроков, которые забираются в топ ладдера первого сезона, а когда начнется второй, тоже зависит от состояния античита.
Что происходит с VAC? Победит ли он читеров? Когда он заработает на полную мощность? Разбираемся вместе с Максимом «Gabe Follower» Полетаевым.
VAC всегда сравнивают с античитом Valorant и Faceit. Как они работают и почему они эффективнее?
Riot Vanguard для Valorant и LoL и Faceit Anticheat работают на уровне ядра операционной системы (поэтому такие античиты называют инвазивными), запускаются одновременно с ней и анализируют процессы. Разработчик Vanguard mirageofpenguins понятным языком объяснял, как устроен его продукт:
«Драйвер загружается при включении компьютера, но ничто к нему не обращается; он и сам не лезет в сеть, пока вы не запустите одну из игр Riot. Он лишь молча (и грозно) следит за тем, чтобы между загрузкой Windows и запуском игры не случилось ничего противозаконного.
Когда вы запускаете Лигу, клиент Vanguard связывается с драйвером и спрашивает у него, все ли в порядке. Если ответ положительный, создается античит-сессия и вы соединяетесь с сервером игры. Затем клиент посылает драйверу инструкции, активируя его защитные функции. Они стоят на страже подписанного процесса Лиги и не дают никому в него вмешиваться. Вы можете отключить драйвер в любой момент, но тогда перед следующим запуском Лиги придется перезагрузить компьютер, чтобы перепроверить всю цепочку безопасности».
У инвазивных античитов есть минусы:
«Они буквально работают как вирус, который интегрируется в память компьютера на уровне биоса и имеет доступ ко всему, что происходит на компьютере. При этом постоянно случаются казусы, когда они ломают Windows или ПК, потому что очень сложно адаптировать инвазивный античит под все железки. Инвазивные античиты упираются в технические ограничения. Наверное, единственный возможный путь в будущем, чтобы такие платформы продавали чипы, которые надо встраивать в материнскую плату. Либо же материнские платы будут включать чип, куда будут вшивать античит.
На данный момент такие античиты – тупиковая история, но она довольно эффективная», – рассказал для Кибера Gabe Follower.
Технические ограничения – реальная проблема инвазивных античитов. Vanguard и Faceit Anticheat, к примеру, совсем не работают на Linux: «Linux не позволяет нам в должной мере проверять состояние загрузки и модули ядра, а наличие целого зоопарка дистрибутивов лишь усугубляет ситуацию. Опасна даже эмуляция, поскольку многие читы будут запускаться на хосте, манипулируя виртуальной машиной и оставаясь невидимыми для работающего на ней Vanguard. Одна из главных задач античита – следить за целостностью окружения, а в Linux это крайне сложно осуществить из-за природы самой платформы. Любые бэкдоры, которые мы оставим открытыми, незамедлительно будут использованы читерами», – объяснял разработчик Vanguard.
Плюс всегда стоит вопрос конфиденциальности. На скриншоте – лишь часть информации, которую собирает Riot о каждом пользователе:
Также инвазивные античиты сильно нагружают систему, но они действительно практически идеально справляются с читерами.
Как устроен VAC?
- VAC включается только при заходе на официальные сервера игры, все остальное время он не активен.
- Существует база данных читов, которая постоянно обновляется.
- VAC сканирует память игры и пытается найти вмешательства в код (а любое вмешательство приравнивается к читерству). Если в базе читов находятся соответствия – игрок со временем получает бан.
Как пополняется база? Когда система обнаруживает подозрительное вмешательство в код, она формирует отчет, который анализируют разработчики Valve. Процесс заметно ускоряется, если определенным образом на код воздействует не один, а несколько человек. Также Valve просит присылать информацию о читах, особенно приватных (то есть тех, которых нет в открытом доступе) на почту: vacreview@valvesoftware.com
Еще одна особенность VAC – баны часто приходят через несколько недель, а то и месяцев, а то и никогда после обнаружения читов. Объяснение простое: так читеры могут не понять, за что конкретно их забанили. Если бы бан был мгновенным, выяснить было бы очень легко.
Последняя крупная волна VAC-банов в СS 2 была в начале мая – тогда заблокировали 1600 аккаунтов. Обновление базы данных не поспевает за обновлением читов, а волны банов означают, что честные игроки вынуждены играть с читерами дольше, чем могли бы.
Статистика по банам за последнюю неделю. Данные: convars.com
Игровые баны – блокировки от «Патруля». О его роли в борьбе с читерами – чуть ниже.
Банить читеров помогает нейросеть. Причем с 2017 года
«Мы не совсем обычная компания – именно поэтому вы здесь, да?» – гласит сайт Valve с официальным вакансиями. Компания действительно необычная: в ней любят нестандартные решения и могут позволить вечные эксперименты, ведь пока жив Steam, у Valve есть непробиваемый финансовый щит.
Бум нейросетей случился пару лет назад, но в Valve задумались об их внедрении в CS еще в 2017 году. Тогда появился VACnet – ответвление от VAC, античит, использующий машинное обучение.
Суть VACnet максимально кратко: система собирает данные о действиях игроков на основе миллионов матчей и выявляет отклонения. Например, подозрительно, если прицел пользователя большую часть времени находится в небе, но постоянно делает фраги. Чем лучше обучена машина, тем быстрее она различает нетипичное поведение – а это причина выдать бан. VACnet обращает внимание на всевозможные микродетали: дистанцию, с которой был сделан килл, оружие, градус взгляда игрока в момент фрага и так далее. Полного списка в открытом доступе, естественно, нет.
В самом начале VACnet обучали с помощью «Патруля».
«Патруль» – попытка Valve привлечь обычных игроков для борьбы с читерами. Это сервис внутри CS:GO, который предлагал пользователям просмотреть 8-раундовые отрывки матчей зарепорченных игроков. После просмотра надо было вынести вердикт: виновен подозреваемый или нет. Если ответ «Да», то пользователь получал игровую блокировку – это еще не VAC, но играть с таким баном на официальных серверах нельзя.
В СS 2 «Патруль» ввели в обновлении от 26 апреля, но на данный момент он все еще недоступен для игроков.
Так вот, VACnet. Он тоже начал репортить игроков, чьи дела впоследствии попадали в «Патруль», и сразу же показал эффективность. Репорты людей заканчивались положительным вердиктом (игрок виновен) в 15-35% случаев, а репорты бездушной машины – в 80-95%.
В разговоре про VAC важно упомянуть фактор доверия (или траст-фактор) – система, оценивающая уровень порядочности игрока, буквально то, как сильно ему можно доверять. Ее ввели в 2018 году. «Мы обучаем систему узнавать, как вы взаимодействуете с CS:GO и Стимом, и мы предполагаем, какие игроки вскоре могут получить бан. Мы закидываем в матчи людей с похожим уровнем доверия», – объяснял разработчик Valve Джон МакДональд. Грубо говоря, хорошие играют с хорошими, плохие с плохими.
Например, если у игрока уже есть 5 VAC-банов, и он зарегистрирует новый аккаунт, его уровень доверия будет минимальным. Сам по себе траст-фактор не снижает количество читеров, но улучшает игровой опыт для игроков, которые ведут себя образцово и не используют запрещенные программы.
Но не все так радужно.
Главная проблема VACnet – ложноположительные срабатывания.
«VACnet в CS:GO был достаточно эффективен, но у него, как и у любого другого ИИ или нейросети, есть ложноположительные срабатывания, их тяжело исключить. Отличить игрока, который использует не слишком очевидный чит, от обычного игрока – очень сложно. VACnet помогает бороться с самыми очевидными читами», – рассказал нам Gabe Follower.
Спустя месяц после релиза пользователи CS 2 стали массово жаловаться на VAC-баны из-за высокого DPI. Игроки просто крутили мышкой, стоя на месте, и практически моментально получали блокировки, потому что VACnet посчитал, что такое поведение присуще читерам.
VACnet – авантюра и эксперимент Valve. Никто не знает, когда все заработает на полную
В начале этого года на реддите появилось забавное обсуждение, где читеры недоумевали: они использовали самые очевидные и простые для обнаружения читы, но все никак не могли получить VAC-бан. Ютубер Mzkshow рассказывал, что VAC в матчмейкинге вовсю отключали. Звучит как бред? Скорее всего, так Valve пыталась увеличить эффективность обучения VACnet. Если нечестных игроков не банят, значит, нейросеть изучает больше материала.
Разработчик читов для CS 2 в интервью Шоку объяснял: «Мы не знаем, насколько работает VACnet. Я думаю, что Valve в первую очередь смотрит в сторону сегрегации пользователей. Читеров детектят, но не блокируют. Valve видит, что пользователь совершает определенные действия, и понимает, что на 90% это чит. Но его не банят. Если сразу же блокировать, то на следующий день, через неделю, через месяц все читы это будут обходить».
Одна из главных вещей, которую нужно понять про VACnet, – это большой эксперимент, а мы все – его часть. Выполняем роль подопытных кроликов.
«Valve – единственная компания, в которой можно вбухивать бесконечное количество ресурсов в такие спорные проекты, а еще у них очень много данных, на которых можно обучать.
В перспективе это очень классная идея. У нее есть будущее. В патентах VACnet и Trust Factor написано, что потенциально Valve знает о всех действиях, которые пользователи совершают на площадке, о всех аккаунтах, которые присоединены к железу, обо всем, что происходит внутри Стима. Если всю эту информацию собрать вместе, чисто теоретически можно делать довольно точные выводы, является человек злоумышленником или нет.
Будут появляться и нейронные читы, это будут такие кошки-мышки, но по идее побеждает тот, у кого больше данных. То у есть у разработчиков античита и игры», – рассказал Киберу Gabe Follower.
В обновлении от 19 августа Valve рассказала, что тестирует новую версию античита – VACnet 3.0.
«Начались первые тесты VACnet 3.0 на ограниченном количестве матчей. Если вам кажется, что ваш матч отменили по ошибке, отправьте нам информацию о матче по адресу csgoteamfeedback@valvesoftware.com», – попросили разработчики, которые крайне не любят разговаривать про античит. Причина понятна: любое неосторожно брошенное слово – помощь создателям читов.
Публичное заявление о старте VACnet 3.0 – к чему это? Скоро все заработает на полную? К сожалению, самый честный ответ на эти вопросы – никто не знает. Возможно, даже сама Valve. Остается лишь подвести грустные итоги.
Работает ли VAC в CS 2? Да. Эффективно ли работает VAC? Net.
Телеграм-канал Даниила Савкина
Рейтинг карт нашего детства. Без Dust2 и Inferno