Доклад Александра Попова о безопасности ядра Linux был глубоким и запоминающимся🔝 Как и обещали, мы собрали все оставшиеся вопросы после трансляции и попросили Александра ответить на них для нашего канала:



Какая домашняя и рабочая ОС у Александра?



Fedora, Ubuntu, Debian. У меня много систем.



Когда вы говорили про контроль потока выполнения, то упомянули про способ защиты, основанный на контроле "джампов" только в начало функций. А как это реализовано?



Контроль потока управления реализуется с помощью инструментации кода на этапе компиляции. Иногда также используются специальные функции центрального процессора. На эту тему есть классная обзорная статья по выступлению Кейса Кука: https://lwn.net/Articles/810077



Разве не существует ситуаций, при которых нарушение потока выполнения осуществляется легитимными средствами? Например антивирусными средствами при установке хуков на функции?



Я думаю, если какое-то навесное средство защиты намеренно нарушает штатную работу системы, то это плохое средство защиты.



Антивирус, работающий в контексте ядра, не способен защитить от эксплуатации ядерных уязвимостей. Могу подтвердить на конкретном примере. Вот статья по моему исследованию защиты LKRG для ядра Linux:
https://xakep.ru/2022/01/25/lkrg-linux



Все серьезно и круто. Как обеспечивать безопасность Linux реально? Никогда не будет такого продвинутого человека. Сканеры? Какие



Сканеры могут помочь, если ты уже построил модель угроз для своей системы и знаешь, как именно надо ее сканировать.



Можно ли Kconfig в пайплайн задеплоить, чтобы автоматически на стейдже изменять некоторые параметры ядра перед его билдом на следующем стейдже?



Да, можно. Такая задача стоит.

Это помогло бы выполнить детальное тестирование производительности:
https://github.com/a13xp0p0v/kconfig-hardened-check/issues/66#issuecomment-1342846087

Присоединяйтесь, присылайте pull request или участвуйте в обсуждениях. Буду рад!



Получается, всё равно надо каждую опцию вручную проверять, что она делает, чтобы не рисковать превращением сервера на проде в кирпич?



Совершенно верно!

Нужно понимать, на что влияет конкретная опция, и выполнять функциональное тестирование твоей нагрузки с этой опцией на тестовой системе.