Мне нравится думать о безопасности как о цепи. Более слабое звено цепи может поставить под угрозу всю систему. Таким образом, все это становится ", препятствующим неавторизованному пользователю получить пароль root ".
Как предполагает @DanMoulding, источник программного обеспечения также важен, и в будущем, вероятно, официальные магазины приложений ОС станут стандартом. Подумайте о магазинах Play Store, Apple или Microsoft.
Я думаю, что установка и распространение скрытого вредоносного кода
гораздо более коварная проблема. В конце концов, для загрузки плохого кода это
должен быть сначала установлен в системе где-то. Больше слоев
безопасность обычно лучше, конечно. Вопрос: стоит ли
стоимость?
По моему мнению, ответ "это зависит".
Вы можете уменьшить риск, приняв набор политик безопасности, предложенных @sleblanc. Вы можете зашифровать свою файловую систему (https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup), использовать файловые системы только для чтения для двоичных файлов или использовать механизм для подписи и проверки двоичных файлов.
Однако, какой бы механизм вы ни использовали, вы ничего не сможете сделать после получения злоумышленником корневого доступа. Инструменты проверки подписи могут быть заменены несанкционированной версией или просто отключены, и на самом деле не имеет значения, будут ли инструменты работать в пространстве пользователя или в ядре после того, как машина будет взломана (хотя последняя, конечно, будет более безопасной ).
Поэтому было бы неплохо, если бы ядро Linux могло встроить модуль проверки подписи и другой уровень безопасности между пользователем root и операционной системой.
Например, этот подход принят в последних версиях macOS . Некоторые файлы не могут быть изменены (а иногда и прочитаны) даже учетной записью root, и существуют ограничения также для политик и модулей ядра (например, в систему можно загружать только подписанный или авторизованный kext). Windows принял более или менее тот же подход с AppLocker .