Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Информационная безопасность » Защита компьютерных систем » Уязвимости - Почему не нужно использовать "sudo" на домашней Linux-системе

Ответить
Настройки темы
Уязвимости - Почему не нужно использовать "sudo" на домашней Linux-системе

Ветеран


Сообщения: 2029
Благодарности: 704


Конфигурация

Профиль | Отправить PM | Цитировать


Очень часто можно встретить советы пользователям Linux не работать под учетной записю root, а пользоваться вместо этого командой "sudo".
Данные советы глубоко ошибочны. Попробуем разобраться, почему это именно так.

Начнем с истории создания данной утилиты. А началась эта история 30 лет назад.
Причем, за прошедшие 30 лет принципы её использования претерпели значительные изменения.
Сам автор sudo говорил о ней так: «при существующей системе доступа к учетной записи суперпользователя „su” пользователи имеют тенденцию работать под этой записью независимо от того, необходимо это или нет. sudo направлена на решение этой проблемы путем предоставления системным администраторам удобного способа доступа к определенным возможностям суперпользователя на покомандной основе.»

Однако, в то время не было и тысячной части такого количества сетевых угроз как сейчас. Да и не могло быть, поскольку практически все компьютеры не имели сетевых соединений за пределами машинного зала.

В настоящее время, использование этой утилиты рекомендуется исключительно в тех случаях, когда некоторому человеку необходимо предоставить доступ к части полномочий суперпользователя. То есть, заполнить лакуну образованную в результате реализации первоначальной идеологии Unix - все пользователи делятся на рядовых и суперпользователя без каких-либо промежуточных вариантов между ними. Для системы созданной в 1970-ом году это было нормально. Другие распространенные в то время ОС (например, семейства RSX-11 разработанной DEC) были устроены точно так же.
Никакой возможности ввести должности «администраторов сервисов» на них не было и о самой такой возможности в то время никто не думал.
Таким образом, при необходимости добавления пользователей с промежуточными правами в многопользовательской системе, использование команды sudo может быть оправданным. В любом случае, при компрометации учетной записи пользователя с расширенными правами, злоумышленник получит доступ не ко всей системе, а только к той части возможностей суперпользователя, которая доступна владельцу скомпрометированного account'а.

Теперь давайте рассмотрим работу в однопользовательской системе.
Постоянная работа под учетной записью суперпользователя во-первых, опасна тем, что случайные ошибки пользователя при наборе команд могут повредить всю систему.
На практике, эта причина не играет особой роли для опытных пользователей. Изуродовать систему проще всего ошибкой в команде администратора (mkfs, например), чем пользователя. Набрать по ошибке «rm -rf /» в командной строке способен только клинический идиот.
Намного более существенна вторая причина - при постоянной работе в сети пользователь всегда a priori должен считать свой домашний каталог скомпрометированным. Понятно, что если злоумышленник захочет получить доступ к Вашему компьютеру и подсунет Вам, к примеру трояна, которого Вы запустите под своей учетной записью, этот троян будет иметь возможность возможность делать всё, что угодно в Вашем каталоге. Но за его пределы он выйти не сможет.
Когда-то, несколько лет назад, я по определенным причинам опубликовал на lor'е программку из одной строчки на perl. В ней простой командой «y» (translate) была зашифрована команда оболочки «rm -rf /».
Как легко понять, эта команда не в состоянии удалить абсолютно ничего будучи запущена от имени простого пользователя. Она даже, по очевидным причинам, не сможет удалить его домашний каталог.
Что Вы думаете? Вопреки всем моим ожиданиям, на форуме нашлось немало людей, постоянно работающих под root'ом.

Давайте теперь представим, что злоумышленник хочет не проучить конкретного идиота, а получить неограниченный доступ к его компьютеру.
Тогда троян не станет ничего удалять. Он сделает всего две вещи: добавит некоторый доступный для записи каталог в начало PATH (прописав это, к примеру, в ~/.bashrc: export PATH=~/.config:$PATH), а затем создаст в добавленном каталоге сценарий с именем sudo, который будет имитировать стандартный вывод sudo и запрашивать пароль. Получив пароль, он передаст управление настоящей команде sudo
(echo $password | /usr/bin/sudo -S) и пользователь ничего не заметит.
Узнав пароль пользователя, сценарий получает полный доступ к системе и «заметает следы» - восстанавливает .bashrc, передает пароль злоумышленнику и удаляет сам себя (при необходимости, предварительно внеся дополнительные изменения в систему. Наилучшим образом для этого подходит замена какой-либо из разделяемых библиотек на библиотеку с «черным ходом»).
Дело сделано. Вашу систему теперь контролируют со стороны.
Можно ли было этого избежать? Да запросто - всегда указывайте абсолютный путь к программе. Питшите /usr/bin/sudo вместо sudo. Тогда злоумышленник даже псевдоним (alias) этой команды сделать не сможет. Но ответьте, положа руку на сердце, многие ли так делают?
Итак, команда sudo - это одна огромная дыра в безопасности системы, которая стирает грань между компрометацией учетной записи простого пользователя и компрометацией всей системы.

