Исследователи безопасности опубликовали в Project Zero новую уязвимость под названием Spectre и Meltdown, позволяющую программе красть информацию из памяти других программ. Это влияет на архитектуры Intel, AMD и ARM.
Этот недостаток можно использовать удаленно, посетив веб-сайт JavaScript. Технические подробности можно найти на сайте Redhat , в команде безопасности Ubuntu .
Утечка информации из-за спекулятивных атак по побочным каналам (CVE-2017-5715, CVE-2017-5753, CVE-2017-5754 aka Spectre и Meltdown)
Было обнаружено, что новый класс атак на побочные каналы воздействует на большинство процессоров, включая процессоры Intel, AMD и ARM. Атака позволяет злонамеренным процессам пространства пользователя читать память ядра и вредоносный код в гостях, чтобы читать память гипервизора. Для решения этой проблемы потребуются обновления ядра Ubuntu и микрокода процессора. Эти обновления будут объявлены в будущих уведомлениях о безопасности Ubuntu, как только они станут доступны.
Пример реализации в JavaScript
В качестве подтверждения концепции был написан код JavaScript, который при запуске в браузере Google Chrome позволяет JavaScript считывать личную память из процесса, в котором он выполняется.
Похоже, моя система подвержена уязвимости. Я скомпилировал и выполнил это доказательство концепции ( spectre.c
).
Системная информация:
$ uname -a
4.13.0-0.bpo.1-amd64 #1 SMP Debian 4.13.13-1~bpo9+1 (2017-11-22) x86_64 GNU/Linux
$ cat /proc/cpuinfo
model name : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
$gcc --version
gcc (Debian 6.3.0-18) 6.3.0 20170516
Как смягчить уязвимости Spectre и Meldown в системах Linux?
Дополнительная информация: Использование Meltdown для кражи паролей в режиме реального времени .
Обновить
Используя ответ Spectre & Meltdown Checker
после переключения на 4.9.0-5
версию ядра, следующий за ответом @Carlos Pasqualini, потому что доступно обновление для системы безопасности для смягчения cve-2017-5754 в Debian Stretch:
CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Checking count of LFENCE opcodes in kernel: NO (only 31 opcodes found, should be >= 70)
> STATUS: VULNERABLE (heuristic to be improved when official patches become available)
CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
* Hardware (CPU microcode) support for mitigation: NO
* Kernel support for IBRS: NO
* IBRS enabled for Kernel space: NO
* IBRS enabled for User space: NO
* Mitigation 2
* Kernel compiled with retpoline option: NO
* Kernel compiled with a retpoline-aware compiler: NO
> STATUS: VULNERABLE (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)
CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI): YES
* PTI enabled and active: YES
> STATUS: NOT VULNERABLE (PTI mitigates the vulnerability)
Обновление 25 января 2018 г.
spectre-meltdown-checker
Сценарий официально упаковывают Debian, он доступен для Debian Stretch через Backports хранилище, Бастера и Sid.
Спекулятивный обход магазина (SSB) - также известный как вариант 4
Системы с микропроцессорами, использующими спекулятивное выполнение и спекулятивное выполнение чтения из памяти до того, как станут известны адреса всех предыдущих записей в памяти, могут позволить несанкционированное раскрытие информации злоумышленнику с локальным доступом пользователя посредством анализа побочных каналов.
Rogue System Register Read (RSRE) - также известен как вариант 3a
Системы с микропроцессорами, использующими спекулятивное выполнение и выполняющими спекулятивное чтение системных регистров, могут позволить несанкционированному раскрытию системных параметров злоумышленнику с локальным доступом пользователя через анализ побочных каналов.
Изменить 27 июля 2018
NetSpectre: чтение произвольной памяти по сети
В этой статье мы представляем NetSpectre, новую атаку, основанную на варианте 1 Spectre, не требующую кода, управляемого злоумышленником, на целевом устройстве, что затрагивает миллиарды устройств. Подобно локальной атаке Spectre, наша удаленная атака требует наличия гаджета Spectre в коде цели. Мы показываем, что системы, содержащие требуемые гаджеты Spectre в открытом сетевом интерфейсе или API, могут быть атакованы нашей общей удаленной атакой Spectre, позволяющей считывать произвольную память по сети. Злоумышленник отправляет жертве только серию специально созданных запросов и измеряет время отклика для утечки секретного значения из памяти жертвы.