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


Итак, герой нашей истории — ПО Steam от компании Valve. И уязвимость повышения привилегий в нем, которая позволяет любому пользователю выполнить команды от имени NT AUTHORITY\SYSTEM.

Уязвимость


Сама уязвимость довольно простая. Steam для своей работы устанавливает сервис “Steam Client Service”. Глянем на SDDL-описатель сервиса:

O:SYG:SYD:(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;RPWP;;;BU)

Здесь нас интересует часть (A;;RPWP;;;BU). В данном случае, эта запись означает, что запускать и останавливать сервис может любой пользователь из группы «Пользователи».
Посмотрим, что сервис делает при старте. Не особо много интересного, но есть часть операций, которые выглядят необычно — сервис перечисляет содержимое раздела HKLM\SOFTWARE\Wow6432Node\Valve\Steam\Apps и для всех подразделов выставляет какие-то права.



Интересно, что же за права выставляются? Создаем тестовый ключ, запускаем сервис (лог procmon’а выше) и смотрим, что с правами. Тут и обнаруживается, что еще у раздела HKLM\SOFTWARE\Wow6432Node\Valve\Steam выставлены права на полный доступ для всех пользователей, которые наследуются на все подключи. Рождается гипотеза, что такие же права будут выставляться и всем подразделам HKLM\SOFTWARE\Wow6432Node\Valve\Steam\Apps через вызов RegSetKeySecurity. А что если в реестре будет стоять симлинк, и ветка HKLM\SOFTWARE\Wow6432Node\Valve\Steam\Apps\test будет указывать, например на HKLM\SOFTWARE\test2?

Проверяем и видим, что права в случае симлинка прописываются для целевой ветки реестра.



Проверяем права у целевой ветки и видим в SDDL-форме (пропуская неинтересное):

(A;ID;KA;;;BU)(A;OICIIOID;GA;;;BU)

В словесной форме это означает, что полный (чтение и запись) доступ для всех пользователей. Именно такие права прописал ветке сервис Steam.

Теперь, когда подготовлен примитив по получению контроля над практически любой веткой реестра, докрутить PoC уже легко. Я выбрал ветку HKLM\SYSTEM\ControlSet001\Services\msiserver — она соответствует сервису «Установщик Windows», который тоже может быть запущен пользователем, но работать сервис будет с правами NT AUTHORITY\SYSTEM. После получения контроля над веткой HKLM\SYSTEM\ControlSet001\Services\msiserver мы меняем путь к исполняемому файлу в ключе ImagePath и запускаем сервис msiserver. Наш исполняемый файл запускается с максимально возможными правами — NT AUTHORITY\SYSTEM.

Собираем все, что написано выше в код и получаем простое повышение привилегий на любом компьютере с Windows, где установлен Steam.

Сообщение об уязвимости


Я отправил отчет об уязвимости в Valve через Hackerone.

Тут меня ждала первая неожиданность — прежде чем передавать уязвимость непосредственно в Valve, мне нужно было сначала убедить hackerone staff в том, что у меня действительно отчет об уязвимости, так как Valve используют функцию «Managed by HackerOne». Мне не жалко — у меня PoC, который вызывает консоль от имени NT AUTHORITY\SYSTEM — доказательства на лицо. И я получаю отказ в отчете. Причиной указывается, что мой отчет вне скоупа исследований, поскольку «Attacks that require the ability to drop files in arbitrary locations on the user's filesystem.» (атака требует возможности располагать файлы в произвольных путях файловой системы). Моя реакция: «У меня даже нет ни одной операции с файловой системой, но отказ по такой причине, серьезно?»

Пишу комментарий об этом и приходит другой сотрудник, который все же берется проверять уязвимость. Подтверждает ее и передает 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.

Небольшой комментарий по поводу причин
Изначально я считал, что из скоупа исключают отчеты, которые не содержат уязвимости как таковой, но демонстрируют какое-то странное применение установленного ПО.

Например, в причине «Attacks that require the ability to drop files in arbitrary locations on the user's filesystem» я выделил ключевые, на мой взгляд, слова. Мне казалось, что такой причиной Valve хотели исключить спекуляции на тему «давайте я установлю игру в папку, доступную всем пользователям, затем буду запускать ее с правами админа, не проверяя не подменил ли кто файлы», но для них это, видимо, повод исключить вообще все что касается локальных атак.

