В Linux 5.15 Ядро-это новая опция во время сборки для дальнейшего усиления защиты ядра от атак по побочным каналам и утечки информации. Включение этой опции может иметь некоторую (небольшую) потерю производительности и немного большее ядро.
Новая опция, добавленная в Linux 5.15 для дальнейшей защиты ядра,-CONFIG_ZERO_CALL_USED_REGS. Включение этой опции и использование компилятора GCC 11 или новее для сборки ядра включит параметр компилятора-fzero-call-used-regs=used-gpr.
Использование этой опции компилятора”zero-call-used-regs”гарантирует, что любое содержимое вызываемых регистров обнуляется перед возвратом из функции. Основное внимание уделяется обеспечению того, чтобы временные значения потенциально не просочились за пределы функции, чтобы снизить вероятность использования содержимого регистра для атак по побочным каналам или раскрытия информации. Что касается эффективности этой новой опции компилятора для построения ядра Linux, то она уменьшила количество устройств ROP в образе ядра примерно на 20% и устранила простые гаджеты типа «писать что-где».
Было обнаружено, что включение CONFIG_ZERO_CALL_USED_REGS приводит к снижению производительности на x86_64 менее чем на 1% для теста параллельной сборки ядра. Другие контрольные цифры не были предоставлены. Это также может увеличить размер образа ядра менее чем на 1% для x86_64. Однако на AArch64 наблюдалось увеличение изображения на ~ 5,5%, но о влиянии на производительность во время выполнения нет ни слова.
Опция GCC”zero-call-used-regs”основана на более ранней работе инженеров Intel, работающих над Clear Linux с ранее предложенной функцией”zero-caller-saved-regs”. В случае с предыдущим патчем Intel он был достаточно хорош, чтобы его можно было использовать в ориентированном на производительность Clear Linux от Intel для предотвращения атак ROP/COP/JOB.
CONFIG_ZERO_CALL_USED_REGS добавляется во входящие обновления защиты для Linux. 5.15 ядро. Тесты, изучающие его влияние на производительность, скоро появятся на Phoronix, но, надеюсь, будут скучными тестами с точки зрения отсутствия серьезных неожиданных падений производительности.