Как исследователь взломал собственный компьютер и убедился в реальности самой серьёзной в истории уязвимости процессоров

https://www.reuters.com/article/us-cyber-intel-researcher/how-a-researcher-hacked-his-own-computer-and-found-worst-chip-flaw-idUSKBN1ET1ZR
  • Перевод
Даниэл Грасс почти не спал в ту ночь, когда он взломал собственный компьютер и подтвердил возможность эксплуатации уязвимости, которой подвержено большинство микропроцессоров, выпущенных за последние два десятилетия аппаратным гигантом 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?

RUVDS.com
926,00
RUVDS – хостинг VDS/VPS серверов
Поделиться публикацией

Комментарии 54

    +4
    Скидка на виртуальные сервера?
    Статья же в том числе про них.
      +3
      Стоит галочка «Отключить рекламу», а тут баннер. Долго думал…
      +3
      На слове «постдок» закрыл эту статью, и открыл оригинал.
        0

        del

          +5

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

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

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

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

                Согласно источнику, лучше бы он помог 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.
                  +3
                  Справедливости ради, независимо от корректности технической документации, работоспособность патча, изменяющего взаимодействие ОС с железом, надо было протестировать на всех поддерживаемых архитектурах перед тем, как его выпускать в продакшен. Благо, речь идёт не о мелком вендоре, а о Майкрософт. Их отдел Q&A вполне может это позволить.
                    0

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

                    +1
                    Непонятно только зачем патч для процессоров Интел ставится на систему с другими чипами.
                      +1
                      Пользователь может сменить матплату и процессор, и будет уязвимым до следующего обновления.
                      А вот активировать заплатку только на уязвимых ЦП не помешало бы.
                  0
                  Простите за офтопик, для Windows 7 уже выкатили патчи, или только для 10?
                    +1
                    KB4056898 for Windows 8.1
                    KB4056897 for Windows 7 SP1
                      0
                      Спасибо. Вот бы МС писала что там конкретно. А то «Обновления системы безопасности для графического компонента Microsoft, Windows Graphics, ядра Windows и сервера Windows SMB» не слишком информативно.
                        0
                        Это кумулятивные апдейты на самом деле.
                        Обратите внимание, кстати, там есть проверка наличия поддерживаемого антивируса, так что если апдейты не встают, то либо антивирус не поддерживается и поломает систему после установки обновления, либо антивирус поддерживается, но почему-то не сделал запись в реестр, либо у вас его нет и надо делать запись руками.
                          0
                          Если «у вас его нет», MS считает, что эту запись сделает Windows Defender
                          +1
                          Security updates to Windows SMB Server, Windows Kernel, Windows Datacenter Networking, and Windows Graphics.

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

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

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

                        Даниэл Грасс
                        www.youtube.com/watch?v=cAWmNp3Ukqk
                        0
                        «Скидка на виртуальные сервера» это тролинг? ))
                        По сути, ребята (из Граца) проделали огромную работу.
                          –1
                          Если выполнить вредоносный код он и так и так получит то что нужно. Для меня как для десктоп юзера ситуация не сильно изменилась, для разработчиков антивирусов да теперь будет сложнее или невозможно определить вирусы.
                            +2

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

                              –4
                              Что значит сможет? если проблема уже есть сейчас давайте пример, имхо это ложь, так как как у браузерного js просто нету таких прав, то есть он не может никакую память читать вручную.
                                +4
                                В том то и дело, что даже без непривелигированный юзер может читать защищённую область памяти. www.tomshardware.com/news/meltdown-spectre-exploit-browser-javascript,36221.html
                                  +1
                                  Опять 25. Вся суть дыры в том, что можно читать защищенную память, наплевав на все права.
                                    0
                                    Это понятно, но у браузера нету прав вообще вручную читать память, любую даже свою.
                                      +2
                                      И как же он бедный работает? Записал массив, а прочитать не можешь, прямо чёрная дыра.
                                        +1
                                        это не «вручную читать память» это использовать апи js движка
                                          0
                                          Сути не меняет, память читается, атака реализуется, хоть и с большим скрипом, который сделали ещё более ржавым в новых версиях браузеров.
                                            0
                                            Ну честно, я тоже в упор не могу понять, как можно на практике реализовать эту атаку на JS-движке? Каким образом, например, я могу заставить блок спекулятивного выполнения залезть в чужие страницы памяти из JS? Чтением несуществующего элемента массива? Нет, не могу. Это же не С++, тут все типы данных управляемые. Движок JS сам перед обращением к памяти проверит, не выходит ли индекс за границы массива, и в случае чего пошлёт скрипт лесом.
                                        0
                                        .
                                    0
                                    Mozilla выпустила апдейт Firefox и в нем эти уязвимости как утверждают не эксплуатируются.
                                      0
                                      Firefox 42, Windows XP. Не работает. Firefox 47 portable — тоже не работает. Chrome 45 — тоже не работает. Процессор 2011-ого года, Core i5 2-ого поколения. ЧЯДНТ?
                                      0
                                      Не сможет. Я лично тот код запускал в Chrome и Firefox, причём не самых новых версий. Выводился только 0 на консоль всё время. Так что или это не на всех процессорах работает (у меня не 64-битная ОС), или это вообще фейк. Просьба подтвердить хоть кому-нибудь, что тот код реально что-то выводит кроме нуля, у кого получилось его заставить работать у себя :)
                                        0
                                        У меня 64 битная ХР и 64 битный Basilisk на основе 55 Firefox, подскажете сайт для проверки?
                                          0
                                          react-etc.net/entry/exploiting-speculative-execution-meltdown-spectre-via-javascript
                                          react-etc.net/page/meltdown-spectre-javascript-exploit-example

                                          Исполнять нужно в консоли. Но я не очень понимаю, честно говоря, почему там именно XOR-ом получается результат (а во втором листинге и вовсе через побитное И), и говорит ли возвращённый ноль о том, что эксплойт не работает, или просто о том, что в этой области памяти у меня нули, ибо она ничем у меня не занята на 80 процентов и более.
                                            0
                                            Да вообще какой-то не правильный код, ни одного цикла или других конструкций для перебора. У меня тоже сплошные нули, вставлял по сотне раз, получил сто нолей подряд. Память у меня почти вся занята под файловый кеш, вряд ли там много нолей, а у вас тем более, на 32 битной ОС особо не развернёшься, файловый кеш должен забиваться почти сразу.
                                            Видел ещё вот такой сайт, но и он показывает NOT VULNERABLE.
                                              0
                                              Диспетчер показывает, что у меня при открытом Хроме с парой вкладок доступно 1870828 из 3636960. И судя по быстродействию, своп не задействован (иначе слышно было бы работу винта). Это примерно половина памяти свободно, я верно читаю показания?
                                              Цикл там как раз-таки есть. Я так понимаю, идея в том, что после окончания цикла i будет равно трём, и процессор закэширует данные по индексу 3 (хотя не имеет права). Но судя по тому, что в итоге получается ноль, у меня большие сомнения, что с JS то работает вообще.
                                                0
                                                Это примерно половина памяти свободно, я верно читаю показания?

                                                Неверно. В доступную память включены страницы файлового кеша, а так же грязные страницы, которые ещё не были очищены фоновым потоком обнуления страниц. Файловый кеш должен отображаться в диспетчере задач, а вот как посмотреть число грязных страниц без ковыряния в отладчике ядра, я не знаю.
                                                Просто поверьте, что современные системы забивают всю доступную оперативную память данными «про запас», и нулевых станиц там должно быть весьма мало. Даже у меня, на старушке ХР, которая не занимается этим принудительно, почти всегда вся свободная память забита кешем.
                                                Цикл там как раз-таки есть.

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

                                                    Потому что он лежит в памяти, и и при этом память, отведённая под него, доступна для программ.
                                                    Вы ведь про файл подкачки?

                                                    Нет конечно же, файловый кеш хранится только в ОП, скидывать его в подкачку не имеет смысла.
                                                    Если просуммировать нижние две строчки, получится верхняя, а это судя по объёму именно RAM

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

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

                                      0
                                      Имеет место быть теория, что «дыра» проделана намеренно
                                        0
                                        Такая теория появляется чуть ли не на каждую найденную уязвимость.
                                        +1
                                        По механизму работы на закладку не похоже, просто один из юзкейсов, который не продумали производители ЦП.
                                          0
                                          Вряд ли. Похоже на эффект от независимых действий двух участников:
                                          • чиподелов, которые пытаются поднять производительность процессоров в условиях невозможности увеличения частоты, отсюда гигантский кэш и спекулятивное выполнение инструкций;
                                          • разработчиков операционных систем, которые не слишком желают возиться с «излишествами» навроде микроядерной архитектуры.

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

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

                                              0

                                              Касперски

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

                                            Самое читаемое