Тоже самое и с физическим доступом. Для меня, физический доступ — это возможность отверткой открутить болты жесткого диска, загрузиться с внешнего носителя и другие интересные вещи непосредственно с оборудованием ПК. Довольно логично предположить, что имея такой доступ можно сделать почти все, что угодно. Равно как и преодолеть двухфакторную аутентификацию при физическом доступе к телефону. Valve же, видимо, любое действие на компьютере пользователя рассматривает как физику. Так и RCE запретить недолго: компьютер же соединен с серверами волнами или проводами — физически!

Поскольку прошло 45 дней с момента отчета, я решил публично раскрыть детали уязвимости, хотя я не уверен, что это сподвигнет разработчиков Steam внести изменения.

Небольшие статистические данные: уязвимость была проверена на Windows 8 x64, Windows 8.1 x64 и Windows 10 x64. Я не знаю особенностей нумерации версий ПО Steam, поэтому зафиксирую версии компонентов сервиса:

  • SteamService.dll (5.16.86.11, подписан Valve 14.06.2019)
  • SteamService.exe (5.16.86.11, подписан Valve 14.06.2019)

Таймлайн:

15 июня — отправлен отчет об уязвимости.
16 июня — отклонен, «Attacks that require the ability to drop files in arbitrary locations on the user's filesystem.».
16 июня — переоткрыт с комментарием.
2 июля — подтвержден сотрудником HackerOne, передан Valve.
20 июля — отклонен, «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.».
7 августа — опубликована эта статья.

Немного спекуляций


Я очень разочарован. Серьезная компания, которая пишет пафосные слова о том, что безопасность важна, открывает ваш компьютер для максимального доступа любым программам, которые вы запускаете.

Довольно иронично обнаружить, что лаунчер, который фактически предназначен для того, чтобы запускать сторонние программы на вашем компьютере, позволяет им втихую получить максимальные привилегии. Вы уверены, что бесплатная игра, сделанная на коленке неизвестным разработчиком, будет вести себя честно? Верите, что за скидку в 90% вы не получите скрытый майнер? Конечно, часть угроз останется и при работе без прав администратора, но высокие права у вредоносных программ могут существенно попортить нервов – отключение антивируса, закрепление в системные автозагрузки, изменение практически любых файлов, любых пользователей.

Благодаря популярности Steam, количество потенциальных пострадавших очень велико. В 2015 году количество активных учётных записей Steam оценивалось как 125 миллионов. Да, не у всех пользователей Steam ОС Windows, но у большинства точно, и у каких-то пользователей по нескольку «живых» аккаунтов на одной машине. Но масштабы проблемы все же впечатляют.
А может все это оставлено специально? Может, Steam — это своего рода легальный бекдор? Точно установить это невозможно, но давайте сопоставим факты:

  1. Есть уязвимость, которую легко эксплуатировать (причем, судя по сообщениям в твиттере, не одна).
  2. Ее довольно легко обнаружить — я не уверен, что я первый нашел ее, но как минимум первый описал публично.
  3. Нежелание принимать отчет о такой уязвимости и похожих (скоуп специально выбран так, что повышение привилегий из него выпадает).

Все это мне очень не нравится. Я не буду призывать вас удалять Steam, но предлагаю быть очень внимательным с тем, что он делает. На кону ваша безопасность.

Бонус


Дело в том, что в процессе подготовки этой статьи произошло довольно интересное событие, в связи с которым я решил дополнить таймлайн.

20 июля — после отклонения отчета, я предупредил h1, что публично раскрою детали уязвимости после 30 июля.
2 августа — еще один сотрудник h1 отмечается в закрытом отчете и говорит, что они не разрешают мне проводить раскрытие.

Данная статья была подготовлена к публикации уже к 30 июля (такая дата была выбрана из расчета 45 дней после отправки отчета), но задержалась. И вот, спустя две недели от моего сообщения 20 июля, появляется человек, который говорит мне: «мы не даем разрешение на раскрытие уязвимости». Фактически, получается: мы отметили твой отчет, как неподходящий, мы закрыли обсуждение, мы не посчитали нужным ничего тебе объяснять и мы просто не хотим, чтобы ты публиковался. При этом не единого слова от Valve. Нет, ребята, так дело не пойдет. Вы не стали уважать мою работу, я не буду уважать вашу — не вижу причин не публиковать этот отчет для всех. Скорее всего меня забанят на h1 из-за этого, но я огорчаться не стану.

UPD. Оказывается вчера вышло обновление Steam. Нет, оно ничего не исправило.
Версия файлов: 5.27.59.20 подпись от 6.08.2019.