Каким образом пользователь может себя защитить от подобного рода угроз? Я не буду останавливаться на общесистемных средствах контроля безопасности, IDS и программах проверки целостности файлов (таких, как tripwire).
Всё гораздо проще - не пользуйтесь sudo. «su», понятное дело, тоже не пользуйтесь. Если Вам нужно выполнить какие-либо консольные команды от имени другого пользователя, особенно если это суперпользователь, переключитесь в текстовую консоль и введите комбинацию имя/пароль в ответ на приглашение Вашей верии getty.
Если Вы сами включали компьютер, Вы можете быть уверены, что приглашение исходит именно от той программы, которая была указана в файлах инициализации (/etc/inittab для большинства дистрибутивов, за исключением ubuntu и ему подобных, которые используют upstart и /etc/init/rc-sysinit.conf).
Если Вы не уверены в том, что приглашение исходит именно от mingetty - используйте "magic key kill" (Alt-SysRq-K, который, понятное дело, всегда должен быть включен).
Злоумышленника, которому удалось добраться до файлов инициализации либо подменить magic key, Вы можете не бояться. Его бояться уже поздно...

И последнее. Подменить обычную программу (скажем, "echo" или "ls") злоумышленник не сможет. И дело не в том, что echo - встроенная команда оболочки. Её легко подменить командой alias. Проблема в другом. Даже самого тупого пользователя немного удивит когда в ответ на ввод команды "echo" он получит ответ "для выполнения этой команды Вы должны ввести свой пароль. Вводите:"
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:45, 29-10-2012

 

Аватара для shisik

Ветеран


Сообщения: 3270
Благодарности: 598

Профиль | Отправить PM | Цитировать


Сидеть всё время от рута, я имею в виду логин от рута в иксах и, соовтетственно, запуск всех без исключения приложений от рута - это самое худшее, что можно придумать в Линуксе. Хуже может быть только разве что автологин в этот самый рут. А ведь во многих говносборках именно так и сделано, в частности китайский NeoShine Kylin Linux OS, который установлен на подаренных Украине компах из Китая, - недавно столкнулся...
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:49, 31-10-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

zai zai вне форума

Аватара для zai

Ветеран


Сообщения: 4964
Благодарности: 724

Профиль | Отправить PM | Цитировать


Цитата AMDBulldozer:
Очень часто можно встретить советы пользователям Linux не работать под учетной записю root, а пользоваться вместо этого командой "sudo".
Данные советы глубоко ошибочны.»
Если немного включить логику, то как часто приходиться пользоваться sudo, когда комп уже настроен? Раз в неделю (если только его постоянно не ковырять), в лучшем случае!!!

-------
А зачем тебе жужжать, если ты не пчела? По-моему так.


Отправлено: 15:26, 01-11-2012 | #12


ИО Капитана Очевидности


Contributor


Сообщения: 5387
Благодарности: 1105

Профиль | Отправить PM | Цитировать


Цитата AMDBulldozer:
. Насколько я понимаю, подавляющее большинство пользователей Linux предпочитает работать в графической среде. »
В отдельную текстовую консоль нельзя, например, скопировать текст из интернета, а забивать длинные строки по памяти неудобно. Проще запустить terminal или другую программу для работы с консолью в окне и скопировать текст нужной команды

-------
Самое совершенное оружие, которым забиты арсеналы богатых и процветающих наций, может легко уничтожить необразованного, больного, бедного и голодного. Но оно не может уничтожить невежество, болезнь, нищету и голод. (Фидель Кастро)

Почему всех осужденных за измену Родине при Сталине реабилитировали при Горбачёве по отсутствию состава преступления? Потому что при Горбачёве измену Родине перестали считать преступлением.


Отправлено: 06:11, 07-11-2012 | #13


Аватара для Rezor666

Ветеран


Сообщения: 2738
Благодарности: 336

Профиль | Сайт | Отправить PM | Цитировать


Цитата AMDBulldozer:
Почему не нужно использовать "sudo" на домашней Linux-системе »
Вот новички будут рады...
А если по существу то шанс заразить систему и без sudo достаточно.
Соц инжинерния, эксплойты, да обычная криворукость.
Напоминает картинку где волк из ну погоди и фраза "В России там много проблем: корупция, проституция, насилие а бороться решили с мультиками..."

-------
"Средства у нас есть. У нас ума не хватает..."


Отправлено: 12:31, 08-11-2012 | #14



Компьютерный форум OSzone.net » Информационная безопасность » Защита компьютерных систем » Уязвимости - Почему не нужно использовать "sudo" на домашней Linux-системе

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Ситема определяет 2 монитора ???"Pnp" и "не Pnp" почему ?(монитор одни всего =)) Chillout Непонятные проблемы с Железом 2 19-02-2010 19:05
Почему Windows при запуске файла с именем "start.exe" показывает кнопки как "Пуск"? Котяра Хочу все знать 9 22-06-2009 13:48
Интерфейс - Почему в "Параметрах папки" кнопка "Применить ко всем папкам" неактивна? edixxx Microsoft Windows 7 2 19-05-2009 17:50
Ошибка - [решено] Невозможно использовать косоль "Disk Managment" из оснастки "Computer Management" Steve Ironbreaker Microsoft Windows 2000/XP 2 24-09-2007 11:20
Предлагаю создать в "Linux и FreeBSD" раздел "Linux сервер" voler О сайте и форуме 2 19-06-2007 22:22




 
Переход