Проблемы защиты файла /etc/passwd
Категория: Безопасность | Автор: admin | 11-06-2010, 18:02 | Просмотров: 5031

В файле /etc/passwd (в некоторых системах также в файле /etc/shadow) содержатся сведения о том, кто может входить в систему и что он при этом имеет право в ней делать. Такой файл следует рассматривать как передовую линию защиты системы от захватчиков. Его нужно вести с особой тщательностью, стараясь не допускать ошибок и не загромождать устаревшими данными.

 

 

Во FreeBSD файл /etc/passwd генерируется на основании файла /etc/master.passwd и не должен редактироваться напрямую. Тем не менее не помешает в одинаковой мере защищать оба файла. О файле /etc/master.passwd рассказывалось в параграфе 6.2.

 

Проверка и выбор паролей

 

Регулярно (желательно каждый день) проверяйте, все ли учетные записи имеют пароль. В элементах файла /etc/passwd, содержащих описания псевдопользователей наподобие daemon (такие псевдопользователи являются владельцами некоторых системных файлов, но они никогда не регистрируются в системе), в поле пароля должна стоять звездочка (*). Она не соответствует ни одному паролю и, таким образом, предотвратит использование учетной записи.

Существует несколько специализированных программных пакетов, которые обеспечивают проверку файла /etc/passwd на предмет наличия проблем, связанных с безопасностью, хотя для поиска пустых паролей вполне достаточно и такой команды:

perl -F: -ane 'print if not $F[1];' /etc/passwd

 

Сценарий, выполняющий эту проверку и направляющий по электронной почте результаты администратору, можно запускать посредством демона cron. Дополнительно обезопасьте себя с помощью сценария, который будет ежедневно сверять файл /etc/passwd с его версией за предыдущий день (это позволяет делать команда diff) и сообщать о выявленных различиях. К тому же вы получите возможность проверять правомерность внесенных изменений.

Доступ к файлам /etc/passwd и /etc/group следует организовать так, чтобы их могли читать все пользователи, но право на запись имел только пользователь root. Если в системе присутствует файл /etc/shadow, он должен быть недоступен пользователям. Файл /etc/master.passwd во FreeBSD должен быть доступен лишь суперпользователю.

В UNIX пользователи могут задавать собственные пароли. Это, конечно, очень удобно, но влечет за собой массу проблем, связанных с безопасностью. Выделяя пользователям регистрационные имена, обязательно давайте им указания о том, как правильно выбрать пароль. Следует предупредить пользователей о недопустимости задавать в качестве такового фамилии, инициалы, имен детей и супругов, а также слова, которые можно найти в словаре. Пароли, сконструированные на основе таких личных данных, как номера телефонов и адреса, тоже достаточно легко поддаются расшифровке.

Рекомендуется выбирать пароль, состоящий не менее чем из восьми знаков, при этом допускается использование цифр, знаков препинания, а также прописных и строчных букв. Бессмысленные сочетания знаков, слогов, первые буквы слов легко запоминаемой фразы — вот самые лучшие пароли. При этом легко запоминаемая фраза не должна быть одной из широкораспространенных. Лучше придумать собственную. Совет по выбору фраз приводился в параграфе 3.3.

Во многих системах значащими являются лишь первые 8 символов пароля. Остальные просто игнорируются. Этот вопрос рассматривался в параграфе 6.1.

Пароли обычно меняются с помощью команды passwd. Существует множество ее эквивалентов, призванных заставить пользователей выбирать более удачные пароли. Мы рекомендуем применять для этой цели известный многим пакет npasswd, поддерживаемый Клайдом Хувером (Clyde Hoover) из университета штата Техас. Пакет можно найти по адресу

http://www.utexas.edu/cc/unix/sonware/npasswd

 

В Solaris входит версия программы passwd, заставляющая пользователей придерживаться определенных правил, например не выбирать в качестве паролей свои регистрационные имена. Правила построения паролей задаются в файле /etc/default/passwd.

Модель аутентификации в Red Hat основана на подключаемых модулях аутентификации (Pluggable Authentication Modules, РАМ). В связи с этим команда passwd подчиняется набору правил имеющегося модуля, описанных в файле /etc/pam.d/passwd. Получить более подробную информацию о модулях РАМ можно по адресу

http://parc.power.net/morgan/Linux-PAM/index.html

 

Теневые пароли

 

Каждый элемент файла /etc/passwd состоит из семи полей; второе поле содержит строку, которая представляет собой зашифрованный пароль пользователя. Для того чтобы могли работать такие команды, как ls и ей подобные, к файлу /etc/passwd должны иметь доступ для чтения все пользователи. Таким образом, зашифрованная строка пароля доступна каждому пользователю системы. Злоумышленнику ничего не стоит представить в зашифрованном виде целый словарь или отдельные слова и провести сравнение с указанным полем во всех элементах файла /etc/passwd. При совпадении сравниваемых объектов злоумышленник получает в свои руки пароль.

 

