Что случилось?


Исследователи Google опубликовали исследование «Reading privileged memory with a side-channel», в котором они описывают найденную ими аппаратную уязвимость, которая затрагивает практически все современные и устаревшие процессоры вне зависимости от операционной системы. Строго говоря, уязвимостей целых две. Одной подвержены многие процессоры Intel (на них проводилось исследование). AMD с ARM также уязвимы, но атаку реализовать сложнее.

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

Пожалуй, самое вероятное и неприятное применение на данный момент — получение дампа системной памяти во время выполнения JavaScript.

Другой интересный вариант — эскалация прав чтения памяти из виртуальной машины. Как вам VPS, который ворует данные из других машин хостера?

Эксплуатация уязвимости не оставляет следов.

Насколько это серьезно?


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

Как защититься?


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

Прекрасные новости, это всё?


Не все. Судя по тестам, патчи сильно повлияют на производительность существующих систем. Тесты показывают падение на 10-30% в некоторых задачах. Да-да, вы все правильно поняли, ваш мак может навсегда стать медленнее, а AWS заметно дороже.

Дополнительные данные



Будьте здоровы!

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


  1. Suvitruf
    04.01.2018 08:05

    Тесты показывают падение на 10-30%.
    А, к примеру, эти тесты куда более оптимистичны.


    1. cro Автор
      04.01.2018 08:13

      Данные разнятся от задачи к задаче.


    1. amarao
      04.01.2018 16:11
      +1

      syscall'ы выполняются примерно в полтора-два раза медленнее. Если считаешь математику — без изменений, если постоянно делаешь IO — полуторакратная деградация.


      1. willyd
        04.01.2018 17:01

        А есть результаты тестов?
        Ну или какой-то тест для linux. Я бы сейчас у себя проверил.


        1. netch80
          04.01.2018 19:47

          Ну вот Phoronix померял. Думаю, завтра уже будет полдесятка таких тестов.


        1. amarao
          04.01.2018 22:17

          А у вас уже фикс приехал? Я вот в убунте/дебиане пока не вижу. А тест — просто любое интенсивное IO. Например, fio'шный бенчмарк быстрого диска (nvme/ssd), или приложение, шлющее много мелких сетевых пакетов.



          1. willyd
            04.01.2018 22:34

            Да, на федоре ночью зарелизили.
            sysbench провисает в одном тесте на 30%. Визуально, пока все по старому, больше на io-задачах зависаю, типа клонирования образа.


            1. amarao
              04.01.2018 22:42

              Бедные файловые сервера…


              1. willyd
                04.01.2018 23:09

                Эм… я вообще-то про свой личный ноут писал, если что. И он у меня и до патча подвисал на тяжелых io-задачах.
                Рабочие сервера обновлять буду не я. Я только проверил, чтобы все работало после апдейта.


              1. NiTr0_ua
                04.01.2018 23:52

                файлсерверам (если это выделенный сервер, без стороннего кода и виртуализации) пофиг. на них просто не ставится патч.


                1. DistortNeo
                  05.01.2018 00:19

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


                  1. NiTr0_ua
                    05.01.2018 00:27

                    облачному файлохранилищу (если оно, опять-таки, на выделенном сервере) тоже пофиг.

                    а делать файлохранилище в виртуалке — печаль по просадкам i/o. никто вменяемый таким не занимается.


                    1. navion
                      05.01.2018 00:56

                      а делать файлохранилище в виртуалке — печаль по просадкам i/o. никто вменяемый таким не занимается.

                      Справедливо только для KVM (за вычетом AHV), так как с VMware или Hyper-V просадка на уровне погрешности.


                      1. bfuvx
                        05.01.2018 03:15

                        Справедливо только для KVM

                        И какой уровень деградации под этим понимается в абсолютной и относительной велечине? +19 us на io, например, это много? А какой уровень тогда у VMware или Hyper-V?


                        1. navion
                          05.01.2018 23:02

                          Циферки потерялись, но разница по иопсам была в районе 20% при одинаковой latency.
                          Это поправимо, но неизвестно когда что-то подобное включат в обычном KVM.


      1. johnnymmc
        05.01.2018 07:25

        Вот бы было круто, если бы оставили возможность включать/выключать этот фикс когда хочешь — чтобы можно было отключиться от сети и быстренько прогнать IO-intense опеации (например переписать терабайтик данных с одного харда на другой, прогнать вычисления с мемоизацией на диск через shelve или обработать большую HDF5-таблицу через pytables), потом включить обратно и жить спокойно…


        1. amarao
          05.01.2018 11:34
          +1

          В linux это реализовано. lwn.net/Articles/741878 (статья была написана до объявления про баг).

          опция nopti в параметрах ядра при загрузке определяет будет ли использоваться изоляция или нет.



  1. MooNDeaR
    04.01.2018 08:28

    geektimes.ru/post/297003

    Разве это не та же новость?


    1. cro Автор
      04.01.2018 09:17

      Та же. Был напуган / редко хожу на гиктаймс.


      1. FlamyXD
        04.01.2018 11:25
        +3

        Да у вас, вроде как, новая информация.


  1. VioletGiraffe
    04.01.2018 09:14

    Как-то вообще не объясняется серьёзность проблемы. Сдампить чужую память — это одно, а вот найти в ней что-то полезное — совсем другое.
    Интересно, можно ли на Windows отказаться от изменений, вызывающих замедление работы. На Linux, вроде бы, можно будет.


    1. arsenshakirzyanov
      04.01.2018 09:24

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


    1. CryptoPirate
      04.01.2018 11:01

      Пароли и ключи шифрования в памяти найти относительно просто.
      Пароль можно просто подбирать из найденного в памяти. У ключей энтропия выше чем у остальных данных обычно, если при этом мониторить трафик, то можно проверять гипотетические ключи.
      С таким объяснением достаточно серьёзно проблема выглядит?


      1. VioletGiraffe
        04.01.2018 11:04

        И это всё сможет делать javascript в браузере? Да, я понимаю, что если скомпрометировать популярный сайт, на который зайдёт 100 миллионов пользователей, то у кого-то что-то удастся найти, но в целом — нет, выглядит не очень серьёзно.


        1. CryptoPirate
          04.01.2018 11:13
          +5

          Из статьи про SPECTRE:

          Attacks using JavaScript. In addition to violating process isolation oundaries using native code, Spectre attacks can also be used to violate browser sandboxing, by ounting them via portable JavaScript code. We wrote a JavaScript program that successfully reads data from the address space of the browser process running it.


          В части номер 4.3 есть больше объяснений.

          Не нужно компрометировать популярный сайт, я прямо сейчас на своём сайте пишу яваскрипт (и даю на него ссылку) который из брауера будет таскать всё что может. У вас несколько вкладок открыто? Даже может быть несколько програм (одна из них — менеджер паролей?), так?
          А на ссылку, которую я дал, вы нажали? :-)


          1. kekekeks
            04.01.2018 11:52
            -4

            Вообще в том же хроме JS вкладки крутится в её собственном процессе. Отдельном.


            1. CryptoPirate
              04.01.2018 12:31

              Дело в том, что уже не в процессах дело. Атака Meltdown позволяет добыть данные из ядра и из других процессов (с некоторыми мелкими оговорками). Без разницы где конкретно данные лежат, в отдельном процессе или в том же самом.


              1. VEG
                04.01.2018 12:37
                +1

                Meltdown и Spectre — разные уязвимости. Возможность что-то сделать из JS заявлена только для Spectre (и то, судя по всему, целенаправленно получить какие-то полезные данные именно с использованием JS там практически нереально). Для Meltdown такого не заявлено.


              1. kekekeks
                04.01.2018 12:41
                +4

                Она позволяет добыть данные из ядра при условии возможности дёргать нужные сисколы и выполнять нужные инструкции CPU в контролируемых условиях. Из JS этого сделать нельзя, но можно сформировать код, который будет через другую уязвимость из перечисленных читать память своего процесса. Разберитесь в механизме работы, а потом делайте заявления.


                1. alex6636
                  05.01.2018 19:57

                  Может надо просто написать на js новый Фреймворк и тогда будет можно?


          1. VioletGiraffe
            04.01.2018 13:45

            Нужно компрометировать популярный сайт, потому что у вашего сайта посещаемость будет несколько ниже. Это понятно, что можно читать память любого процесса в ОС.


            1. Voenniy
              04.01.2018 19:41
              +2

              При чем тут посещаемость?
              Атака может быть на конкретную группу лиц с использование сайта с нулевой посещаемостью (созданного как раз только для этой атаки).


    1. damogingcidanrana
      04.01.2018 22:15
      -1

      TypeError


  1. chicagoist
    04.01.2018 09:34

    Старик Столман был всё же прав.


    1. Dimchansky
      04.01.2018 09:55

      Напомните, в чем именно.


      1. olartamonov
        04.01.2018 14:48
        -1

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

        Был прав.

        Был.

        Года так до 2014-го.


        1. maxzhurkin
          04.01.2018 19:06
          +3

          Во-первых, Столман говорил о том, что проприетарщина небезопасна. Это не то же самое, что говорить, что опенсурс безопасен. А во-вторых, есть несколько примеров многолетних уязвимостей в опенсурсе


        1. VioletGiraffe
          04.01.2018 22:26

          Вы о HeartBleed?


          1. olartamonov
            04.01.2018 23:19
            +2

            Да, как наиболее ярком примере.

            Разговоры о сранвительной безопасности опенсорса и коммерческой разработки вообще бессмысленны — практика показывает, что и то, и другое может иметь дыру с амбарные ворота размером, которую могут не замечать месяцами, а то и годами. Впрочем, всёрьез слушать Столлмана, особенно когда он опять забывает таблетки принять, тоже не очень осмысленное действие.

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


            1. Jamdaze
              05.01.2018 15:23

              Вы говорите о малосерийном производстве, когда цена еденицы продукции высока, причём тут опенсорс.


        1. RootHub
          05.01.2018 02:36

          А как же bug 12309?


          1. F0iL
            05.01.2018 08:00

            12309 все-таки не является багом, связанным с безопасностью (если не рассматривать совпадение обстоятельств приводящее к DoS), да и проявляется в основном на десктопах.


          1. olartamonov
            05.01.2018 12:30

            Про него хоть публично знали.


    1. poznawatel
      04.01.2018 10:26
      +3

      Да, Столман-гений (я абсолютно серьёзно). А процессоростроители заигрались с бекдорами и неустойчивыми архитектурами. Я надеялся, что хотя бы на APM/AMD сбежать получится, но некуда бежать, Карл! Получается, даже Байкал дырявый, остался только Эльбрус? На Байкал у моей фирмы денег ещё хватит, а на Эльбрус — не наскребу :(


      1. EvilBeaver
        04.01.2018 11:06
        +1

        А Байкал почему дырявый?


        1. poznawatel
          04.01.2018 12:24

          Он на лицензированном ARM-е сделан. Кстати, к вопросу «зачем изобретать велосипед своей архитектуры?»


          1. olartamonov
            04.01.2018 14:49

            Вообще-то на MIPS P5600.


            1. poznawatel
              04.01.2018 15:04

              Посмотрел — действительно, рано я запаниковал, Байкалу Т1 пока можно доверять. Тяжело это, когда в ИТ не работа, а ходьба по трясине, нервы ни к чёрту становятся. Спасибо, что поправили меня.


              1. LeonidY
                04.01.2018 23:45

                На Байкале-Т1 все эти баги не работают с гарантией если первые 128МБ памяти (там только 128МБ из первых 512МБ распределены под память) НЕ используются для user приложений. А к user страницам доступ либо через EVA, либо через HIGHMEM. В текущем ядре используется HIGHMEM, осталось только запретить рапсределять первые 128МБ под страницы user.

                Такой запрет, кстати, ускорит работу с DMA, так как не нужен будет второй cache flush.


            1. poznawatel
              04.01.2018 18:00
              +1

              Разобрался.
              Есть Байкал-Т1 MIPS P5600 www.baikalelectronics.ru/products/T1
              а есть Байкал-М, он на ARMv8-A www.baikalelectronics.ru/products/M
              Второй для меня, естественно, теперь умер.


          1. Infra_HDC
            04.01.2018 20:25

            в тырнете есть кучи проектов процов, например, на основе ПЛИС, только кто для них будет оськи адаптировать… есть сайты, где ссылки на такие проекты собраны десятками, если не сотнями, у каждого проца своя разрядность, программная модель, аппаратная архитектура и система команд.


            1. kahi4
              04.01.2018 22:04
              +1

              opencores.org и там не все так плохо. Многие ядра пытаются поддерживать wishbone и быть хоть с чем—то совместимым. Вон, OpenRISC даже в космосе побывал и для него есть полноценный тулчеин, даже сборка линукса, а он вроде как даже не самый продвинутый среди открытых архитектур. Проблема в другом — если говорить про асик— нет гарантий, что на заводе ничего в него не дошьют, да и это очень дорого. Если говорить про плис — либо чертовски медленно, либо чертовски дорого (как правило, и то, и другое, если говорить про построение архитектуры общего назначения на плис), да ещё и не на каждую плисину влезет полноценная soc. Но я давно мечтаю собрать на основе маленькой платы с плис типа такой какой-нибудь openphone с чертежами для 3D принтера


      1. dmpalets70
        04.01.2018 11:37

        SPARC наше всё :)


        1. andy_p
          04.01.2018 11:54

          А разве SPARC не всё?


          1. equand
            04.01.2018 12:39

            RISC наше всё :)


            1. svanichkin
              04.01.2018 12:48
              +1

              ARM тоже уязвимы окзались


              1. kalininmr
                04.01.2018 13:27

                вроде бы не все. только относительно свежие.
                сильно древние неуязвимы


                1. beeruser
                  04.01.2018 22:52

                  Cortex-A55 свежее некуда. Проблем нет. В то время как древний Cortex-A8 уязвим.


                1. SantaCluster
                  05.01.2018 19:31

                  как Неуловимый Джо :)


                  1. khim
                    05.01.2018 22:04

                    Нет, тут другая история. ARM только недавно занялся спекулятивным исполнением, которое на x86 появилось в Pentium Pro в 20 лет назад.


          1. dmpalets70
            04.01.2018 22:50

            как говорил Егор Гайдар: «Отнюдь»… нынешний М8 только вышел и ещё лет 3-5 будет в теме, а там и ещё что нибудь появится, плюс Фуджи свой 12-й выкатили тоже недавно, так что мои заказчики вполне себе интересуются возможностями SPARC/Solaris, поддержка официально до 2030+


            1. SamsonovAnton
              05.01.2018 19:29

              Ещё МЦСТ грозится в обозримом будущем родить R2000 и иже с ним.


      1. Daniyar94
        04.01.2018 13:10

        Что насчёт IBM Power?


        1. cro Автор
          04.01.2018 14:07
          +1

          Additional exploits for other architectures are also known to exist. These include IBM System Z, POWER8 (Big Endian and Little Endian), and POWER9 (Little Endian).

          access.redhat.com/security/vulnerabilities/speculativeexecution


        1. olartamonov
          04.01.2018 14:51
          +1

          Есть такой анекдот про поручика Ржевского и оральный секс.

          В общем, если у процессора кэш и предсказание ветвлений есть, то Spectre ваш.


          1. khim
            04.01.2018 14:59

            В общем, если у процессора кэш и предсказание ветвлений есть, то Spectre ваш.
            Спекулятивное исполнение и точный таймер нужны…


            1. Vitalley
              06.01.2018 18:48

              А какой таймер используется? мультимедийный? а если его отключить, вон в Win XP SP2 на него драйвера вообще нет, в SP3 драйвер есть, но он не используется.


              1. khim
                06.01.2018 19:16

                Обычно пользуется RDTSC. Но при наличии нескольких ядер можно и просто счётчиком обойтись…


          1. RaTT
            04.01.2018 17:39

            Напомните, плз)


            1. olartamonov
              04.01.2018 17:49
              +9

              — Господин поручик — вы, говорят, большой специалист в этих делах. Скажите, вон та дама в рот берет?
              — Которая? — переспрашивает Ржевский.
              — Вон та, в желтом платье.
              — Ну, я со спины сказать не могу, — пожимает плечами поручик. В этот момент дама поворачивается, поручик Ржевский пристально смотрит ей в лицо и говорит:
              — Эта — берет.
              Корнет подходит к даме, они о чем-то беседуют и удаляются. Через некоторое время корнет возвращается, довольный:
              — Действительно, берет! Но как вы определили, поручик?!
              — Послушайте, корнет, — веско произносит поручик Ржевский, — Рот есть — значит берёт!

              Примерно та же история с процессорами и Spectre.


              1. LeonidY
                04.01.2018 23:51

                > Примерно та же история с процессорами и Spectre.

                Если права доступа к страницам ядра проверяются ДО запуска подгрузки в кэш, то остается только eBPF, который сам по себе бяка (JIT в ядре!). К тому же он кажется требует привелегий. Гуглы вроде не нашли в текущем коде ядра Linux подходящих последовательностей помимо возможности сформировать их через eBPF.


                1. olartamonov
                  05.01.2018 00:33

                  Тут два момента.

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

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

                  Так что eBPF просто радикально облегчает задачу, но не более того.


                  1. LeonidY
                    05.01.2018 01:25

                    DLL? С учетом того, что их пишет кто попало… там и просто так можно такой код зафигачить, что никакого meltdown/spectre наверно и не надо.


                    1. encyclopedist
                      05.01.2018 02:27

                      Имеется ввиду, что системные и широкораспространённые DLL уже содержат нужные последовательности инструкций. Злоумышленнику даже не нужно свой код на вашу машину тащить, всё нужное там уже есть.


                      1. LeonidY
                        05.01.2018 02:30

                        Ну тады ой…


      1. Kolbasyatin
        05.01.2018 03:15

        и вдруг в этот момент шутки про Эльбрус уже не так смешны. И получается что оборонка в РФ, где используется Эльбрус работает, а остальной мир — нет (конечно я про фантастический рассказ).


        1. sova
          05.01.2018 06:21

          о том какие косяки есть в оборонке и Эльбрусе просто меньше народу знает также как и меньше народу вообще их там ищет. Так что шутки актуальны


    1. OnYourLips
      04.01.2018 12:24
      +1

      Конечно прав.
      Но недостаточно быть правым, надо и альтернативу предлагать, причем не абы какую, а экономически жизнеспособную.

      Более того, Столлман сам использует закрытое железо: Thinkpad T400s.
      И процессор у него Core 2 Duo SP9400, который тоже может быть подвержен этой уязвимости.


      1. si1n3rd
        04.01.2018 13:43

        Верно, Столлман критиковал Intel за ME, которого в его процессоре нет. Об этой уязвимости он не говорил, но и его процессор попал под раздачу.


        1. poznawatel
          04.01.2018 16:54

          Столлман не пользуется JS.


          1. si1n3rd
            04.01.2018 18:01

            Да он и браузером толком не пользуется. У него вообще там какой-то странный выход в Интернет.


      1. potan
        04.01.2018 15:38

        Помню он заявлял, что использует китайский ноутбук на MIPS с открытым BIOS.


        1. dartraiden
          04.01.2018 15:46

          Проапгрейдился. По ссылке же написано:

          Before that, I used the Lemote Yeeloong for several years.


  1. UksusoFF
    04.01.2018 09:54

    А где-то есть список подверженных этому CPU?


    1. blind_oracle
      04.01.2018 09:58
      +5

      Все интел, выпущенные за последние 10 лет :)


      1. qwert_ukg
        04.01.2018 11:14

        Кроме Атомов до 2013 и Итаниумов


        1. asdoc
          04.01.2018 12:16

          Т.е. если машина старше 10 лет, то 100% проблемы нет? И если АМD до 13-го года?


          1. Jeditobe
            04.01.2018 13:40

            На АМД нет Мелтдауна, только Спектра


            1. perfect_genius
              06.01.2018 07:12

              Вам теперь тоже придётся реализовать защиту?


              1. Jeditobe
                06.01.2018 15:29

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

                Еще важно отметить, что в РеактОС существующие средства доставки и инжекции вредоносного ПО на данный момент не способны выполнить свою функцию.

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


          1. encyclopedist
            05.01.2018 02:32

            Там пишут, что предположительно вообще все когда либо выпущенные 86 процессоры Интел с спекулятивным исполнением. А это с 95 года. Просто в стоей работе авторы продемонстрировали уязвимость на сравнительно новых процессорах.


      1. UksusoFF
        04.01.2018 13:02

        Еще бы помнить когда он выпущен.


        1. blind_oracle
          04.01.2018 13:51
          +1

          ark.intel.com поможет.

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

          Единственный выход, который мне видится — запускать PoC эксплоит (найти бы его еще) на каждом из них и смотреть результат.


      1. willyd
        04.01.2018 14:29

        Все интел 1995 года (кроме атомов до 2013 и итаниумов). meltdownattack.com


    1. BubaVV
      04.01.2018 12:11
      +29

      Вот например на П4 дыру вообще видно невооруженным взглядом:
      image


      1. claygod
        04.01.2018 13:34
        +1

        Так вот почему Интел процессоры пытался в картриджи прятать…

        image


      1. blind_oracle
        04.01.2018 13:52

        Это у вас бракованный, сдайте по месту покупки.


        1. BubaVV
          04.01.2018 13:53
          +1

          Учебный


      1. olartamonov
        04.01.2018 14:33

        Это старая, для неё давно уже патч есть.


      1. MacIn
        05.01.2018 00:11
        +1

        Для того, чтобы произвести запись в write-protected защищенную область, отверстие надо заклеить изолентой?


    1. Darknet
      04.01.2018 13:00
      +1

      Red Hat пишет о существующих эксплойтах для IBM System Z, POWER8 и POWER9.


    1. un1c0de
      05.01.2018 00:08

      Вот единственная конкретика, которую удалось найти на сайте intel.

      Which Intel-based platforms are affected by or vulnerable to the issue?
      The following Intel-based platforms are impacted by this issue. Intel may modify this list at a later time.

      Please check with your system vendor or equipment manufacturer for more information regarding your system.

      Intel® Core™ i3 processor (45nm and 32nm)
      Intel® Core™ i5 processor (45nm and 32nm)
      Intel® Core™ i7 processor (45nm and 32nm)
      Intel® Core™ M processor family (45nm and 32nm)
      2nd generation Intel® Core™ processors
      3rd generation Intel® Core™ processors
      4th generation Intel® Core™ processors
      5th generation Intel® Core™ processors
      6th generation Intel® Core™ processors
      7th generation Intel® Core™ processors
      8th generation Intel® Core™ processors
      Intel® Core™ X-series Processor Family for Intel® X99 platforms
      Intel® Core™ X-series Processor Family for Intel® X299 platforms
      Intel® Xeon® processor 3400 series
      Intel® Xeon® processor 3600 series
      Intel® Xeon® processor 5500 series
      Intel® Xeon® processor 5600 series
      Intel® Xeon® processor 6500 series
      Intel® Xeon® processor 7500 series
      Intel® Xeon® Processor E3 Family
      Intel® Xeon® Processor E3 v2 Family
      Intel® Xeon® Processor E3 v3 Family
      Intel® Xeon® Processor E3 v4 Family
      Intel® Xeon® Processor E3 v5 Family
      Intel® Xeon® Processor E3 v6 Family
      Intel® Xeon® Processor E5 Family
      Intel® Xeon® Processor E5 v2 Family
      Intel® Xeon® Processor E5 v3 Family
      Intel® Xeon® Processor E5 v4 Family
      Intel® Xeon® Processor E7 Family
      Intel® Xeon® Processor E7 v2 Family
      Intel® Xeon® Processor E7 v3 Family
      Intel® Xeon® Processor E7 v4 Family
      Intel® Xeon® Processor Scalable Family
      Intel® Xeon Phi™ Processor 3200, 5200, 7200 Series
      Intel Atom® Processor C Series
      Intel Atom® Processor E Series
      Intel Atom® Processor A Series
      Intel Atom® Processor x3 Series
      Intel Atom® Processor Z Series
      Intel® Celeron® Processor J Series
      Intel® Celeron® Processor N Series
      Intel® Pentium® Processor J Series
      Intel® Pentium® Processor N Series


      1. denis-isaev
        05.01.2018 02:13

        Странно, у меня Skylake (14нм) и уязвимость есть, судя по тесту вот этой штукой: gist.github.com/ErikAugust/724d4a969fb2c6ae1bbd7b2a9e3d4bb6


        1. Varim
          05.01.2018 03:08

          1. denis-isaev
            05.01.2018 03:40

            Точняк, только я запутался тогда, а чем отличаются в списке выше пункты:
            Intel® Core™ i5 processor (45nm and 32nm)
            2nd generation Intel® Core™ processors


      1. claygod
        05.01.2018 22:03

        Пока из не подверженных риску я вижу только Атомы серии D (D2700, D2550, D2500), есть что-то ещё?


  1. Idot
    04.01.2018 10:11
    +4

    лучше отключите JavaScript даже при посещении безопасных сайтов

    Нормально пользоваться Хаброй с отключённым JS — возможно?
    (не говоря уже об обычных сайтах сплошь увешанных js)


    1. ZaitsXL
      04.01.2018 11:01
      -7

      Тут уже вы сами решайте что вам надо — рюшечки на сайтах или безопасность


      1. Mingun
        04.01.2018 11:06
        +12

        Проблема в том, что js — уже давно далеко не «рюшечки на сайтах», а основной функциональный элемент, отключение которого смерти подобно (этого самого сайта).


        1. ZaitsXL
          04.01.2018 11:30
          -5

          Опять же — сами решайте что вам важнее


          1. Akuma
            04.01.2018 13:51
            +1

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


            1. SADKO
              04.01.2018 21:10

              А чего все докопались до JS? Его то как раз таки можно быстренько изпоганитьправить :-)
              Что видимо и произойдёт в ближайшие дни.


              1. Caravus
                04.01.2018 21:16
                -2

                Ох, я очень надеюсь что эта ситуация выдаст пинка проблеме с JS и его наконец выпилят и заменят на что-то современное, ах мечты-мечты…


                1. VEG
                  04.01.2018 21:20
                  +1

                  Проблема же не в JS.


                  1. Caravus
                    04.01.2018 21:21

                    Это в данной ситуации проблема не с JS, а я говорю о JS в целом…


                  1. Massacre
                    05.01.2018 05:59

                    Так-то да, проблема в принципе в коде, который может исполняться просто от открытия веб-страницы, но JS — самое распространённое зло здесь (менее распространённые — Flash, Java, к примеру).

                    А без JS хабр вполне возможен, если напишут отдельную версию — сделать простую форму для написания статьи/комментариев.


    1. poznawatel
      04.01.2018 12:17

      Вроде, работает.


    1. FoxNULL
      04.01.2018 12:36
      +1

      Для хрома Google вроде как рекомендует включить chrome://flags/#enable-site-per-process если у вас версия ниже 64


      1. equand
        04.01.2018 12:41
        -1

        И как это спасет?
        Это как для защиты от ядерной бомбы используйте бронежилет.


        1. VEG
          04.01.2018 12:45
          +1

          Спасёт от теоретической возможности утечки данных чужих сайтов с использованием атаки Spectre из JS на каком-нить сайте. Разве что сам у себя сайт сможет что-то подглядеть случайно :)


      1. tandzan
        04.01.2018 13:01

        Chrome втихаря ставит свой software reporter tool, который начинает шариться по всем дискам без всяких уязвимостей.


        1. qw1
          04.01.2018 17:39
          +1

          Гугл не был бы Гуглом, если бы не индексировал всё, до чего может дотянуться.


        1. Massacre
          05.01.2018 06:05

          Ещё и скачивает втихаря, если не заблокирована запись в профиль\SwReporter средствами системы.


        1. Idot
          05.01.2018 12:18
          +1

          А что с клонами Хрома? Вивальди и Новой Оперой?


          1. Massacre
            06.01.2018 03:41

            SwReporter — фишка конкретно гуглохрома. Но другие вендоры вполне могут вставить свои бэкдоры…


    1. Armleo
      05.01.2018 00:19

      Интересно, что будет если отключить WebWorker-ы?


  1. olegator99
    04.01.2018 10:35
    -1

    Интрига дня/недели: подвержены ли процессоры Apple?


    1. Tippy-Tip
      04.01.2018 10:48
      +5

      Разве Apple вернулась на Motorolla в своих дескотпах/ноутбуках?


      1. olegator99
        04.01.2018 10:53
        +3

        Речь про iPhone/iPad — Apple для них пилит свои ARMv8 -совместимые процессоры. У оригинальных ARM Cortex-Axx самой опасной уязвимости (чтение памяти ядра/других процесов) подвержены только Cortex-A75.


        Информации об наличии/отсутствии проблем в процессорах Apple-A пока нет. Ждем!


    1. progressor7
      04.01.2018 10:53
      +1

      У Apple те же самые интеловские процессоры — поэтому да, конечно.


      1. olegator99
        04.01.2018 10:54
        +2

        1. progressor7
          04.01.2018 13:12

          Одна из атак (Spectre) работает на ARMах тоже, но я не знаю про те конкретные которые iPhone/iPad.


          1. olegator99
            04.01.2018 14:22

            Spectre с большой вероятностью работает на всех ipad/iphone. Практически все современные ARM ядра ей подвержены.
            Meltdown подвержены только ядра ARM Cortex-A75 (на них еще нет выпущенных процессоров)
            Однако, Apple не использует готовые ядра Cortex, а разрабатывает ядра сама. На текущий момент нет информации об атаке Meltdown на ARM ядра Apple. Вот ждемс информацию.


    1. ZaitsXL
      05.01.2018 00:41

      думается Pentium MMX и прочие древности наверное не подвержены, но что нам с того?


    1. WaveCut
      05.01.2018 10:33

      Apple уже выпустила заявление, отвечающее «да».


      1. krabdb
        05.01.2018 19:56

        И оценка снижения производительности от использования заплаток очень приятна. Практически в пределах погрешности.


  1. VEG
    04.01.2018 10:37
    +5

    Пожалуй, самое вероятное и неприятное применение на данный момент — получение дампа системной памяти во время выполнения JavaScript.
    Больше похоже на заявление от представителей жёлтой прессы. Низкоуровневые операции (типа получения данных по произвольному указателю), которые скорее всего будут нужны для эксплуатации уязвимости, из JS недоступны. В общем, или покажите рабочий пруф, или не распространяйте сомнительную информацию и не нагнетайте бесполезную панику.


    1. olegator99
      04.01.2018 10:48
      +1

      В первоисточнике есть JS сниппет, который читает память процесса браузера https://spectreattack.com/spectre.pdf, эта ссылка есть в статье...


      1. VEG
        04.01.2018 11:43
        +3

        Во-первых, рабочего кода там нет. Там есть только вот эти 5 строк, которые лишь маленький кусочек необходимого кода (содержимое остального кода там описано словами и очень примерно):

        if (index < simpleByteArray.length) {
            index = simpleByteArray[index | 0];
            index = (((index * TABLE1_STRIDE)|0) & (TABLE1_BYTES-1))|0;
            localJunk ^= probeTable[index|0]|0;
        }
        Во-вторых, чтение памяти своего процесса (где живёт вкладка) и получение дампа всей системной памяти — разные вещи. В-третьих, не заявлено, что можно целенаправленно прочитать всю память своего процесса из JS. Как я вижу, с использованием этой методики максимум могут быть сделаны выводы о содержимом каких-то случайных блоков памяти своего процесса, в зависимости от того куда при выполнении JS была физически помещена переменная массива.


        1. CryptoPirate
          04.01.2018 11:49
          +5

          Полного рабочего кода там быть и не может по определению, у white hat исследователей не принято эксплоиты такой величины публиковать чтобы каждый дурак мог копировать и использовать.


          1. VEG
            05.01.2018 09:07

            Вчитался в доку Spectre. Рабочего кода на JS там нет, но описания достаточно, чтобы его повторить. Тем более, что в конце дока есть рабочий код на C, демонстрирующий основную идею.

            Итого у нас есть возможность узнавать содержимое байтиков за пределами выделенного JS-массива. Его физический адрес мы не знаем, но изучив как JS-движок хранит переменные в куче, возможно где-то рядом с массивом мы сможем найти какой-нибудь указатель, который подскажет где мы вообще физически находимся. С этим, возможно, дальше будет немного проще плясать.

            Но вообще активная эксплуатация всё ещё выглядит сомнительной. Скорость «чтения» будет очень маленькой. Как я понимаю, даже пример на C читает где-то 1000-2000 байт в секунду. Всё адресное пространство не прочитаешь с такой скоростью за разумное время, явно нужно точно знать куда смотреть относительно того куда в памяти попал этот JS-массив.

            Плюс на 64-битных системах у нас вырисовывается ограничение, что мы можем «смотреть» только в окошко размером в 4 гигабайта, поскольку инты в JS 32-битные. Таким образом, использование Meltdown из браузера также сильно осложнено — весьма вероятно, что до интересных системных структур мы просто не сможем дотянуться, даже если сможем прикинуть где они относительно нашего массива находятся.

            Не в курсе как там в JS, а для выполнения WebAssembly на 64-разрядных системах слышал что намеренно резервируется адресное пространство размером в 4 гигабайта, потому что указатели внутри WebAssembly 32-разрядные, и уверенность что они не могут выйти за пределы своего окошка позволяет делать меньше проверок во время выполнения.


        1. olegator99
          04.01.2018 11:59
          +1

          Согласен, сейчас пример кода на уровне "proof-of-concept", и читать всю системную память он не сможет by design/


          Однако, в голову приходит такое практическое применение дырки — найти в памяти куки (в памяти сандбокса вполне могут остаться куки от ранее посещенных во вкладке страниц), и утащить себе валидные session_id/token-ы от чужих сервисов.
          Конечно, задача не тривиальная, но увы, кажется решаемая.


        1. khim
          04.01.2018 15:08

          Во-вторых, чтение памяти своего процесса (где живёт вкладка) и получение дампа всей системной памяти — разные вещи.
          После установки вот того самого патча, который обещает всё замедлить на 30% — да.

          Сейчас операционки устроены так, что в них сразу вся физическая памяти размапирована в таблицах всех процессов — просто к ней нет доступа из-за соотвествующих прав на память. Но спекулятивное исполнение на это плюёт!

          То есть любой процесс может потихоньку-полегоньку прочитать всю память всех процессов на всей системе.


          1. DistortNeo
            04.01.2018 16:06

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


            1. interprise
              04.01.2018 16:08

              Это актуально, только для 32 битных операционных систем. Для x64 немного сложней и как я понимаю это приводит к тому, что можно читать и соседний процесс.


            1. MooNDeaR
              04.01.2018 16:45

              В 64х битных Linux-ах, например, вся память смаплена в ядро, соотвтетсвенно имея доступ к памяти ядра, можно иметь доступ к любой странице


              1. khim
                04.01.2018 17:56
                +1

                В 32-битных также было долгое время. Когда память перевалила за 950MB — начались пляски с бубнами и замедлением. В 64-битных системах от них отказались.


                1. MacIn
                  04.01.2018 19:19

                  Когда память перевалила за 950MB

                  Что вы имеете в виду?


                  1. khim
                    04.01.2018 23:40

                    На «старых» операционных системах (Windows 9X, Linux 1.x, NT не помню до какой версии) адресное пространство делилось 3GB/1GB и в том 1GB, которое доставалось ядро ко всему прочему жил ещё и полный линейным маппинг физической памяти. Это никого не напрягало, так как тогда 64MB — было огромным обьёмом, а об 1GB можно было только мечтать. Реально система могла стартовать где-то с 950MB с простенькой видеокартой и с 750-800MB если использовался продвинутый ускоритель.

                    Потом объёмы памяти росли, 64бита всё никак не приходили и пришлось пристраивать костыли… когда 64бита, наконец, пришли, от костылей, разумеется, отказались.


                    1. MacIn
                      05.01.2018 00:09

                      Ясно, спасибо. Я теперь вспомнил про старую технику чтения физической памяти, которая работала в старых NT как раз из-за этой особенности.


            1. khim
              04.01.2018 17:59

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

              Так просто удобнее и быстрее. На 32-битных системах с более, чем гигабайтом памяти, приходится плясать. На 32-битных системах с 950MB памяти (и менее), можно «не париться»… вернее «можно было».


          1. MacIn
            04.01.2018 19:17

            Это происходит только в плоской модели? В случае сегментации, насколько я понимаю, такой трюк не прокатит.


            1. mayorovp
              04.01.2018 21:26
              +2

              В long mode отказались же от сегментации.


              1. MacIn
                04.01.2018 22:16

                Я знаю. И спрашиваю конкретно про модель с сегментацией. Ведь если для чтения ядерной памяти надо загружать ядерный же селектор из GDT с DPL=0, что выкинет исключение при RPL=3, то до спекулятивного доступа к «запрещенной» ячейки памяти черед не дойдет. Верно?


                1. qw1
                  04.01.2018 22:30

                  Игнорирует ли чтение при спекулятивном выполнении ограничение на размер сегмента? Вероятно, игнорирует, раз игнорирует защиту страниц.

                  Практическая ценность этого вопроса какая? В известных мне ОС не делают разделение kernel и user с помощью непересекающихся сегментов. Проверять не на чем.


                  1. MacIn
                    04.01.2018 22:32

                    Игнорирует ли чтение при спекулятивном выполнении ограничение на размер сегмента?

                    Сегмент может быть расположен «вверху», а данные ядра — внизу. Теоретически. Не все АП может быть смаппировано. Ну, допустим, не проверяет, но там сверху — просто дыра, не мапированная на физическую память.

                    Практическая ценность этого вопроса какая? В известных мне ОС не делают разделение kernel и user с помощью непересекающихся сегментов. Проверять не на чем.

                    Думаю о своей хоббийной ОС, где такое разделение есть.
                    Я бы проверил из любопытства, но пока еще детально не понял механизм эксплуатации, только косвенно по вашим комментариям про array1 и данные кеша, буду читать техническое описание уязвимости позже.


                    1. qw1
                      04.01.2018 22:52

                      Сегмент может быть расположен «вверху», а данные ядра — внизу. Теоретически.
                      In 64-bit mode, segmentation is generally (but not completely) disabled, creating a flat 64-bit linear-address space. The processor treats the segment base of CS, DS, ES, SS as zero, creating a linear address that is equal to the effective address.
                      © System Programming Guide, Chapter 3.2.4

                      Получается, ОС 32-битная, раз можно рулить сегментами? Странно вкладываться в умирающую архитектуру, но хобби бывают всякие.


                      1. MacIn
                        04.01.2018 22:59

                        Получается, ОС 32-битная, раз можно рулить сегментами? Странно вкладываться в умирающую архитектуру, но хобби бывают всякие.

                        Да. Ну так и проекту больше 15 лет.


                    1. mayorovp
                      04.01.2018 23:51

                      Сегмент может быть расположен «вверху», а данные ядра — внизу.

                      Вы правда думаете что там при наличии проверки на выход за границы сегмента отдельно проверяется переполнение?


                      1. MacIn
                        04.01.2018 23:56

                        Не знаю, просто рассуждаю на тему.


                1. khim
                  04.01.2018 23:42

                  Ведь если для чтения ядерной памяти надо загружать ядерный же селектор из GDT с DPL=0, что выкинет исключение при RPL=3, то до спекулятивного доступа к «запрещенной» ячейки памяти черед не дойдет. Верно?
                  Неверно. Всё это проверяется уже потом, при «нормальном» исполнении (вернее при «отставке» операций). Спекулятивное же на всё это плюёт, так как если «случится бяда» — то этого же всё равно никто не увидит.


                  1. MacIn
                    04.01.2018 23:55

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


                    1. MacIn
                      05.01.2018 00:14

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


                    1. khim
                      05.01.2018 01:21

                      Или глубина сп. выполнения намного глубже?
                      А вы посчитайте. Длина конвеера — 12-14 тактов, одновременно современные CPU могу исполнять 3-4 инструкции за такт… так что теоретически могут исполняться спекулятивно полсотни инструкций и больше, а практически 10-20 — в лёгкую.


                      1. MacIn
                        05.01.2018 11:44

                        Логично. Ну, тогда действительно разницы нет.


                        1. MacIn
                          05.01.2018 14:03

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


          1. mickvav
            04.01.2018 21:52

            Ну, прочитать все же не в едином и консистентном состоянии, конечно — там порядки величин — 1000 байт в секунду, так что это все же на уровне «погрепать в надежде, что попадется что-то интересное». Но при массовой атаке оно у кого-нибудь да найдется…


            1. khim
              04.01.2018 23:45

              Имея доступ ко всем структурам ядра и всей памяти можно много чего найти даже читая со скоростью 1000 байт в секунду…


    1. ushliy
      04.01.2018 10:59
      -1

      Вот и пруфов подвезли
      twitter.com/misc0110/status/948706387491786752/photo/1


      1. VEG
        04.01.2018 11:04
        +2

        Ваш пруф явно выполняется не в браузере.


        1. MooNDeaR
          04.01.2018 11:47

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


          1. VEG
            04.01.2018 11:51
            +5

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


    1. lassana
      04.01.2018 13:44
      +2

      blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack

      Our internal experiments confirm that it is possible to use similar techniques from Web content to read private information between different origins.


      Я бы не ждал готовых эксплоитов до релизов патчей для всех популярных ОС.


    1. qw1
      04.01.2018 19:38
      +1

      Низкоуровневые операции (типа получения данных по произвольному указателю), которые скорее всего будут нужны для эксплуатации уязвимости, из JS недоступны
      Для атаки нужно иметь код, работающий с массивом, данные в котором мы контролируем (что нам легко сделает jit-компилятор), нужны точные таймеры (например, на web-workers, если обычный таймер загрублён js-движком), и нужно знать адрес буфера в процессе браузера. Последнее есть проблема, хотя её решает другой эксплойт — AnC.



  1. vlad20012
    04.01.2018 11:02

    > Комментарии Google

    ССылка битая


  1. Darknet
    04.01.2018 11:02
    +3

    Маки пропатчили в 10.13.2, никто даже и не заметил.


    1. vsespb
      04.01.2018 11:21
      +5

      они думали что просто батарейка на маке стареет и он работает медленне, чтобы неожиданно не выключиться


    1. xlenz
      04.01.2018 13:04

      Заметил, но не знал почему. Субъективно на быстродействие не повлияло, а батарею стало жрать больше практически на 20%


    1. V1tol
      04.01.2018 14:44

      Meltdown может и пропатчили, а вот Spectre на 10.13.2 работает замечательно


      1. olartamonov
        04.01.2018 14:45

        А Spectre на системном уровне и не патчится.


  1. Mingun
    04.01.2018 11:03
    +5

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


    1. cro Автор
      04.01.2018 11:13
      -2

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


      1. Mingun
        04.01.2018 11:21
        +15

        Ну, а мне показалось бесполезным читать статью ни о чём.


        1. cro Автор
          04.01.2018 14:03
          +5

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

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


          1. bigfatbrowncat
            04.01.2018 14:53

            Было бы полезно сжато, в двух словах, изложить суть уязвимости (разумеется, если вы сами ее понимаете). Так сказать, идею. Для неспециалистов.

            А пока что я прочитал весь ваш текст (не ходя по ссылкам на первоисточники) и половину комментариев. И самое интересное, что увидел — это ГИФка в твите, где хоть внешне иллюстрируется, как один процесс тащит данные из другого.


            1. Armleo
              05.01.2018 00:11

            1. ToSHiC
              05.01.2018 02:11
              +1

              Постарался разжевать тут: habrahabr.ru/post/346078


              1. RusMikle
                05.01.2018 03:32

                там написали как защитили на Linux. А как на окнах?


                1. sumanai
                  05.01.2018 03:47

                  Это может рассказать только Microsoft, и не думаю, что они поделятся в ближайшее время.


                  1. RusMikle
                    05.01.2018 04:40

                    тогда получается что понять насколько эффективно они это сделали нельзя.


                    1. sumanai
                      05.01.2018 05:26

                      ClosedSource.


                      1. RusMikle
                        05.01.2018 06:08

                        а кто то пробовал повторить атаку после наката костыля?


        1. vconst
          04.01.2018 19:07
          +1

          А я вообще только ради комментариев сюда зашёл, как и ожидал — получил информации намного больше, чем в статье.


  1. pftbest
    04.01.2018 11:17
    +3

    AMD с ARM также уязвимы, но атаку реализовать сложнее.

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


    1. kryvichh
      04.01.2018 15:50

      То есть если не хотим на 10-30% замедлять работу системы, дружно топаем на AMD? Благо они в 2017 году выкатили новые приличные процессоры Zen.
      Вообще как так вышло, что AMD обошла чаша сия?


      1. willyd
        04.01.2018 16:00

        Я почему-то не уверен, что найду достойную рабочую станцию типа ZBook/EliteBook на AMD. :(


      1. phprus
        04.01.2018 18:18
        +1

        От SUSE пришла рассылка с обновлением kernel-firmware и описанием:

        — Add microcode_amd_fam17h.bin (bsc#1068032 CVE-2017-5715)

        This new firmware disables branch prediction on AMD family 17h processor
        to mitigate a attack on the branch predictor that could lead to
        information disclosure from e.g. kernel memory (bsc#1068032 CVE-2017-5715).

        17h — это как раз Zen. В свете такого описания мне очень интересно, во сколько раз отключение предсказания переходов уменьшит производительность этих процессоров.


        1. khim
          04.01.2018 18:35
          +7

          Очень надеюсь что отключаются какие-то эвристики, а не предсказание ветвлений целиком.

          Без предсказания ветвлений современный процессор — гроб с музыкой, замедление в разы.


      1. LeonidY
        05.01.2018 00:44

        У AMD нету TSX-NI, и заставить через него срабатывать спекулятивную загрузку не получится. Не знаю правда что там с Advanced Synchronization Facility (ASF), может ли он быть тут использован.

        Кроме того, такое впечатление, что AMD проверяет доступ до того, как запускает операцию загрузки в кэш.

        То есть, остаются только JIT exploit типа eBPF.


        1. ToSHiC
          05.01.2018 02:13

          В оригинальной статье про meltdown утверждается следующее:

          However, for both ARM and AMD, the toy
          example as described in Section 3 works reliably, indicating
          that out-of-order execution generally occurs and
          instructions past illegal memory accesses are also performed.


          1. LeonidY
            05.01.2018 02:37

            Toy example будет работать скорее всего везде, на любом процессоре. Но его еще надо запустить в ядре. eBPF — один способ, код для conditional branch с перекодированием — другой. Но их надо еще разместить в ядре, правильно воспользоваться и ухитриться очищать правильно кэш.


  1. AxaRu
    04.01.2018 11:26
    -4

    Все это очень похоже на большой фейк.
    Нет ссылок ни на тестеров ни на объективные результаты.
    Скоро напишут, что при открытии двери в туалет замедляется работа кэша второго уровня.



    1. qwert_ukg
      04.01.2018 11:33

      А как же эта «пруф-гифка» twitter.com/misc0110/status/948706387491786752/photo/1 из комента повыше? :)


    1. entze
      04.01.2018 21:00

      Нет, всё это похоже на Heatbleed, когда сначала утверждалось что всёвиврете, а потом вышли очень наглядные пруды и сомнений (надеюсь) не осталось.


    1. Armleo
      05.01.2018 00:24

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


  1. Evgeniy112
    04.01.2018 11:27

    AMD с ARM также уязвимы, но атаку реализовать сложнее.

    а можно немного подробнее? насколько сложнее? какие векторы атаки возможны?


    1. GalVorbak
      04.01.2018 17:55
      +1

      В интернетах гуляет эта картинка
      image


      1. Evgeniy112
        04.01.2018 21:41
        -1

        спасибо! жаль не могу поставить лайк


        1. Naglec
          04.01.2018 22:49

          ставь класс


          1. Evgeniy112
            05.01.2018 18:31

            и класс не ставится. или тут хабры ставить нужно?


      1. poxvuibr
        04.01.2018 22:57

        Из этой картинки следует, что проблем у процессоров AMD под windows нет. И под линукс тоже нет, если ты сам ядро не твикал. Это правда так?


        1. olartamonov
          04.01.2018 23:29

          Про Meltdown — правда (точнее, теоретическая возможность повторить его на AMD есть, но практически она не реализована и даже не показано, что она в принципе реализуема).

          Про Spectre — нет.

          Вот демонстратор, там в комментариях народ развлекается с самыми разнообразными процессорами, начиная аж с Pentium M, и под разными ОС. В основном интелы, но AMD тоже есть, на них тоже работает.

          Кроме того, один из вариантов Spectre AMD официально признаёт как работающий с пометкой «software update to be made available».


          1. kryvichh
            04.01.2018 23:35

            Negligible performance impact expected.

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


            1. olartamonov
              05.01.2018 00:00

              Со Spectre всё сложно, см. spectreattack.com/spectre.pdf (особенно пункт 7).

              Объём трудозатрат на исправление софта исходя из имеющихся данных трудно оценить даже по порядку (точнее, попробовать можно, но эта оценка вызывает ужас).


              1. kryvichh
                05.01.2018 01:13

                В документе от AMD говорится о патчах ОС / ПО, которых достаточно для нейтрализации Spectre на системах AMD. Непонятно, достаточно ли будет патча ОС и/или браузера, чтобы предотвратить воровство паролей через JS, использующий Spectre. Также непонятно, если в пропатченной ОС будет запущен вирус с правами пользователя, сможет ли он получить доступ ко всей оперативной памяти системы используя Spectre.


                1. olartamonov
                  05.01.2018 01:34

                  Это вообще не документ, а так, временная затычка.

                  Фразу «нам необходимо пропатчить всё существующее ПО в неизвестном количестве мест» тоже можно закончить на «и этого будет достаточно для нейтрализации Spectre».


                  1. encyclopedist
                    05.01.2018 02:48

                    Для Clang и GCC уже есть патчи которые защищают от SPECTRE


                    1. LeonidY
                      05.01.2018 07:54

                      Где?


                      1. encyclopedist
                        05.01.2018 17:04

                        Тут и тут


                        Описание метода тут и тут


                        1. LeonidY
                          05.01.2018 23:26

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

                          Я не силен в x86 ассемблере (забыл его), но что-то типа

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

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


                          1. khim
                            06.01.2018 00:12

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


                            1. LeonidY
                              06.01.2018 05:26

                              Так такой «нехороший код» гораздо чаще в ядре или программе случается! И защититься от него много сложнее через LLVM/gcc.

                              Но почитав о чем народ талдычит, складывается впечатление, что якобы Интел не делает speculative пока по коду не проползет несколько раз циклом(!) Очень странная мысль, я сидел на одном семинаре где они хвастались, что они просматривают вперед аж на 3 условных перехода длинным pipeline — нахрена тогда им это делать то?

                              Или это конкретный процессор такой, а народ и не знает?

                              Это насчет того, сработает нехороший код или нет.


                              1. khim
                                06.01.2018 05:56

                                Это насчет того, сработает нехороший код или нет.
                                У меня есть ощущение, что вы за деревьями лес потеряли. Intel действительно применяет массу эвристик, чтобы правильно предсказать ветвление — но нам-то нужно, чтобы произошло строго противоположное: весь профит получается на основании спекулятивного исполнения кода, который исполняться не должен.

                                Вот вы тут пишете:
                                При спекулятивном выполнении есть большой соблазн запустить эту загрузку на всякий случай заранее, хотя в момент запуска еще не известно значение условия А. Приплыли.
                                Процессор не исполняет ничего «на всякий случай». Он не пытается «хватать» инструкции «где-то рядом» с потоком исполнения и рандомно их исполнять — это бессмысленно. На некоторых CRAY системах пытались одновременно спекулятивно исполнять команды на обоих ветвях после перехода… идея себя не оправдала. У всех же современных процессоров предсказывается один «магистральный путь движения» программы.

                                Если загрузка после проверки «спекулятивно сработала» (а потом не понадобилась) — то это значит, что предсказатель переходов сработал неверно. За последние четверть века Intel потратил не один миллиард долларов на то, чтобы снизить вероятность такого события.

                                А вы предлагаете на это событие, случающееся с ничтожной вероятностью, полагаться. Не надо так.


        1. khim
          04.01.2018 23:49

          Из этой картинки следует, что проблем у процессоров AMD под windows нет. И под линукс тоже нет, если ты сам ядро не твикал. Это правда так?
          Нет, неправда. Просто для эксплуатации нужны определённые данные в ядре, которые пока неизвестно как занести. То есть кто-нибудь когда-нибудь, скорее всего, придумает как это сделать — но на это может потребоваться и несколько недель (тогда всем будет очень больно) и несколько лет (тогда это будет просто «сказкой на ночь»).


          1. LeonidY
            05.01.2018 00:52

            Ну если можно сделать это — «занести определенные данные в ядро», то никакой meltdown/spectre уже и не нужен, между прочим.


            1. willyd
              05.01.2018 01:22

              Вроде как у людей PoC работает на AMD и на линукс и на win 10, без включения модулей ядра.
              gist.github.com/ErikAugust/724d4a969fb2c6ae1bbd7b2a9e3d4bb6


              1. LeonidY
                05.01.2018 02:08

                Насколько я понимаю, этот код всего лишь доказывает, что можно использовать определеные последовательности для запуска misprediction load при условном переходе и размещении данных в кэше. Для реальной эксплуатации все еще нужны определённые коды в ядре (victim_function при правильной оптимизации и запуске ), которой можно разбрасывать этот mispredicted load в зависимости от значения читаемого байта по разным кэш строчкам.

                Да, это все еще опасно, гарантировать сложно. Некоторый код ядра делает именно эти операции (криптографический хэш, например).


  1. AlexanderS
    04.01.2018 11:48

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

    А безопасный — это какой? Я так понял вся линейка от интела болеет этим. Менять вообще всю платформу как-то не хочется. В моём случае получается только патч?


    1. PapaBubaDiop
      04.01.2018 12:10
      +2

      Вас мотивируют купить новый процессор. В новом же страшилки устранят?


      1. AlexanderS
        04.01.2018 12:53
        +1

        Вот, кстати, интересный вопрос. Я вот недавно собрал товарищу комп на шестиядерным двенадцатипотоковым Coffee Lake с разблокированным множителем. Процессор явно недешевый. И тут такое дело. Гарантия на процессор — 36 месяцев. Вот если бы наличие подобной уязвимости было гарайтийным случаем… я думаю у интела была бы другая стратегия, а не выкатывание нового ядра раз в пару лет)


  1. theRavel
    04.01.2018 11:51
    -1

    Я не совсем понимаю: уязвимость в CPU фиксится на уровне ОС. Может тогда это все-таки уязвимость в ОС?


    1. kekekeks
      04.01.2018 11:56
      +11

      На уровне ОС это "починили" следующим образом: они на выходе из сискола сбрасывают ряд кэшей процессора, через которые "утекают" данные, плюс заанмапили полностью kernel address space, а не только защитили от чтения/записи, так что надо теперь восстанавливать/убирать. Процесс этот небыстрый, что ведёт к нескольким дополнительным сотням циклов на каждый сискол. Отсюда просадка производительности на 30% в том же постгресе.


      1. theRavel
        04.01.2018 12:10
        +1

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


      1. Naglec
        04.01.2018 13:05

        Вот с PostgreSQL сейчас обидно было. 30% это, блин, 30%.


        1. LeonidY
          05.01.2018 00:56

          А ты не гоняй на машине с ним сторонии приложения (включая браузер), и можешь спать спокойно. Надеюсь PostgreSQL не выполняет Java/JS?


          1. Naglec
            05.01.2018 00:58

            Нет, разумеется. Выключим мы этот патч, ибо сервера железные.
            Но если кто-то гоняет PostgreSQL на виртуалках?


            1. bogolt
              05.01.2018 02:02

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


              1. Naglec
                05.01.2018 02:05

                Так в том и дело, что если патч поставить, то производительность упадет. В случае с железным сервером чисто под СУБД можно обойтись без патча, а в случае с виртуалкой — нет.


      1. MuLLtiQ
        04.01.2018 14:10

        https://www.postgresql.org/message-id/20180102222354.qikjmf7dvnjgbkxe@alap3.anarazel.de
        ну не 30, а 23, да и то в синтетическом тесте.
        Но все равно обидно :(


    1. Mogost
      04.01.2018 11:58
      +8

      Уязвимость на уровне CPU, но закрыть её на уровне CPU нельзя. Поэтому костыляют на уровне ОС.


    1. awMinor
      04.01.2018 12:00

      Уязвимость фиксится на уровне ОС потому что как вы себе представляете пофиксить её на уровне процессора? Я не думаю, что можно накатить патч на процессор из под Windows.


      1. theRavel
        04.01.2018 12:13

        Это понятно, но значит ли это, что в следующем поколении CPU уязвимость будет устранена и на уровне ОС этот замедляющий код может быть отключен (для соответствующих версий CPU конечно же) ?


        1. CryptoPirate
          04.01.2018 12:18

          Скорее всего, да.


          1. Salabar
            04.01.2018 14:56

            Следующее поколение в разработке уже где-то пару лет, так что, скорее всего, через одно.


        1. tyomitch
          04.01.2018 19:59

          Если речь идёт об «утечке информации через кэши», то аппаратное устранение этой проблемы будет вести к точно такому же замедлению, что и программное.


          1. qw1
            04.01.2018 20:24
            +2

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

            Как только приходит подтверждение предсказания, эти выделенные линии мержаться в кеш. Если приходит неподтверждение, линии отбрасываеются, как и изменения в регистрах.

            Всего-то ещё 100500 транзисторов на эту логику. Там и без того намешано чёрт знает сколько, так что чуть усложнить работу процессора не страшно.


            1. tyomitch
              04.01.2018 22:27

              Всего-то ещё 100500 транзисторов на эту логику.

              Плюс 100500 мкВт на питание этих новых кэшей :-/


              1. sumanai
                04.01.2018 22:30

                Хотел было написать, что в каждом поколении добавляют поддержку новых инструкций, которые жрут больше, но подумал про современные системы управления питанием и отключение частей процессора, которые позволят отключить части кристалла с этими инструкциями. А эти транзисторы будут использоваться постоянно, так что вы, увы, правы.


            1. LeonidY
              05.01.2018 01:01

              Не, не 100500, меньше. На MIPS-е исследовали, правда по другой, соседней причине.


          1. DistortNeo
            04.01.2018 20:42

            Одно из аппаратных решений — огрубление high-resolution таймера до, скажем, 2000 тиков в секунду. Это не решит проблему, но существенно замедлит скорость чтения: до 1 бита в миллисекунду — 128 байт в секунду, что на 3 порядка ниже текущей скорости чтения.


            1. interprise
              04.01.2018 20:44
              +1

              Ну будет скорость меньше, че толку то? будут читать, только дольше.


            1. qw1
              04.01.2018 20:53

              Не замедлит.

              Если есть доступ к rdtsc, хакер будет просто подгадывать момент, когда rdtsc увеличился, крутить цикл почти до следующего тика, а потом запускать процедуру чтения адреса и смотреть, успел ли счётчик скакнуть, или нет.

              Если нет доступа к rdtsc (как в сценарии с web-workers), ничего не меняется. Вспомогательный поток непрерывно делает вычисления и постоянно кладёт результаты в память. Основной поток в интересующий момент просто смотрит, сколько успело навычисляться.


              1. DistortNeo
                04.01.2018 20:54

                > Если есть доступ к rdtsc

                Вообще-то я его и имел в виду. Огрубить rdtsc до 2000 тиков в секунду.


                1. qw1
                  04.01.2018 21:07

                  Как видите, не решает. Атакующему нужно знать: кусок кода выполнился за 10 тактов или за 200. Для этого он замеряет, сколько нужно крутить пустой цикл, чтобы rdtsc увеличился на 1, затем сразу же крутит этот цикл на 10 итераций меньше, и выполняет интересующее его чтение памяти. Затем смотрит, успело чтение до инкремента rdtsc или нет.


                  1. qw1
                    04.01.2018 21:10

                    А, я понял. Вся эта операция чтения байта потребует крутить эти пустые циклы, что само по себе долго.


                    1. 0xd34df00d
                      04.01.2018 21:11

                      А если ещё добавить к rdtsc небольшой рандомный шум с дисперсией порядка задержки кеша…


                      1. qw1
                        04.01.2018 21:15
                        +1

                        Тогда статистика и усреднение в помощь )))


                  1. DistortNeo
                    04.01.2018 21:24

                    А зачем крутить пустой цикл, когда можно в цикле крутить атаку на один и тот же бит, а потом считать, сколько итераций цикла было выполнено за 1 такт счётчика?


                    1. qw1
                      04.01.2018 21:28

                      Тоже вариант, по времени примерно то же самое.


            1. tyomitch
              04.01.2018 22:16

              Таймер для эксплойта необязателен: один поток пусть в бесконечном цикле инкрементирует счётчик, другой поток пусть сравнивает значения счётчика до обращения к памяти и после.


          1. LeonidY
            05.01.2018 01:00

            Не совсем. Чтобы починить текущие проблемы у Интела, надо — делать проверку доступа ДО того, как запускается подкачка кэш-а; разобраться с кривым TSX-NI, или отрубить его совсем — отрубали же на определенных процессорах из-за ошибок.

            Ну а eBPF — это все-таки просто что-то типа троянского коня в ядре и больше софтверная проблема.


      1. Efficeon
        04.01.2018 14:14

        Некоторые уязвимости и баги таки фиксятся на уровне процессора — фиксится микропрограмма.
        И можно даже из-под Windows накатить обновление — вот пример support.microsoft.com/en-us/help/3064209/june-2015-intel-cpu-microcode-update-for-windows.


      1. sumanai
        04.01.2018 15:07
        +1

        Я не думаю, что можно накатить патч на процессор из под Windows.

        Windows это регулярно делает, как впрочем и Linux. В современных процессорах есть микрокод, который и обновляют ОС либо биос.
        P.S. Я буду обновлять комментарии…


      1. Kobalt_x
        04.01.2018 17:23

        А микрокодом пофиксить Интел типо ниасилит?


        1. khim
          04.01.2018 18:06

          Можно. Но придётся кучу самых часто используемых инструкций пустить через микрокод. С соответствующим замедлением раз этак в 5-10.

          Оно вам надо? Тут уж дешевле поставить интерпретатор x86 для x86 и пускать всё в эмуляции под QEMU…


          1. qw1
            04.01.2018 18:26
            +1

            Разве QEMU не выполняет бинарную трансляцию? То есть, с большой вероятностью, он скопирует весь вычислительный код (между системными опкодами) один-в-один и запустит.


            1. khim
              04.01.2018 18:37

              Можно это выключить. Но да, замедление будет такое, что всё это — скорее теоретические возможности…


            1. potan
              04.01.2018 21:15

              В него можно добавить верификацию на попытки использовать эксплойт.


              1. 0xd34df00d
                04.01.2018 21:21
                +1

                У меня от этого Тьюринг умер.


              1. qw1
                04.01.2018 21:21

                Можно конкретные сигнатуры ловить, но в общем случае эта задача требует полноценного понимания, что делает алгоритм. В коде нет никакого криминала, особенно если обращение к таймеру заменить на взаимодействие вычислительных потоков. Ну, насчитал алгоритм что-то, а потом на основе этого сделал URL для GET-запроса. Информация утекла.


    1. makaronnikk
      04.01.2018 13:45

      Хороший вопрос. Фиксить нужно гипервизор или виртуальные на нем? VMWare пока молчат.


      1. AMaverick
        04.01.2018 14:30

        VMWare выпустили бюлетень безопастности:
        www.vmware.com/us/security/advisories/VMSA-2018-0002.html

        Miscrosoft в своем анонсе про Azure пишут, что при обновлении гипервизора, нет необходимости обновлять гостевые ОС:
        This Azure infrastructure update addresses the disclosed vulnerability at the hypervisor level and does not require an update to your Windows or Linux VM images. However, as always, you should continue to apply security best practices for your VM images.
        azure.microsoft.com/en-us/blog/securing-azure-customers-from-cpu-vulnerability

        Возможно и в случаее VMWare тоже можно будет обойтись обновлением гипервизора, но достоверной информации пока нет :(


        1. makaronnikk
          04.01.2018 17:38

          Кто-то обновлялся?


          1. navion
            05.01.2018 00:51

            Эти патчи вышли в ноябре и все давно обновились.


  1. nikitasius
    04.01.2018 11:57
    +3

    Отличные новости, ничего не скажешь. 10 лет Карл, 10 лет дырка была. И не в софте, а в железе!


    1. sav6622
      04.01.2018 12:51

      Поправка небольшая — 20 лет.


    1. devalone
      04.01.2018 13:47

      Интересно, сколько раз её успели заюзать…


    1. dfm
      04.01.2018 19:03
      -1

      Да уж, лично я испытал дикий батхерт от этой новости, когда, будучи более 10 лет поклонником AMD, всего полгода назад решил проапргрейдить компьютер и перейти на Intel.


      1. dfm
        04.01.2018 23:49
        -1

        для тех, кому не понравился мой комментарий, поясню

        AMD с ARM также уязвимы, но атаку реализовать сложнее.

        сложнее.


    1. Lsh
      05.01.2018 00:54

      Помните, когда-то давно хакер Крис Касперски (мышихъ) обещал раскрыть уязвимость/закладку в процессорах, а потом уехал в штаты. Разные околохакерские ресурсы долго спекулировали на эту тему, мол дыра настолько фундаментальная, что достаточно зайти на сайт и вне зависимости от ОС, антивируса и браузера, можно систему поиметь. Насколько я помню он ничего такого и не рассказал так. Хотя я могу и ошибаться. Чем там дело кончилось?


      1. interprise
        05.01.2018 00:55

        вообще механизм уязвимости настолько просто, что я удивлен что его раньше не нашли


      1. kryvichh
        05.01.2018 01:20

        Чем там дело кончилось?

        Крис Касперски умер 18 февраля 2017 г., в 40 лет…


        1. gro
          05.01.2018 18:11

          Совпадение? Не думаю…


          1. khim
            05.01.2018 18:50

            Ну если вы считаете, что «враги» вошли в доверие и убедили освоить новый, небезопасный вид спорта — тогда да.


      1. ExplosiveZ
        05.01.2018 06:01

        Прикольно. Интересно, как часто гебня пользовалась этой уязвимостью?
        www.securitylab.ru/news/355981.php


  1. unwrecker
    04.01.2018 12:05

    Может ли эта уязмимость грозить сереру, на котором нет недоверенных пользователей и виртуалок, нет браузера и присущих ему скриптов?


    1. interprise
      04.01.2018 12:11

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


    1. Evgeniy112
      04.01.2018 12:16

      эта уязвимость требует запуска кода на CPU, а значит только в случае исполнения кода = заражение вирусом\установка левого софта


    1. equand
      04.01.2018 12:47

      Может, смотря что делает система. Насколько я понимаю, любая обработка кода может провести эту атаку. Допустим есть эксплоит выполнения кода в ОС на уровне сетевого стека. Написать PoC после этого не проблема, запускаем атаку и параллельно дергаем SSH — SSH подгружает файлы и они проходят через память. Память мы уже выискиваем данные.


      Я пример привожу конечно.


      1. unwrecker
        04.01.2018 19:10

        Эх, решето явило новые дыры :(
        Благо эксплуатировать такое тяжеловато…


      1. qw1
        04.01.2018 19:17

        Допустим есть эксплоит выполнения кода в ОС на уровне сетевого стека
        Странное допущение. В Linux и Windows сетевой стек работает в ядре. Если на него есть эксплойт, не надо никаких Spectre/Meltdown.


  1. Jamdaze
    04.01.2018 12:38

    сменить процессор на заведомо безопасный

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


    1. Nexon
      04.01.2018 15:36

      *новую мать на супер модном сокете LGA1151v5


  1. andreyvo
    04.01.2018 13:13
    +1

    Matrix has you.

    Интересно, как долго уже всякие NSA, ФСБ и прочие негодяи пользуются этими эксплоитами…
    How deep the rabbit hole goes?


    1. HelpOP
      04.01.2018 13:29
      +1

      Что за глупый вопрос? Пользовались, пользуются и будут пользоваться. Очень не приятно что такие дыры всплывают.


    1. Alesh
      04.01.2018 13:37

      Не думаю что закладку ставили для ФСБ)


    1. TakinosaJi
      04.01.2018 17:03
      -3

      Если ФСБ для вас негодяи, то вы, батенька, дурак просто.


  1. akrupa
    04.01.2018 13:22

    spectreattack.com/spectre.pdf

    JavaScript does not provide access to the rdtscp instruction, and Chrome intentionally degrades the accuracy of its high-resolution timer to dissuade timing attacks using performance.now()[1]. However, the Web Workers feature of HTML5 makes it simple to create a separate thread that repeatedly decrements a value in a shared memory location [18, 32]. This approach yielded a high-resolution timer that provided sufficient resolution.

    Кажется, отключение WebWorkers должно предотвратить/усложнить использование атаки через браузер.



  1. Alesh
    04.01.2018 13:35
    +1

    и единственный способ решить проблему — сменить процессор на вариант заведомо безопасный.
    С пока еще не скомпрометированной закладкой :)


  1. SkyHunter
    04.01.2018 14:03
    -1

    Ну и отлично! Нахрен общество!!!


  1. KirEv
    04.01.2018 14:15

    и единственный способ решить проблему — сменить процессор на вариант заведомо безопасный.


    а еще лучше — сделать свой процессор, о котором никто не будет знать, версию 0.1 можно сделать на лампах :)


  1. iXF
    04.01.2018 14:15

    А как там насчет Эльбрусов?
    Данная новость теперь будет спекулироваться нашим государством как перевод всех гос. учреждений на процы «свои».


    1. vbif
      04.01.2018 14:22

      А при трансляции x86-кода уязвимость не появится?


      1. sumanai
        04.01.2018 15:10

        Нет.


    1. poznawatel
      04.01.2018 17:12

      Когда твои конкуренты жидко обделались, указать потребителям на это не является спекуляцией, это — нормальная бизнес-практика. Пример использования — сравнение «Запорожец-Мерседес».


      1. tnsr
        05.01.2018 06:20

        Да, говорят «немцы» после 2009 года выпуска разваливаются после 100k пробега. Все вертаю запорожец. ))


        1. poznawatel
          05.01.2018 10:02

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


  1. technic93
    04.01.2018 14:34
    +1

    Почитал чуть-чуть статью (pdf).
    Очередной прикол с асинхроным исполнением. Надо бы в таких случаях применять какие то алгоритмы чтобы формально доказывать корректность работы.
    Вообще опасная фича что сначала загружается в регистр запрещенный участок памяти а потом уже идет проверка на то были ли на это разрешения. Похоже дело было так: реализация доступа к страницам памяти была еще с рождения х86, а потом поверх решили добавить out-of-order инструкции новым слоем, и вышло такое комбо.


    1. qw1
      04.01.2018 18:22
      +1

      Надо бы в таких случаях применять какие то алгоритмы чтобы формально доказывать корректность работы.
      Математически всё корректно, проблема с физикой. Если бы в системе не было таймера, утечки бы не было. Это примерно как недавняя «уязвимость» функции memcmp(user_input, secret_key, key_size), которая сравнивает user_input и secret_key побайтно. Замеряя время выполнения, можно узнать, на каком байте находится расхождение, и брутфосить только этот байт.


      1. 0xd34df00d
        04.01.2018 20:16

        Математически всё корректно, проблема с физикой.

        Но математика — язык физики. То бишь, на языке математики требования к таймингам тоже можно выразить и проверить корректность соответствующих высказываний.

        Жаль, конечно, что математика не может сама там придумать, что доказывать надо.


        1. qw1
          04.01.2018 20:30
          +1

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

          А если ускорение получается автоматически (как при делении на некоторых делителях), нужно добавлять искуственные задержки, сводя всё к худшему случаю. Определённо, не то, что мы хотим от процессора.


          1. 0xd34df00d
            04.01.2018 20:38

            Я вот не понимаю, почему после проверки на отсутствие доступа соответствующие кешлайны не инвалидируются. Пока не читал ещё внимательно описание на Google P0, но, судя по всему, это бы починило проблему.


            1. qw1
              04.01.2018 20:47

              Я об этом думал. Это не решение. Хотя чуть бы уменьшило последствия.

              Сейчас, в зависимости от секретного байта, подчитывается какая-то кеш-линия. Если кеш-линию инвалидировать, то изменение состояния кеша при выполнении mispredicted branch — это тоже утечка информации. Просто информации утекает меньше и нужно больше раундов атаки.

              Полноценное (на мой взгляд) решение я выразил здесь.


              1. 0xd34df00d
                04.01.2018 20:51

                А что в таком случае утекает? Адрес, к которому вы обращаетесь, известен, права доступа на него и так известны. Ничего нового, по идее.


                1. qw1
                  04.01.2018 21:03
                  +1

                  Тут идея такая:

                  Зная адрес в памяти array1, я делаю чтение array1[x] так, что array1+x является адресом в недоступной области (в данном баге не проверяется мой доступ к этой области). Обозначим секретное значение k=array1[x]

                  Затем я читаю array2[k*256] (ко всему array2 у меня полный доступ, тут никаких ошибок не предвидится) и, в зависимости от k, это чтение загружает в кеш кусок array2 и выбивает из кеша одну из линий. Если затем эту линию инвалидировать, это несильно помешает, я всё равно замечу, какая из линий инвалидирована.

                  Сама прочитанная линия array2 мне не нужна, я и так знаю данные array2. Важно лишь, какая линия выбита (а для этого я могу весь кеш забить каким-нибудь array3 и проверять, что вылетело).


                  1. 0xd34df00d
                    04.01.2018 21:10

                    Здесь, я так понимаю, вы опираетесь на то, что номер выбитой линии кеша зависит от адреса? По идее, тогда даже N-way associativity не поможет (корреляции всё равно будут, да и можно несколько кратных адресов просить).


                    1. qw1
                      04.01.2018 21:14

                      Именно, если оригинале проверяется, какая линия array2 попала в кеш, то с инвалидацией придётся проверять, что вылетело.

                      Атака усложняется, но остаётся возможной.


                      1. 0xd34df00d
                        04.01.2018 21:20

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

                        Правда, по идее, выделить отдельные линии тупо под спекулятивное выполнение может быть возможно и обновлением микрокода, надеюсь.


                        1. tyomitch
                          04.01.2018 21:50

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


                          1. 0xd34df00d
                            04.01.2018 21:53
                            +1

                            Представляется, что кеша под это дело нужно будет не так уж много (порядка нескольких линий на ядро), и что вместо перегонки можно обойтись ремаппингом (примерно как с регистрами).

                            А в ОС вы что патчить будете?


                            1. tyomitch
                              04.01.2018 22:20
                              +1

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


                              1. MacIn
                                04.01.2018 22:24

                                Теперь будут держать отдельный каталог таблиц, полностью свой CR3 с блекджеком и профурсетками, чисто для ядра, с перегрузкой оного (CR3), инвалидированием TLB при переключениях и так далее?


                                1. tyomitch
                                  04.01.2018 22:30

                                  Таки да :-/ Выше упоминаются «сотни дополнительных тактов на каждый сискол».


                              1. 0xd34df00d
                                04.01.2018 22:52

                                Сдаётся мне, это существенно медленнее.


                                1. olartamonov
                                  04.01.2018 23:31

                                  Тест на запрос getpid в цикле показывает в районе 4-кратного торможения с анти-Meltdown патчем.


                                  1. qw1
                                    05.01.2018 01:02
                                    +1

                                    Это в Linux? А зачем syscall?
                                    В Windows свой PID просто лежит в PEB, доступном из юзермода.

                                    Скрытый текст
                                    .text:180001250 ; DWORD __stdcall GetCurrentProcessId()
                                    .text:180001250 public GetCurrentProcessId
                                    .text:180001250 GetCurrentProcessId proc near           
                                    .text:180001250 mov     rax, gs:30h
                                    .text:180001259 mov     eax, [rax+40h]
                                    .text:18000125C retn
                                    .text:18000125C GetCurrentProcessId endp


                                    1. netch80
                                      05.01.2018 10:43

                                      Для текущего времени сделали чисто-юзерлендовое решение через механизм vDSO, а для pid?а, видимо, не было причин — кому его надо читать таким темпом? Теперь могут и сделать, если что-то резко просядет.
                                      Кстати, в старых FreeBSD вызов getpid() кэшировался на уровне libc; fork() просто снимал флаг «а мы знаем свой pid». vDSO тут даже не обязательно.


                          1. qw1
                            04.01.2018 22:01

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

                            Микрокодом это сделать наверное нельзя.

                            Но если сделать нативно — всего лишь 1-2 новых 512-битных регистра (а такого размера регистров и так уже 32: zmm0-zmm31), которые при коммите изменений запишутся в кеш, а не в регистровый файл (как бы это в современных процессорах не было одной и той же структурой, т.к. конструкции типа add eax,[ebp+8] работают, как и add eax,ebx)


                          1. LeonidY
                            05.01.2018 01:15

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


                        1. mayorovp
                          05.01.2018 12:12

                          Да все проще же. Если мы (процессор) знаем физический адрес — значит, мы уже знаем и про ограничения доступа к странице. Достаточно лишь проверять их еще до попытки чтения.


                          1. qw1
                            05.01.2018 12:31

                            Не может раздельно кешироваться трансляция в физический адрес и флаги доступа?


                            1. qw1
                              05.01.2018 12:49

                              Собственно, требования к Spectre:

                              array1size and array2 are not present in the processor’s cache, but k is cached;
                              То есть, прочитать недоступное по текущим привилегиям значение k гораздо проще, чем проверить права доступа к нему, т.к. k — в кеше.


                              1. mayorovp
                                05.01.2018 12:57

                                Разве кеш использует линейные адреса?


                                1. khim
                                  05.01.2018 14:21
                                  -1

                                  В разных процессорах по разному. Но обычно да. Потому что физические ещё получать надо и это — много работы.


                          1. olartamonov
                            05.01.2018 12:43

                            MMU нужно время на проверку адреса, поэтому по факту логичнее запускать такую проверку и спекулятивное выполнение одновременно, иначе резко упадёт эффективность.

                            Дальше случается гонка между MMU и конвейером, и судя по всему, в Интелах побеждает конвейер, а в АМД — MMU. Но ни там, ни там конвейер не ждёт результата из MMU.


                            1. mayorovp
                              05.01.2018 12:54

                              Что есть «проверка» адреса? Логический адрес не надо проверять, его надо преобразовать в физический. Если это преобразование еще не сделано — то прочитать значение по указанному адресу невозможно!

                              Поэтому конвейер обязан ждать MMU.


                              1. olartamonov
                                05.01.2018 18:16

                                Проверка адреса — это проверка двух условий: а) адрес находится в памяти, разрешённой данному процессу и б) у процесса достаточно привилегий для доступа к нему.

                                Если говорить про Meltdown, там вообще нужный адрес может уже в TLB быть, MMU остаётся только проверить наличие привилегий.


    1. qw1
      04.01.2018 18:35
      +3

      Вообще опасная фича что сначала загружается в регистр запрещенный участок памяти а потом уже идет проверка на то были ли на это разрешения
      Прямого доступа в запрещённый участок всё равно нет. После отрицательного ответа на проверку доступа загруженные данные откатываются обратно.

      А вот сторонние эффекты, как то загруженная в кеш линия, зависящая от прочитанного байта (для того там и хитрая конструкция y = array2[array1[x] * 256]), остаются. И, хотя напрямую нельзя узнать, какие адреса сейчас сидят в кеше, это можно сделать, замеряя время доступа к разным адресам.

      Если запретить физическое чтение данных, к которым нет доступа, много теряем в производительности — убираем параллельную загрузку и проверку доступа, придётся делать всё строго последовательно и про выполнение процессором одновременно N инструкций на одном ядре придётся забыть.


      1. interprise
        04.01.2018 18:39
        +3

        если ты понимаешь как это работает, пили статью пожалуйста


      1. mayorovp
        04.01.2018 22:11
        +3

        Пришлось читать 300 комментариев чтобы найти этот (и еще один выше)...


      1. kryvichh
        04.01.2018 23:11

        Вот мне и интересно: в процессорах AMD не используется параллельная загрузка — проверка доступа, либо они как-то по-другому оптимизируют исполнение подобного кода.


        1. qw1
          04.01.2018 23:20

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


        1. olartamonov
          04.01.2018 23:37

          Если мы про Spectre, то AMD подвержен.

          Если мы про Meltdown, то у AMD немного другая внутренняя логика, в результате которой у атакующего не остаётся достаточного временного окна для собственно атаки.

          Это логика, над которой раньше никто явно особо не задумывался, поэтому что у Intel сделано так, а у AMD иначе — обусловлено какими-то иными причинами, возможно, настроением разработчика процессора тем утром, когда он сел этот блок рисовать. У ARM вон вообще часть ядер Meltdown подвержена, а часть — нет.


          1. kryvichh
            04.01.2018 23:41

            Да, про Meltdown, спасибо.
            Spectre, как я понял, на AMD процессорах лечится программно практически без потери производительности.


            1. olartamonov
              05.01.2018 00:02

              Это AMD утверждает, что он лечится программно и без потерь.

              Пруфов пока никто не видел, и из оригинальной работы по Spectre никак не следует, что мы их увидим.

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


      1. sigo73
        05.01.2018 19:57

        Обсуждение этого бага на конференции BlackHat 2017 Asia:
        www.youtube.com/watch?v=6bCdFmehMSY


  1. Meklon
    04.01.2018 14:55

    На Ubuntu server 16.04 патчи уже есть? Потушил пока виртуальные машины. И, насколько я понимаю, только Meltdown закрывается, а Spectre вообще только аппаратно или на уровне микрокода можно закрыть?


    1. tbl
      04.01.2018 15:05

      микрокод не поможет (он отвечает только за декодер инструкций). Исправление только аппаратное: замена процессора на неуязвимый (на 486 или более старше, либо ждать новые процы, где это будет исправлено, через 1-2 года, думаю)


      1. Meklon
        04.01.2018 15:27

        Садиться и плакать, да?) Меня жаба задавит сейчас обновлять домашний сервер на Core i5 Ivy Bridge. Увы, но он ещё и owncloud хостит для друзей и рабочих задач. Думаю, как минимизировать хотя бы риски атаки.


        1. sumanai
          04.01.2018 15:35

          Думаю, как минимизировать хотя бы риски атаки.

          Если ваш сервер не исполняет левые программы, то и уязвимость ему не страшна.


        1. willyd
          04.01.2018 15:37

          Fedora ночью выкатили новое ядро, но у них stable сейчас 4.14.11.


          1. Meklon
            04.01.2018 15:46

            У меня 4.10, кажется. Я на HWE ядра перешёл.


            1. willyd
              04.01.2018 16:07

              Я не думаю, что там будет большая проблема.
              Патч сводится к нескольким строчкам. Главный вопрос, что будет с производительностью на реальных системах. Пока на десктопе мне тяжело сказать как она изменилась.


              1. Meklon
                04.01.2018 16:33

                Я на Windows 7 отключу этот патч, наверное. Только для игр запускаю.


                1. willyd
                  04.01.2018 16:47

                  Оценка рисков ;)
                  Думаю, что его эксплуатация начнется с какого-то webasembly и максимум, что будет подпадать под атаку на широкую аудиторию — это пользовательские данные из браузера.


                  1. Meklon
                    04.01.2018 19:37

                    Сейчас думаю, как максимально изолировать все на сервере. У меня почти все только через VPN доступно, но наружу торчит HTTPS с nextcloud. Сам nextcloud внутри KVM.


                    1. willyd
                      04.01.2018 21:07
                      +1

                      Я не специалист в области безопасности.
                      Но в моем понимании для эксплуатации нужно исполнить код на целевой системе. То есть, если у вас сейчас система в актуальном состоянии, и исполнение кода на VPS в контролируете, то нужна еще одна 0day уязвимость позволяющая запустить эксплойт. Это без того, что еще нужно знать, что искать, или дампить память целиком и потом разбираться в ней.


                      1. Meklon
                        04.01.2018 21:45

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


                        1. willyd
                          04.01.2018 22:13
                          +1

                          Так если вы светите наружу 80 и 443 то боты вас будут штурмовать тем же набором эксплойтов, что и позавчера. Вот, если найдут какую-то открытую уязвимость, то чтобы закрепится на втором этапе добавят этот экплойт. Но опять же, нужно знать, что и где искать. Если у вам в окружении не висит переменная типа MY_SECRET_PASS etc, к примеру, то не особо уверен, что все будет легко для бота из китая.
                          Поставьте какую-нибудь IDS, ну или, как минимум, fail2ban закрутите до упора.
                          A c VPS, я не думаю, что вы сможете сделать больше, чем накатить обновление ядра. Нужно новости почитать, но вроде как spectre пока свободно эксплуатируем.


                          1. Meklon
                            04.01.2018 22:21

                            Только 443. fail2ban надо агрессивнее сделать, согласен. Тут ещё плюс в том, что по основному домену example.org отдается заглушка nginx. Надо ещё поддомен угадать.


                          1. Meklon
                            04.01.2018 23:44

                            Надо наружу 22 порт выставить и в honeypot его с fail2ban NAT'ом направить. Соберу коллекцию ботов)


                1. Kobalt_x
                  04.01.2018 17:30

                  Для игр сильные просадки вряд ли будут там же direct rendering без сисколлов



        1. Alesh
          04.01.2018 21:19
          +1

          Принимая во внимание «теорему Джо», вряд ли ваш домашний сервер пострадает от атаки.


          1. Meklon
            04.01.2018 21:47

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


            1. Alesh
              04.01.2018 22:07

              Если серьезно, то там достаточно нетривиальные телодвижения надо проделать, к тому же знать что искать. Не скажу про виндовс, но линукс системы все таки более-менее защищены от этого, хотя бы пароли зашифрованы и не принято тянуть из сети и запускать что попало. А поиск чего-то конкретного уже попадает под «теорему Джо». Дыра пробиваемая через javascript, если сервер используется именно как сервер тоже по идее идет мимо. Что касается серверов, то серьезная засада пожалуй ожидает в основном только хостеров виртуалок, ну и конечно тех кто пренебрегает апдейтами в целом.


          1. qw1
            04.01.2018 21:51

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


            1. Meklon
              04.01.2018 22:22
              +1

              Блин. А ведь у меня правда там исходники хранятся)


      1. olartamonov
        04.01.2018 16:04
        +1

        на 486 или более старше


        Ну зачем вы так сразу людей пугаете, можно же Pentium MMX поставить.


      1. rogoz
        04.01.2018 16:15

        на 486 или более старше

        Pentium MMX и более старше. Pentium Pro и Pentium II уже уязвимы.
        Также есть старые (вроде как до 2013 г) Atom'ы, которые тож не имеют этих всяких конвейеров.


      1. YuriM1983
        04.01.2018 18:40
        +2

        косо смотрит на процессор 486DX2-66, лежащий в тумбочке.
        Пришло твое время!


        1. MacIn
          04.01.2018 19:21

          Хе-хе, как раз рядом стоит DX-40. Живем!


          1. dmitry_dvm
            04.01.2018 21:02

            У меня атлон 64 х2 валяется несколько лет, рука не поднималась выбросить, как чувствовал) А серьезно, то видимо придется терпеть это непотребство, ибо 30% слишком дорого.


  1. Goodkat
    04.01.2018 15:17

    Судя по тестам, патчи сильно повлияют на производительность существующих систем. Тесты показывают падение на 10-30% в некоторых задачах.


    Это ж отличная новость для всех поставщиков оборудования и особенно производителей процессоров!
    Производительности моего уже десятилетнего Core2Quad мне пока на всё хватает, даже прошлогодние игры упираются лишь в видеокарту. А прилетит патчик, комп начнёт наконец-то тормозить, и побегу я и миллионы таких как я в магазин за новым 6-8-ядерным процессором, который потянет за собой апгрейд всего остального компа. А уж как энтерпрайз обрадуется новые компы и сервера покупать!


    1. willyd
      04.01.2018 15:32

      Это ж отличная новость для всех поставщиков оборудования и особенно производителей процессоров!
      В чем она отличная?
      Я думал о покупке ноутбука. Нормальной рабочей станции с расчетом года на три, на уровне EliteBook, ZBook, Precision. Но вот теперь у меня возникает вопрос, покупать ли сейчас ноутбук за 2к, если через год выйдет версия с процессором, который будет на 10-30% мощнее без учета естественного прогресса технологии. И думается мне, что не я один такой. А на AMD выбор не такой большой и выигрыш в производительности тоже не будет значительным.
      И вот если этот вопрос будут задавать достаточное кол-во людей, то продажи могут просесть очень сильно.
      PS только что накатил новое ядро. Визуально стал несколько медленнее, тестов почти не делал, но в одном проседание на 30%, в остальных все как-было.


      1. Goodkat
        04.01.2018 16:57

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

        А я и куча других людей не собирались покупать, так как нас устраивала имеющаяся производительность. После патча она просядет на 30%, что подстегнёт апгрейды. Даже с учётом штрафа в 30% новые кофе-лэйки намного быстрее старых коре2квадов, хотя бы из-за роста тактовой частоты в полтора раза, не говоря уж о двух дополнительных ядрах, гипертрединге и всех тех новых фич, которые Интел успел сделать за десять лет.


        1. willyd
          04.01.2018 17:12

          Меня вполне устраивала производительность на моем далеко не новом i5-4310U. Но она была на приделе, и когда у меня запущенна IDE и пару виртуальных машин, это чувствуется. Вот сейчас буду по работе делать ручные тесты с виртуалками, тогда и посмотрим.

          После патча она просядет на 30%, что подстегнёт апгрейды.

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


      1. dernuss
        04.01.2018 19:18

        Вот и я думаю, уже выбрал yoga 920. Теперь в сомнениях.


        1. Mogost
          04.01.2018 19:30

          Тоже приглядывался к 920, все бил себя по рукам. Теперь уверен, что дождусь линейки процессоров без уязвимости :)


          1. MacIn
            04.01.2018 19:34

            *без этой уязвимости. А там, лет через 10, еще что-то интересное узнаете.


            1. Mogost
              04.01.2018 19:36

              Понятное дело, что безопасности нет, но брать заведомо уязвимый процессор, мало удовольствия, магия неведения творит чудеса :)


        1. willyd
          04.01.2018 19:41

          Я тешу себя напрасными надеждами, что цены просядут.
          В любом случае пару недель нужно подождать. Но сомневаюсь, что ситуация сильно исправится и, скорее всего, нужно будет собирать что-то mini-itx.


        1. YuriM1983
          04.01.2018 19:57

          Изначально не самый удачный выбор в плане security:
          www.techdirt.com/articles/20150812/11395231925/lenovo-busted-stealthily-installing-crapware-via-bios-fresh-windows-installs.shtml


      1. vagran
        04.01.2018 23:47

        Я думаю, что основной объём продаж определяется людьми, которые вообще никогда не узнают об этом моменте. И для задач которых потеря 30% производительности ничего не означает, потому как всё равно процессор всё время в idle. Тех, кто реально будет парится на эту тему, хорошо, если один процент наберётся.


      1. tnsr
        05.01.2018 08:44

        А кто-то зарабатывает на понижении. Не знаю как применимо в данном случае.


      1. Vilgelm
        06.01.2018 06:14

        А я вот купил месяц назад, теперь совсем как-то грустно.


    1. dartraiden
      04.01.2018 15:51
      +1

      Производительности моего уже десятилетнего Core2Quad мне пока на всё хватает, даже прошлогодние игры упираются лишь в видеокарту.

      Очень странно, потому что я своими глазами наблюдал обратное при переходе с Xeon E5xxx (по характеристикам идентичен топовому C2Q) на i7-6700. Допустим, Mafia III на старом процессоре не «тормозила» (визуальные подвисания) только на минимальных настройках графики, а с новым процессоров никаких проблем я не увидел даже на средних. Учитывая, что видеокарта осталась прежней, напрашивается вывод, что процессор реально был узким местом.


      1. Goodkat
        04.01.2018 17:03

        А это точно не из-за памяти?


        1. dartraiden
          04.01.2018 17:40

          Из-за объёма или частоты? 8 гигабайт (было), в принципе, хватает большинству игр…
          Частота, вроде бы, не должна настолько заметно влиять (1066 -> 2133)


          1. Goodkat
            04.01.2018 19:46

            Всё может быть, конечно, и для вашей игры старого процессора маловато.
            Doom и COD Infinite Warfare у меня летают. Игры позапрошлогодние, конечно же — ещё не привык, что у нас уже 2018.


  1. Eswcvlad
    04.01.2018 15:31

    Security Advisory от Microsoft со ссылками на обновления — https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180002


  1. XLOR
    04.01.2018 15:33

    KB4056892 установился уже через Windows Update, могу сказать что мой дохленький i3 просел в играх (даже не самых свежих уже), в WOW Wotlk просадки fps до 25% :( по сравнению с до патчевыми замерами.
    Наверное выбор сделаю в сторону производительности на одной машине, где мне не страшно что данные стырят. Как отрубить теперь последствия этого патча? Флаг в реестре не подскажите?


    1. dartraiden
      04.01.2018 17:44

      i7-6700 в Cinebench просел на 4-5% в многопотоке.


      1. Skerrigan
        05.01.2018 09:44

        Это хорошие новости и для меня — у самого такой. Хороший ЦП так-то, менять его и не планировал еще года 3-4. А тут что началось… аж скис.


        1. dartraiden
          05.01.2018 14:55

          Мне вот не нравится, что уже дважды после этого обновления система повисала наглухо… Возможно, загвоздка в том, что у меня не серийный процессор, а инженерный экземпляр (ранний степпинг), и на серийных всё будет нормально.

          Кстати, вдобавок к обновлениям операционных систем выпущен свежий микрокод для процессоров:

          New upstream microcodes to partially address CVE-2017-5715

          + Updated Microcodes:
          sig 0x000306c3, pf_mask 0x32, 2017-11-20, rev 0x0023, size 23552
          sig 0x000306d4, pf_mask 0xc0, 2017-11-17, rev 0x0028, size 18432
          sig 0x000306f2, pf_mask 0x6f, 2017-11-17, rev 0x003b, size 33792
          sig 0x00040651, pf_mask 0x72, 2017-11-20, rev 0x0021, size 22528
          sig 0x000406e3, pf_mask 0xc0, 2017-11-16, rev 0x00c2, size 99328
          sig 0x000406f1, pf_mask 0xef, 2017-11-18, rev 0xb000025, size 27648
          sig 0x00050654, pf_mask 0xb7, 2017-11-21, rev 0x200003a, size 27648
          sig 0x000506c9, pf_mask 0x03, 2017-11-22, rev 0x002e, size 16384
          sig 0x000806e9, pf_mask 0xc0, 2017-12-03, rev 0x007c, size 98304
          sig 0x000906e9, pf_mask 0x2a, 2017-12-03, rev 0x007c, size 98304


      1. qandak
        06.01.2018 04:56

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


  1. Sergey6661313
    04.01.2018 15:46
    -4

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

    Простым юзверям на это всё равно побоку. У них 3 биткоин майнера в аппдате, 2 маил ру сервиса которые «неизвестно откуда взялись/всегда там были», 20 тулбаров в браузерах, подменёные ярлыки на рабочем столе, зато «красивые часики». Таким юзверям по барабану на эту уязвимость потому что раз в пол года они перестанавливают шиндовс xp и даже не краснеют.

    Другие «супер продвинутые» юзвери никогда не сидят под админом, запускают программы только в песочници из под виртуалки. Такие обычно не могут даже распаковать игрушку не говоря уже о запуске потому что вообще у них «белый список»… Таким данная уязвимость не страшна потому что они поддерживают состояние бекапов по 3 раза в день.

    Почему я не слова ни сказал о защите личной информации например «пороль от сбербанка»? Потому что всё что хранится в принципе не на вашем компе — не ваша личная собственность. Если захотят спиздить ваши фотки с облака — спиздят. Не через процессор так через терморектальный_криптоанализ всё равно найдут способ… Двух факторная аутификация для того и создавалась чтобы даже скомпрометированная машина не могла ничего получить. Но о безопасности самой машины всё равно не имеет смысла говорить пока процессы в принципе не будут разделены. Какой смысл говорить о безопасности браузера если он хранит свои данные в той же папке в которой и зловред? (я про appdata). И доступ туда имеет вообще любая программа.

    На самом деле никто никогда и не был по настоящему защищён.


  1. potan
    04.01.2018 15:46

    Для JS можно сделать верификатор, которые проверяет, что конкретная программа не может использовать эти или другие дыры. Увеличится время загрузки, а на скорости после JIT уже не отразится.


    1. SpyFX
      04.01.2018 17:04

      что бы такой верификатор смог понять что-то, необходимо фактически полностью полностью выполнить код js


  1. vsb
    04.01.2018 16:47

    Проблема преувеличена. Обычных пользователей это практически не коснётся. Самая серьёзная дыра ИМХО была heartbleed.


    1. I-ilya
      04.01.2018 17:04
      +1

      Вот ты сейчас серьёзно? Не коснётся то, что одно приложение может считывать произвольные места в памяти и полностью нарушиать изоляцию? Может и не коснётся если живешь в лесу отшельником.


      1. vsb
        04.01.2018 17:06

        Считывание произвольных мест в памяти фиксится патчами ОС, которые уже или почти уже прилетели, или заменой процессора.

        Если что, на любой десктопной ОС практически любое приложение может читать произвольные файлы пользователя и никого это особенно не волнует. Вот уж где ужас и кошмар, скринсейвер может отправить все мои пароли спамерам или проекты конкурентам. Поэтому любое запускаемое приложение на компьютере уже доверенное, иначе его не стоит запускать. То, что добавился ещё один способ вирусу получить рута (которых и так находят каждый год по нескольку штук), ничего особенно не меняет.


        1. Goodkat
          04.01.2018 17:12

          Скринсейвер — не страшно, его ещё нужно установить.
          Ужас и кошмар — то, что прямо в данный момент хабр может читать ваши пароли посредством javascript.


          1. vsb
            04.01.2018 17:15

            Атаки через JavaScript (по крайней мере известные) уже или практически уже отражены гугл-хромом и фаерфоксом, как минимум.


          1. WST
            04.01.2018 17:25
            +1

            Или возможность «вылезти за пределы» VPS-ки, ломающая саму идею VPS как таковую.


            1. vsb
              04.01.2018 17:27

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


              1. willyd
                04.01.2018 17:50

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


        1. I-ilya
          04.01.2018 17:53

          Насколько я слежу за форумами, пока Spectre никто не знает как закрыть.


        1. RMV1983
          04.01.2018 18:35

          >"…практически любое приложение может читать произвольные файлы пользователя…"
          Что бы такое не работало можно поставить HIPS или нечто подобное. А вот что делать с текущей проблемой не ясно.


        1. FeNUMe
          04.01.2018 22:22
          +1

          То есть 30% потеря производительности от этих патчей по вашему это «не коснется»?!
          Эта уязвимость коснется абсолютно всех, да в разной степени, да кого-то напрямую, кого-то косвенно, но коснется.


          1. vsb
            04.01.2018 23:06

            Для обычных пользователей потери будут на грани погрешности, ни о каких 30% речи не идёт.


            1. RussDragon
              05.01.2018 23:17

              Нет, не будет. Можете почитать сообщения человека выше, у которого после патча начал проседать ФПС в играх. 30% – это никак не погрешность.


              1. vsb
                06.01.2018 00:09

                Нет никаких 30%. У меня ничего не просело, например. Есть нормальные тесты от авторитетных изданий, а не «человек выше», если не верите мне, или сами проверьте.


  1. Nick_Shl
    04.01.2018 17:55

    Почему все говорят о "падении производительности"? Производительность не падает — увеличивается загрузка процессора натвыполнение "лишних" операций и падает КПД! И за все это заплатим мы с вами счетами за электроэнергию и укороченным временем работы ноутбуков от батарей!


    1. qw1
      04.01.2018 19:04
      +1

      Как же не падает, если при каждом переключании режима user/kernel, надо выполнить определённые инструкции, перенастраивающие карту памяти, чтобы удалить страницы ядра из user-пространства (раньше конфигурация карты памяти была одинаковая, а критичные данные были защищены правами доступа, но этот эксплойт их обходит).


      1. Nick_Shl
        04.01.2018 19:40
        +1

        Инструкции выполняются? Скорость выполнения инструкций падает? Со стороны процессора он работает точно так же — просто ПО которое на нем выполняется начинает передавать ему больше инструкций.
        Говорить "снижение производительности" неверно потому, что низкая производительность ассоциируется с низким потреблением энергии. В данном же случае происходит не только замедление выполнения пользовательского кода, но и увеличение потребления энергии.


        1. qw1
          04.01.2018 19:48
          +2

          Падает производительность не CPU, а операционной системы, а вместе с ней и всего компьютера.

          ОС выполняет меньше сисколлов в секунду (т.к. больше времени тратит на каждый при том же hardware).


        1. Goodkat
          04.01.2018 19:49
          +2

          низкая производительность ассоциируется с низким потреблением энергии
          o_O


        1. RussDragon
          05.01.2018 23:21

          У меня почему-то низкая производительность наоборот ассоциируется с излишним потреблением энергии.


    1. MacIn
      04.01.2018 19:22
      +2

      Потому что речь о производительности пользовательского кода.


  1. no1D
    04.01.2018 17:56

    MS Выложило вроде как апдейты
    www.catalog.update.microsoft.com/Search.aspx?q=KB4056898 Windows 8.1
    www.catalog.update.microsoft.com/Search.aspx?q=KB4056897 Windows 7


    1. Jkobs
      04.01.2018 18:35
      +1

      Касательно 7ки. Если прочесть о чем оно, то не особо похоже под нашу проблему. Но кто знает, что там под капотом



      1. Mur81
        04.01.2018 22:17

        Эти обновления вышли раньше времени (должны были во вторник). Это наводит на мысль, что выкатили их в срочном порядке. Других причин кроме Meltdown/Specte вроде на это не было…


        1. DikSoft
          05.01.2018 01:19

          Т.е. опять спасибо Гуглёвым докладам?


          1. Mur81
            05.01.2018 12:57

            В том смысле, что благодаря им апдейты вышли раньше? Не знаю. Вообще я видел инфу, что производители процов еще в июне были поставлены в известность. А на «официальном» сайте уязвимостей написано, что найдены они были независимо аж тремя (!) командами сразу (касаемо Meltdown). Не думаю, что это прям так вот в один день случилось.
            Кстати обновления от MS до сих пор еще не видны через обычный механизм обновления. По крайней мере в Win 7 и 8.1, в десятке — не знаю. Но вот WSUS выкачал первую партию (security only update) 4-го числа и вторую (кумулятивные) — 5-го. Может решили корпоративных клиентов обновить побыстрее, а с обычными подождать до вторника патчей.
            На мой взгляд для обычной рабочей станции уязвимость не столь страшна, что бы прямо впадать в панику. Да, несомненно уязвимость очень серьёзная. Но для её успешной эксплуатации всё же надо еще немалую работу проделать. Так что пара-тройка дней просрочки с установкой патча не так страшно думаю. Вот для облачных систем очень опасно, это да.


            1. DikSoft
              05.01.2018 18:59

              — Да, я про спешку и торопыг-публикаторов. Эти апдейты уже были в планах у MS на «вторник патчей».
              Вот в каком месте у Google чесалось, чтобы опять вывалить всё раньше сроков?

              PS: В SCCM всё приехало 4-го. Установку на сервера (Hyper-V и RDSH) аппрувнул руками. Остальные — не горит. Понятно, что длинные «каникулы» это специфика РФ (может и не только наша, конечно), но наверное, можно было и не выкатывать подробности явно раньше обещанных сроков?


              1. Mur81
                05.01.2018 19:16

                А, в этом плане. Я честно говоря не интересовался кто первый разгласил. Может и не Гугл это был.
                Одно ясно, что об уязвимости было известно уже несколько месяцев (вроде с июня как минимум). И подготовка к внедрению патчей (и соответственно к разглашению) велась долго и планомерно. У кого-то нервы сдали на завершающем этапе наверно. Ну или еще какие-то причины были, оставим их деликатно за кадром.
                Любопытный факт: как я понял для установки патчей на Windows, в случае если установлен какой-либо антивирус, нужно что бы этот антивирус в начале проапдейтился до совместимого и выставил флаг в реестре. Т.е. производители антивирусов тоже были заранее уведомлены и готовились. Хотя патч к Kaspersky Endpoint Security вышел только 4-го числа. Не похоже как-то на «подготовились заранее». В общем не знаю.


                1. khim
                  05.01.2018 19:22
                  +1

                  У кого-то нервы сдали на завершающем этапе наверно. Ну или еще какие-то причины были, оставим их деликатно за кадром.
                  Да нет, всё просто: чем ближе «к часу Х», тем больше людей задействовано. Вендоры, крупные ISP, etc.

                  Так что обычно нужно быть готовым к тому, что за 5-7 дней до официального срока «оно» случится. Так почти со всеми уязвимостями было…


  1. shinkei
    04.01.2018 18:04
    +1

    То есть через эти дырки какой-то вшивый сайт с нужным js сможет private key для моего бинткойна вытащить?


    1. poznawatel
      04.01.2018 18:13

      Если Вам не повезёт, то, получается, да.


    1. I-ilya
      04.01.2018 18:14
      +1

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


      1. dezconnect
        04.01.2018 21:37

        биржи на VPS… вы серьезно? :)


        1. willyd
          04.01.2018 21:53

          А этого не может быть?
          aws.amazon.com/solutions/case-studies/coinbase
          docs.gdax.com

          Colocation. GDAX primary data sources and servers run in the Amazon US East N. Virginia data center. To minimize latency for API access, we recommend making requests from servers located near the AWS us-east-1 data center.


          1. dezconnect
            04.01.2018 23:11

            О_О


    1. qw1
      04.01.2018 18:52
      +3

      бинткойн
      Ещё одна новая монета?


    1. Goodkat
      04.01.2018 19:40
      +1

      Погоди, у тебя установлен браузер на компе с бинткойном?


      1. shinkei
        04.01.2018 22:17

        Я лишь с целью предостережения других юзеров это написал


  1. yokotoka
    04.01.2018 19:02
    +2

    Бенч до патча
    $ sysbench --test=cpu --num-threads=16 --cpu-max-prime=50000 run
    sysbench 0.4.12: multi-threaded system evaluation benchmark

    Running the test with following options:
    Number of threads: 16

    Doing CPU performance benchmark

    Threads started!
    Done.

    Maximum prime number checked in CPU test: 50000

    Test execution summary:
    total time: 25.7222s
    total number of events: 10000
    total time taken by event execution: 411.0601
    per-request statistics:
    min: 8.71ms
    avg: 41.11ms
    max: 117.67ms
    approx. 95 percentile: 61.87ms

    Threads fairness:
    events (avg/stddev): 625.0000/4.76
    execution time (avg/stddev): 25.6913/0.01


    1. willyd
      04.01.2018 19:35

      Если threads тест запустить все еще хуже.
      До патча
      General statistics:
      total time: 10.0001s
      total number of events: 54619

      После патча
      General statistics:
      total time: 10.0003s
      total number of events: 32527

      Но визуально пока в пределах нормы.


    1. Psychopompe
      04.01.2018 23:51

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


  1. tnsr
    04.01.2018 19:27
    +6

    И вот в 2018 году, дети, вдруг стали популярны текстовые браузеры
    ;o)


    1. snuk182
      04.01.2018 20:16
      +1

      1. tnsr
        04.01.2018 20:32
        +1

        Сайт по ссылке не скомпрометирован? ))
        Кста, разговоры о патчах ОСей,
        а патчей браузеров не достаточно?


        1. MacIn
          04.01.2018 20:51

          Нет, патч на уровне системы виртуальной памяти.


          1. tnsr
            04.01.2018 21:32

            Ну тады интересно почитать про межпроцеcсное взаимодействие браузера и ОС.
            В исходниках firefox'a смотреть? Или JS отдельная библиотека?


            1. MacIn
              04.01.2018 22:23

              Дело же не в специфике взаимодействия браузера и ОС. Дело в том, как смаппирована физическая память и память ядра в виртуальное адресное пространство, и как эта область защищается.


          1. tnsr
            04.01.2018 21:40

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


  1. matabili1973
    04.01.2018 20:01

    И какие же процессоры позиционируются как заведомо безопасные?


    1. Goodkat
      04.01.2018 20:06
      +1

      Pentium MMX и старше.


      1. matabili1973
        04.01.2018 20:59

        Это просто блистательно.


        1. Goodkat
          04.01.2018 23:24

          Атомы могут быть условно безопасными — я где-то читал, что они, на самом деле просто очень быстрые Пентиумы без опережающего выполнения, но это не точно.


          1. olartamonov
            04.01.2018 23:46

            Начиная с ядра Bay Trail, Атомы тоже спекулятивное выполнение умеют.


  1. xlenz
    04.01.2018 20:03

    Есть возможность проверить, что секюрити патч накатился корректно? Тест на уязвимость spectre / mealtdown?



  1. Melanxolik
    04.01.2018 22:16
    +1

    Акции говорите падают?

    Амазон, накатка патчей, просадка производительсти на 25 процентов оО
    Закупка нового железа и стоек, кто в плюсе? Сколько надо тому же амазону железа чтобы выровнять эту просадку?
    Да там такие цифры с нулями будут, что некоторые типы процессоров мы еще год можем не увидеть на наших рынках.


    1. interprise
      04.01.2018 22:24

      и покупать они будут конечно же intel. Это же так логично, до выхода исправленных процов МИНИМУМ полгода год.


      1. Goodkat
        04.01.2018 23:27

        Интересно, а как исправить Meltdown? Отменить кэширование при опережающем исполнении? Добавлять случайные задержки при обращению к кэшу и памяти? Сделать таймер неточным? Можно как-то переделать весь маппинг памяти не сломав весь существующий софт?


    1. MacIn
      04.01.2018 22:26

      Ну, это произойдет не сразу, кмк. Сначала, на панике, откатится вниз, а уже потом, когда дойдет до тотальной замены-апгрейда и пр., попрут продажи и котировки. Нет?


    1. willyd
      04.01.2018 23:02

      Ну еще не известно чем все кончится. Мало ли, что можно заложить в микрокод.
      И просадка на 25% для амазона через чур пессимистична. На реальных задачах в объемах ДЦ у aws будет меньше. Но для некоторых проектов, конечно, может сыграть эффект бутылочного горлышка.


    1. Alcpp
      05.01.2018 19:56

      Мало нам было дефицита видеокарт из-за майнеров, теперь будет дефицит процессоров.


  1. Asparagales
    04.01.2018 22:16

    Мне непонятны две вещи. Можно ли будет отключить этот патч и каким образом? Где хотя бы об этом можно будет узнать?
    Так и не понял, касается ли эта проблема только Intel или Intel и AMD? Будут ли выпущены патчи для смартфонов/планшетов и произойдет ли падение производительности у них? В случае, если архитектура процессора не x86 / x86-64?


    1. willyd
      04.01.2018 22:55

      spectreattack.com
      В линуксе отключить можно ключом nopti при загрузке.


    1. Kotofanchik
      05.01.2018 00:09

      To disable the mitigations and regain performance at the expense of security after applying the patch:

      reg add «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management» /v FeatureSettingsOverride /t REG_DWORD /d 3 /f

      reg add «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management» /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

      Get-SpeculationControlSettings вроде показывает что отключилось, тесты показывают возвращение производительности, правда разница в тестах на уровне погрешности ~1.5% туда сюда и до патча и после и после отключения в пропатченной винде.


    1. Tevssar
      05.01.2018 00:09

      Проблемы так-то две Meltdown — Intel и Spectre — Intel и AMD, но по AMD тут менее понятно, встречается информация типа «AMD и Intel уязвимы» и информация, что AMD уязвима только при включенном ebpf.


      1. Asparagales
        05.01.2018 00:43

        Уязвимости Meltdown подвержены все процессоры Intel выпускаемые с 1995 года, за исключением Intel Itanium и Intel Atom, выпущенных до 2013 года и ARM64 (Cortex-A15/A57/A72/A75).

        Уязвимости Spectre подвержены процессоры Intel, AMD (только при включенном eBPF в ядре) и ARM64 (Cortex-R7/R8, Cortex-A8/A9/A15/A17/A57/A72/A73/A75).

        Исправление проблемы Meltdown для ядра Linux выпущено в виде набора патчей KPTI. Исправление уязвимости Spectre в общем виде пока не выработано, частично предложено обновление микрокода и усиление безопасности отдельных приложений. Обновление для блокирования Meltdown уже выпущено для RHEL, CentOS и Fedora.

        www.opennet.ru/opennews/art.shtml?num=47856


        1. olartamonov
          05.01.2018 01:39

          AMD (только при включенном eBPF в ядре)


          И при выключенном тоже.

          eBPF — просто удобный способ демонстрации дырки, не более.


        1. phprus
          05.01.2018 15:03

          за исключением Intel Itanium

          Отличный повод воскресить платформу под флагом безопасности. Судя по новостям сейчас только у SPARC похоже нет этих дыр (или я не нашел упоминаний о них).


  1. SergeyMax
    04.01.2018 22:17

    Вот что-то есть.

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


  1. alygin
    04.01.2018 22:53
    +1

    Intel заявила (без подробностей), что нашла способ устранения обеих уязвимостей (и Meltdown и Spectre). Обновления уже, якобы, выпущены для большинства процессоров моложе пяти лет. Судя по всему, лечат комбинацией патчей ОС и прошивок процессоров.


    1. d-stream
      05.01.2018 02:16

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


      1. alygin
        05.01.2018 08:30

        Да, наверняка речь про них. Хотя все основные игроки утверждают, что влияние патчей на производительность практически не заметно для большинства пользователей, но призывают проверять это на своих нагрузках самостоятельно. Как это все сказывается на энергопотреблении, не говорят.


        1. olartamonov
          05.01.2018 12:46
          +1

          В пиар-отделах всех основных игроков сейчас за любое другое заявление просто молча выводят в коридор и расстреливают за углом.

          Паника среди пользователей — последнее, что им всем нужно.


          1. khim
            05.01.2018 14:31
            -1

            Ну, кроме шуток — это таки правда. Проседает (причём сильно-таки проседает, в несколько раз) операция вызова ядра системы. А дальше — зависит от нагрузки.

            Если у вас счётная задача (а большинство игрушек, скажем, сюда попадает), то замедление и под микроскопом не разглядеть.

            А если у вас там много-много IPC — то вполне можно и двукратное замедление получить…


  1. NKros
    05.01.2018 00:09

    Покупайте i13, там такой фигни не будет(плюс защита от майнинга в подарок)…


  1. sav6622
    05.01.2018 00:28

    Господа, не понимаю, в обсуждении не затрагивалось, не повлекут ли данные проблемы принудительного отключения Hyper-threading?


    1. Armleo
      05.01.2018 00:41

      Нет. Hyper-Threading тут не причем.


  1. perlestius
    05.01.2018 01:02

    Мне ещё в советские времена дед говорил, что спекуляция — это плохо.


    1. kirillaristov
      05.01.2018 04:28

      Отчасти поэтому советские времена и накрылись ;)


    1. olartamonov
      05.01.2018 12:47

      Плохо, но выгодно!


  1. divanikus
    05.01.2018 02:35

    Че пацаны, PS4 с XboxOne уже ломанули? Раз такое дело :)


  1. besitzeruf
    05.01.2018 03:15

    Ждите новые процессоры с улучшенной производительностю аж на 25%!!!


  1. zx80
    05.01.2018 07:09

    A как посещать даже проверенные сайты, если без JavaScript не работают практически все сайты?????


    1. Naglec
      05.01.2018 10:46

      С копма без ценной информации, как. Или купить на авито комп на Pentium MMX :)


      1. khim
        05.01.2018 14:32
        -1

        Или купить на авито комп на Pentium MMX :)
        Учтите, что Atom до 2013го года — это Pentium MMX и есть.

        У нас в семье есть такой… только на него ничего кроме XP не встаёт… а там других дыр — попой жуй, она ж не поддерживается давно.


  1. ALexhha
    05.01.2018 11:15

    MS уже начали накатывать обновления — azure.microsoft.com/en-us/blog/securing-azure-customers-from-cpu-vulnerability но по ходу очень неудачно


  1. perlestius
    05.01.2018 13:09

    Кстати, мне в декабре и на смартфон, и на SMART TV самсунговские прилетели апдейты во второй половине декабря. Причем для ТВ предыдущий апдейт на их сайте был аж от 2015-го года. Совпадение?.. :)


  1. Methos
    05.01.2018 14:52

    Через пяток лет найдут дыру, которую эти 5 лет спокойно хакеры эксплуатируют уже сейчас.

    Так что не расстраивайтесь.


  1. khacsam
    05.01.2018 19:56

    ББ не дремлет…


  1. Tarasovych
    05.01.2018 19:56

    Есть ли изменения в производительности для Ryzen (до и после обновления, OS Win10)? Может кто тесты находил.


    1. Naglec
      05.01.2018 20:59

      Для спектра нет патча — нечего тестировать.


  1. Haoose
    06.01.2018 02:28
    +1

    Об этом баге знали еще в 2010м…
    twitter.com/rootkovska/status/948997805158338560


    1. LeonidY
      06.01.2018 05:40

      Это кранты, это ЕЩЕ ОДИН баг. Поставить внутри guest VM последовательность спекулятивной загрузки карты памяти root-а (!) + чтения слова из этой памяти ==> в TLB будет лежать доступ в память root-а из guest-а.

      Если это еще работает (все-таки 7 лет прошло), то весь облачный сервис накрылся медным тазом, сбацать дырокол для тех процессоров — нефиг делать. Ох, заставят всех обновить процессоры, заставят.