Чем могут обернуться ошибки в процессоре для пользователя
Новый 2018 год начался с сообщений об уязвимостях Meltdown и Spectre, которые потенциально позволяли злоумышленнику украсть информацию практически из любого устройства, от ноутбука до iPhone. Решена ли проблема за прошедшее время?
К привычным багам в софте и призывам специалистов по информационной безопасности использовать длинные пароли в 2018 году прибавилась угроза безопасности данных, связанных с обнаружением уязвимостей Meltdown и Spectre. Основная проблема была в том, что ошибка была не программной, которую можно быстро исправить обновлением, а аппаратной. Более того, она использовала принципы работы, принятые в создании современных процессоров разных архитектур: для смартфонов, компьютеров и серверов. Удалось ли решить проблему за прошедшее время и чем придется пожертвовать пользователям?
Суть уязвимости
Говоря простым языком, Meltdown — это возможность прочитать содержимое памяти другого приложения. Операционная система строго следит, чтобы процессы были разделены и каждой программе была доступна только ее область памяти. Но «чужая» информация предоставляется процессором в разы медленнее, чем своя (речь идет о разнице между микросекундами и десятками микросекунд). Поняв, где находится чужая информация, можно попытаться скопировать ее окольным путем. И в ней могут находиться ваши пароли или сертификат защищенного соединения, обеспечивающий вам безопасную связь. Уязвимость Spectre несколько отличается по механизму действия, но близка по сути к Meltdown.
Чем страшна обнаруженная уязвимость Meltdown, о которой все говорили? Она работает для архитектуры большинства процессоров для всех компьютерных систем в мире. Если хакеры научатся ею пользоваться, то они смогут повторить свой опыт и на смартфонах, и на компьютерах.
Первые программные заплатки, позволяющие устранить «черных ход» для хакеров в процессорах могли привести к существенному замедлению работы. Например, на популярной открытой базе данных PostgreSQL продемонстрировано падение производительности более чем на 20%. По пессимистическим прогнозам некоторых производителей быстродействие могло упасть вдвое. Представьте, что ваш только что купленный смартфон стал тормознее или вам пришлось менять процессор в компьютере на более мощный, чтобы по-прежнему выполнять свою работу.
Неидеальное решение
Отвечая на вопрос, так ли все страшно, хочу показать решение проблемы на примере повседневных задач обычных пользователей. Допустим, ваша программа с помощью сохраненного в ней пароля зашла в облачное хранилище ваших приватных фотографий или в ваш личный кабинет в интернет-банке. Вредоносная программа по скорости чтения памяти теоретически может понять, где лежит пароль (в течение микросекунды он получит ответ от своей памяти, а в течение условных десяти микросекунд — от чужой). Но время ответа она определяет по таймеру, ему можно снизить точность, чтобы он не видел разницы между одной и десятью микросекундами. Тогда и обнаружить область памяти с чужими данными вредоносной программе не удастся.
Скорее всего производители использовали подобные алгоритмы и выпустили патчи для основных операционных систем, например, для Windows. Также ряд производителей написали рекомендации для защиты данных от Meltdown.
Эффективны ли эти патчи? К сожалению, первая серия вышедших патчей снижала производительность и приводила к ряду других неприятных последствий: сначала обновления скорее вредили работе устройств, такие производители, как Intel, предупреждали о замедлении работы компьютеров, но производители поспешили исправить это и выпустили новые заплатки и продолжают выпускать их для всех возможных типов атак Meltdown.
На данный момент для большинства процессоров выпущено программное обновление. В середине февраля IBM выпустила патчи для серверных чипов Power7, Power8 и новейшего Power9.
В начале марта вышли самые последние заплатки, закрывающих системы от атак через уязвимости Meltdown и Spectre на устройствах с процессорами Intel Core и Core m шестого поколения. На них работает большинство настольных систем и ноутбуков. Компания Microsoft начала выпуск обновлений прошивки, исправляющих уязвимости на ОС Windows 10. Intel выпустила официальное обновление микрокода Spectre для процессоров с архитектурами Broadwell и Haswell. Заплатка микрокода требуется для результативной борьбы с Spectre CVE-2017-5715.
Последствия для производительности
Чем закончилась двухмесячная борьба с потенциальной дырой для хакеров? Хорошая новость в том, что на повседневных задачах патчи снижают скорость далеко не так сильно, как предполагалось ранее, — всего на 3-5%, и при весьма специфических условиях (например, когда одновременно запущено несколько сложных процессов). Об этом свидетельствует ряд тестов, проведенных исследователями.
Серьезные замедления (до 40%) были выявлены только при тестировании накопителя Samsung SSD 950 Pro NVMe с процессором Intel Core i7-8700K: снижение скорости последовательного чтения и записи с заплаткой BIOS зафиксировано в тестах CrystalDiskMark и Atto Disk Benchmark. Маловероятно, что среднестатистический пользователь заметить снижение скорости работы.
При тестировании на iOS не было найдено существенных эффектов замедления от установки обновлений.
Проведенные нашим специалистом тесты AIDA64 Benchmark также показали падение скорости после применения патчей всего на 3,5%. Тестировались 12 различных типов операций, таких как чтение памяти, скорость памяти, копирование памяти, перезапись памяти и другие. Использовался компьютер на базе 4-х ядерного процессора Intel Core i7 средней конфигурации.
Остается ли опасность?
Где же ожидаемое падение производительности? Может вся гонка с патчами была зря?
Мы задались вопросом: насколько эффект Meltdown может повлиять на производительность нашей системы, весьма требовательной к работе с оперативной памятью. В последние два дня команда Polymatica провела серию тестов производительности и установила, что потенциальное замедление может проявиться только при операциях первичного выделения памяти, например, при первой загрузке данных или открытии файла (в данном случае речь идет о загрузке файла с диска в память, видеокарты при этом не участвуют).
Для конечного пользователя важен, например, такой сценарий: пишем статью в течение часа, при этом в течение двух секунд ждем открытия файла. Эти две секунды при возможном замедлении могут увеличиться до 2,06 секунд. Полагаю, пользователи этого не заметят, так как выявленные замедления не превышают статистической погрешности в 2%. Конечно, результаты тестов одной конкретной программы не могут отражать полную картину, но очевидно, что скорость работы изолированных процессов падает не так сильно, как предполагалось ранее.
На настольные и мобильные системы можно смело ставить обновления, устраняющие уязвимость Meltdown. Замедления среднестатистический пользователь не заметит.
Действительно серьезное снижение производительности после установки заплаток может наблюдаться на так называемых задачах реального времени, когда приложению жизненно важна разница между одной и десятью микросекундами отклика памяти (например, когда отслеживается состояние электростанций или транспортных систем). К счастью, к таким системам как правило нет доступа извне — они находятся в так называемом закрытом контуре. Это означает, что программам злоумышленников туда попасть затруднительно (хотя возможно — вспомним Stuxnet на иранских АЭС).
Второй класс уязвимых систем шире — те, на которых активно используется открытый или чужой код для системных вызовов. Обычные пользователи компьютеров не должны почувствовать существенных изменений в скорости. Те программные продукты, которые используют собственные механизмы работы с памятью разных типов, скорее всего, не будут подвержены проблеме. Таких программ, к сожалению, немного, как на отечественном рынке, так и за рубежом. Но тут пользователь не может изменить ситуацию, стоит придерживаться стандартных правил безопасности с установкой доступных обновлений.
Источник