Технические подробности. уязвимость meltdown

Чего мы боялись

Программисты, которые понимают как устроена операционная система и имеют представление о низкоуровневой работе macOS, Windows и Linux, понимали, что беспокойство вокруг уязвимостей Meltdown и Spectre небезпочвенно.

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

Другими словам, мы просто привыкли к тому, что наши ноутбуки и ПК работают быстрее, чем должны на самом деле. Увы, производители чипов не позволяют пользователю выбирать: безопаснее, но медленнее или с уязвимостями, но производительнее. Все решили за нас.

Уязвимость Meltdown Apple уже залатала в предыдущем апдейте macOS 10.13.2.

Теперь очередь дошла до Spectre. И именно этого обновления боялись владельцы ноутбуков и компьютеров.

На прошлой неделе мы уже сравнивали производительность MacBook до и после обновления на патч Meltdown. Теперь же мы провели повторное тестирование систем, чтобы выяснить, упала ли производительность MacBook после устранения уязвимости Spectre.

Что делать?

  1. Убедиться, что вы используете актуальную версию операционной системы для своего устройства, будь то Windows, iOS, Android.
  2. Убедиться, что у вас включена установка обновлений безопасности. В случае с мобильными устройствами, убедиться, что производитель вообще предоставляет такие обновления. Большинство недорогих телефонов и планшетов перестают поддерживаться сразу после выпуска. Они в зоне наибольшего риска.
  3. По мере появления новых версий прошивок, обновлений BIOS незамедлительно их установить.
  4. Обновить антивирусное ПО на компьютере (в случае появления вредоносного ПО антивирус хотя бы узнает о его существовании и постарается помешать его работе на вашем устройстве).
  5. Обновить веб-браузер и следить за актуальностью его версии.

Какие процессоры уязвимы Meltdown?

Данная проблема характерна не только для процессоров Intel, но и других тоже. Например, Apple заявила, что используемые ими процессоры (ARM) также подвержены этой уязвимости.

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

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

Узнайте быстро и с комфортом, касается ли вас эта проблема

В то время, как Spectre Browser Checker и Ashampoo Spectre Meltdown CPU Checker производят одинаково хорошее впечатление и очень быстро вносят ясность в вопрос о том, можно ли каким-либо способом реализовать один из методов эксплуатации уязвимости в вашей системе, Smartphone Security Check кажется нам скорее более слабым инструментом.

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

2017: Ошибки в процессорах

В нескольких сериях процессоров Intel выявлена ошибка, приводящая к «падению» систем под управлением Windows и Linux. Проблема затрагивает процессоры серии Kaby Lake, Skylake, Xeon v5, Xeon v6 и некоторые модели процессоров Pentium и Core X v6.

Исследователи фирмы F-Secure выявили серьезную проблему с технологией Intel Active Management Technology, благодаря которой злоумышленники могут обходить локальные средства авторизации на ноутбуках на базе процессоров Intel. Эксперты отмечают, что для эксплуатации этой уязвимости достаточно полминуты и никаких специализированных знаний не потребуется. Подробнее об инциденте здесь

Предыдущая попытка

CNews писал, что в марте 2019 г. «Модуль» выполнил контракт с Минпромторга на разработку нового нейрочипа NM6408. Тогда же было запущено его серийное производство в Тайване. Этот 21-ядерный чип был спроектирован по устаревшей 28-нанометровой технологии и реализован как вычислительный ускоритель для серверов. Его пиковая производительность находится на уровне 512 ГФЛОПС.

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

Нейрочип NM6408

Контракт с Минпромторгом «Модуль» подписал в марте 2014 г. Крайний исполнения сделки был назначен на 26 декабря 2017 г. Сумма контракта составила 480 млн руб.

«ОКР был сдан вовремя, — утверждают разработчики. — В течение 2018 г. шло освоение серийного производства: разрабатывалась инструментальная плата, проводилось тестирование, писался соответствующий софт для работы на процессоре и т. д.».

Немного о создателе архитектуры NeuroMatrix

По данным ЕГРЮЛ, НТЦ «Модуль» был зарегистрирован в Москве 26 августа 1992 г. В июле 2020 г. CNews писал, что в базе «Контур.фокуса» предполагаемыми учредителями без конкретизации долей указаны НИИ радиоприборостроения и межгосударственная акционерная корпорация «Вымпел», а также Михаил Яфраков, Hиколай Шабурин, Тамара Чугунова, Александр Трухманов, Владимир Петросов, Светлана Кузнецова, Марина Данилова, Юрий Борисов и Людмила Ефанова.

