Тогда 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)
bykvaadm
10.01.2018 11:32+11то чувство, когда хочется пропиариться на волне, но нового написать уже нечего.
foldr
10.01.2018 11:36+3ARM также заявила, что работает, вместе с AMD и Intel, над соответствующими патчами.
Я всегда думал, что ARM это архитектура процессоров… В оригинале хотя бы указывается полное название — ARM Holdings
svitoglad
10.01.2018 11:51Лучше бы он помог Microsoft правильно патчи писать. :)
tproger.ru/news/microsoft-paused-meltdown-and-spectre-updates-for-amdbiophreak
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.
DrPass
10.01.2018 13:01Справедливости ради, независимо от корректности технической документации, работоспособность патча, изменяющего взаимодействие ОС с железом, надо было протестировать на всех поддерживаемых архитектурах перед тем, как его выпускать в продакшен. Благо, речь идёт не о мелком вендоре, а о Майкрософт. Их отдел Q&A вполне может это позволить.
biophreak
10.01.2018 18:37В Майкрософте уже года так 3 ни QA ни SDET отделов нету. Но это конечно не значит, что там не тестируют.
Видимо в конкретном случае, просто торопились закрыть дырку и не протестировали во всех возможных конфигах?
Lsh
10.01.2018 12:27Простите за офтопик, для Windows 7 уже выкатили патчи, или только для 10?
darthslider
10.01.2018 12:42+1KB4056898 for Windows 8.1
KB4056897 for Windows 7 SP1Lsh
10.01.2018 13:25Спасибо. Вот бы МС писала что там конкретно. А то «Обновления системы безопасности для графического компонента Microsoft, Windows Graphics, ядра Windows и сервера Windows SMB» не слишком информативно.
darthslider
10.01.2018 13:35Это кумулятивные апдейты на самом деле.
Обратите внимание, кстати, там есть проверка наличия поддерживаемого антивируса, так что если апдейты не встают, то либо антивирус не поддерживается и поломает систему после установки обновления, либо антивирус поддерживается, но почему-то не сделал запись в реестр, либо у вас его нет и надо делать запись руками.
bisor
10.01.2018 14:49Security updates to Windows SMB Server, Windows Kernel, Windows Datacenter Networking, and Windows Graphics.
teecat
10.01.2018 13:47Как вы думаете, что изменится в мире информационных технологий после раскрытия уязвимостей Meltdown и Spectre?
Мне вот другой вопрос интересует — сколько процентов серверных систем в мире были обновлены (на уровне ПО) с целью закрытия уязвимостей в процессорах. С учетом того, что
— по итогам пиара Wanna Cry — патчи от той уязвимости до сих пор все не поставили.
— в случае установки патчей на серверные системы обещают снижение производительности
Собственно почему я в скепсисе. Поскольку по идее патчи влияют на производительность, то по идее к вендорам должны идти вопросы о том, не изменились ли системные требования для мощных конфигураций. Так вот — не вижу я их в значимых количествахKWEM
10.01.2018 14:05Мне вот другой вопрос интересует — сколько процентов серверных систем в мире были обновлены (на уровне ПО) с целью закрытия уязвимостей в процессорах. С учетом того, что
www.epicgames.com/fortnite/forums/news/announcements/132642-epic-services-stability-update
— по итогам пиара Wanna Cry — патчи от той уязвимости до сих пор все не поставили.
— в случае установки патчей на серверные системы обещают снижение производительности
Даниэл Грасс
www.youtube.com/watch?v=cAWmNp3Ukqk
bisor
10.01.2018 14:41«Скидка на виртуальные сервера» это тролинг? ))
По сути, ребята (из Граца) проделали огромную работу.
bro-dev
10.01.2018 15:19Если выполнить вредоносный код он и так и так получит то что нужно. Для меня как для десктоп юзера ситуация не сильно изменилась, для разработчиков антивирусов да теперь будет сложнее или невозможно определить вирусы.
cyber_genius
10.01.2018 17:35Всё хуже, там даже джава скрипт на вебсайте сможет читать память.
bro-dev
10.01.2018 17:42-2Что значит сможет? если проблема уже есть сейчас давайте пример, имхо это ложь, так как как у браузерного js просто нету таких прав, то есть он не может никакую память читать вручную.
cyber_genius
10.01.2018 17:50+2В том то и дело, что даже без непривелигированный юзер может читать защищённую область памяти. www.tomshardware.com/news/meltdown-spectre-exploit-browser-javascript,36221.html
MacIn
10.01.2018 20:34Опять 25. Вся суть дыры в том, что можно читать защищенную память, наплевав на все права.
bro-dev
11.01.2018 04:26Это понятно, но у браузера нету прав вообще вручную читать память, любую даже свою.
sumanai
11.01.2018 15:55+1И как же он бедный работает? Записал массив, а прочитать не можешь, прямо чёрная дыра.
bro-dev
11.01.2018 19:04это не «вручную читать память» это использовать апи js движка
sumanai
11.01.2018 20:30Сути не меняет, память читается, атака реализуется, хоть и с большим скрипом, который сделали ещё более ржавым в новых версиях браузеров.
DrPass
12.01.2018 03:42Ну честно, я тоже в упор не могу понять, как можно на практике реализовать эту атаку на JS-движке? Каким образом, например, я могу заставить блок спекулятивного выполнения залезть в чужие страницы памяти из JS? Чтением несуществующего элемента массива? Нет, не могу. Это же не С++, тут все типы данных управляемые. Движок JS сам перед обращением к памяти проверит, не выходит ли индекс за границы массива, и в случае чего пошлёт скрипт лесом.
Andronas
10.01.2018 21:02Mozilla выпустила апдейт Firefox и в нем эти уязвимости как утверждают не эксплуатируются.
popov654
13.01.2018 03:03Firefox 42, Windows XP. Не работает. Firefox 47 portable — тоже не работает. Chrome 45 — тоже не работает. Процессор 2011-ого года, Core i5 2-ого поколения. ЧЯДНТ?
popov654
13.01.2018 03:01Не сможет. Я лично тот код запускал в Chrome и Firefox, причём не самых новых версий. Выводился только 0 на консоль всё время. Так что или это не на всех процессорах работает (у меня не 64-битная ОС), или это вообще фейк. Просьба подтвердить хоть кому-нибудь, что тот код реально что-то выводит кроме нуля, у кого получилось его заставить работать у себя :)
sumanai
13.01.2018 12:00У меня 64 битная ХР и 64 битный Basilisk на основе 55 Firefox, подскажете сайт для проверки?
popov654
14.01.2018 03:10react-etc.net/entry/exploiting-speculative-execution-meltdown-spectre-via-javascript
react-etc.net/page/meltdown-spectre-javascript-exploit-example
Исполнять нужно в консоли. Но я не очень понимаю, честно говоря, почему там именно XOR-ом получается результат (а во втором листинге и вовсе через побитное И), и говорит ли возвращённый ноль о том, что эксплойт не работает, или просто о том, что в этой области памяти у меня нули, ибо она ничем у меня не занята на 80 процентов и более.sumanai
14.01.2018 05:28Да вообще какой-то не правильный код, ни одного цикла или других конструкций для перебора. У меня тоже сплошные нули, вставлял по сотне раз, получил сто нолей подряд. Память у меня почти вся занята под файловый кеш, вряд ли там много нолей, а у вас тем более, на 32 битной ОС особо не развернёшься, файловый кеш должен забиваться почти сразу.
Видел ещё вот такой сайт, но и он показывает NOT VULNERABLE.
Harrisson
10.01.2018 15:44Объясните как будут эксплуатировать эти уязвимости. А то я во всех статьях вижу панику, а конструктива не вижу.
cyber_genius
10.01.2018 17:39С помощью низкоуровневых комманд, эксплоита пока нет (публичного), но некоторые уже пытаются https://github.com/paboldin/meltdown-exploit
smarkelov
10.01.2018 16:00А не могла ли это быть умышленная закладка? Просто ее нашли случайно.
dr1v3
10.01.2018 16:38По механизму работы на закладку не похоже, просто один из юзкейсов, который не продумали производители ЦП.
mzinal
10.01.2018 17:13Вряд ли. Похоже на эффект от независимых действий двух участников:
- чиподелов, которые пытаются поднять производительность процессоров в условиях невозможности увеличения частоты, отсюда гигантский кэш и спекулятивное выполнение инструкций;
- разработчиков операционных систем, которые не слишком желают возиться с «излишествами» навроде микроядерной архитектуры.
zhenyat
10.01.2018 17:52+1Слушайте, но это же не «дыра», а особенность работы железа. И эксплуатация этой «особенности» совсем не проста — первые публикации о «прозвонке» процессорного кэша попадались мне еще лет 5-6 назад…
Geograph
13.01.2018 11:23Крис Касперский писал об уязвимости процессоров Intel ещё в 2008 году и утверждал что уязвимость можно эксплуатировать через javascript в браузере. Пруфов, правда, он так и не предоставил.
Zibx
Скидка на виртуальные сервера?
Статья же в том числе про них.
gnomeby
Стоит галочка «Отключить рекламу», а тут баннер. Долго думал…