Автор работы: Пользователь скрыл имя, 08 Апреля 2012 в 09:00, курсовая работа
В качестве объекта защиты я брала офис крупной нефте-газовой корпорации по двум причинам:
во-первых, я имела возможность получить некоторую информацию о нем;
во-вторых, такой объект защиты показался мне очень интересным.
Защита информации на каком-либо объекте это комплекс самых разнообразных мер, которые очень тесно связаны между собой. Каждая из них очень важна, потому что прочность цепи, как известно равна прочности самого слабого ее звена.
Вступление………………………………………………………………………...3
Список используемых терминов и обозначений………………………………..4
Часть І. Теория…………………………………………………………………….6
Основные понятия, термины и определения……………………………..6
Информация и информационные отношения. Субъекты информационных отношений, их безопасность…...6
Определение требований к защищенности информации………...10
Комплексные меры по защите информации……………………………13
Принцип «слабейшего звена»……………………………………...13
Экономическая целесообразность защиты………………………..13
Категоризация информации ……………………………………….14
Комплекс мер защиты………………………………………………15
Часть ІІ. Практика………………………………………………………………..19
Объект……………………………………………………………………...19
Физическая защита. Защита серверной комнаты……………………….21
Организационная защита…………………………………………………24
Реализация политики безопасности………………………………25
Программная защита……………………………………………………...33
Безопасная настройка FreeBSD…………………………………...35
Атрибуты файла и файловой системы…………………………...47
Способы защиты от флуда и DDoS атак…………………………47
Другие средства защиты…………………………………………..51
Вывод……………………………………………………………………………..52
Литература……………………………………………………………………….53
Подразделения внутри Корпорации могут принять решение сделать некоторую информацию доступной для публичного доступа. Это должно делаться путем создания сервера для WWW и/или анонимного FTP. Администраторы сетевой безопасности должны обеспечить помощь в этом, согласованную с их другими обязанностями по установке таких информационных серверов. Если администраторы безопасности решат поместить сервер за периметром обороны, они должны проконсультироваться с ответственной организацией в отношении процедур, которым надо будет следовать в том случае, если сервер окажется разрушен преступниками за пределами Корпорации. Если сервер нужно установить в одном из интернетов в низкими привилегиями, администраторы безопасности отвечают за гарантию того, что пользователи таких служб не смогут обойти защиту в этих приложениях и получить доступ к информационным ценностям Корпорации.
Когда мы говорим о программной защите информации самым первым и важным шагом должен стать выбор операционной системы, потому что программная защита информации реализуется большей частью либо средствами ОС, либо средствами специально под нее разработанными. То есть выбирая ОС мы должны пристальное внимание уделить стабильности и надежности ОС, тому насколько в ней реализованы средства защиты информации, тому насколько она поддерживается разработчиками, как быстро латаются «дыры» и выходят обновления и многим другим факторам.
Для сервера в данном оффисе я выбрала ОС FreeBSD. Причиной моего выбора является то, что при том что она абслютно бесплатна, а значит легко доступна мне для изучения, она обладает многими другими ценными качествами.
FreeBSD - это полноценная операционная система (ядро и пользовательское окружение) с хорошо зарекомендовавшим себя наследием, уходящим своими корнями в истоки разработки Unix. Так как и ядро и предлагаемые утилиты находятся под контролем одной группы по выпуску релизов - меньше вероятность несовместимости библиотек.
FreeBSD пользуется популярностью как стабильная, надежная ОС. Активно поддерживается разработчиком.
Уязвимости в безопасности также могут быстро обнаруживаться командой по безопасности. Когда появляются новые утилиты или возможности ядра пользователю просто надо прочесть один файл (Release Notes, Замечания по релизу), который публично доступен на главной странице веб-сайта FreeBSD.
Безопасность очень важна для Группы подготовки релизов FreeBSD.
Все инциденты и исправления, связанные с безопасностью проходят через Команду по безопасности и выпускаются, как публично доступные Бюллетени по безопасности (Advisories). Команда по безопасности имеет хорошую репутацию за быстрое решение известных проблем с безопасностью. Полная информация относительно процедур работы с безопасностью во FreeBSD и где искать информацию по безопасности доступна на http://www.FreeBSD.org/
Одна из проблем, связанная с Open Source программным обеспечением - это точное количество пригодных приложений. Существуют почти что десятки тысяч проектов Open Source приложений, и каждый с различными уровнями ответной реакции на инциденты, связанные с безопасностью. FreeBSD приняла этот вызов вместе с VuXML. Всё программное обеспечение, поставляемое с операционной системой FreeBSD, так же, как и любое программное обеспечение доступное в Коллекции портов сравнивается с базой данных известных, неисправленных уязвимостей. Администратор может использовать portaudit утилиту, чтобы быстро определить, есть ли на FreeBSD системе уязвимое программное обеспечение, и если есть, получить описание проблемы и URL, содержащее более детальное описание уязвимости.
FreeBSD также предоставляет множество механизмов, которые позволяют администратору настраивать операционную систему под его нужды, связанные с безопасностью:
Утилита jail позволяет администратору ''заключать процесс в тюрьму''; это идеально для приложений, которые не имеют собственного chroot окружения.
Утилита chflags улучшает безопасность, предлагаемую традиционными Unix разрешениями. Она может, к примеру, предотвратить изменение или удаление указанных файлов даже суперпользователем.
FreeBSD предлагает 3 встроенных файерволов, предлагая больше возможностей для выбора набора правил наиболее подходящего для нужд безопасности.
Ядро FreeBSD легко модифицируется, позволяя администратору убирать ненужную функциональность. FreeBSD также имеет поддержку загрузочных модулей ядра и предоставляет утилиты для просмотра, загрузки и выгрузки модулей ядра.
Механизм sysctl позволяет администратору просматривать и изменять состояние ядра на лету без перезагрузки.
Для того, чтобы лучше координировать обмен информацией с сообществом, занимающимся вопросами безопасности, во FreeBSD имеется точка для соответствующих коммуникаций: Офицер информационной безопасности FreeBSD.
Служба информационной безопасности FreeBSD выпускает бюллетени безопасности для нескольких разрабатываемых веток FreeBSD. Это Ветки -STABLE и Ветки Security. (Бюллетени не выпускаются для Ветки -CURRENT.)
Обычно здесь присутствует только одна ветка -STABLE, хотя в процессе перехода от одной основной линии разработки к другой (например, с FreeBSD 4.x на 5.x) имеется временной интервал, в котором существуют две ветки -STABLE. Тэги ветки -STABLE носят имена типа RELENG_4. Соответствующие версии носят названия типа FreeBSD 4.6-STABLE.
Каждому релизу FreeBSD поставлена в соответствие ветка безопасности (Security Branch). Метки веток безопасности именуются как RELENG_4_6. Соответствующие построенные версии носят названия типа FreeBSD 4.6-RELEASE-p7.
Каждая ветка поддерживается службой безопасности ограниченное время, обычно до 12 месяцев после релиза.
Важно правильно настроить ОС. Без этого, какой бы совершенной она не была, говорить о ИБ преждевременно. Итак, приступим.
В этом разделе приведу некоторые рекомендации, которые помогут настроить наиболее защищенный сервер.
Здесь описывается использование некоторых приложений, которые включены в дерево портов FreeBSD, эти приложения помогут сделать сервер еще более защищенным. Также, я опишу использование chrootkit - программа для проверки наличия в системе root-kit-ов. rdate - замена для ntp. cvsup и portupgrade для обновления системы и дерева портов.
1. Инсталяция:
При разметке диска, лучше всего не использовать значения по умолчанию, а разметить его вручную. Приведу несколько причин: возможность повреждения файловой системы при аварии значительно снижается, если в это вермя она не находилась в процессе записи, а так как запись в раздел root осуществляется крайне редко, следует поместить его отдельно; сохранение всех данных в одном разделе ведет к повышению уязвимости системы к различным атакам и ошибкам пользователей; это позволит применить различные опции для каждого раздела.
Разметка диска будет выглядеть вот так:
none(swap)
/
/tmp
/usr
/usr/home
/var
/root
2. Настройка
Отключаем inetd. В этом случае никто не сможет использовать telnet, rlogin или ftp для доступа к компьютеру.
Отключаем port_map
Откажемся от ntp, вместо этого мы используем rdate, при обновлении будут использоваться ntp-сервера. Установим коллекцию портов, которая будет расположена в /usr/ports
Установим следующие порты
/usr/ports/security/chkrootkit
/usr/ports/security/portaudit
/sysutils/rdate
/sysutils/portupgrade
/net/cvsup-without-gui (я считаю, что на серверах не должно быть графического интерфейса)
3. Пользователи.
Так как мы запрещаем удаленную регистрацию под пользователем root через ssh, очень важно создать дополнительного пользователя. Для этого необходимо создать пользователя, который должен быть в группе wheel, что позволит ему в дальнейшем регистрироваться под пользователем root при помощи команды su.
Создадим группу для пользователей, которые могут иметь удаленный доступ
vi /etc/group
sshusers:*:1001:список пользователей находящихся в этой группе Сохраним файл и выйдем из vi, для этого зажмите кнопку shift и нажмите дважды кнопку zz.
(далее это действие будет обозначаться как ZZ)
4. Сообщение дня
cp /etc/motd /etc/motd.old
rm /etc/motd
vi /etc/motd
В содержании этого файла необходимо написать предупреждение о том, что доступ к данному серверу имеют только зарегистрированные пользователи и только для выполнения задач, которые разрешены для выполнения на этом сервере. Также необходимо указать что, регистрируясь на данном сервере пользователь соглашается с системной политикой данного сервера, что очень важно в случае возникновения судебных разбирательств с пользователями, которые нарушили правила работы на сервере. Сохраняем и выходим из vi. ZZ
cp /etc/motd /etc/issue # мы будем использовать motd для показа
# при удаленной регистрации.
# см. также /etc/ssh/sshd_config
5. OpenSSH Мы настроим авторизацию через DSA ключи, без использования паролей. Конечно если кто-то получит доступ к ssh-клиенту с dsa ключами, возникнут проблемы, точно также если кто-то узнает пароль. Используя dsa ключи мы избавляемся от возможности взломать нашу систему путем перебора паролей. Можно использовать dsa-ключи или пароли, но никогда нельзя пользоваться telnet-ом для удаленного доступа.
Secure Shell был разработан как альтернатива rsh, rlogin и других Berkeley r* команд, но SSH можно использовать и вместо таких приложений как telnet и ftp. У SSH много возможностей, но его по большей части используют для шифрования соединения, чтобы не дать возможности подсмотреть текстовые пароли и остальные данные, передаваемые в "чистом виде".
Откроем и отредактируем файл /etc/ssh/sshd_config для настроек параметров демона, к которому обращаются пользователи при удаленном доступе к серверу.
vi /etc/ssh/sshd_config
Port 22
Protocol 2
#Hostkey /etc/ssh/ssh_host_key
PermitRootLogin no
MaxStartups 5:50:10 # после 5 неправильных регистраций,
# отторгать 50% новых подключений, и
# не отвечать совсем, если число
# неправильных регистраций превысило 10
X11Forwarding no
PrintLastLog yes
SyslogFacility auth # писать информацию о регистрациях в
# лог-файл to /var/log/auth.
LogLevel VERBOSE # обычно OpenSSH это единственный путь
# удаленного доступа к системе, мы
# хотим получать наиболее полную
# информацию от этого сервиса.
PasswordAuthentication no
PermitEmptyPasswords no
Banner /etc/issue
AllowGroups sshusers # группа, которой разрешена
# регистрация через SSH можно указать
# несколько групп через запятую.
Сохраняем и выходим из vi.
ZZ
Теперь откроем и отредактируем файл /etc/ssh/ssh_config
vi /etc/ssh/ssh_config
ForwardAgent no
ForwardX11 no
PasswordAuthentication no
CheckHostIP yes
Port 22
Protocol 2
Сохраняем и выходим из vi.
ZZ
Теперь, сгенерируем DSA ключи для авторизации с пользователем, AKA <noprivuser>
su - noprivuser
ssh-keygen -d
На экране появится строка
Generating public/private dsa key pair.
Enter file in which to save the key (Введите файл в который сохранить ключ.)
(/home/<nonprivuser>/.ssh/id_
Enter pass phrase (empty for no pass phrase): # введите пароль для ключа или без пароля
Enter pass phrase (empty for no pass phrase): # подтверждение пароля
Your identification has been saved in /home/<nonprivuser>/.ssh/id_
Идентификационный ключ сохранен в ....
Your public key has been saved in /home/<nonprivuser>/.ssh/id_
Публичный ключ сохранен в ...
The key fingerprint is (отпечаток ключа): xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:
[user@server /dir]#cd .ssh
[user@server /dir]#cat id_dsa.pub > authorized_keys2
Теперь скопируем ключ и перенесем на компьютер, с которого хотим подключаться к серверу.
Выйдем из регистрационной записи пользователя.
Удалим файл с ключом из директории .ssh пользователя.
6. rc.conf
[user@server /dir]#vi /etc/rc.conf
inetd_enable="NO" # выключить inetd
syslogd_enable="YES" # Конечно мы хотим вести регистрацию событий. Если вы планируете настроить
icmp_drop_redirect="YES" # Отключаем прием и отправку переадресовующих ICMP пакетов.
icmp_log_redirect="YES" # Регистрировать переадресовующие ICMP пакеты в журнальном файле
clear_tmp_enable="YES" # Очищать директорию /tmp при загрузке.
portmap_enable="NO" # Если не используется NFS
icmp_bmcastecho="NO" # Предотвращает springboarding и smurf атаки, запрещая серверу отвечать
# на широковещательные ping-пакеты.
fsck_y_enable="YES" # При ошибках файловой системы на этапе загрузки утилита fsck будет
# запущена с флагом -y (man fsck)
update_motd="NO" #Не обновлять файл с сообщением дня /etc/motd
tcp_drop_synfin="YES" # Отбрасывать synfin пакеты.
log_in_vain=1 # Позволяем записывать все попытки подключения
# к закрытым портам сервера.
sshd_enable="YES" # Это позволит сделать удаленный доступ к серверу более защищенным.