Полный тезка Юрия Борисова с мая 2018 г. является заместителем главы Правительства России. С 1998 по 2004 гг. он был гендиректором «Модуля». Затем в Федеральном агентстве по промышленности с 2004 по 2008 гг. занимал должности начальника управления радиоэлектронной промышленности и систем управления, заместителя руководителя. С июля 2008 г. по март 2011 г. работал заместителем Министра промышленности и торговли. С марта 2011 г. — первым заместителем председателя Военно-промышленной комиссии при Правительстве. 15 ноября 2012 г. был назначен заместителем Министра обороны.

На 9 ноября 2021 г. Юрий Борисов по-прежнему числился в списке учредителей «Модуля».

Какие процессоры и устройства подвержены?

Многие современные, в том числе:

  • Процессоры компании Intel всех серий кроме Itanium и Atom, выпускавшиеся с 1995 года. Процессоры Atom новых поколений, выпущенные с 2013 года.
  • Процессоры компании AMD последних поколений.
  • Процессоры ARM серий Cortex-A15, A-57, A-72, A-75 и производные от них.
  • Процессоры, создаваемые компанией Apple и использующиеся в смартфонах iPhone, а также все компьютеры Mac, построенные на процессорах Intel.
  • Процессоры серий IBM Power 7, 8, 9.

Важно учитывать, что атаки типа Meltdown пока удалось успешно провести только на процессорах Intel, а атакам типа Spectre подвержены все вышеуказанные системы

Почему проблему приписывают процессорам Intel

К выводу об аппаратной природе описанной выше ошибки одного из участников обсуждения под псевдонимом Adam Ierymenko подтолкнули результаты проведенного им эксперимента. В его рамках среда CLion была запущена в гостевой операционной системе на базе ядра Linux, которая, в свою очередь, выполнялась в виртуальной машине Parallels на хостовой macOS. Другими словами, программа CLion была изолирована внутри своего рода «песочницы», ее «крах», по логике экспериментатора, не смог бы спровоцировать сбой macOS. Однако на практике все произошло вопреки ожиданиям программиста.

«JVM делает что-то, что активизирует некий баг в процессорах Ice Lake, возможно, связанный с исправлениями Spectre/Meltdown и гипертрейдингом», – отметил Adam Ierymenko в одном из своих сообщений.

По его мнению, ошибка, если она действительно существует, может представлять серьезную угрозу, причем не столько для программистов, предпочитающих ПО Jetbrains, сколько, к примеру, для провайдеров облачных сервисов вроде Amazon Web Services, использующих технологии виртуализации. Ведь злоумышленники, изучив проблему, в теории могут подготовить эксплойт, который позволит прерывать работу физических серверов провайдера. Стоит отметить, что продажи серверных процессоров Intel Ice Lake еще не начались. Их старт, как ожидается, состоится до конца 2020 г.

По сообщению пользователей, столкнувшихся с данной проблемой, смена оригинального набора разработчика Java (JDK, Java Development Kit) компании Oracle на свободную реализацию OpenJDK не приносит надежного положительного результата. Попытка подобрать универсальные параметры запуска JVM, которые подошли бы пользователям всех «проблемных» разработок Jetbrains, также пока не увенчалась успехом.

Обновления:

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

Многие СМИ пишут, что Intel намеренно скрыла обнаружение недостатков безопасности чипов Meltdown и Specter от должностных лиц кибербезопасности США. Intel «нарушила законы о ценных бумагах». Глава Intel Брайан Кржанич продал принадлежавший ему значительный пакет акций компании, зная об обнаруженной критической уязвимости процессоров ее производства, пишет Business Insider. То есть у них был еще один мотив для сокрытия информации об уязвимостях в процессорах. Узкий круг лиц успел продать акции Intel по выгодной цене. После обнародования уязвимостей Meltdown и Specter стоимость акций начала снижаться. Чтобы такого не повторилось в будущем комиссия по ценным бумагам и биржам США (SEC) обновила свод правил, где теперь компании будут должны своевременно предоставлять информацию о киберугрозах.

Как обнаружили Meltdown?

