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

Тогда 31-летний исследователь в области информационной безопасности и постдок в Грацском техническом университете проник в святая святых CPU и извлёк оттуда конфиденциальные сведения.



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

«Когда я увидел, как адреса веб-сайтов из Firefox, которые должны быть доступны только мне, были считаны из памяти написанной мной программой, это меня невероятно потрясло», — сказал Грасс в интервью, которое он дал Рейтер по электронной почте, описывая то, как ему удалось раскрыть конфиденциальные данные, которые должны были быть защищены.

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

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

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

Уязвимость, которая теперь называется Meltdown, была раскрыта в среду. Она влияет на большинство процессоров, произведённых Intel с 1995-го года.

Отдельно была найдена ещё одна «дыра», названная Spectre. Эта уязвимость так же делает доступной память ядра в большинстве компьютеров и мобильных устройств, работающих на процессорах, созданных Intel, AMD и ARM.

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

Intel сообщила о том, что она начала предоставлять обновления ПО и прошивок, позволяющие смягчить последствия проблемы. ARM также заявила, что работает, вместе с AMD и Intel, над соответствующими патчами.

Поиск решения проблемы


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

Команда из Граца в то время уже работала над инструментом для защиты систем от попыток украсть секретные данные из памяти ядра.

В документе, опубликованном в Июне прошлого года, они назвали его KAISER (Kernel Address Isolation to have Side-channels Effectively Removed).

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

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

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

Ответственное раскрытие


Только после того, как в декабре состоялась успешная попытка взлома исследователем собственного компьютера, стала очевидной важность более ранней работы команды из Граца. Оказалось, что KAISER обеспечивает эффективную защиту от уязвимости Meltdown.
Команда быстро связалась с Intel и узнала о том, что другие исследователи, отчасти, вдохновлённые материалом Фора, сделали похожие открытия.

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

По словам Грасса, ключевыми фигурами здесь были независимые исследователи Паул Кохер и его команда из компании Cyberus Technology, в то время как Янн Хорн из Google Project Zero пришёл к похожим выводам самостоятельно.

«Мы, в середине декабря, объединили усилия с командой Паула Кохера и с сотрудниками Cyberus Technology для работы над двумя основательными публикациями по Meltdown и Spectre», — сказал Грасс (источник).

Грасс даже не знал о той работе, которой занимался Хорн.

«Весьма впечатляет то, что Янн Хорн создал это всё самостоятельно», — сказал он. «Мы разработали очень похожую атаку, но в нашем случае речь идёт о команде из 10 исследователей». Группа исследователей сообщила, что патчи, направленные на защиту от уязвимости Meltdown, основанные на KAISER, были подготовлены для операционных систем от Microsoft и Apple, а так же для Linux.

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

Когда Грасса спросили о том, какая из двух уязвимостей опаснее, он ответил: «Проблема сегодняшнего дня — это Meltdown. Дальше придёт черёд Spectre. Эту уязвимость сложнее эксплуатировать, но и исправить её тоже сложнее. В результате, в долгосрочной перспективе, я сделал бы ставку на Spectre».

