После появления информации об уязвимостях микропроцессорных архитектур в отношении спекулятивного выполнения команд, печально известных под именами Spectre и Meltdown, можно было не сомневаться, что последуют новые и удивительные открытия в сфере кибернетической безопасности (или опасности?). За прошедшие с анонса Spectre и Meltdown полтора года выявилось много дыр и уязвимостей в процессорных архитектурах Intel, AMD и ARM. Почти всё из обнаруженного удалось «залатать» патчами, исправлениями в микрокоде и даже в архитектуре, но выстроенная защита оказалась бесполезной для новых уязвимостей в механизмах спекулятивной работы процессоров.
На конференции Black Hat USA исследователи из компании Bitdefender рассказали, что данные из кеша процессоров можно извлекать без ведома жертвы даже вокруг защиты от Spectre и Meltdown. Каждая из этих уязвимостей построена на принципе атаки по побочным (сторонним) каналам и извлекает чувствительные для пользователя данные из кеша процессоров либо с использованием первоначального доступа к данным в кеш-памяти.
В попытке предугадать ветвление команд механизм спекулятивного исполнения загружает наиболее вероятные для исполнения инструкции и данные, обрабатывает их и затем откатывается назад, если угадать не получилось. До загрузки новых инструкций кеш процессора содержит мусорные для пользователя данные, но в них может оставаться такая важная для пользователя информация, как пароли и другое. Эти данные не защищены так тщательно, как, например, ядро ОС в защищённой системной памяти компьютера, а значит, злоумышленник может считать эту информацию. Как? Простой перебор букв, цифр и символов укажет на хранящиеся в кеше по скорости отклика. Всё, что подтверждается максимально быстро, и есть ответ на искомые запросы. При должном терпении и сообразительности из этой информации можно собрать ту, которую пользователь боится потерять больше всего на свете. И главное, никто ничего не заметит.
По похожему принципа строились атаки по сторонним каналам Spectre и Meltdown. Intel и другие участники процесса частично или полностью закрыли эти дыры. Однако специалисты Bitdefender показали, что атаку можно провести с использованием стандартной инструкции SWAPGS в архитектуре x86-64 (инструкция SWAPGS запускает начало адресации защищённой памяти, куда загружается ядро операционной системы). Механизм спекулятивной загрузки команд с использованием SWAPGS начал использоваться в процессорах Intel с 2012 года. У вас какого года процессор? Испугались? В июле Microsoft встроила патч против уязвимости SWAPGSAttack (CVE-2019-1125) в набор обновлений. Поэтом на данный момент все кто обновился уже могут не опасаться уязвимости SWAPGSAttack. Но это не касается, например, Windows XP и других ОС, которые перестали поддерживаться. Linux, кстати, равнодушен к SWAPGSAttack в любом проявлении.
Исследователи проверили действие уязвимости на процессорах Intel. Компания Microsoft заявляет об уязвимости к SWAPGSAttack также процессоров AMD и ARM (по аналогии со Spectre). Специалисты Red Hat склонны освободить от ответственности ARM, но уверены в уязвимости к SWAPGSAttack процессоров AMD и Intel.