Новый год начался не с самых приятных новостей для компьютерного рынка – специалисты по безопасности рассказали об ошибках в архитектуре большинства процессоров Intel, некоторых процессоров AMD и даже видеокарт Nvidia. Используя эти уязвимости, злоумышленники могут считать из памяти компьютера любые данные, в том числе и персональную информацию. В рамках данного материала, мы расскажем о том, что это за уязвимости, принципах их работы и как от них защититься.
Еще летом 2017 года несколько организаций по компьютерной безопасности нашли уязвимости в процессорных архитектурах, которые позволяют обойти встроенную в CPU систему защиты памяти. Однако, информация о наличии самих уязвимостей была раскрыта только 4 января 2018 года т.е. спустя почти полгода. Эти уязвимости, названные «Meltdown» и «Spectre» могут извлечь почти любые данные, которые хранятся в памяти компьютера. В той или иной мере, они проявляются почти во всех процессорах, выпущенных в последние годы Intel, и немногих моделях AMD, но помимо процессоров, этим же уязвимостям подвержены и видеокарты Nvidia. Большинство производителей уже выпустили заплатки, которые защищают ПК от уязвимости Meltdown, но, к сожалению, далеко не у всех готовы обновления и драйвера от Spectre. Как оказалось, защититься от этой уязвимости в архитектурах комплектующих заметно сложнее, однако и использовать эту уязвимость взломщикам тоже очень непросто. Но беда не приходит одна – некоторые программные заплатки, устраняющие уязвимости понижают производительность процессоров, и как именно с этим будут бороться производители железа, пока не понятно, однако, на данный момент известно, что сильнее всего пострадают компьютеры, которым «старше» 2 лет и пользователи Windows 7 и 8, пользователям ПК на Windows 10 с чипами Haswell 2015 года выхода и старее стоит ожидать более существенного снижения скорости работы, а меньше всего изменений в плане производительности заметят владельцы компьютеров на Windows 10 2016 года выпуска или новее с процессорами Intel семейств Skylake и Kaby Lake.
Какие процессоры и видеокарты подвержены уязвимостям Meltdown и Spectre?
Новообнаруженной уязвимости Meltdown подвержены практически все процессоры Intel, вышедшие на рынок за последние 15 лет, начиная с CPU первого поколения Intel Core, заканчивая новенькими моделями на архитектуре Сoffee Lake. С процессорами AMD ситуация намного лучше – их CPU полностью безопасны, за исключением пары моделей. Но это касается только уязвимости Meltdown, ситуация со Spectre куда более сложная – она в разы более сложная и еще до конца не изучена (хоть и известен ее принцип работы), поэтому этой уязвимости подвержены абсолютно все процессоры, включая модели AMD. Помимо стационарных CPU пострадали и мобильные процессоры, включая все iOS-устройства и все современные смартфоны с производительными процессорами на основе OS Android. Также, спустя неделю после новости об обнаружении уязвимостей, производитель графических процессоров Nvidia признался, что их видеокарты также подвержены Spectre, при этом подчеркнув, что их чипы полностью защищены от Meltdown.
Принцип работы уязвимостей Meltdown и Spectre
Перед тем как вдаваться в подробности уязвимостей, стоит напомнить, что в процессорах есть встроенный контроллер памяти, который отвечает не только за поддержку ОЗУ определенного стандарта и частоты, но и за распределение оперативной памяти между работающими на ПК приложениями и программами. Этот блок называется Memory Management Unit (MMU). Также, нельзя забывать одну из основ современной безопасности - несколько программ, одновременно выполняющихся на компьютере, не могут брать данные друг у друга без разрешения.
Опасность уязвимости Meltdown состоит в том, что она используется спекулятивное выполнение кода работающей программы еще до того, как процессор получит ответ от MMU. Спекулятивное выполнение кода – это трюк, который был разработан еще в середине 90-х годов для повышения производительности CPU. Его суть заключается в том, что когда у процессора есть код, но нет нужных для его выполнения данных (например, они извлекаются из ОЗУ, что сравнительно долго по меркам процессорного времени), то процессор пытается предсказать эти данные, и затем с этими данными выполняет код, так сказать, «наперед». Если все прошло удачно, то работа CPU продолжается в том же режиме, если нет, то результат выбрасывается и код пересчитывается с правильными данными. В современных программах огромное количество повторяющегося кода, поэтому подход спекулятивного выполнения кода действительно позволяет процессорам работать быстрее. Но как оказалось, у этого метода есть уязвимость – в тот момент, когда процессор выбрасывает «неудачный» результат, то этот код в любом случае останется в кэш-памяти процессора (хоть и ненадолго), у которой менее строгие стандарты безопасности. Уязвимость Meltdown открывает доступ к коду, который остался в кэш-памяти, и используя эту уязвимость, злоумышленник может написать программу, которая непосредственно заберет информацию из памяти.
Spectre во многом похожа на Metdown, но на самом деле она куда сложнее. В процессоре есть специальный блок Branch Prediction Unit (BPU), который, скажем так, обучает процессор работать быстрее с памятью и методом спекулятивного выполнения кода т.е. если код 10 раз подряд выполнился по одной и той же схеме, то и в 11 раз это произойдет с большой долей вероятности. BPU, собственно, собирает эту статистику и обучает процессор работать быстрее. Уязвимость Spectre нацелена именно на блок Branch Prediction Unit, который злоумышленник может перепрограммировать, огромное количество раз выполнив на процессоре определенный код с определенными значениями. Собственно, когда похожий код придет от атакуемой программы, то процессор, не дожидаясь всех данных, пойдет выполнять его по нужной злоумышленнику схеме – например, взяв из памяти нужную информацию. Процессор, разумеется, как и должно, выбросит ошибочный код, однако, информацию, которая остается в буферной кэш-памяти процессора может забрать злоумышленник. Уязвимость Spectre намного проворнее и опаснее Meltdown, ведь ее использование, компьютер и процессор не видят именно как взлом, но здесь кроется и обратная сторона медали – при всей своей опасности и незаметности, Spectre использовать очень сложно, и считается, что воспользоваться этой уязвимостью для кражи данных с ПК сможет только очень высококлассный специалист по взлому.
Что смогут украсть злоумышленники, используя Meltdown и Spectre?
Примечательно, что до сих пор не было зафиксировано ни одного случая использования уязвимостей, однако, расслабляться не стоит – даже при условии, что сейчас все знают и о самих уязвимостях, и о принципах их работы, наверняка появятся желающие испытать их в деле до того момента, когда уязвимости будут полностью устранены. Собственно, используя их, злоумышленники могут получить доступ практически к любой информации, которая находится в ОЗУ и кэш-памяти процессора. Казалось бы, ну и что? Неужели там может хранится критически важная информация? На самом деле – да, именно эта важная информация, а еще множество другой там и хранится, начиная с логинов и паролей для различных сайтов, которые Вы вводите и сохраняете их в браузере, тех же логинов и паролей для каких-либо программ на ПК, заканчивая данными банковских карт, включая номер, имя владельца и трехзначный CVC-код, без которого, напомним, совершить какую-либо покупку в сети интернет невозможно. Даже при условии, что злоумышленники до сих пор не воспользовались уязвимостями, в теории, атакам подвержены абсолютно все, начиная с обычных пользователей, заканчивая крупными и мелкими юр. лицами, торговыми сетями, дата-центрами, веб-сервисами и т.д.
Как защититься от уязвимостей Meltdown и Cpectre?
На самом деле, подавляющее большинство производителей уже выпустили все необходимые соответствующие заплатки, обновления, драйвера и патчи для защиты компьютера от Meltdown, но вдобавок к этому готовятся новые версии BIOS материнских плат для защиты от уязвимостей и на этом уровне. Со Spectre и здесь все гораздо сложнее – из-за того, что уязвимость сама по себе не простая, в отличии от Meltdown, до сих пор нет стопроцентного решения ее устранения. Вышедшие заплатки либо устраняют лишь некоторые методы и способы ее использования, либо просто усложняют взлом злоумышленникам, поэтому полной и гарантированной защиты от Spectre на данный момент нет. Остается надеяться на то, что сложность уязвимости доставляет такие же сложности взломщикам, и то, что злоумышленники не смогут быстро и эффективно научиться ее использовать.
Учитывая все вышесказанное, мы бы все равно рекомендовали придерживаться общестандартными правилами безопасности: для начала проверьте, не выключены ли автоматические обновления операционной системы - если выключены, то обязательно включите и оперативно обновляйте ОC. Также, не заходите на сайты с сомнительным содержанием, и ни в коем случае не скачивайте и не устанавливайте неизвестные программы и приложения. На мобильных устройствах и планшетах качайте и устанавливайте программы, приложения и игры исключительно из официальных магазинов. На всякий случай, напомним, что для Android это PlayMarket, а для IOS-устройств – AppStore. Ну, и, конечно же, для всех случаев, установите и регулярно обновляйте антивирусное ПО – оно хоть и не защищает от самих уязвимостей, однако, защитит компьютер от программ, скриптов и др., которые будут их использовать.
Недавнообнаруженные уязвимости, на самом деле, просуществовали уже более 20 лет (напомним, что именно применение метода спекулятивного выполнения кода для увеличения скорости процессоров, грубо говоря и открыли дорогу для уязвимостей), но новости об их обнаружении появились только сейчас, и, к счастью, пока не было зафиксировано ни одного случая со стороны взломщиков и злоумышленников. В будущем, методы борьбы со Spectre и Meltdown наверняка будут совершенствоваться, но полностью эту проблему удастся исправить только после выхода процессоров на совершенно иной архитектуре, которые будут лишены данных уязвимостей. Произойдет это в самом лучшем случае - через год-полтора.