Спецпроекты

Безопасность Новости поставщиков Стратегия безопасности Бизнес Кадры Интернет Веб-сервисы

Создатели Dota 2 и Counter-Strike забанили россиянина, сообщившего им об уязвимости

Россиянин нашел две уязвимости нулевого дня в популярной игровой платформе Steam. За свою активность вместо вознаграждения в рамках программы bug bounty он получил бан на площадке Hackerone, инициированный корпорацией Valve – разработчиком Steam.

Очередная уязвимость нулевого дня

Российский исследователь в сфере кибербезопасности Василий Кравец, также известный под псевдонимом xi-tauw, опубликовал подробности уязвимости в клиенте платформы Steam.

Steam представляет собой интернет-сервис распространения компьютерных игр и программ. Его разработчиком выступает американская компания Valve, известная созданием сверхпопулярных во всем мире многопользовательских игр, в частности, Half-Life, Portal, Counter-Strike и Dota 2.

Это вторая уязвимость нулевого дня, обнаруженная специалистом в продукте. За публичное раскрытие информации о первой из них Valve запретила Василию участвовать в своей программе по поиску багов (bug bounty) на площадке Hackerone, поэтому и о новой бреши в Steam Кравец был вынужден рассказать открыто.

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

Valve игнорирует, затем карает

Проблема, с которой столкнулся Кравец, заключалась в том, что Valve не считала возможность локального повышения привилегий уязвимостью в случае, если атака требует возможности располагать файлы в произвольных путях файловой системы или физического доступа к ПК. Именно к такому классу отнесли схему, описанную россиянином, сначала специалисты из Hackerone, а затем и из Valve.

Несмотря на нежелание Valve принимать закрытый отчет Кравца об уязвимости, разглашать информацию о ней ему также не позволили.

Вопреки запрету, через 45 дней Василий опубликовал детали своего исследования, после чего бета-версия клиента Steam, а парой дней позже и стабильный релиз, получили исправление описанного им бага, однако чуть позднее другой специалист продемонстрировал способ это исправление обойти. Еще через пять дней Кравец получил бан в программе Valve на Hackerone.

Через Steam к правам администратора

В первом случае эскалации привилегий можно добиться, манипулируя символическими ссылками в системном реестре Windows. Это возможно благодаря тому, что Steam для своей работы устанавливает специальную службу Steam Client Service, которую позволено запускать и останавливать любому пользователю, а не только администратору. Схожая ситуация наблюдается и с правами доступа к разделу реестра, принадлежащему Steam (HKLM\SOFTWARE\Wow6432Node\Valve\Steam).

Вторая уязвимость позволяет злоумышленнику добиться желаемого, заставив службу Steam Client Service запустить заранее подготовленную динамическую библиотеку, внутри которой реализован необходимый хакеру код, вместо оригинальной steamservice.dll. Сделать это можно, обманув алгоритм проверки подлинности библиотеки, используемый в Steam. Для этого эксперт предложил задействовать механизм уступающих блокировок и символические ссылки в файловой системе.

Более подробно Кравец описал процедуру подмены библиотеки в своем блоге на «Хабре». Он также записал видео, в котором наглядно продемонстрировал получение прав администратора в системе благодаря «дыре» в Steam.

Победа здравого смысла

22 августа 2019 г. Кравец сообщил о том, что после публикации информации о второй уязвимости, бета-версия клиента Steam вышла с соответствующими исправлениями, а компания Valve изменила свое отношение к ошибкам повышения привилегий. Теперь информация о них будет приниматься в рамках программы bug bounty.

Россиянам не впервой находить ошибки в Steam. В ноябре 2018 г. эксперт по безопасности Артем Московский обнаружил в платформе серьезную уязвимость, позволявшую потенциальным злоумышленникам красть лицензионные ключи к играм и играть в пиратские игры.

О своей находке Московский сообщил в Valve через платформу Hackerone. Через три дня разработчик Steam выписал ему премию в размере $15 тыс., добавив сверх того бонус в размере $5 тыс. с условием не публиковать информацию об уязвимости до конца октября 2018 г.

В июле 2018 г. Московский нашел в партнерском портале Valve для разработчиков уязвимость класса SQL-инъекция и получил $25 тыс.

Дмитрий Степанов

Короткая ссылка