This article in english.

Комментарии (97)


  1. KarasikovSergey
    07.08.2019 10:36
    +3

    На самом деле очень жирная дырка для ситуаций гостевого доступа к целевому компьютеру. Возможно, что стоит уведомить об этой проблеме Microsoft, так как в первую очередь такое вольное обращение с привилегированным доступом бьёт по безопасности Windows. А уже Microsoft вольна применить санкции к Valve, вынудив изменить алгоритмы работы сервиса.


    1. loony_dev
      07.08.2019 10:38

      Не уверен что Microsoft пойдет на это, это выбор пользователя, ставить такой софт, зная о проблеме или нет.


      1. KarasikovSergey
        07.08.2019 10:41
        +4

        Тогда и с малварью не надо бороться — пользователь сам ставит всякую фигню, запускает подозрительные файлы и так далее. Но нет. Думаю есть смысл попытаться — MS проще решить проблему кулуарно не дожидаясь какой-нибудь очередной эпидемии NotVasya


      1. karabas_b
        08.08.2019 02:38
        +2

        Не совсем. Пользователь ставит Steam, потому что Valve это солидная корпорация, которой, как считает пользователь, можно доверять. Разумеется, даже солидная, достойная доверия фирма может допустить уязвимость в софте, никто от этого не застрахован. Но достойная доверия фирма моментально делает все возможное для защиты пользователей, как только она узнала о новой уязвимости. Поскольку Valve информацию об уязвимости попросту проигнорировала, тупо подставив миллионы доверяющих ей пользователей под удар, она перестает быть достойной доверия фирмой, а ее дырявый софт превращается в уязвимость для фирмы Microsoft. Потому что если с помощью этой дыры кто-то удачно запустит malware, это бросит тень не только на Valve, но и на Microsoft — ведь компьютеры с другими ОС не пострадают. И сейчас уже очередь Microsoft сделать все возможное, чтобы защитить своих пользователей и оправдать их доверие. Учитывая колоссальное количество пользователей Steam, адекватным было бы официальное уведомление на сайте Microsoft о наличии уязвимости в этом ПО, а тогда уже пользователи могут сами решать, ставить такой софт, зная о проблеме, или нет. Конечно, сайт Microsoft мало кто читает, но сми быстро растиражировали бы эту новость, и необходимый эффект был бы достигнут.

        На деле, конечно, достаточно будет короткого мейла от Microsoft в Valve с угрозой выкатить подобное предупреждение, чтобы Valve, вырывая на жопе волосы, бросила все силы на закрытие дыры.


        1. GDragon
          08.08.2019 11:56

          На самом деле всё немного иначе, МС в таких случаях угрожает перевести подпись в не-доверенные а не вывешивает предупреждение.
          Но помогает вроде как тоже неплохо!


    1. xi-tauw Автор
      07.08.2019 10:40
      +2

      Я думал об уведомлении MS, учитывая, что они как раз опубликовали Safe Harbor (https://www.microsoft.com/en-us/msrc/bounty-safe-harbor), но все же ситуация не та — MS не виноваты и Valve не третья сторона, а первая.
      MS не виноват и, в общем смысле вряд ли, имеет право указывать на ошибки.


      1. KarasikovSergey
        07.08.2019 10:48
        +1

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


        1. xi-tauw Автор
          07.08.2019 11:08
          +2

          У МС весьма своеобразные представления о том, что является границами безопасности. Даже среди своих компонентов они не все считают необходимым защищать. В стороннее ПО они не полезут и подавно. Например, посмотрите на мой обход UAC (https://habr.com/ru/company/pm/blog/328008/) — до сих пор работает.


        1. loony_dev
          07.08.2019 11:11

          Я может что-то не верно понял, но Steam не имеет системных прав, он работает в контексте админа, но не системы. А повышение до системных уже происходит через msiserver. Тут суть в том что мы стимом меняем права на msiserver.


          1. xi-tauw Автор
            07.08.2019 11:30
            +3

            Системные права и права админа практически не различимы. Разница скорее терминологическая, чем реальная.


          1. navion
            07.08.2019 13:23
            +1

            Steam Client Service работает в контексте системы.


      1. FibYar
        07.08.2019 11:53
        +1

        Прошу извинить, если скажу глупость, но я не разбираюсь в теме безопасности.
        Вопрос такой — а насколько вообще корректна ситуация, что в Реестре Windows можно менять права у веток, на которые ссылаются симлинки? Другими словами, что мешает реализовать аналогичный подход без использования Steam? Ведь, если я правильно понял из текста, достаточно просто обладать правами на какую-то свою ветку в реестре и иметь возможность устанавливать права для дочерних веток. Нужны ли здесь вообще какие-то программы?


        1. xi-tauw Автор
          07.08.2019 11:57
          +1

          Строго говоря, нет ничего плохого, чтобы делать какие-то операции через симлинки. Ведь для этого они и были придуманы.
          Без стима это все делать нельзя по ряду причин:
          1) Симлинки из менее защищенных веток в более защищенные не работают (условно говоря, симлинк из HKCU в HKLM не будет работать).
          2) Чтобы создать симлинк в HKLM в 99,99% ключей нужно уже иметь права администратора, по дефолтным правам доступа.


          1. FibYar
            07.08.2019 12:03
            +2

            Понятно. Спасибо за объяснение!


          1. xMushroom
            07.08.2019 15:16

            То есть проблема получается в том, что сервис устанавливает общие права доступа для ключа, который находится в защищенной ветке реестра HKLM? И это позволяет создать симлинк из нее в другую защищенную, и доступ по этому симлинку будет работать с правами исходной ветки?
            Это выглядит как-то странно. Получается, ни в коем случае нельзя давать доступ на запись обычным пользователям ни в один из ключей из HKLM?


            1. xi-tauw Автор
              07.08.2019 15:36
              +1

              Вы неправильно вывели общее из частного.
              Получается, не надо давать доступ на запись обычным пользователям в те папки, с которыми, в последствии, будут происходить манипуляции.
              Сам по себе симлинк не дал никаких новых прав — это сделал сервис, пройдя по симлинку.


              1. xMushroom
                07.08.2019 20:19
                +1

                А, теперь понял, спасибо.


        1. mayorovp
          07.08.2019 15:41
          +1

          Программы нужны. Права-то меняет не атакующий, а именно что Steam Client Service, в процессе рекурсивного обхода "своей" ветки реестра.


          1. xi-tauw Автор
            07.08.2019 15:43

            Именно так.


    1. realimba
      08.08.2019 12:00
      -2

      M$ начхать даже на кривые драйвера, что говорить о сервисе.


      Ядро монолит изжило себя и с каждым днем будет только хуже, как же долго я ждал этого дня :D


      https://www.unknowncheats.me/forum/anti-cheat-bypass/334557-vulnerable-driver-megathread.html


      1. sumanai
        08.08.2019 19:33

        А много вы знаете ОС с не монолитом? И готовы ли терпеть тормоза микроядер?


  1. imm
    07.08.2019 11:24
    +5

    > мы не даем разрешение на раскрытие уязвимости
    Не совсем понятно — при чем тут сотрудник h1 и его запрет
    Valve отклонили отчет об уязвимости — т.е. они считают это не уязвимостью, а, вероятно фичей.
    Почему бы и не рассказать всем о такой классной фиче? основания для запрета?


    1. xi-tauw Автор
      07.08.2019 11:31
      +1

      Вы верно уловили мои мысли. Но никакого обоснования предоставлено не было, хоть я и запрашивал.


      1. imm
        07.08.2019 14:16

        Правильно ли я понимаю — чтобы пофиксить в Windows, достаточно выключить полный доступ всем кроме системы и группе админов для ветки HKLM\SOFTWARE\Wow6432Node\Valve\Steam + подразделов?


        1. xi-tauw Автор
          07.08.2019 14:25
          +1

          Не уверен.
          1) Сервис пропишет все права обратно, он же этим и занимается.
          2) Даже если посчитать что убрать права достаточно — эти ветки созданы для настроек игр (ну как я понял) и хз что сломается, если права убрать.


  1. amarao
    07.08.2019 12:06
    +1

    (мимо с линуксовой версией стима пробегал)


    Т.е. я всё сделал правильно, когда при установке стима ни разу не дал ему рутовых прав (включая ручную распаковку deb'ки). В своём песочном пользователе steam он может копошиться, а в чужие домашние каталоги и в систему — ни-ни.


    1. xi-tauw Автор
      07.08.2019 12:33

      Все правильно сделали


    1. Sabubu
      07.08.2019 12:41
      +3

      Это вы правильно делаете. Slack, например, в своем deb-файле пытается всунуть shell-скрипт в крон от рута, по комментариям в коде — чтобы восстанавливать себя в списке источников для менеджера пакетов, если запись будет закомментирована при обновлении системы. Но, конечно, добавляя себя в список источников, он позволяет компании Slack Inc перезаписать любой файл в системе, включая sshd или bash, например.


  1. VivAmigo
    07.08.2019 14:08

    Я не являюсь специалистом безопасности и юриспруденции, но у меня появился вопрос. Если я разработаю полноценный MalWare на основе этой уязвимости и опубликую весь исходный код (с подробными комментариями к коду) на общедоступных форумах в виде обращения с просьбой устранить данную уязвимость в логике работы программы Steam, будет ли это считаться чем-то незаконным?


    1. xi-tauw Автор
      07.08.2019 14:08

      Вне зависимости, ваша деятельность будет расценена как УК РФ Статья 273 Создание, использование и распространение вредоносных компьютерных программ. И будет считаться незаконной.


      1. VivAmigo
        07.08.2019 14:17

        А можно ли в таком случае обратиться куда-то, кроме Steam, если данная недоработка добавляет уязвимости в систему? Может в Касперский, Dr.Web или другие безопасники возьмутся за эту проблему? Допустим что Dr.Web обратится к Steam, с требованием удалить данную уязвимость, по причине создания дыр в безопасности. Они могут ведь поставить ултиматум, причисляя данное ПО к потенциально опасному?


        1. xi-tauw Автор
          07.08.2019 14:25

          Крайне сомнительно. Антивирусы обычно таким не интересуются.


          1. VivAmigo
            07.08.2019 14:59

            Жаль. А потом удивляемся, откуда у нас появляются not petya. Спасибо за ответы. Есть надежда, что этот пост увидят безопасники или хоть какие то энтузиасты, а не профессиональные( и не очень ) спецы по написанию вредоносов.


          1. khanid
            08.08.2019 00:25

            Интересуются. Тот же касперский имеет модули поиска уязвимости в ПО. Правда работают тормозно. Но они есть. В энтерпрайзном KES10+ точно были.


      1. sswwssww
        07.08.2019 18:07
        -2

        Попадает ли bat файл с содержимым: «del C:\Windows» — под понятие «вредоносная компьютерная программа»?


        1. xi-tauw Автор
          07.08.2019 18:07

          Хорошо, что не я это решаю


        1. sswwssww
          08.08.2019 10:20

          Кто может объяснить мне причину минусования коммента? Невозможно юридически, четко разграничить понятия «вредоносная компьютерная программа» и «программа».


          1. Drazd
            08.08.2019 16:52

            А вы почитали статью УК РФ, на комментарий со ссылкой на которую ответили? Там же все четко написано. Вот, специально выделил самый сок:
            "Создание, распространение или использование компьютерных программ либо иной компьютерной информации, заведомо предназначенных для несанкционированного уничтожения, блокирования, модификации, копирования компьютерной информации"

            То есть — да, является. Программа из одной команды — тоже программа. Программа, содержащая команду «del C:\Windows», которая будет выполнена с повышенными правами без ведома пользователя — заведомо предназначена для несанкционированного уничтожения компьютерной информации


            1. juray
              09.08.2019 04:06

              А как отличить, эта строчка предназначена для несанкционированного уничтожения или санкционированного?

              По идее, для отнесения к «заведомо предназначенным» программа помимо собственно деструктивных действий, должна содержать еще и средства маскировки от пользователя.


              1. xMushroom
                09.08.2019 15:25
                +1

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


                1. juray
                  10.08.2019 19:15

                  Так и я про то же.
                  А вот из утверждения товарища выше вытекает, что дает.


                  1. xMushroom
                    11.08.2019 00:20

                    А, прошу прощения, показалось, что первый вопрос в треде — ваш.


              1. Jaguar25
                09.08.2019 15:46

                почитайте про термин " несанкционированный доступ", если вкратце, то несанкционированное уничтожение, это такое уничтожение, для которого у вас нет соответствующих прав доступа, но вы все равно уничтожаете. Или перед вами дверь, к которой у вас нет ключа, а вы взяли и открыли, хотя вам нельзя.


                1. juray
                  10.08.2019 19:13

                  Ну и вот как выяснить, есть права или нет — только по такой вот одной строчке?
                  Drazd утверждает, что такой bat-файл таки является «заведомо предназначенным для несанкционированного уничтожения». Вот мне и интересно, а как он узнал, для несанкционированного или санкционированного?


    1. Serenevenkiy
      07.08.2019 14:08
      -4

      Пожалуйста, не делайте так.


  1. Wolchara000
    07.08.2019 14:47

    Не ожидал от Valve такой реакции…


    1. xi-tauw Автор
      07.08.2019 15:08

      Я, к сожалению, ожидал. В посте есть ссылка на твиттер enigma0x3, которому, фактически, дали отворот сами Valve без посредников.


  1. JTG
    07.08.2019 16:00

    Я на всякий случай спрошу, а нельзя ли сам SteamService.dll/SteamService.exe переписать? Там права верно установлены?


    1. xi-tauw Автор
      07.08.2019 16:03

      Переписать нельзя. Да, верно установлены. На эти файлы действуют права-умолчанию, с ними все нормально.


  1. ilyapirogov
    07.08.2019 16:53

    Интересно, а в конкурирующих площадках не были найдены подобные уязвимости? К примеру, в стремительно набирающим популярность Epic Games?


    1. xi-tauw Автор
      07.08.2019 17:01

      Не готов это комментировать.


    1. 8street
      07.08.2019 18:47

      Подобной нет, но есть кое-что.


      1. AC130
        07.08.2019 20:10

        Интересно, а не занимается ли чем-то подобным давно набравший популярность Стим?


  1. Nexon
    07.08.2019 18:48

    Это вызывает риторический вопрос — сколько еще таких уязвимостей не опубликовано?
    Просто у них баг с залипанием клавиши Tab не фиксится уже более 10 лет.


    1. MiB_K
      07.08.2019 20:39

      Так это баг?! А я все на свою клавиатуру грешил, да на кривые руки.


    1. Kron7
      08.08.2019 10:06

      Это свойственно Valve. Так, они практически не фиксят баги в своих играх, которые не приносят им регулярного дохода (т.е. во всех, кроме, доты 2, ксго, тф2 и артефакта). Скатились ребята…


      1. ExplosiveZ
        08.08.2019 11:34

        В CS 1.6 даже новые фичи добавляют, о чём ты?


        1. Kron7
          09.08.2019 00:09

          Добавлять фичи — не баги фиксить)) Интересно какие там появились плюшки?

          Я говорю, к примеру, о присутствии в hl2dm ряда откровенно явных косяков, которых до определенного обновления и не было. После их появления прошло уже несколько лет, об этом не раз писали в Вэлв, но ничего до сих пор не пофиксили. Вывод — им просто наплевать на игру, которая не приносит им дохода, и на комьюнити тоже.
          Больше даже смахивает на то, что они умышленно эти баги добавили))


      1. IharK
        08.08.2019 16:16
        +1

        Артефакт приносит разве доход? У него онлайн меньше 200 человек.


        1. Kron7
          09.08.2019 00:17

          Потенциально должен будет приносить, ибо Вэлв больше играми без доната не занимаются. Про хардкорные FPS без шапок можно забыть.


          1. IharK
            09.08.2019 11:05

            Ну тут я скорее не соглашусь, проект мертвый, а реанимировать игры Valve не умеет. Все что живо — живо за счет игроков (модели и режимы в L4D2, кастомные карты в Dota 2). Я не верю в Артефакт, и в то, что они за него возьмутся. Был вроде перевод на хабре статьи от одного из крупных игроков в ККИ, который сказал, что кучу его замечаний, и замечаний других экспертов, Valve просто проигнорировала (когда Артефакт был на ранней стадии). Как они с таким подходом смогут заставить игроков вновь в артефакт играть?


            1. Kron7
              11.08.2019 01:26

              Я имел ввиду, что Артефакт создавался не столько для продажи, сколько для обильного заработка на внутриигровом контенте (а о его будущем судить не берусь). Вэлв давно взяли для себя такую модель заработка. И поэтому игры, в которых «не торгуют шапками», Вэлв практически не поддерживает.

              Все что живо — живо за счет игроков (модели и режимы в L4D2, кастомные карты в Dota 2)
              Все верно, но игрокам свойственно вырастать, обзаводится семьями и, зачастую, утрачивать возможность/желание играть в игры)) А для того, чтобы более младшие поколения тоже играли в эти же игры, их нужно поддерживать (обновлять движок, текстуры, придумывать новые фичи, как-то актуализировать игру, которой уже 5-10 лет). В противном случае потенциальные игроки могут даже не заметить такую игру. Что в итоге и случилось с Half-Life 2: Deathmatch, к примеру.


      1. Nexon
        08.08.2019 16:52

        Скорее это просто ValveTime.


  1. VADemon
    07.08.2019 20:51

    Отнюдь. Я конечно уже и видел «английские» репорты, которые без знания русского языка не поймёшь, но даже если всё хорошо было описано — какой резон был премодерации такую дыру отвергать?

    А через security@ я и вообще (в сравнении с этим) смешной exploit на Steamcommunity репортил, который для фишинга использовался. После того как человек на том конце смог воспроизвести проблему, буквально за считанные часы фикс добрался до прода.

    UPD: «Attacks that require the ability to drop files in arbitrary locations on the user's filesystem.» если вчитаться, то действительно нужен уже локальный код, что не отменяет тот факт, что благодаря стиму любой зловред до NT SYSTEM может повыситься.


  1. VitalKoshalew
    07.08.2019 22:44

    Постойте, это та самая программа, которая устанавливает права Full Control для всех пользователей на каталог «c:\Program Files (x86)\Steam» и туда же устанавливает и все свои приложения/игры, большая часть которых могла бы работать из нормального защищённого каталога?

    Это та самая, которая при запуске игр выводит вот такие запросы UAC:

    первая же картинка из гугла, раньше ещё и 'verified publisher' не было
    первая же картинка из гугла


    1. navion
      07.08.2019 23:22

      И ругается, если права забрать:


      1. JTG
        09.08.2019 15:56

        Я там выше спрашивал есть ли у пользователей доступ на запись (конкретно файла steamservice.exe), потому что в сети какая-то противоречивая информация, всё забываю проверить дома.

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

        (Вообще конечно подобные вещи — это полная задница. Chrome свои исполняемые файлы в AppData суёт, а этот, похоже, наоборот)


        1. xi-tauw Автор
          09.08.2019 16:53

          По поводу противоречия:
          Сервису «Steam Client Service» соответствует файл C:\Program Files (x86)\Common Files\Steam\steamservice.exe и у него с правами все нормально.
          Но есть еще файл C:\Program Files (x86)\Steam\bin\steamservice.exe — он лежит в папке, которой при установке стим дает разрешение на изменение для всех пользователей. Когда и как он запускается я не знаю.


    1. CycaHuH
      08.08.2019 09:04
      -1

      «c:\Program Files (x86)\Steam» и туда же устанавливает и все свои приложения/игры

      Это по умолчанию, origin делает также. В настройках можно выбрать произвольную директорию


      1. mayorovp
        08.08.2019 09:08
        +2

        Так проблема-то не в директории, а в правах на неё!


  1. sumanai
    08.08.2019 05:54

    А потом люди удивляются, что это я не ставлю программы для установки программ. Да в них подобные дыры by design.


  1. kITerE
    08.08.2019 09:42

    Отличный отчет, интересная (показательная) уязвимость. Было бы здорово дополнить статью дескриптором безопасности ключа HKLM\SOFTWARE\Wow6432Node\Valve\Steam\Apps, что бы понять, какие пользователи могут создавать там симлинки (могут провести повышение привилегий).


    1. xi-tauw Автор
      08.08.2019 10:14
      +2

      Спасибо.
      Дескриптор безопасности, опуская подробности, KA для BU (KA [Key All] — Полный доступ, BU [Built-in User] — все пользователи).
      Теперь забавный факт, по которому можно отличить диванных безопасников с реддита. Для создания симлинка в реестре не только не нужны права администратора, но и даже разрешение ключа на «create links». Нужно только разрешение на создание ключей.


  1. amarao
    08.08.2019 09:51
    +2

    Поздравляю, хайп по англоязчному интернету пошёл.


    https://arstechnica.com/gaming/2019/08/severe-local-0-day-escalation-exploit-found-in-steam-client-services/


  1. member0
    08.08.2019 10:06

    Обычно после таких вот публичных срачей раскрытий, компании таки идут на контакт, выплачивают положенное вознаграждение. И присылаются отписку, мол «Сотрудник Вася ошибся, просим прощения».

    Но не уверен, что Valve «нормальные», учитывая, сколько раз я читал на тематических форумах «I found XSS in Steam, reported via ticket and email, posted on their forums and found my steam account disabled» и т.д. в таком же ключе.

    Интересно, xi-tauw, локнут ли вам сам аккаунт. Если заблокируют — вообще отпетые.


    1. GDragon
      08.08.2019 12:01
      +2

      Wargaming например именно такие, благо моему знакомому хватило ума тестировать и репортить не с основного аккаунта.
      Он даже вознаграждения не просил, просто хотел что бы пофиксили.
      Проблема была в том что подменой отправляемых пакетов можно было вмешиваться в расчёт «рандомных» переменных, например задавая им всегда возможный максимум.
      Максимальная точность… пробитие… урон…
      «Вы вмешались в работу клиента игры, это не является ошибкой, ваш аккаунт заблокирован за нарушение пользовательского соглашения.»
      После такого фееричного ответа, баг был успешно продан и существовал в приватных читах почти 3 года.


  1. alexvangog
    08.08.2019 10:06

    Как защититься тем у кого уже стоит steam клиент? (удаление не предлагать т.к. это очевидный вариант) Быть может есть хоть какой-нибудь workaround?


    1. xi-tauw Автор
      08.08.2019 10:08

      Нужно ждать фикса от Valve (если он будет). Простых способов починить нет.


    1. amarao
      08.08.2019 10:42

      Переключайтесь на linux-версию стима. (Формально стим при этом не удаляется, а заменяется ОС).


    1. GDragon
      08.08.2019 12:02

      Поставить гостевую ось и в неё поставить стим?


      1. juray
        09.08.2019 04:11

        От пожирания ресурсов майнером это не спасет. Хотя от потери инфы из основной — вполне.


        1. 8street
          09.08.2019 09:02

          И от потери инфы не спасет. Спасет только виртуалка, хотя и там могут быть уязвимости для выполнения кода в основной ОС.


          1. sumanai
            09.08.2019 13:04

            Спасет только виртуалка

            Так ведь
            гостевую ось


            1. 8street
              09.08.2019 14:09

              Гостевая ось может находиться физически на одном винчестере в смежных разделах. Либо это какой-то узкоспециализированный термин?


              1. mayorovp
                09.08.2019 14:21

                Гостевая ось — это не ось, которой пользуются гости, а ось, запущенная на гостевой машине. Гостевая машина — это синоним слова "виртуалка".


              1. juray
                10.08.2019 19:25

                Да, «гостевая ОС» это термин — ОС, установленная на виртуальной машине, эмулируемой с помощью программы (эмулятора), запускаемой под хостовой ОС (host — «хозяин»).
                all-ht.ru/inf/vpc/p_0_1.html
                Отношение «хозяин-гость» между двумя ОС иерархично, а две операционки на разных разделах совершенно равны в правах (принцип «кто первый надел халат — тот и доктор» не может считаться нормальной системой разграничения прав).


  1. msfs11
    08.08.2019 10:58

    А можно простыми словами? Если у меня на компе есть не-админская учетка без пароля и установлен стим, то зайдя под этой учеткой, можно получить админские права?


    1. xi-tauw Автор
      08.08.2019 11:09
      +1

      Да, все так.


  1. LonerD
    08.08.2019 13:39

    Верите, что за скидку в 90% вы не получите скрытый майнер?

    Так это известный факт — в стиме сотни майнеров продаётся. И вовсе даже не скрытых. Никого сей факт не смущает — ни Valve, ни покупателей.


    1. mayorovp
      08.08.2019 14:33
      +1

      Так простой майнер и правда не проблема: его как поставили — так и удалить можно, весь вред — моральный.


      А разобранная тут штука потенциально позволяет сделать неудаляемый майнер-руткит. Вот это — уже проблема.


  1. akdes
    09.08.2019 15:43
    +1

    Поздравляю, Ваша информация/посыл пошла дальше…
    Немецкий IT-Blog


    1. xi-tauw Автор
      09.08.2019 15:56

      Спасибо. Я поглядывал на статьи, связанные с этой новостью. Это довольно интересно наблюдать — так, например, tproger.ru сделали новость на основе хабровской статьи, а anti-malware.ru перевели какую из западных (уже поправили, но артефакты все равно заметны).


      1. Gugic
        10.08.2019 06:13
        +1

        www.youtube.com/watch?v=HkVjLZBO7MY — вот и в уже почти сугубо развлекательных вещах упоминания пошли. Самый конец выпуска, с 5:50. (это новостной канал от одного из крупнейших западных техноблоггеров — www.youtube.com/user/LinusTechTips)


  1. ExplosiveZ
    10.08.2019 11:44
    +4

    1. GDragon
      10.08.2019 16:21
      +2

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


  1. vergil01
    10.08.2019 16:09

    Новости быстро расходятся и доходят даже до таких каналов. А что Steam? А ничего.
    www.youtube.com/watch?v=HkVjLZBO7MY


  1. Nexon
    10.08.2019 16:32

    Спасибо за проделанную работу. В конечном счете Valve отреагировали на это, пусть хоть это может иметь последствия.