- PVSM.RU - https://www.pvsm.ru -
Письмо от HackerOne с уведомлением, что Valve отстранила Василия Кравца от участия в программе bug bounty
Независимый исследователь в области информационной безопасности Василий Кравец из Москвы (xi-tauw [1]) попал в центр большой истории, которая в неприглядном свете выставила компанию Valve. Та отказалась выплачивать Василию вознаграждение за первую уязвимость по программе HackerOne, но он её всё-таки разгласил. А после публикации второй 0day для Steam компания признала свою ошибку — и вчера внесла изменения в правила программы bug bounty.
Это большая победа здравого смысла над бюрократией. Осталось только заплатить Василию и разблокировать его аккаунт.
Всё началось 7 августа 2019 года, когда xi-tauw [1] опубликовал статью [2] об уязвимости с локальным повышением привилегий в клиенте Steam. Как и положено, он заблаговременно уведомил Valve. Однако компания ничего ему не ответила. А через некоторое время платформа HackerOne, которая принимает отчёты и обрабатывает платежи в пользу хакеров за найденные уязвимости, прислала Василию большое письмо с уведомлением, что Valve отстранила его от участия в программе.
Сама уязвимость была технически простой: здесь Василий цитирует свою статью на Хабре, где описан формат SDDL (Security Descriptor Definition Language) [3].
Для клиента Steam строка SDDL выглядит так:
O:SYG:SYD:(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;RPWP;;;BU)
Самая интересная часть (A;;RPWP;;;BU) означает, что любой пользователь из группы Users имеет право запускать или останавливать сервис. Василий внимательно изучил, какие разрешения клиент прописывает в реестре Windows. Оказалось, что для раздела HKLMSOFTWAREWow6432NodeValveSteam явно указан Full control для группы Users, и эти разрешения наследуются всеми подключами в разделе и их подключами тоже. Оставалось только создать симлинк в подразделе — и убедиться, что у него есть полные права:
(A;ID;KA;;;BU)(A;OICIIOID;GA;;;BU)
Имея доступ ко всему реестру из подраздела реестра Steam, несложно превратить эту уязвимость в полное повышение привилегий, говорит специалист.
Проще говоря, если на вашем компьютере установлен клиент Steam, то любая программа (зловред) способна через подраздел Steam в реестре повысить свои привилегии до максимально возможных под Windows.
Пришло время уведомить Valve. «Тут меня ждала первая неожиданность, — пишет Кравец. — Прежде чем передавать уязвимость непосредственно в Valve, мне нужно было сначала убедить hackerone staff в том, что у меня действительно отчет об уязвимости, так как Valve используют функцию „Managed by HackerOne”. Мне не жалко — у меня PoC, который вызывает консоль от имени NT AUTHORITYSYSTEM — доказательства налицо. И я получаю отказ в отчёте. Причиной указывается, что мой отчет вне скоупа исследований, поскольку „атака требует возможности располагать файлы в произвольных путях файловой системы”. Моя реакция: „У меня даже нет ни одной операции с файловой системой, но отказ по такой причине, серьезно?”. Пишу комментарий об этом и приходит другой сотрудник, который всё же берётся проверять уязвимость. Подтверждает её и передает Valve».
Однако через некоторое время отчёт снова отвергли. Причины: «Attacks that require the ability to drop files in arbitrary locations on the user's filesystem» и «Attacks that require physical access to the user’s device» (атака требует физический доступ к устройству пользователя). Оказалось, что атаки на повышение привилегий попросту не входят в программу выплаты вознаграждений Valve на платформе Steam.
В связи с этим через 45 дней с момента отчета Кравец публично раскрыл детали уязвимости — а в ответ получил бан и запрет на участие в программе bug bounty.
Российского исследователя поддержал ещё один известный специалист по безопасности Мэтт Нельсон. Он написал [4], что зарепортил точно такую же уязвимость, и тоже получил отказ. Нельсон также открыл свой PoC.
20 августа Valve забанила Василия в своей программе на HackerOne, но это его не осановило — и он выложил второй 0day для клиента Steam [5], тоже с повышением привилегий.
Он написал на Хабре, что ситуация у Valve такая же плачевная, как и раньше: «Последнее обновление, которое было призвано устранить проблему, легко обходится и уязвимость все ещё актуальна».
Второй 0day тоже позволяет любой программе на компьютере выполнить любой код с максимальными привилегиями, воспользовавшись брешью в клиенте Steam. Общее описание эксплуатации уязвимости довольно несложно и состоит из трёх шагов, пишет xi-tauw [1]:
После публикации второй 0day история получила ещё более широкий резонанс, а компания Valve опять подверглась обструкции за то, что не включает повышение привилегий в свою программу выплаты уязвимостей. Судя по отсутствию изменений в клиенте Steam, компания как будто вообще не рассматривает несанкционированное повышение привилегий в качестве легитимной уязвимости.
Общественность особенно возмутилось баном исследователя, которому компания словно пытается заткнуть рот: «Это абсолютное нарушение стандартной практики Международной организации по стандартизации (ISO), — комментирует [6] Кэти Муссурис (Katie Moussouris), основатель и исполнительный директор Luta Security, — и запрет сообщать о дальнейших проблемах просто безответственный по отношению к пользователям, которые в противном случае выигрывают от продолжения исследований. Нормы раскрытия уязвимостей искажаются платформами, которые ставят прибыль выше людей».
Вчера компания Valve опубликовала заявление [6] и признала, что ошибочно отвергла отчёты исследователя о багах в своём программном обеспечении: «Наши правила программы HackerOne должны были отфильтровать только сообщения, что Steam используется для запуска ранее установленного вредоносного ПО на компьютере пользователя. Неправильное толкование правил привело к исключению более серьёзной атаки, которая также выполняла локальную эскалацию привилегий через Steam, — объясняет Valve суть недопонимания. — Мы обновили наши правила программы HackerOne, чтобы явно указать, что эти проблемы находятся в скоупе и подлежат рассмотрению. За последние два года мы вознаградили 263 исследователей в области безопасности, которые помогали нам выявить и исправить примерно 500 проблем безопасности, выплатив более $675 000 в виде вознаграждений. Мы стремимся продолжить работу с сообществом ИБ для повышения безопасности наших продуктов через программу HackerOne».
Новые правила программы HackerOne [7] от Valve специально оговаривают, что «любой случай, который позволяет вредоносному или скомпрометированному программному обеспечению выполнять эскалацию привилегий через Steam, без предоставления административных учётных данных или подтверждения диалога UAC, находится в области действия. Любая несанкционированная модификация привилегированной службы клиента Steam также находится в области действия».
Впрочем, Valve отказалась комментировать снятие бана с Василия и выплату ему положенного вознаграждения: «Что касается конкретных исследователей, мы рассматриваем детали каждой ситуации, чтобы определить соответствующие действия. Мы не будем обсуждать детали каждой ситуации или состояние их счетов в настоящее время».
По состоянию на вчерашний день он был забанен:
Таким образом, справедливость восторжествовала, но ещё не до конца.
Автор: alizar
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/327942
Ссылки в тексте:
[1] xi-tauw: https://habr.com/ru/users/xi-tauw/
[2] опубликовал статью: https://habr.com/ru/company/pm/blog/462479//
[3] статью на Хабре, где описан формат SDDL (Security Descriptor Definition Language): https://habr.com/ru/company/pm/blog/442662/
[4] написал: https://twitter.com/enigma0x3/status/1159103239729471488
[5] выложил второй 0day для клиента Steam: https://habr.com/ru/company/pm/blog/464367/
[6] комментирует: https://arstechnica.com/information-technology/2019/08/valve-says-turning-away-researcher-reporting-steam-vulnerability-was-a-mistake/
[7] Новые правила программы HackerOne: https://hackerone.com/valve
[8] Источник: https://habr.com/ru/post/464749/?utm_campaign=464749&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.