Информация об этих уязвимостях появилась в первой половине 2017 года. О ней сообщила элитная команда хакеров Google Zero, которой руководил Ян Хорн.

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

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

1 июня он сообщил производителям чипсетов о своей находке. Через неделю он обнаружил Meltdown и сообщил об этом в Intel.

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

Официальное признание уязвимости было запланирована на 9 января, но британское издание The rochester опубликовали 3 января большую статью, где заподозрили наличие серьезной проблемы с процессорами Intel в операционной системе Линукс.

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

Новогодний переполох с уязвимостями в процессорах связан с утечкой информации из коммитов кода. Поэтому 4 января было известно и о Meltdown, и о Spectre. Из-за этого все поперепутали и начали поднимать панику, а доблестные сми в этом активно помогали.

Как защититься от Meltdown и Spectre в Linux

Разработчики Linux очень сильно потрудились над решением проблемы и эта работа все еще продолжается. Версия ядра 4.14.2 содержит все доступные на данный момент исправления. Через несколько дней выйдет версия 4.14.13 с дополнительными исправлениями багов. Патчи исправлений также были добавлены для стабильных версий ядра 4.4 и 4.9, но эти патчи очень сильно отличаются оттого, что есть в 4.14 и 4.15 и закрывают намного меньше проблем.

Если вы используете Linux с более старым ядром, то патчей для вас нет и не будет. Грег Кроах-Хартман сказал что отсутствие исправлений Meltdown настолько незначительно по сравнению с другими проблемами в этих ядрах, что выпускать его бессмысленно. Если вы используете процессор ARM64 то патчей пока нет, но они будут доступны в ядре 4.15 через несколько недель. Для ARM исправления будут бэкпортированы в ветки 3.18, 4.4 и 4.9. Все что было написано выше — решает уязвимость Meltdown (CVE-2017-5754).

Spectre — это совсем другая история. Универсальных патчей для исправления Spectre пока нет. Это объясняется тем, что все разработчики ядра работали над решением более серьезной проблемы — Meltdown. А также у разработчиков было недостаточно информации о том, что представляет из себя эта уязвимость. Разработчикам потребуется несколько недель чтобы решить эти проблемы. Все усложняется тем, что здесь недостаточно применить одно исправление на уровне ядра, нужно вносить изменения в каждое приложение отдельно. И что-то мне подсказывать что разработчики многих продуктов просто забьют на все это.

Если вы используете Linux не на x86 или ARM, то будьте очень осторожны. Для других платформ патчей пока нет и не предвидеться. Известно что уязвимы не только чипы Intel и AMD, но и Power 8, Power 9, System z и SPARC.

Что касается дистрибутивов, то Red Hat, CentOS, Ubuntu, Debian, ArchLinux, LinuxMint, OpenSUSE и другие уже выпустили патчи для защиты от Meltdown. Вы можете уже сейчас обновить систему или хотя бы ядро и быть спокойным по поводу этой атаки.

И не забудьте перезагрузить систему после обновления. Со Spectre все намного сложнее. Изменения на уровне ядра, снижающие вероятность атаки тоже уже есть в большинстве дистрибутивов, так что желательно обновиться. Что касается приложений, то разработчики и мэйнтейнеры работают над исправлениями. За исправлением meltdown и spectre Ubuntu вы можете следить на этих страницах CVE-2017-5753  и CVE-2017-5715. На данный момент Firefox 57.0.4 уже исправлен, а чтобы включить защиту в Chromium необходимо открыть вкладку chrome://flags и включить параметр «Strict site isolation»:

Далее, еще можно обновить видео драйвер NVIDIA до версии 384.111. Это пока что все, что доступно для защиты.

Абстрактный пример

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

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

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

Таким образом мы можем передать данных из состояния исполнения вне очереди, которой исполняет инструкции в привилегированном режиме, в пользовательский процесс атакующего.
Далее основываясь на том, что доступ к данным уже находящемуся в кэше меньше, чем время за которое процессор откатит действие исполненное вне очереди, атакующий читает значение части памяти ядра находящегося в кэше процессора. Иногда попытка чтения заканчиваеться провалом т.к. процессор успевает сбросить конвейер исполнения-вне-очереди перед тем, как тот прочитает данные (0.003%) и позволяет читать данные на скорости 503KB/s на i7 6700K.

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

2016: «Дыра» в чипсетах х86, дающая доступ к ОЗУ и отправке данных через Интернет

