Если
- Речь идёт о личном рабочем окружении. 1
- Вы недостаточно параноик, чтобы довести дело до конца:
- Все программы работают от вашего пользователя. 2
- /home монтируется без noexec. Хотя это почти не помогает и очень не удобно в большинстве случаев, но если у вас так — у вас, как у неплохого параноика, есть перспектива далеко зайти этим путём.
- Вы регулярно администрируете систему из-под своего пользователя (с помощью того же sudo). 3
Рабочее окружение
Рабочее окружение — это тот потенциальный источник заразы, который мы хотим изолировать от остальной системы. Помимо защиты от целенаправленного злодейства, понижение привилегий в нём (то что называется «не работайте от root») спасает от жестоких ошибок и плохо написанных программ, которых может не простить root.
Собственно, не спрашивающий пароля sudo не мешает защите от опечаток (если, конечно, вы не имеете неприятного рефлекса сразу перепечатать эту несработавшую конструкцию с sudo), софт также обычно не приучен самостоятельно использовать sudo, так что единственное, от чего «уточнение» пароля помогает — злостные вирусы и злоумышленники, ставящие своей целью установить всю вашу систему на колени.
Ещё раз об изоляции
Изолировать пользовательский шелл (то место, где вы вводите sudo, а потом в него свой пароль) от самого пользователя — места, где обитает зараза, — задача нетривиальная и, более того, не самая простая в том виде, в котором она поставлена. Гораздо более простой путь — это запуск потенциально ненадёжных программ, таких как браузер, а для особо параноиков — торрент клиента и даже офисного пакета — любых программ, работающих с внешними данными — в отдельном окружении (под отдельным пользователем и/или даже в chroot). Но большинство из читателей, наверное, не интересовалось такими довольно затратными конструкциями.
Собственно, сложная, но неисчерпывающая система. Хотя, пожалуй, и оттолкнёт не очень настойчивого злоумышленника :)
А что, без изоляции нельзя?
Достаточно злоумышленнику написать в .bashrc alias на sudo и вы будете слепо вводить свой ht7Qxfc8 чуть ли не прямо в irc некоторого недружественного товарища, хотя о случаях автоматизированного использования подобных средств я не слышал, но автоматизация такого подхода имеет даже бо́льшие перспективы, чем попытки использования sudo без пароля, так как она подойдёт под пользователя самого популярного дистрибутива.
Пора перестать вводить пароль
В общем, пора либо перейти на новый уровень паранойи (за рамками данной статьи), либо перестать бояться рабочего окружения и согласиться с тем, что получение привилегий в нём равносильно получению root привилегий в системе. И поменять конфиг.
где-то в глубине конфига
Напомню, что sudo проверяет только лишь аутентичность исходного пользователя, т.е., вне зависимости от наличия NOPASSWD:, пользователи из спецификации имеют безусловное право на описываемое повышение привилегий.
было
%wheel ALL=(ALL) ALL
стало
%wheel ALL=(ALL) NOPASSWD: ALL
%wheel — группа пользователей, которым даровано настоящее право.
Вид записи может сильно различаться, самое главное — место для NOPASSWD: находится перед последним ALL на интересующей нас строке. (либо так, либо вы и так скорее всего уже знаете, где оно находится :)
Также можно попробовать для редактирования этого конфига использовать рекомендуемый visudo
, который, помимо прочего, подвергент написанное предварительной синтаксической проверке.
Важное исключение из правил
- У вас за спиной стоит человек, который хочет проверить вот этот скрипт на perl.
- Этот человек знает шутку про sudo make sandwich.
- Не смотря на предыдущие два пункта, вы покидаете рабочее место не оставляя лок-скрина.
Автор: TheRipper