Насколько это опасно? В 80-е гг. существовал по крайней мере один способ очень быстрой расшифровки паролей, но рядовому хакеру приходилось довольствоваться библиотечной функцией crypt(), для того чтобы шифровать слова из словаря для их последующего сравнения. Но в 80-е гг. "быстродействующий" компьютер мог выполнять лишь порядка нескольких сотен операций шифрования в секунду. В 1998 г. Джон Гилмор (John Gilmore) из организации Electronic Frontier Foundation и шифровальщик Пол Кошер (Paul Kocher) взломали 56-разрядный ключ DES методом "грубой силы" за 56 часов. Последние исследования показывают, что с помощью специализированного компьютера стоимостью 1 млн долларов можно взломать любой 56-разрядный ключ DES за считанные часы.

Из этих далеко не обнадеживающих подсчетов вытекает настоятельная необходимость в ограничении доступа пользователей к зашифрованным строкам паролей. Самый распространенный способ — поместить пароли в отдельный файл, который может читать только суперпользователь, а остальную часть файла /etc/passwd оставить без изменений. Файл, содержащий информацию о паролях, называется "файлом теневых паролей" (часто он имеет имя /etc/shadow). Большинство производителей UNIX-систем, в том числе наших тестовых, реализует механизм теневых паролей.

В HP-UX для работы механизма теневых паролей требуется установить вспомогательный программный пакет. Он содержит множество дополнительных средств защиты, но в то же время на порядок усложняет задачу администрирования.

 

Групповые и совместно используемые учетные записи

 

Опасно, если учетная запись используется более чем одним человеком. Регистрационные имена групп (например, guest или demo) — удобная лазейка для хакеров, поэтому применять их не следует.

Нельзя допускать, чтобы пользователи делили учетные записи с членами семьи или друзьями. Если маленькому Джонни нужно войти в систему, чтобы решить домашнее задание, лучше предоставить ему для этой конкретной цели отдельное имя. В случае злоупотребления проще удалить регистрационное имя Джонни, чем поставить под удар папину учетную запись, особенно если речь идет о правительственном учреждении.

 

 

Во многих организациях учетная запись root является групповой. Это опасно! Рекомендуем контролировать предоставление прав суперпользователя с помощью программы sudo (см. параграф 3.4).

 

Устаревание паролей

 

Многие системы, поддерживающие теневые пароли, позволяют реализовать механизм так называемого устаревания паролей, при котором пользователей принуждают периодически менять таковые. На первый взгляд, это хорошая идея, однако на практике ее реализация влечет за собой определенные проблемы Не всякому пользователю по душе замена пароля, поскольку она требует определенных усилий по его поиску и запоминанию. Обычно для пароля выбирается простое слово, которое легко вводится и запоминается, и когда подходит время замены, многие пользователи, не желая себя утруждать, опять берут предыдущий пароль. Таким образом, дискредитируется сама идея.

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

 

Пользовательские интерпретаторы команд

 

Не используйте сценарий как средство для неконтролируемой (беспарольной) регистрации в системе. Вход в систему без пароля следует разрешать только для прогона небольших неинтерактивных утилит, таких как date, sync и lpq.

 

Привилегированные учетные записи

 

Единственная отличительная черта пользователя root состоит в том, что его идентификатор равен 0. Поскольку в файле /etc/passwd может быть несколько элементов, для которых установлен этот идентификатор, то существует и несколько способов входа в систему в качестве суперпользователя.

Один из способов, который хакеры, получив доступ к интерпретатору команд суперпользователя, широко применяют для открытия "черного хода", заключается в редактировании файла /etc/passwd посредством ввода в него новых регистрационных имен с идентификатором пользователя, равным 0. Поскольку такие программы, как who и w, работают с регистрационным именем, записанным в файле /etc/utmp, а не с идентификатором владельца регистрационного интерпретатора, они не в состоянии разоблачить хакера, который выглядит как рядовой пользователь, а на самом деле зарегистрирован в системе в качестве суперпользователя.

Спасение от такого вероломства — применение мини-сценария, подобного тому, который используется для поиска учетных записей без паролей:

perl -F: -ane 'print if not $F[2];' /etc/passwd

 

Этот сценарий отображает любые элементы файла passwd, в которых идентификатор пользователя не указан или равен 0. Сценарий можно адаптировать для поиска в файле элементов с подозрительными идентификаторами групп или идентификаторами пользователей, совпадающими с идентификаторами руководящих сотрудников организации.

Пристального внимания заслуживают, кроме того, элементы файла passwd, в которых нет имени пользователя либо вместо имени стоят знаки препинания. Эти элементы могут показаться не имеющими смысла, но очень часто они позволяют свободно входить в систему.



 (голосов: 1)
Версия для печати | Комментариев: 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


 
Логин
Пароль
 

 
Locations of visitors to this page