17 июня 2016 года стало известно о наличии скрытой уязвимости в компьютерах с процессорами Intel x86.
Тысячи ПК с процессорами Intel содержат скрытый механизм, деятельность которого нельзя проверить .

Эта уязвимость способна обеспечить доступ к ОЗУ и отправку данных через интернет, минуя любые файрволы. Пользователям осталось только надеяться на порядочность Intel, которая реализовала эту функцию, и верить в неведение злоумышленников.

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

Проблема в чипсетах Intel нескольких последних поколений. Она — микроконтроллер, действующий отдельно от центрального процессора, называется Intel Management Engine (Intel ME). Некоторые зарубежные издания охарактеризовали этот компонент «огромной дырой» (enormous flaw), учитывая возможности, которые он способен предложить злоумышленникам.

Intel ME — отдельный микрокомпьютер, управляющий центральным процессором (ЦП). Он работает под управлением собственной микропрограммы независимо от ЦП и способен продолжать функционировать даже если система находится в «ждущем режиме» — когда электропитание подается только на ОЗУ.

Контроллер Intel Management Engine, (2016)

В некоторых чипсетах Intel ME служит для реализации технологии Intel Active Management Technology (AMT), позволяющей системным администраторам дистанционно управлять персональными компьютерами. Для этой цели микроконтроллер напрямую подключен к оперативной памяти и может получать доступ к любой ее области без ведома операционной системы. Микроконтроллер обладает собственным сервером TCP/IP и может обмениваться сетевыми пакетами через сетевой адаптер компьютера с удаленным сервером, минуя любые установленные на компьютере брандмауэры.

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

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

Безопасность микроконтроллера основана на принципе «безопасность через неясность». То есть, его нельзя скомпрометировать, потому что никто (кроме Intel) не знает, как он устроен. При этом устройство обладает практически безграничными неконтролируемыми правами.

Несмотря на то, что микропрограмма защищена 2048-битным ключом шифрования RSA, исследователи смогли взломать ранние версии чипсетов с микроконтроллером Intel ME и получить частичный контроль над встроенным программным обеспечением.
Дэмиен Заммит (Damien Zammit), независимый исследователь и разработчик

Сомнительная затея

Участники рынка не верят в новую затею Минпромторга по созданию конкурента детищу Nvidia. Как сообщил изданию гендиректор «Байкал электроникс» Андрей Евдокимов, в настоящее время Nvidia удерживает в пределах 80% рынка нейропроцессоров, притом как мирового, так и российского.

Топ-менеджер неназванного крупного производителя электроники заявил изданию, что «Nvidia, с решениями которой собирается конкурировать “Модуль”, обладает развитой софтверной инфраструктурой». «Ценность Xavier в том, что у него есть софтверная экосистема, которая позволяет настраивать под потребителя робототехнические решения на основе ИИ», – отметил он, добавив, что «параллельно с разработкой самой системы нужны гигантские инвестиции в программное обеспечение под нее, которых пока нет».

Telegram-канал High Tech Low Life подчеркивает, что у Nvidia давно налажены массовое производство Xavier и каналы его распространения. В связи с этим пока неясно, как «Модуль» собирается конкурировать с американским техногигантом.

«Впрочем, планы у компании серьезные. Говорят, что “Модуль” планирует использовать протекционистскую политику вице-премьера Юрия Борисова и Минпромторга, чтобы постепенно вытеснить Nvidia из Российских ведомств и госкомпаний», – пишет High Tech Low Life.

И самое интересное.

Про эти уязвимости компании знали еще в 2017 году, но по какой-то причине все молчали. К примеру, в macOS версии 10.13.2 Apple закрыла уязвимость Meltdown ещё до нового года, а дистрибутивы Linux начали получать заплатки в декабре 2017-го. Нам еще предстоит узнать, что там с уязвимостью iOS и мобильных процессоров Apple, так что наступает очень интересное время. Интересное и опасное.

Издание Business Insider заподозрила главу компании Intel в продаже значительной доли акций компании на фоне информационных поводов относительно уязвимостей. Брайан Кржанич выручил 24 миллиона долларов продав почти все акции, которые ему принадлежали. В Intel отрицают какие-либо связи с текущей проблемой и сливом акций, хотя на момент сделки Intel уже знали про уязвимость, так как Google предоставила им данные своих исследований ещё в июне месяце, тем самым дав время производителям на исправление ситуации.

