Исправление
dzidzitop,
(текущая версия)
:
моё предложение - написать статью про уязвимость Doink_the_Clown, которая описывает гипотетическую возможность (в стране розовых пони) через контролируемое переполнение данных в кэше понять каким образом специальным образом подготовленный процесс А на основе зловреного ввода меняет заданные линии кэша, который потом атакующий процесс Б вытесняет другими данными по следующему вводу через процесс А и по времени, затраченному на вытеснение или невытеснение данных из кэша выясняет какими данными оперировал процесс А во время первого ввода данных.
Это бред сивой кобылы и решение на такие «уязвимости» - убрать нахрен все кэши и вернуться в 80е годы.
Но эти люди будут «патчить» компиляторы, чтобы каждая программа вместо нормальных инструкций процессора использовала fences или ретурны, а процессор будет распознавать это и добровольно-принудительно тормозить код. При этом возможность атаковать как была гипотетической - так и останется в такой же мере гипотетической. Только работать всё будет медленнее. Офигенное решение.
Всё, что нужно сделать - это изолировать бранч предикшн между процессами. Кэш и так изолирован на уровне адресации (иначе тупо работать не будет). А на тайминг атаки показать средний палец паникёрам и предложить программистам рандомизировать чувствительный к этому софт. Компиляторы менять под спектре вообще никакой необходимости нет.
Исходная версия
dzidzitop,
:
моё предложение - написать статью про уязвимость Doink_the_Clown, которая описывает гипотетическую возможность в стране розовых пони через контролируемое переполнение данных в общем для всех процессов на данном ядре кэше понять каким образом специальным образом подготовленный процесс А на основе зловреного ввода меняет заданные линии кэша, который потом атакующий процесс Б вытесняет другими данными по следующему вводу через процесс А и по времени, затраченному на вытеснение или невытеснение данных из кэша выясняет какими данными оперировал процесс А во время первого ввода данных.
Это бред сивой кобылы и решение на такие «уязвимости» - убрать нахрен все кэши и вернуться в 80е годы.
Но эти люди будут «патчить» компиляторы, чтобы каждая программа вместо нормальных инструкций процессора использовала fences или ретурны, а процессор будет распознавать это и добровольно-принудительно тормозить код. При этом возможность атаковать как была гипотетической - так и останется в такой же мере гипотетической. Только работать всё будет медленнее. Офигенное решение.
Всё, что нужно сделать - это изолировать бранч предикшн между процессами. Кэш и так изолирован на уровне адресации (иначе тупо работать не будет). А на тайминг атаки показать средний палец паникёрам и предложить программистам рандомизировать чувствительный к этому софт. Компиляторы менять под спектре вообще никакой необходимости нет.