Search

Черный день Intel: опасна ли новая уязвимость в процессорах?

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

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

Что случилось вкратце?

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

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

Как это работает?

Одна из основ современной безопасности – несколько программ, одновременно выполняющихся на компьютере, не могут брать данные друг у друга без разрешения. За распределением оперативной памяти между приложениями следит встроенный в процессор блок Memory Management Unit, и до недавнего времени его власть казалась абсолютной.

Еще с середины 90-х годов для повышения производительности процессоров начали применять так называемое спекулятивное выполнение кода. Суть в том, что когда у процессора есть код, но нет нужных для его выполнения данных (например, они извлекаются из ОЗУ, что сравнительно долго по меркам процессорного времени), то процессор пытается предсказать эти данные, и затем с ними выполняет код «наперед». Удался трюк – отлично. Не получилось – результат выбрасывается и код пересчитывается с правильными данными. В современных программах огромное количество повторяющегося кода, поэтому такой подход действительно позволяет процессорам работать быстрее.
Уязвимость Meltdown состоит в том, что процессор начинает спекулятивное выполнение кода еще до получения ответа от Memory Management Unit. То есть, из памяти в этот момент можно брать что угодно: если MMU сообщит, что код лезет на чужую территорию – то процессор как обычно его выбросит. Хитрость, однако, в том, что выброшенный код на какое-то время останется в кэш-памяти процессора, у которой менее строгие стандарты безопасности. Соответственно, злоумышленник может написать программу, которая сначала с помощью спекулятивного кода переместит нужную информацию из оперативной памяти в кэш, а затем, использовав некоторые ухищрения, заберет ее уже из кэша.

Уязвимость Spectre во многом похожа на Metdown, но на самом деле куда мощнее и сложнее. Она нацелена на Branch Prediction Unit – специальный блок, который помогает процессору предсказывать значения для спекулятивного выполнения кода. Грубо говоря, если похожий код десять раз выполнился по одной схеме, то логично, что и одиннадцатый раз все скорее всего будет так же – именно такую статистику набирает BPU, постепенно обучая процессор работать все быстрее.

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

Spectre намного сложнее и потенциально опаснее Meltdown: ее использование не выглядит как взлом, и Memory Management Unit предательски молчит – ведь атакуемая программа сама достает для злоумышленника данные для своей памяти. К счастью, утверждение про сложность справедливо в обе стороны – считается, что использовать Spectre для атаки сможет только очень высококлассный специалист.

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

В случае с Meltdown больше всего досталось компании Intel – уязвимость обнаружена почти во всех современных процессорах компании, начиная минимум с первого поколения Core и заканчивая только что поступившими в продажу Coffe Lake (исключение – Intel Atom, вышедшие до 2013 года). Также уязвимость найдена в некоторых ядрах ARM, на которых основываются мобильные процессоры. Apple уже признала, что ее iOS-устройства подвержены Meltdown, плюс уязвимость наверняка будет в некоторых топовых Android-мобильниках, выходящих на рынок в этом году – в том числе в Samsung Galaxy S9. А вот Android-устройства прошлых лет пока или вне зоны риска, или подвержены более простой версии Meltdown, угрозы от которой минимальны.

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

Что и как могут украсть?

С помощью Meltdown и Spectre можно получить доступ к любой информации, находящейся в ОЗУ вашего компьютера – начиная с паролей и данных кредиток и заканчивая ключами шифрования. Атакованы могут быть не только частные компьютеры, но и сети тех же банков, крупные веб-сервисы, где также может храниться ваша информация.
При этом атака будет выглядеть достаточно традиционно – чтобы получить доступ к уязвимости, злоумышленнику нужно, чтобы пользователь загрузил и выполнил вредоносную программу. Также атака возможна через код JavaScript, запущенный в браузере.

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

Как мне защититься?

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

Защита от Meltdown на данный момент уже появилась во всем массовом программном обеспечении – к началу января соответствующие обновления вышли для Windows, iOS, и популярных браузеров, плюс сейчас выходят обновления BIOS для материнских плат, чтобы обеспечить защиту на более «низком» уровне. Со Spectre все хуже – первые решения, нацеленные на эту дыру, или исключают лишь некоторые способы ее использования, или просто усложняют жизнь взломщикам. О полной защите от Spectre говорить пока рано, поэтому остается надеяться на сложность уязвимости, и то, что взломщики не смогут быстро и эффективно научиться ее использовать.

Опять же, рекомендации здесь общеизвестные: оперативно обновляйте свою операционную систему и основные программы вроде браузеров. Проверьте, включены ли у вас автоматические обновления: особенно это важно, если ваш компьютер настраивал кто-то другой – например, некоторые «компьютерные специалисты» до сих пор любят отключать эти «ненужные» и «тормозящие» функции. На если вы используете какую-нибудь «усовершенствованную» версию Windows от 666demon666, то прекращайте немедленно. Подобные сборки и ранее были небезопасны, а теперь и вовсе сложно сказать, что напихал туда создатель.

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

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

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

А может это заговор с целью продать нам новое железо?

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

Однако никакого заговора нет. Во-первых, архитектура, сделавшая возможной обе уязвимости, начала развиваться более двадцати лет назад (во времена Pentium Pro и Pentium 2), когда с ростом скорости процессоров особых проблем не было. Во-вторых, время для публикации информации об уязвимости выбрано очень неудачным – Intel только-только начала продажи новейших процессоров Coffee Lake, которые страдают от Meltdown и Spectre по полной программе. Вот если бы в них дыра была закрыта, можно было бы заподозрить что-то неладное.
Наконец, репутационные убытки куда выше, чем возможная прибыль от улучшенных процессоров, которые удастся продать в будущем – как специалисты, так и обычные пользователи сейчас пребывают в состоянии, близком к панике. Процессоры той же Intel всегда считались самыми современными, надежными и защищенными – а теперь выяснилось, что два десятка лет специалисты компании не видели огромную дыру в защите. При этом архитектура конкурирующей AMD пусть и не идеальна, но все-таки более безопасна – так что в ближайшие годы в руках компании окажется отличный козырь против Intel.

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