Уважаемые читатели! Как вы думаете, что изменится в мире информационных технологий после раскрытия уязвимостей Meltdown и Spectre?

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


  1. Zibx
    10.01.2018 11:20
    +2

    Скидка на виртуальные сервера?
    Статья же в том числе про них.


    1. gnomeby
      10.01.2018 20:09
      +2

      Стоит галочка «Отключить рекламу», а тут баннер. Долго думал…


  1. VioletGiraffe
    10.01.2018 11:21
    +6

    На слове «постдок» закрыл эту статью, и открыл оригинал.


    1. marsermd
      10.01.2018 17:36

      del


    1. 32seph
      10.01.2018 17:46
      +4

      Держи нас в курсе своих действий и дальше.


  1. bykvaadm
    10.01.2018 11:32
    +11

    то чувство, когда хочется пропиариться на волне, но нового написать уже нечего.


  1. foldr
    10.01.2018 11:36
    +3

    ARM также заявила, что работает, вместе с AMD и Intel, над соответствующими патчами.

    Я всегда думал, что ARM это архитектура процессоров… В оригинале хотя бы указывается полное название — ARM Holdings


  1. svitoglad
    10.01.2018 11:51

    Лучше бы он помог Microsoft правильно патчи писать. :)
    tproger.ru/news/microsoft-paused-meltdown-and-spectre-updates-for-amd


    1. biophreak
      10.01.2018 12:51
      +1

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


      After investigating, Microsoft determined that some AMD chipsets do not conform to the documentation previously provided to Microsoft to develop the Windows operating system mitigations to protect against the chipset vulnerabilities known as Spectre and Meltdown.


      1. DrPass
        10.01.2018 13:01

        Справедливости ради, независимо от корректности технической документации, работоспособность патча, изменяющего взаимодействие ОС с железом, надо было протестировать на всех поддерживаемых архитектурах перед тем, как его выпускать в продакшен. Благо, речь идёт не о мелком вендоре, а о Майкрософт. Их отдел Q&A вполне может это позволить.


        1. biophreak
          10.01.2018 18:37

          В Майкрософте уже года так 3 ни QA ни SDET отделов нету. Но это конечно не значит, что там не тестируют.
          Видимо в конкретном случае, просто торопились закрыть дырку и не протестировали во всех возможных конфигах?


      1. svitoglad
        10.01.2018 13:43

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


        1. sumanai
          11.01.2018 15:52
          +1

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


  1. Lsh
    10.01.2018 12:27

    Простите за офтопик, для Windows 7 уже выкатили патчи, или только для 10?


    1. darthslider
      10.01.2018 12:42
      +1

      KB4056898 for Windows 8.1
      KB4056897 for Windows 7 SP1


      1. Lsh
        10.01.2018 13:25

        Спасибо. Вот бы МС писала что там конкретно. А то «Обновления системы безопасности для графического компонента Microsoft, Windows Graphics, ядра Windows и сервера Windows SMB» не слишком информативно.


        1. darthslider
          10.01.2018 13:35

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


          1. iandarken
            10.01.2018 18:37

            Если «у вас его нет», MS считает, что эту запись сделает Windows Defender


        1. bisor
          10.01.2018 14:49

          Security updates to Windows SMB Server, Windows Kernel, Windows Datacenter Networking, and Windows Graphics.


  1. teecat
    10.01.2018 13:47

    Как вы думаете, что изменится в мире информационных технологий после раскрытия уязвимостей Meltdown и Spectre?

    Мне вот другой вопрос интересует — сколько процентов серверных систем в мире были обновлены (на уровне ПО) с целью закрытия уязвимостей в процессорах. С учетом того, что
    — по итогам пиара Wanna Cry — патчи от той уязвимости до сих пор все не поставили.
    — в случае установки патчей на серверные системы обещают снижение производительности

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


    1. KWEM
      10.01.2018 14:05

      Мне вот другой вопрос интересует — сколько процентов серверных систем в мире были обновлены (на уровне ПО) с целью закрытия уязвимостей в процессорах. С учетом того, что
      — по итогам пиара Wanna Cry — патчи от той уязвимости до сих пор все не поставили.
      — в случае установки патчей на серверные системы обещают снижение производительности
      www.epicgames.com/fortnite/forums/news/announcements/132642-epic-services-stability-update

      Даниэл Грасс
      www.youtube.com/watch?v=cAWmNp3Ukqk


  1. bisor
    10.01.2018 14:41

    «Скидка на виртуальные сервера» это тролинг? ))
    По сути, ребята (из Граца) проделали огромную работу.


  1. bro-dev
    10.01.2018 15:19

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


    1. cyber_genius
      10.01.2018 17:35

      Всё хуже, там даже джава скрипт на вебсайте сможет читать память.


      1. bro-dev
        10.01.2018 17:42
        -2

        Что значит сможет? если проблема уже есть сейчас давайте пример, имхо это ложь, так как как у браузерного js просто нету таких прав, то есть он не может никакую память читать вручную.


        1. cyber_genius
          10.01.2018 17:50
          +2

          В том то и дело, что даже без непривелигированный юзер может читать защищённую область памяти. www.tomshardware.com/news/meltdown-spectre-exploit-browser-javascript,36221.html


        1. MacIn
          10.01.2018 20:34

          Опять 25. Вся суть дыры в том, что можно читать защищенную память, наплевав на все права.


          1. bro-dev
            11.01.2018 04:26

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


            1. sumanai
              11.01.2018 15:55
              +1

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


              1. bro-dev
                11.01.2018 19:04

                это не «вручную читать память» это использовать апи js движка


                1. sumanai
                  11.01.2018 20:30

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


                  1. DrPass
                    12.01.2018 03:42

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


            1. uSide
              11.01.2018 16:02

              .


      1. Andronas
        10.01.2018 21:02

        Mozilla выпустила апдейт Firefox и в нем эти уязвимости как утверждают не эксплуатируются.


        1. popov654
          13.01.2018 03:03

          Firefox 42, Windows XP. Не работает. Firefox 47 portable — тоже не работает. Chrome 45 — тоже не работает. Процессор 2011-ого года, Core i5 2-ого поколения. ЧЯДНТ?


      1. popov654
        13.01.2018 03:01

        Не сможет. Я лично тот код запускал в Chrome и Firefox, причём не самых новых версий. Выводился только 0 на консоль всё время. Так что или это не на всех процессорах работает (у меня не 64-битная ОС), или это вообще фейк. Просьба подтвердить хоть кому-нибудь, что тот код реально что-то выводит кроме нуля, у кого получилось его заставить работать у себя :)


        1. sumanai
          13.01.2018 12:00

          У меня 64 битная ХР и 64 битный Basilisk на основе 55 Firefox, подскажете сайт для проверки?


          1. popov654
            14.01.2018 03:10

            react-etc.net/entry/exploiting-speculative-execution-meltdown-spectre-via-javascript
            react-etc.net/page/meltdown-spectre-javascript-exploit-example

            Исполнять нужно в консоли. Но я не очень понимаю, честно говоря, почему там именно XOR-ом получается результат (а во втором листинге и вовсе через побитное И), и говорит ли возвращённый ноль о том, что эксплойт не работает, или просто о том, что в этой области памяти у меня нули, ибо она ничем у меня не занята на 80 процентов и более.


            1. sumanai
              14.01.2018 05:28

              Да вообще какой-то не правильный код, ни одного цикла или других конструкций для перебора. У меня тоже сплошные нули, вставлял по сотне раз, получил сто нолей подряд. Память у меня почти вся занята под файловый кеш, вряд ли там много нолей, а у вас тем более, на 32 битной ОС особо не развернёшься, файловый кеш должен забиваться почти сразу.
              Видел ещё вот такой сайт, но и он показывает NOT VULNERABLE.


  1. Harrisson
    10.01.2018 15:44

    Объясните как будут эксплуатировать эти уязвимости. А то я во всех статьях вижу панику, а конструктива не вижу.


    1. cyber_genius
      10.01.2018 17:39

      С помощью низкоуровневых комманд, эксплоита пока нет (публичного), но некоторые уже пытаются https://github.com/paboldin/meltdown-exploit


  1. smarkelov
    10.01.2018 16:00

    А не могла ли это быть умышленная закладка? Просто ее нашли случайно.


    1. antter
      10.01.2018 16:05

      Имеет место быть теория, что «дыра» проделана намеренно


      1. xi-tauw
        10.01.2018 16:25

        Такая теория появляется чуть ли не на каждую найденную уязвимость.


    1. dr1v3
      10.01.2018 16:38

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


    1. mzinal
      10.01.2018 17:13

      Вряд ли. Похоже на эффект от независимых действий двух участников:

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


    1. zhenyat
      10.01.2018 17:52
      +1

      Слушайте, но это же не «дыра», а особенность работы железа. И эксплуатация этой «особенности» совсем не проста — первые публикации о «прозвонке» процессорного кэша попадались мне еще лет 5-6 назад…


  1. Geograph
    13.01.2018 11:23

    Крис Касперский писал об уязвимости процессоров Intel ещё в 2008 году и утверждал что уязвимость можно эксплуатировать через javascript в браузере. Пруфов, правда, он так и не предоставил.