Дослідники з питань безпеки опублікували в Project Zero нову вразливість під назвою Spectre and Meltdown, що дозволяє програмі красти інформацію з пам'яті інших програм. Це впливає на архітектури Intel, AMD та ARM.
Цей недолік можна використовувати віддалено, відвідавши веб-сайт JavaScript. Технічні деталі можна знайти на веб-сайті redhat , команді безпеки Ubuntu .
Витік інформації через напади бокових каналів спекулятивного виконання (CVE-2017-5715, CVE-2017-5753, CVE-2017-5754 aka Spectre and 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
Системи з мікропроцесорами, що використовують спекулятивне виконання та спекулятивне виконання зчитування пам'яті до того, як будуть відомі адреси всіх попередніх записів пам'яті, можуть дозволити несанкціоноване розкриття інформації зловмиснику з локальним доступом користувачів через аналіз бічного каналу.
Прочитання реєстру негідних систем (RSRE) - також відомий як Варіант 3a
Системи з мікропроцесорами, які використовують спекулятивне виконання та виконують спекулятивне зчитування системних регістрів, можуть дозволяти несанкціонованому розголошенню системних параметрів зловмиснику з локальним доступом користувачів за допомогою аналізу бічних каналів.
Редагувати 27 липня 2018 року
NetSpectre: зчитування довільної пам'яті по мережі
У цьому документі ми представляємо NetSpectre, нову атаку, засновану на варіанті Spectre 1, яка не потребує коду, керованого зловмисником на цільовому пристрої, що впливає на мільярди пристроїв. Подібно до локальної атаки Spectre, наша віддалена атака вимагає наявності в коді цілі гаджета Spectre. Ми показуємо, що системи, що містять необхідні гаджети Spectre у відкритому мережевому інтерфейсі чи API, можуть бути атаковані нашою загальною віддаленою атакою Spectre, що дозволяє читати довільну пам'ять по мережі. Зловмисник лише надсилає жертві ряд розроблених запитів і вимірює час реакції, щоб витекти секретне значення з пам'яті жертви.