Полный Spectre уязвимостей
Собери 5 особенностей процессора
и получи Meltdown в подарок
1. CPU Cache
tcache < tRAM
2. Спекулятивное выполнение кода
3. Branch Prediction Unit
var secret = 0;
for (var i = 0; i < 1000; i++) {
if (i < 999) {
secret = i;
}
}
4. Memory Management Unit
5. Косвенная адресация
add ax, [bx]
mov dl, [si]
Порядок
- тренируем процессор выполнять код спекулятивно 🥅
- пытаемся читать значение по закрытому адресу памяти косвенной адресацией 🕵️
- MMU ругается, результаты сбрасываются из регистров процессора 🚫
- но в кэше лежит значение из закрытого адреса памяти 😏
- замеряем скорость обращения к участку памяти прямой адресацией ⏱
- PROFIT 🤗
var TABLE1_STRIDE = 1;
var TABLE1_BYTES = 3;
var probeTable = ['alpha', 'beta', 'corky'];
var simpleByteArray = [0x00, 0x01, 0x02];
var localJunk;
var index = 0;
if (index < simpleByteArray.length) {
index = simpleByteArray[index | 0];
index = (((index * TABLE1_STRIDE) | 0)&(TABLE1_BYTES - 1)) | 0;
localJunk &= probeTable[index | 0] | 0;
}
console.log(localJunk);
Атакующий код
if (x < array1_size)
{
y = array2[array1[x]];
}
Порядок
- тренируем процессор выполнять код спекулятивно атакующим процессом
- засоряем кэш процессора
- честно помещаем в кэш воруемые данные (S) из атакуемого процесса
- честно вызываем уязвимый код в атакуемом процессе
- процессор выбрасывает результаты вычислений отовсюду, кроме кэша
- замеряем время доступа к ячейкам до адреса S
Это ж надо знать код!
- часто используемые библиотеки
- open source
- дизассемблер
Уязвимы для Meltdown
- процессоры Intel с 1995 года, кроме Itanium и pre-2013
- Процессоры с архитектурой ядра Cortex A75
- AMD PRO и AMD FX с включенным BPF JIT
Уязвимы для Spectre
- процессоры Intel с 1995 года, кроме Itanium и pre-2013
- все современные процессоры AMD
- ARM с ядрами Cortex R7, R8, A8, A9, A15, A17, A57, A72, A73 и A75
Как применить?
- Получение дампа системной памяти из браузера 👨💻
- Воровство данных с других виртуальных машин на одном хостинге 🕵
- Сбор статистики посещения сайтов 😳
- Новый скандал с голливудскими звездами и их фото 📷
- Дать фантазии простор для творчества 😏
Срочные фиксы в браузерах
- уменьшение точности performance.now
- удаление SharedArrayBuffer
Powershell
Install-Module SpeculationControl
Import-Module SpeculationControl
Get-SpeculationControlSettings
Как защититься? 🛡️
- Установить последние обновления системы и браузера
- Отключить JavaScript даже при посещении безопасных сайтов
- Осторожно запускать новые приложения
- Сменить процессор на заведомо безопасный
- Не хранить секретные данные на электронных носителях