ИБ-исследователь Василий Кравец опубликовал новую уязвимость нулевого дня в игровом клиенте Steam для Windows. Как и баги, обнаруженные ранее, этот позволяет злоумышленникам повышать привилегии на пользовательском компьютере, чтобы полностью перехватить контроль над машиной.
На этот раз Кравец не стал уведомлять Valve о своей находке и сразу разместил сведения об уязвимости в открытом доступе: компания заблокировала эксперту доступ к своей программе по отлову багов на платформе HackerOne. Ранее разработчики не раз заявляли, что не считают уязвимости повышения привилегий проблемой Steam, поскольку для их эксплуатации злоумышленнику потребуется доступ к пользовательскому компьютеру.
Описание обнаруженной в Steam уязвимости:
Новый эксплойт оказался сложнее предыдущего и требует для эксплуатации комбинирования нескольких приемов:
Символические ссылки (симлинки) — позволяют использовать одну папку для переадресации запросов другой.
Уступающая блокировка (OpportunisticLock, оплок) — позволяет программе временно закрыть доступ к файлу.
Техника BaitAndSwitch — объединяет оплок исимлинки таким образом, чтобы первый запрос к файлу блокировал его для других программ, а второй пересылался на другой объект.
Для применения эксплойта необходимо создать директорию с двумя файлами Steam.exe и steamclient.dll, а также удалить или переименовать папку bin из основного каталога Steam. Как пояснил Кравец, это нужно, чтобы взять под контроль запросы клиента к рабочей библиотеке и в нужный момент предложить ему скомпрометированный файл.
Исследователь обратил внимание, что при запуске Steam программа шесть раз подряд обращается к steamclient.dll. Эксперт создал симлинки для переадресации этих запросов в другие папки, причем с помощью оплоков он разделил обращения на два параллельных потока. Это позволило ему направлять каждую операцию в нужные ему директории.
Согласно предложенному сценарию, первая пятерка запросов приводит клиент к нужной библиотеке. В последний же раз программе предлагается файл с полезной нагрузкой, в результате чего она читает сторонний код, который предоставляет взломщику привилегии администратора.
Реакция экспертов на конфликт Кравеца и Valve:
Блокировка Кравеца на HackerOne вызвала возмущение ИБ-специалистов, которые напомнили, что уязвимости повышения привилегий входят в топ-10 самых серьезных угроз по версии Open Web Application Security Project, a Microsoft регулярно исправляет такие баги в своих продуктах.
«Разумеется, Valve по-своему права — злоумышленник не сможет использовать эту уязвимость, чтобы взломать клиент, — рассуждает эксперт ZDnet Каталин Чимпану (Catalin Cimpanu). — Но дело в том, что когда пользователи устанавливают Steam, они не ждут, что эта программа станет стартовой площадкой для вредоносного ПО».
Специалисты также указали, что зловредным агентом может оказаться любая опубликованная в магазине Valve программа.
«Каждая игра может копировать файлы на компьютер, администраторы Steam не проверяют эти данные, — написал пользователь Twitter blakeyrat. — Кроме того, преступники могут украсть пароль к аккаунту [какой-нибудь игровой студии] и добавить эксплойт [в ее продукт]».
В итоге Valve все же пошла на уступку и изменила политику вознаграждений за найденные баги. Компания убрала из списка ограничений пункт, выводивший из-под действия программы атаки с применением сторонних файлов. С другой стороны, новая редакция политики вознаграждений распространила ее на методы, которые позволяют программам повысить свои привилегии через Steam, не требуя дополнительных разрешений от пользователей. Любая неавторизованная модификация игрового клиента теперь также включена в программу.
Источник: https://threatpost.ru/another-day-another-0day-in-steam/33844/