Как видим, во всей истории Google выступает в роли Д’артаньяна, и уязвимость обнаружили, и утверждают, что сделали всё возможное дабы обезопасить пользователей по всему миру. Amazon и Microsoft уже готовят отчёты о проделанной работе, нам же остается ждать, чем ответит Apple на фоне собственной проблемы с замедлением процессов в устройствах со старыми аккумуляторами.

Об уязвимостях

Да, их несколько. И известны они минимум с лета 2017 года. Проблему раскопала команда аналитиков безопасности Project Zero компании Google, после чего были уведомлены производители процессоров. Далее к теме (опять же, без огласки общественности) подключились разработчики операционных систем.

По сообщению того же Google, эти данные должны были обнародовать 9 января. Как же о них стало известно ранее запланированной даты?

СМИ эту теорию радостно поддержали, а компаниям пришлось обнародовать имеющуюся информацию.

Первые две уязвимости под общим названием Spectre рассматривать нет смысла. Нужно отметить, что им подвержены почти все современные процессоры (и от AMD тоже), но вероятность выполнить подобные атаки, по крайней мере пока, стремится к нулю.

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

Самая скандальная кибератака российских хакеров

Когда: май 2020 года.

Кого или что атаковали: Агентство национальной безопасности США.

Что произошло:

Хакеры попытались взломать почтовые серверы АНБ . Злоумышленники использовали уязвимость в агенте пересылки сообщений Exim, обнаруженную в июне 2019 года. Она позволяет преступнику отправлять вредоносное письмо на сервер и сразу же получать возможность удаленно запускать там же свой код.

АНБ обвинила в атаке хакерскую группировку Sandworm (она же — Telebots, Voodoo Bear, Iron Viking и BlackEnergy), связанную с Россией — ту самую, которая предположительно запустила вирус NotPetya. Ее же Минюст США позже обвинил в причастности к политическим событиям в Грузии и на Украине, а также во вмешательстве в выборы во Франции и атаке на компьютерную сеть Зимних Олимпийских игр в Пхенчхане в 2018 году .

Кибератака на звезд

В 2014 году, в результате нескольких кибератак, хакеры получили доступ к фото и видео знаменитостей, которые хранились в облаке iCloud. Многие из них — включая интимные — попали в сеть: их опубликовали на ресурсе 4chan. В числе пострадавших оказались Ким Кардашьян, Аврил Лавин, Кейли Куоко, Дженнифер Лоуренс, Кирстен Данст, Рианна, Скарлетт Йоханссон, Вайнона Райдер.

Ролик блогера Wylsacom об утечках 2014 года

Некоторые поспешили заявить, что фото и видео поддельные:

Кибератаки могут убивать?

К сожалению, да. В 2015 году хакеры взломали сайт Ashley Madison , предназначенный для знакомств замужних женщин и женатых мужчин. В результате атаки утекли данные 40 млн пользователей. Некоторым из них начали рассылать угрозы с требованием выкупа в $1 тыс. Некоторые из пострадавших испугались, что их супруг узнает об измене, и покончили с собой.

Второй случай произошел в сентябре 2020 года. Злоумышленники атаковали ИТ-систему университетской клиники в Дюссельдорфе. В результате 30 серверов и все подключенные устройства — в том числе аппараты жизнеобеспечения — на некоторое время вышли из строя. Этого оказалось достаточно, чтобы одна из пациенток скончалась . Полиция завела уголовное дело по факту убийства. Правда, позже в одном из изданий появилось опровержение: якобы смерть пациентки не была связана с кибератакой .

Кто сообщил об уязвимости в процессорах?

Дрезденский исследователь Томас Прешер, который тестировал метод Андерса Фога, тоже обнаружил уязвимость Meltdown. Разница, с которой они сообщили об имеющейся проблеме в Intel, составила всего несколько дней.

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

Российский хакер Крис Касперский еще в июле 2008 года объявил, что нашел критическую уязвимость в процессорах Intel, для запуска которой необходимо только отправить скрипт на Яваскрипт или же TCP-IP пакет. Он хотел рассказать о ней на конференции, которая должна была проходить в Азии, но разбился, прыгая с парашютом. Его мозг спасти не удалось. В феврале его отключили от аппарата искусственного жизнеобеспечения.

