Брандмауэры и специальное программное обеспечение




страница6/42
Дата15.02.2017
Размер6.16 Mb.
Просмотров1236
Скачиваний0
ТипАнализ
1   2   3   4   5   6   7   8   9   ...   42
Безопасность и пользователи
Не следует питать каких-либо иллюзий относительно взгляда пользователей на вопросы безопасности: им до них нет никакого дела. О безопасности пользователь вспоминает лишь тогда, когда у него возникают проблемы с нею, а до тех пор он пребывает в уверенности, что его файлы надежно защищены и ничего с ними случиться не может. Поэтому администратор, исходящий из предпосылки, что злейший враг файлов пользователей — это сами пользователи, не так уж и далек от истины.
Пользователи обычно интересуются только тем, как войти в систему и запустить нужные им программы. Интерес к безопасности появляется у них лишь после утери важных файлов. Но длится он недолго. Узнав, что меры приняты, пользователи быстро забывают о всякой предосторожности.
Вообще говоря, не их это забота — безопасность. Системный администратор должен продумать, реализовать и поддерживать политику безопасности, которая позволила бы пользователям делать свою работу, не отвлекаясь на посторонние для них вопросы защиты.
Основная опасность для системы, как правило, исходит изнутри, а не снаружи. Ее источником
(особенно в крупных системах) может стать, например, рассерженный пользователь. Следует, однако, избегать излишней подозрительности, когда вред, нанесенный по незнанию, принимается за злой умысел.
О том, как оградить пользователей от непреднамеренного повреждения своих и чужих файлов, рассказывается в первой части книги. Как показывает практика, среднестатистический пользователь не в состоянии повредить систему. Беспокоится нужно лишь о тех пользователях, которые в состоянии найти лазейку в механизмах защиты и действительно способны причинить целенаправленный вред системе. Но таких пользователей обычно мало и со временем они становятся известны, особенно если знать, на что обращать внимание. К группе риска относятся пользователи, которые в силу своего положения или благодаря своим связям могут получить доступ на уровне привилегий root. По мере того как вы будете овладевать материалом данной книги, вы будете узнавать, что именно следует расценивать как признаки надвигающейся беды.
По умолчанию пользователи получают полный контроль над своими домашними каталогами. Если вы используете группу по умолчанию, все пользователи системы принадлежат к одной группе. Любой пользователь обладает правом доступа к домашним каталогам других пользователей и расположенным в них файлам. При использовании схемы с частными группами пользователей любой из пользователей системы обладает доступом только к своему собственному домашнему каталогу, а домашние каталоги других пользователей ему не доступны.
Если для всех пользователей системы требуется обеспечить общий доступ к некоторому набору общих файлов, рекомендуется создать где-нибудь общий каталог специально для этих целей, завести группу, членами которой были бы все пользователи (это может быть группа users или любая другая созданная вами группа), и предоставить этой группе соответствующие права доступа к данному общему каталогу. Если пользователь желает сделать некоторые из своих файлов доступными для других пользователей, он может просто скопировать их в этот каталог и обеспечить, чтобы эти файлы принадлежали к той самой группе, членами которой являются все пользователи.
ССЫЛКА
0 том, как группа пользователей может использовать общий каталог для работы над общим проектом, равно как и
о других подобных конфигурациях, рассказывается в главе 4.
Некоторые пользователи нуждаются в использовании или просто не могут обойтись без программ, не входящих в комплект OpenLinux. Большинство пользователей со временем обзаводится множеством собственных файлов: документы, конфигурационные файлы, сценарии и т. п. Система OpenLinux не предоставляет пользователям особой помощи в деле организации своих файлов, оставляя эту задачу системному администратору. О системном администрировании Linux написано множество замечательных книг, поэтому здесь я не буду вдаваться в подробности, а ограничусь лишь общими соображениями.
Структура каталогов, создаваемых в домашнем каталоге каждого нового пользователя, определяется содержимым каталога /etc/skel. В типичном /etc/skel обычно присутствуют следующие каталоги:
/bin
/src
/docs
/misc
Эти каталоги используются для хранения (соответственно) бинарных файлов, исходных файлов, файлов документов и других разнообразных файлов. Многие программы по умолчанию предлагают сохранять файлы тех или иных типов в одном из этих подкаталогов. Получив разъяснение о назначении имеющихся в их распоряжении каталогов, пользователи обычно охотно начинают пользоваться ими,
поскольку это избавляет их от необходимости придумывать что-то свое. Не забудьте только сделать каталог
/bin одним из последних каталогов, перечисляемых в переменной PATH пользователей. Более подробно об этом рассказывается в книгах, посвященных системному администрированию Linux.
Безопасность и пароли
Говорят, что где тонко, там и рвется, — это высказывание часто вспоминают, когда речь заходит о значимости паролей в системе безопасности. Вообще говоря, надежность системы безопасности определяется множеством факторов, в частности тем, какие службы Linux-система делает доступными для внешних пользователей (используется ли она в качестве web-сервера, можно ли войти в нее при помощи telnet и т. д.). Другим определяющим фактором являются пароли пользователей, что подводит нас к еще одному фактору — соблюдение пользователями политик безопасности. Но как говорилось ранее, простой пользователь знать ничего не желает о безопасности. Если мы уважаем пользователя и не хотим менять его отношение к безопасности принудительными методами, нам следует сделать систему безопасности удобной и понятной для него. Труднее всего обеспечить удобство. Все безопасное обычно не слишком удобно (поскольку за удобством стоят не сочетающиеся с безопасностью предсказуемость и элементарность) и потому входит в конфликт с обычным поведением людей, предпочитающих всем возможным способам самый удобный. В конце концов, пользователи работают с системой для того, чтобы выполнить возложенную на них работу, а не добавить себе новой. Дабы пользователи сознательно не шли по пути наименьшего сопротивления при работе с паролями, я обычно стараюсь объяснить им, для чего вообще нужны пароли и почему так важно поддерживать их безопасность. Важно не с общих позиций типа
«систему с низкой безопасностью могут взломать и украсть или повредить важные файлы», а с позиций личных интересов пользователя.
СОВЕТ
Наилучший способ заручиться поддержкой пользователей в деле поддержания безопасности паролей на должном
уровне — объяснить им, почему соблюдение норм безопасности при работе с паролями находится в их же
собственных интересах.
Большинство пользователей понимают всю важность электронной почты для своей работы. Тем не менее они не осознают, что любой вошедший в систему под их именем получает возможность использовать их электронную почту от их имени против них. Спросите у пользователя, использует ли он электронную почту в личных целях. Скорее всего, он ответит, что да. Затем спросите его, приходилось ли ему решать по электронной почте важные деловые вопросы. Таких, которые ответят «нет», с каждым днем становится все меньше и меньше. Но даже в случае отрицательного ответа некоторые из деловых партнеров вполне могут считать сделку по электронной почте столь же обязывающей, как сделка по телефону.
После чего объясните пользователю, что его электронные письма подчас обладают такой же важностью, как и его личная подпись. И хотя заголовок электронного послания можно подменить, в большинстве случаев подобная подмена так же противозаконна, как и подделка подписи. Но если некто, тем или иным способом узнав пароль другого пользователя, войдет в систему под его именем, то тем самым он, образно говоря, получит возможность подписываться подписью другого человека. Любая почта, отправленная им, будет технически неотличима от почты, отправленной самим пользователем. Практика предоставления кому-либо возможности входа в систему под другим именем является нежелательной и ее следует избегать (исключением являются системные администраторы, которые используют эту возможность для тестирования сценариев входа в систему и параметров пользователя, но для этого им нет необходимости знать пароль этого пользователя). К нежелательным явлениям следует отнести и вход в систему под чужим именем (даже с разрешения другого пользователя). Насколько это нежелательно? Ответ на этот вопрос определяется строгостью политики безопасности предприятия.
Однако пользователи должны понимать, что есть и другие не менее опасные способы получить несанкционированный доступ к их учетной записи. Наиболее распространен случай, когда пользователь, опасаясь забыть пароль, делает его простым для запоминания, а значит, и угадывания, или же записывает пароль на бумажку, которая зачастую просто прикрепляется к монитору. Система парольной безопасности основывается на двух вещах: постоянное имя пользователя и периодически меняющийся пароль.
Большинство людей никому не скажут PIN-код для доступа к своему банковскому счету, однако свой пароль пользователя они оберегают далеко не столь ревностно. Хотя в отличии от ситуации с банковским счетом, где постоянная часть, то есть кредитная карта, является физическим объектом, доступ к которому еще нужно получить, постоянная часть системы парольной безопасности, то есть имя пользователя, известна всем (по крайней мере, всем в пределах компании и тем, с кем данный пользователь вел
переписку по электронной почте). Поэтому если переменная часть где-то записана или легко угадывается или подбирается программой, перебирающей слова из словаря, то такую учетную запись нельзя считать хорошо защищенной.
Наконец, пользователи должны знать о существовании такого метода получения пароля, как
«социальная инженерия» (social engineering). Большинство из нас встречалось в своей жизни хотя бы с одним человеком, о котором можно сказать «скользкий как уж». Такие люди обладают способностью убеждать других людей, прибегая к логично построенной аргументации, предоставить нужную им информацию. Но это не единственно возможный способ узнать чужой пароль. Иногда достаточно просто подсмотреть. Например, вы вводите имя пользователя и пароль не глядя на экран и, оторвав свой взгляд от клавиатуры, обнаруживаете, что где-то ошиблись (случайно нажали клавишу Enter перед тем, как ввести имя пользователя, или произошло что-нибудь вроде того), в результате вместо имени пользователя вы ввели свой пароль, и теперь ваш пароль виден любому, кому виден экран вашего монитора. Вполне вероятно, что ваш пароль только что был «украден» кем-то, кто просто проходил мимо.
Средством противодействия подобным казусам является регулярная смена пароля. Как часто это должно происходить, решать вам. Можно, конечно, менять пароль раз в десять лет, но лучше не делать промежутки между сменами слишком длинными, равно как лучше не делать их и слишком короткими, например, раз в час. Не менять пароль слишком долго означает подвергать себя риску взлома. Если вы меняете его слишком часто, значит, вы рискуете запутаться в паролях, забыть пароль или поддаться искушению записать его на бумагу.
ПРИМЕЧАНИЕ-
Проникновение постороннего в систему под видом обычного пользователя может иметь печальные последствия не
только для файлов этого пользователя, но и для всей системы в целом, поскольку чем больше этот посторонний
будет знать о вашей системе, тем легче ему будет найти прорехи в ее защите.
Даже если не впадать в крайности, все равно период смены пароля может изменяться в достаточно широком диапазоне. Произвести за вас оценку риска эта книга не сможет, здесь я приведу несколько вопросов, ответы на которые помогут вам определить наиболее подходящую для вас частоту смены пароля
(в RFC 2196 объясняются основы оценки риска и даются ссылки на другие источники, содержащие информацию по этой важной теме).
- Свободно ли ваше рабочее пространство от любопытных глаз? Иначе говоря, если ваш пароль появится на несколько секунд на экране монитора, какова вероятность того, что кто-то его заметит?
- Насколько безопасна ваша сеть? Сеть, состоящая всего из двух машин, одной из которых пользуетесь только вы, а другой — члены вашей семьи, без сомнений относится к разряду безопасных
(если, конечно, ваши дети не являются малолетними хакерами).
- Предусматривается ли подключение к вашей локальной системе других пользователей в то время, как вы уже подключились и работаете с ней?
- Используете ли вы тот же самый пароль для удаленного доступа к другим компьютерам вашей сети с использованием не защищенных (то есть не шифруемых) протоколов? Если да, существует ли возможность «прослушивания» сетевых каналов с других сетевых узлов (карты Ethernet в режиме прослушивания сети)?
Выбрав для себя подходящий интервал смены пароля, будь это неделя, месяц, три месяца, шесть месяцев или год, вы можете легко обеспечить его соблюдение при помощи механизма устаревания пароля, о чем рассказывалось в предыдущей главе. Но кроме того, сам пароль должен быть одновременно устойчив ко взлому, легко запоминаем (чтобы не было нужды записывать его) и трудно угадываем для тех, кто может вас знать.
Так какой же пароль является хорошим? Чем больше пароль напоминает набор случайных символов, тем лучше. Длина хорошего пароля находится в пределах от шести до восьми символов, хотя при некоторых обстоятельствах пяти символов может оказаться вполне достаточно. Пароли длиннее восьми символов будут усечены, при их использовании могут возникнуть проблемы с некоторыми программами, поэтому их лучше не использовать.
Придумать хороший пароль хотя и сложно, но вполне возможно. Однако я бы рекомендовал следующий путь.
1. Установите в системе программу makepasswd (ее можно найти по адресу http:// tech.ilp.physik.uni-essen.de/www.debian.org/Packages/stable/admin/makepasswd.html).
ПРИМЕЧАНИЕ
Программу makepasswd можно найти на компакт-диске, прилагаемом к данной книге.

2. Сгенерируйте несколько паролей с помощью этой программы и выберите сре ди них тот, который вам легче всего будет запомнить.
3. Измените свой пароль.
4. После этого с десяток раз выйдите и вновь войдите в систему. Через несколько часов повторите это упражнение еще раз.
Оно поможет вам запомнить ваш новый пароль.
Двадцати повторений обычно бывает достаточно, чтобы паль цы запомнили последовательность нажатия клавиш.
Но если выдумывать пароль самому, без помощи makepasswd, как определить, хороший он или плохой? Для этого можно использовать признаки, перечисляемые далее. Комбинация символов является хорошим паролем, если она:
- содержит специальные символы (!@#$%^&*, а также цифры) в двух или более знакоместах;
- содержит как заглавные, так и строчные буквы; - имеет длину от шести до восьми символов;
- представляет собой нечто непонятное или же комбинацию слов, разделенных специальными символами.
Комбинация символов является плохим паролем, если она:
- является словарным словом или же его модификацией (включая иностранные слова): party, fiesta, party5, fi3sta и т. п.;
- совпадает с именем кого-нибудь из ваших домашних: жены, ребенка, кота и т. п.
- представляет собой дату: 610930, 300961 и т. п.;
- взята из ваших личных данных: место рождения, номер паспорта и т. п.;
- имеет отношение к вашим увлечениям и т. п. (если это слово одно из тех, что все время вертится у вас в голове, поскольку связано с вашей личностью или с компанией, на которую вы работаете, то знающему вас будет нетрудно угадать его).
Помните, однако, что даже самый хороший пароль становится плохим, стоит только записать его на бумагу.
Когда мне нужно придумать пароли, одновременно легкие для запоминания и устойчивые ко взлому, я обычно выбираю какую-нибудь тему и использую предлагаемые ей слова в качестве основы для своих паролей. Возьмем, например, тему «растения». Используя названия растений (rose, oak, ivy и т. п.) и комбинируя их с чем-нибудь другим, скажем, цветами (red, blu, blk) и специальными символами, я с легкостью могу выдать целый ряд паролей, которые легко запомнить, но трудно взломать:
blk*ros3
.. blu!ivy red#oak4
Чтобы проверить, насколько устойчивы ко взлому порождаемые вашей схемой пароли, имеет смысл натравить на них программу взлома паролей. Но об этом чуть далее.
Пока же вернемся к программе makepasswd. Будучи вызвана без аргументов, она возвратит шести- или восьмисимвольный пароль, который невозможно взломать простой атакой по словарю. Для взлома такого пароля придется прибегнуть к перебору всех возможных паролей, что связано с огромными вычислительными затратами. К несчастью, это пароли из разряда тех, которые пользователь обязательно запишет на бумагу и при виде которых сразу становится ясно, что это пароль. Поэтому задача донесения до пользователей необходимости сохранения паролей в секрете приобретает здесь первостепенную важность.
Программа makepasswd представляет собой простой сценарий на языке Perl, который выводит случайный пароль и, при необходимости, этот же пароль в зашифрованном виде. Например:
# makepasswd --char 8 --count 8 --crypt ecuraCdK aFP4Fy.p/K9bY dLeiVWVd Flqcui.9L3xQI
7FSBJEFH MkHjkpOIdSmLc
ORA2vLsv !QYuK3Fw5Ih8U
DuSbFxDj bB.thDEpz7Zi. wCPOIX6v Xe3ntRWjABCnM
SowKUgvg Z485y6UQyMEdE xPViT6AU X9gm2NtZc.hK6
Удобство makepasswd в том, что эта программа позволяет автоматизировать процесс создания большого числа учетных записей. Например, можно написать сценарий, который бы последовательно перебирал бы всех пользователей из определенного списка (скажем, от studentl до student100), генерировал пароль, создавал учетную запись для каждого имени и помещал имена учетных записей и пароли в файл, из
которого их потом можно было бы раздавать студентам.

ПРИМЕЧАНИЕ
На компакт-диске, прилагаемом к книге, имеется примитивный сценарий, берущий из файла список имен
пользователей, которых нужно добавить в систему, и создающий для них хорошие (с учетом ранее изложенных
признаков) восьмисимвольные пароли. Более точно: для каждого имени пользователя из файла сценарий создает
группу и пользователя (с одним и тем же номером UID/GID), генерирует и шифрует пароль и помещает его в файл
/etc/shadow.
Обратите внимание, что перед началом своей работы сценарий осуществляет некоторые проверки: выполняется ли он на уровне привилегий root, не занят ли начальный UID и т. д. Тем не менее нельзя сказать, что он проверяет все
1

Например, в нем предполагается, что перечисленные в файле имена пользователей отсутствуют в системе, иными словами, сценарий позволяет только добавлять пользователей, но не обновлять их пароли.
Некоторые вещи жестко заданы в исходном тексте — например, использование восьмисимвольных паролей. Если вы решите изменить длину пароля, не забудьте поменять значение параметра самой последней команды cut. Вообще говоря, рассматривайте этот сценарий не как нечто законченное и совершенное, но как пример, демонстрирующий один из возможных подходов к проблеме создания множества учетных записей. Так что если вам что-нибудь в нем не нравится, смело изменяйте его. Для этого он и создан. Более правильно было бы, как мне кажется, написать сценарий на expect, но я не особо силен в области expect-сценари-ев. Для тех, кто не знает, expect — это язык для написания сценариев управления интерактивными программами, позволяющий имитировать сеанс работы с программой, предполагающей интерактивное вмешательство в ее работу (например, ftp или rogue). Программа ожидает ввода с клавиатуры, однако вместо этого ей передается команда сценария, благодаря этому удается автоматизировать сеанс работы с программой. Я написал данный сценарий по одной причине: существующие программы неудобно использовать для быстрого и эффективного добавления в систему множества пользователей. Пришлось самому решать эту проблему в меру своих умений. Далее приводится текст сценария (комментарии и текстовый вывод переведены на русский язык, если ваша система не поддерживает русский, вы должны модифицировать сценарий соответствующим образом).
1 #!/bin/bash
2 #
Разработан
Дэвидом
Банделом (D.Bandel) - 3 сентября 99; распространяется в соответ ствии с GPL
# Сценарий принимает список имен пользователей и создает набор учетных записей
4 # Зашифрованные пароли записываются в файл /etc/shadow
5 6 prog=/usr/bin/makepasswd
7 names=/root/newusernames
8 1ogins=/root/newlogins
9 tmpshadow=/root/shadow.tmp
10 startid=1000 11 12 if [ $UID != 0 ] ; then echo "Чтобы запустить программу $0, вы должны быть пользователем root"
14 exit 1 15 fi
16 17 if [ ! -е /etc/shadow ] ; then
18 echo "Вы не используете систему shadow"
19 exit 2 20 fi
21 if [ ! -x $prog ] ; then
22 echo "В вашей системе не установлена программа $prog"
23 exit 3 24 fi
25 if [ 'grep ":${startid}:" /etc/passwd' ] ; then
26 echo
"Пожалуйста, измените startid (начальный UID/GID) и запустите сценарий заново"
27 exit 4 28 fi
29 echo : echo "идет работа ..."

1
Более того, он работает только с makepasswd версии 1.07, поскольку в более поздних версиях (1.10 на момент перевода этой книги) отсутствует параметр --clear. — Примеч. перев.

30 for i in 'cat $names'
31 do
32 j='$prog --char 8'
33 echo "${i}:${j}" >>$logins ; echo " . "
34 done
35 36 k=$startid;cp /etc/shadow /etc/shadow.orig
37 echo ; echo "работа продолжается ..."
38 for i in 'cat $logins'
39 do
40 j='echo $i | cut -d : -f 1 -'
41 l='echo $i | cut -d : -f 2 -'
42 groupadd -g $k $j
43 useradd -m -u $k -g $j $j
44 k=$[$k+l]
45 m='$prog --clear=$l --crypt | cut -b 12 --'
46 sed "s|$j:\*not set\*|$j:$m|" /etc/shadow > $tmpshadow
47 mv $tmpshadow /etc/shadow ; echo " . "
48 done
49 50 exit 0
Сам сценарий предельно прост. Нужно лишь создать файл /etc/newusernames, содержащий имена пользователей, которых нужно добавить в систему. После чего можно выполнять сценарий.
- Строки 6-10 инициализируют некоторые переменные, являющиеся, по сути дела, параметрами сценария. В силу характера информации, помещаемой во временные файлы, местом хранения временных файлов выбран подкаталог /root. Предполагается, что права на чтение /root имеет только суперпользователь. Возможно, вам понадобится изменить имя входного файла, содержащего имена пользователей, и начальное значение идентификатора группы и пользователя (UID/GUID).
- Строки 12-28 осуществляют некоторые простейшие проверки. Проверяется не все, но только самое важное.
- Строки 30-34 перебирают все имена пользователей и создают для них пароли, сохраняемые во временном файле для дальнейшего использования.
- Строки 38-48 создают для каждого имени частную группу пользователя, самого пользователя, шифруют пароль и помещают его в /etc/shadow.
Выполнение сценария может занять некоторое время. В основном оно уходит на генерацию программой makepasswd случайных паролей и на их последующее шифрование.
Взлом паролей
Один из способов проверки безопасности системы подразумевает, что вы ставите себя на место злоумышленника и пытаетесь думать и действовать так, как действовал бы человек, пытающийся нарушить вашу защиту. Это означает, что вы прогуливаетесь среди пользователей, подсматривая, не прикреплен ли к какому-нибудь монитору записанный пароль, не оставил ли кто-нибудь на столе бумажку с записанными на ней идентификационными данными, или же «проходите мимо» как раз в то утреннее время, когда пользователи входят в систему (быть может, удастся заметить, как кто-нибудь из них будет набирать пароль на клавиатуре).
Это также означает, что вы должны обращать внимание на ориентацию монитора пользователя, имеющего доступ к чувствительной информации, дабы выяснить, видна ли она кому-нибудь еще. Далее, когда эти пользователи отлучаются от своего рабочего места, запускают ли они заблокированную паролем программу-заставку (screen saver), а может, выходят из системы или же не делают ничего?
СОВЕТ
Однако наилучший способ проверить на прочность систему парольной безопасности и отношение пользователей к
ней — попытаться взломать пароли пользователей. Регулярное выполнение программы взлома паролей способно
дать достаточно хорошую оценку крепости вашей системы парольной защиты.
Хороших программ для взлома паролей написано множество, и все время появляются еще более развитые программы. Тем не менее, какой бы хорошей не была программа, взлом паролей всегда связан со значительными вычислительными и временными затратами, поэтому лучше заниматься этим ночью, когда вычислительная нагрузка на систему со стороны пользователей достигает своего минимума.



Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   ...   42


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал