Многие
организации в мире сегодняшнего
бизнеса перестраивают свою
деятельность в соответствии с моделью
клиент/сервер, в том числе управление
важной научной, финансовой и
юридической информацией. Unix здесь -
одна из основных операционных систем. В
прошлом вычислительные мощности и
данные располагались на одной системе
и ее закрытость была гарантией
безопасности данных. Однако в модели
клиент/сервер и операционная система, и
приложения используют при работе сеть.
В этих системах безопасность сетевых
приложений напрямую
связана с безопасностью сети и систем в
этой сети.
Заприте
дверь на ключ
Вход в
систему и пароль - это первая линия
обороны в системе Unix. В файле паролей
перечислены все пользователи с правом
доступа в систему. В большинстве систем
зашифрованный пароль хранится в файле
паролей, доступном для чтения.
Предполагается, что расшифровать
пароль невозможно, но, тем не менее,
открытость зашифрованного пароля
делает систему уязвимой; пользователь
может задать пароль, зашифровать его и
сравнить зашифрованный результат с
содержимым новой строки файла паролей.
Большинство последних версий
операционных систем Unix предполагают
возможность использования скрытых
файлов паролей. В них зашифрованный
пароль помещается из файла паролей в
файл, который доступен для чтения
только для суперпользователей. Такая
мера весьма эффективна. Одноразовый
код доступа и механизм пароль/отзыв
помогают сделать пароль еще более
неуязвимым, так как пароли в этом
случае действительны только на один
сеанс. Если взломщик каким-либо образом
узнал пароль, то войти в систему он
сможет только один раз. Примерами
подобных механизмов служат Defender
компании Digital Pathways (Маунтейн-Вью, шт.
Калифорния), SecurID компании
Security Dynamics (Кэмбридж,
шт. Миннесота) и S/Key компании Bellcore (Пискатавей,
шт. Нью-Джерси). В сетях с высокой
степенью секретности, например
финансовых, весьма
эффективно
использование одного из механизмов
ограничения доступа. Помните, что по
статистике ФБР 85% взломов производится
сотрудниками.
Оставайтесь
в команде
Команда finger в
чужих руках способна значительно
облегчить взлом сети. У пользователя
есть возможность выполнить данную
команду без входа в систему и получить
информацию о всех пользователях сети.
Это небезопасно по многим причинам.
Например, получив с помощью команды finger
имена пользователей, номера комнат и
номера телефонов, содержащиеся в файле
паролей (см. Рис. 1), взломщик может
использовать их для регистрации под
именем одного из пользователей, а также
для взлома защиты системы в целом.
Сетевые системы Unix подвергаются
наибольшему риску из-за использования
удаленных команд (r-команды), таких как
rsh, rcp и rlogin. Эти команды дают
пользователю возможность с правом
доступа к нескольким системам
установить доверительные отношения
между этими системами. Причем
пользователь получает доступ в систему
без дальнейшей идентификации и
аутентификации. Эти
"доверительные"
отношения определяются для
пользователей в файлах. rhosts в домашних
каталогах и для систем в
конфигурационном файле удаленных
команд /etc/host.equiv файл.
К сожалению,
многие производители предпочитают
выпускать "дружественные для сети"
разработки с целью увеличения легкости
их использования. Один из способов - это
включить символ (+) в файл /etc/host.equiv, что
позволит любому человеку, работающему
в локальной или глобальной сети,
получить доступ к системе в качестве
любого пользователя, даже в качестве
суперпользователя (администратора).
Вообще, "доверительные" отношения
между сетями не рекомендуются. Однако
многие организации используют их,
чтобы упростить администрирование
сети. А при таком положении дел важно,
чтобы только небольшое подмножество
систем находилось в "доверительных"
отношениях друг с другом. Например,
разрешить подобный доступ только с
сервера к клиенту, но не с клиента к
серверу и разрешить
чтение файла
rhosts только его владельцу. Network File System
(NFS) и Network Information Service (NIS) позволяют
упростить доступ к файлам и
администрирование сети. (NIS носила
раньше имя Yellow Pages, и многие команды
отражают этот факт в своих названиях:
ypwhich, ypcat и т. п.) NFS реализует механизм,
благодаря которому доступ к файлам
является прозрачным для пользователя
вне зависимости от их местоположения.
Файлы могут
располагать я
как на локальном диске, так и на
файловом сервере локальной или
глобальной сети. Для правильной работы
NFS пользовательская и системная
информация должны быть согласованы
между используемыми системами.
Согласованность обеспечивает NIS
посредством централизованного
копирования файлов конфигурации и
паролей на сервер NIS. Это позволяет
администратору изменять информацию
непосредственно на NFS-сервере, причем
изменения становятся доступны
клиентам NIS. NFS внутренне уязвима,
поскольку она базируется на выводах
удаленных процедур. Удаленные вызовы
процедур содержат идентифицирующую
пользователя информацию (UID), но не
имеют механизма определения наличия
ограничений на использование ресурсов
и того, что пользователь действительно
является тем, за кого себя выдает. Таким
образом, заинтересованное лицо может
написать
маскирующуюся
под систему программу с тем, чтобы
монтировать файловые системы или
создавать, читать, модифицировать или
удалять файлы напрямую. Для
назначения систем, имеющих доступ к
файловым системам на сети, можно
использовать команды exportfs и файл
/etc/exports. Некоторые производители
выпускают системы с экспортом каталога
/AND/USR во внешний мир. А стало быть,
каждый пользователь этой сети может из
любой точки монтировать такие файловые
системы. Вообще, никакие файловые
системы не должны экспортироваться во
внешний мир и, везде, где только
возможно, они должны экспортироваться
только для чтение. Безусловно, рабочий
каталог пользователя необходимо
сделать доступным как для чтения, так и
для записи. Команда exportfs без
параметров выдает список
экспортированных файлов.Команда showmount-a
показывает, какие из экспортированных
файлов смонтированы клиентами.
Набор
инструментов для взломщика
Привилегии
суперпользователя для клиента NIS
должны жестко контролироваться. Когда
пользователь входит в систему, NIS
сначала проверяет локальный файл
паролей и затем файл паролей NIS.
Взломщику ничего не стоит использовать
эту возможность, чтобы выдать себя за
легитимного пользователя внутри NIS.
Локальный пользователь с привилегиями
суперпользователя может добавить UID
другого пользователя, чтобы получить
его привилегии.
К примеру,
ниже приведено содержимое NIS-пароля:
vip:
encrypted passwd: 23456:
2002:Very Important Person:
/u/vip:/bin/ksh
Локальный
суперпользователь может добавить ту же
или аналогичную информацию в локальный
файл паролей:
vip:new
encrypted passwd:
23456:2002: Very Important
Person:/u/vip:/bin/ksh
или
cdc:encrypted passwd:23456:2002
:fictitious information:/u/vip
:/bin/ksh
Заметим, что
идентификатор пользователя/идентификатор
группы (23456) и групповой ID (2002) в этих
строках один и тот же; именно он, а не
входной идентификатор (VIP или CDC),
контролирует доступ к файлам.
Локальный суперпользователь может
затем войти как VIP или CDC и получить
доступ ко всем файлам на /U/VIP/ или может
просто зарегистрироваться как
пользователь
через команду SU CDC. У суперпользователя
появляется возможность создавать,
читать, модифицировать или удалять
файлы. Этот тип нарушения доступа
особенно трудно установить, поскольку
локальный суперпользователь
контролирует файлы регистрации
использования ресурсов и доступа к
защищенным данным в системе. Замести
все следы доступа - относительно
простая задача. Клиенты и серверы NFS
не осуществляют проверку
аутентичности друг друга.
Следовательно, клиент может стать
сервером при помощи команды ypserve или
создать клиента при помощи команды ypbind.
Клиенты NIS связываются при
включении с
первым ответившим сервером. Ложный
сервер обычно и отвечает первым. Сервер
NFS позволяет любой системе стать
клиентом. Эти вопросы безопасности
разрешены в новой версии NIS, названной
NIS+. Однако функции безопасности NFS+
частично не блокируются при
взаимодействии с NIS. Тривиальный
протокол передачи файлов (tftp) и
протокол передачи файлов (ftp)
применяются для перемещения файлов из
одной системы в другую, а ftp - это
фундаментальный
ресурс Internet (см. "Объезд
супермагистрали" о дополнительной
информации по
защите вашей сети от доступа из Internet).
Tftp особенно уязвим, поскольку
разрешает передачу файлов без контроля
прав доступа. Он наиболее часто
используется с Bootstrap Protocol (BOOTP) для
распространения конфигурационных
файлов на бездисковые рабочие станции,
X-терминалы и элементы сети, например на
маршрутизаторы. Tftp следует
дезактивировать, даже когда в этом нет
явной необходимости. Чтобы ограничить
область уязвимости, установите tftp в
каталог chroot. Chroot разрешает доступ
только к файлам в этом
каталоге и
подкаталогам. Также ограничьте
использование tftp локальной сетью.
Чтобы протестировать надежность
защиты конфигурации tftp, выполните
следующие команды:
# tftp
<systemname>
tftp>
get /etc/passwd test
tftp>
quite
Проверьте,
содержит ли файл test реальный файл
паролей для системного имени. Если это
так, то tftp не защищен. Группа Computer
Emergency Response Team (CERT) обнаружила несколько
уязвимых мест tftp. CERT была организована
агентством DARPA для мониторинга
компьютерной
безопасности и попыток преодоления
защиты. С ним можно связаться по адресу:
cer@sei.cmu.edu. Конфигурация ftp часто
осуществляется некорректно. Никто не
должен входить в систему как
суперпользователь ftp. Если
поддерживается анонимный ftp, то все
файлы в каталоге ftp, включая сам каталог,
должны находиться в распоряжении
суперпользователя (root). Если
сконфигурирован анонимный ftp, то не
создавайте каталог, открытый для
чтения и записи. Эти открытые на запись
каталоги часто используются для
нелегального распространения
программного обеспечения, а также для
распространения вирусов. Simple Mail
Transfer Protocol (SMTP) стал притчей во языцех с
точки зрения уязвимости. SMTP часто
выполняется как root (суперпользователь)
или bin (другой привилегированный
пользователь), и во многих организациях
SMTP - единственная служба, к которой есть
доступ из Internet. Это делает sendmail весьма
привлекательной для выявления
уязвимых мест системы. Так,
несанкционированный доступ к системе
можно получить при помощи команд wiz, debug
и kill. Чтобы обнаружить "черный ход",
введите команды:
# telnet
- name> 25
wiz
debug
kill
exit
Если "черного
хода" не существует, ответ на каждый
ввод будет:
500
Command unrecognized.
Еще одна
проблема - возможность замаскироваться
с помощью агента передачи данных Unix
sendmail под любого пользователя сети. Mail
выглядит как законный пользователь.
Электронная почта по протоколу SMTP
посылается открытым текстом и может
быть перехвачена или считана с сети.
Поэтому не включайте никакую
информацию, которую нельзя было бы
написать на обычной почтовой карточке.
Широкое распространение получили ныне
некоторые системы электронной почты,
обеспечивающие секретность данных. Pretty
Good Privacy (PGP) и Privacy Enchanced Mail (PEM) - примеры
безопасных версий электронной почты (см.
"Запечатайте
электронную
почту"). Эти системы обеспечивают
секретность содержимого сообщения на
всем пути от отправителя до адресата.
Стандартом Windows для Unix является X Window.
Обычно его называют просто X.
Секретность информации в X
обеспечивается конечным пользователем.
Термины "клиент" и "сервер" в X
часто взаимозаменяемы, а монитор,
отображающий X,
назван
дисплейной станцией. Пользователь
может не обеспечить достаточную защиту
дисплейной станции. Доступом системы к
дисплейной станции управляет команда
xhost, в то время как доступом
пользователя к дисплейной станции
управляет xauthorities. Доступ позволяет
осуществлять отображение окон или
приложений и мониторинг дисплейной
станции. Имеющийся инструментарий
позволяет отслеживать ввод в различные
окна и осуществлять удаленный ввод
данных в открытые окна. Когда
активирована xauthorities, то необходим ключ
Data Encryption Standard (DES) для того, чтобы
пользователь мог выводить изображение
на дисплейную станцию. Каждый раз при
открытии сеанса генерируется новый
ключ. Ключи хранятся в корневом
каталоге пользователя в файле. XAUTHORITY.
Чтобы другой пользователь смог
получить доступ к дисплейной станции,
ключ должен быть извлечен из файла.
XAUTHORITY и добавлен к файлу. XAUTHORITY другого
пользователя. То же самое должно быть
проделано для того же пользователя в
другой системе. Например, если
пользователь VIP пользуется дисплейной
станцией MAPLE и хочет отобразить
программы из системы OAK в MAPLE, ключ
должен быть введен в файл. XAUTHORITY в OAK.
Использование и xhost, и xauthority необходимо
для обеспечения секретности в X.
Пользователь должен быть довольно
грамотен для
обеспечения сохранности информации в X.
Сохранение
мира
Сеть под Unix
может быть засекречена. Первый шаг
заключается в обеспечении жесткого
контроля всего доступа в сеть и системы.
Затем следует обеспечить все узлы сети
посредством надежного
конфигурирования протоколов и
приложений и использовать шифрование
всех данных, проходящих через
незащищенные сети, какой является
самая большая в мире открытая сеть
Internet. LAN Синди Куллен - старший
системный инженер компании Bell Communications
Research (Пискатавей,
шт. Нью-Джерси). С ней можно связаться
через Internet по адресу: cdc@bellcore.com
$
finger username@systemname
Login
name: username (messages off)
Directory:/u/username
On since
Jun 23 10:11:57 on ttyq1
No Plan.
In real life: Actual Name
Shell:/bin/ksh
13 seconds Idle Time
$ finger
@ systemname
Login
console
cdc
vip
Name
root-C. Cullen - group XXXXX
C. Cullen, 555-1212
very important person, guest of Cindy Cullen
TTY
console
p0
p5
Idle
12
9
When
Thu 03:36
Sat 05:34
Sun 12:25
В этом
примере представлена часть вывода по
выполнении команды finger (обратите
внимание на информацию в поле имени). В
ноябре 1988 года Роберт Т. Моррис-младший,
в то время студент, изучающий
компьютерные технологии в Корнельском
университете, создал Morris Worm,
самокопирующуюся и
самораспространяющуюся программу,
которая буквально поразила Internet. В
программе использовалась именно
команда finger.
Неизбежные
попутчики
Объезд
супермагистрали
Firewall - это
механизм, использующийся для защиты
сети по всему периметру. Его наиболее
популярное применение - защита
корпоративных сетей от
несанкционированного доступа из Internet.
Существуют два основных подхода,
используемых в firewalls. Набор фильтров
firewall, как следует из его названия,
фильтрует или отсеивает ненужные
пакеты, руководствуясь множеством
правил, названным списком контроля
доступа (access control list). Firewall для
сервера приложений или посредника - это
программа. Такой firewall фильтрует или
определяет направление соединения для
протоколов telnet, SMTP, ftp и World Wide Web.
Пользователь должен иметь
соответствующее программное
обеспечение клиента и быть авторизован
в firewall. Это позволяет контролировать
доступ на уровне пользователя и
регистрировать трафик их сети в сеть.
Серверы приложений и посредники
обеспечивают жесткий контроль
входящих и
исходящих
данных. Например, функции ftp могут
ограничиваться только "puts" или
"gets" и каждая транзакция может
быть зарегистрирована.
Запечатайте
электронную почту
Pretty Good Privacy
(PGP) может использоваться для
шифрования файлов и электронной почты,
а также для подписания документов с
заверенной электронной подписью. PGP
использует технику шифрования
открытым ключом и секретным ключом. При
посылке зашифрованной электронной
почты, сообщение необходимо
зашифровать открытым ключом
получателя, секретный же ключ должен
быть послан получателям под защитой их
открытых ключей. Таким образом, только
легитимный получатель способен
расшифровать сообщение при помощи
своего личного ключа. Личный ключ
каждого пользователя может быть
использован для подписи документа.
Соответствующий открытый ключ
используется для определения
подлинности
документа. PGP распространяется
бесплатно для некоммерческого
использования, хотя существуют и
коммерческие версии. Он доступен для
большинства систем под Unix,
DOS, Windows, OS/2 и
Macintosh. Экспортные ограничения
распространяются на PGP. Однако
совместимое с PGP программное
обеспечение доступно и за пределами
Соединенных Штатов.
Privacy Enhanced Mail (PEM)
- это стандарт шифрования электронной
почты, разработанный группой
инженерной поддержки Internet (IETF). PEM можно
использовать для подписывания и
шифровки сообщений электронной почты.
Поддержка PEM доступна для приложений на
ПК в системах Unix и Macintosh. PEM тоже
использует шифрование с открытыми
ключами.