Нельзя с уверенностью сказать, что именно хотел рассказать хакер Крис Касперский. Обнаруженная им уязвимость похожа на Spectre, так как он упомянул яваскрипт. Основные возможности эксплуатирования уязвимости Spectre реализуются с помощью яваскрипта.

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

Уязвимости Meltdown и Spectre

Давайте попытаемся разобраться в чем же состоит суть уязвимости Meltdown и Spectre и чего нам стоит бояться. Действительно ли все так страшно, как везде пишут. Сначала нужно понять как работают процессоры. Процессору часто нужно извлекать значения из оперативной памяти или ожидать ввода от пользователя, а это занимает время. Во всех современных процессорах есть блок прогнозирования, который пытается определить какая инструкция будет выполнена дальше. И процессор выполняет эту инструкцию, сохраняя данные в кэше. Давайте рассмотрим небольшой пример. У нас есть переменная с именем «данные», и мы пытаемся прочитать в переменную «данные» какую-либо информацию, к которой у нас нет доступа, например, из ядра системы. Для повышения производительности виртуальная память ядра находится в том же адресном пространстве, что и память процесса:

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

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

Но проблема в том, что в кэше данные все равно остаются. И программе остается только извлечь их оттуда. Что она имеет полное право сделать не вызвав никаких ошибок доступа, останется только узнать по какому адресу расположены данные. А это можно сделать просто замерив время доступа к адресам. Это все может быть реализовано даже на jаvascript, что делает проблему очень глобальной.

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

Это что касается Meltdown, которой присвоен номер CVE-2017-5754, уязвимость Spectre, обнаруженная в процессорах AMD имеет похожий принцип работы. Ей присвоены два идентификатора: CVE-2017-5753 и CVE-2017-5715. Там тоже процессор предугадывает какая инструкция будет выполнена и сохраняет результат в кэше. Но Spectre позволяет только обойти ограничение на доступ к памяти других приложений, к ядру системы доступа нет и реализовать ее сложнее. Этой уязвимости подвержено намного больше процессорных архитектур, не только Intel и AMD, но и ARM. Защититься от Spectre невозможно просто добавив изоляцию, для этого необходимо чтобы каждое приложение само защищало свою память или постоянно сбрасывать кэш. Что, во-первых, требует перекомплирования всех приложений, а во-вторых, снижает производительность. Универсального патча от Spectre пока не существует. Более подробная информация есть на Geektimes.

Как проверить уязвимость системы

Дальше поговорим о том как проверить на уязвимость spectre и meltdown. Вы можете посмотреть защищена ли ваша система от Meltdown, проверив включена ли изоляция на уровне ядра. Для этого можно использовать несколько команд:

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

Или посмотреть в лог dmesg:

Опять же, если такой строчки нет — значит изоляция отключена и вы в опасности. Также существует скрипт, который можно использовать для проверки как Spectre, так и Meltdown. Для его загрузки вам понадобится git:

Проверить уязвим ли ваш браузер для Spectre и Meltdown вы можете с помощью этого сервиса.

Сравнение с микросхемой девятилетней давности

Модуль Nvidia Jetson Xavier, упомянутый в документации к тендеру Минпромторга, был анонсирован еще 28 сентября 2016 г. Другими словами, к моменту выполнения подрядчиком пятого этапа контракта по созданию его российского конкурента Jetson Xavier успеет отметить свое девятилетие.

Станет ли госсектор драйвером развития российского рынка BI
Интеграция

Nvidia Jetson Xavier выпускается с марта 2019 г. по 12-нанометровому техпроцессу и имеет в своем распоряжении восемь вычислительных ядер (CPU) и видеоподсистему с 512 ядрами CUDA, производительность которой достигает 1,4 ТФЛОПС.

Одна из модификаций Jetson Xavier

В максимальной комплектации компьютер поставляется с 32 ГБ оперативной памяти LPDDR4X и такого же объема флеш-накопителем на базе модуля eMMC 5.1. Согласно описанию на русскоязычной версии сайта Nvidia, компьютер дает возможность «разворачивать готовые робототехнические приложения на базе искусственного интеллекта для производства, доставки, розничной торговли, умных городов и других областей». В России один такой модуль оценивается приблизительно в 72 тыс. руб.

Пока неизвестно, планирует ли Nvidia к 2025 г. выпустить более современный аналог конкурента Jetson Xavier.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: