Linux - Алексей Стахнов 19 стр.


Все наверняка слышали, как кто-то по сети взломал Web-cepвep и испортил его содержимое или украл номера кредиток. Таких случаев становится все больше, поэтому крайне важно обеспокоиться сетевой безопасностью. Не следует, однако, забывать, что атака может проистекать в равной мере как из Интернета, так и из внутренней сети фирмы, поэтому крайне неразумно защищать сеть от атак снаружи и ничего не предпринимать для защиты от атак из внутренней сети.

Packet Sniffers

Одним из наиболее общих методов взлома сетевых машин является применение сниферов (Packet Sniffer – в дальнейшем просто снифер – программа, позволяющая перехватывать сетевые пакеты, предназначенные для других компьютеров. Первоначально использовалась для анализа сетевого трафика) с уже взломанного компьютера вашей сети. Эта программа перехватывает все Ethernet-пакеты сети и сканирует их на наличие слов Password, Login или su. Таким образом без особых усилий взломщик получает множество паролей для систем, которые он даже и не пробовал пока взламывать. Поэтому крайне нежелательно использовать сетевые сервисы, передающие пароли в незашифрованном виде. Этот способ взлома напрямую связан с обеспечением физической безопасности, т. к. посторонний может просто принести с собой ноутбук и подключиться с его помощью к внутренней сети фирмы.

Использование SSH или других методов шифрования паролей сводит к нулю эффективность этого способа взлома.

Системные сервисы

Прежде чем подключить систему к сети, следует подумать, какие сервисы будут предоставляться системой. Чем меньше запущенных сервисов, тем меньше вероятность взлома системы. Можно также ограничить список компьютеров, для которых разрешено использование сервисов вашего компьютера. Для этого в файле /etc/hosts.allow необходимо прописать только те компьютеры, которым разрешено иметь доступ к сервисам на вашем компьютере. Для запрещения доступа "подозрительных" систем следует использовать файл /etc/hosts.deny. Также проверьте ваши каталоги /etc/rc.d/rcN.d на предмет наличия запуска сервисов, которые вам не нужны.

Однако нельзя огульно выбросить все, что, как вам кажется, не используется. К примеру, удаление сервиса в файле /etc/services приводит к тому, что локальный клиент также не сможет использовать этот сервис.

DNS

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

identd

Программа identd фиксирует информацию о том, какой пользователь запускает какой TCP-сервис. С точки зрения повседневной жизни задача, вроде бы, бесполезная, однако выдаваемая ей информация может пригодиться при анализе взлома системы.

Сетевые сканеры

Существует целый класс программных пакетов, которые выполняют сканирование портов и сервисов в компьютерных сетях. Сетевые сканеры используются администратором системы для определения уязвимых мест системы, однако никто не мешает воспользоваться ими и злоумышленнику. Наиболее известными, хотя уже и устаревшими, представителями этого класса программ являются SATAN и ISS. SATAN (инструмент администратора безопасности для анализа сетей) является сканером портов с Web-интерфейсом. Он может быть полезен для выполнения легкой, средней или тщательной проверки машины или сети машин. ISS (сканер безопасности Интернета) также является сканером портов. Он быстрее чем SATAN, но SATAN предоставляет больше информации.

Электронная почта

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

"Отказ в предоставлении доступа"

Очень популярный в последнее время вид атаки. Смысл ее напоминает пословицу – "Сам не гам, и другому не дам". Взломщик пытается искусственно загрузить некоторые сервисы настолько, чтобы они не могли отвечать на запросы или запрещали доступ к вашей машине законным пользователям. Имеется несколько разновидностей такой атаки:

• SYN flooding – сетевая атака "отказ в предоставлении доступа". Использует преимущества "лазейки" (loophole) в методе создания ТСР-соединения. Последние версии ядер Linux имеют несколько конфигурационных настроек для предотвращения SYN Flooding-атак;

• Ping flooding – простая грубая реализация атаки "отказ в предоставлении сервиса". Взломщик посылает компьютеру "поток" ICMP-пакетов. Если атака происходит с компьютера с большей полосой пропускания, нежели имеет ваш компьютер, или с нескольких компьютеров одновременно, то ваша машина будет лишена возможности посылать что-либо в сеть. При вариации этой атаки, называемой "smurfmg", на определенный сервер посылается поток ICMP-пакетов с обратным IP-адресом вашей машины;

• атака Ping о Death использует тот факт, что поступающие ICMP-пакеты ECHO REQUEST могут быть больше, нежели может вместить структура данных ядра, которая сохраняет эту информацию. Из-за приема единичного большого (65 510 байтов) ping-пакета многие системы зависали, поэтому эта атака быстро обрела свое название;

• Teardrop/New Tear – атака, основанная на ошибке, присутствующей в коде фрагментации IP в Linux– и Windows-платформах. Она была исправлена еще в ядре версии 2.0.33.

Безопасность NFS

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

Firewall

Firewall (брандмауэр, сетевой экран), используя определенный набор правил, ограничивает прохождение информации как внутрь, так и за пределы вашей локальной сети. Обычно компьютер, выполняющий роль брандмауэра, соединен с Интернетом и вашей локальной сетью, и доступ к Интернету из локальной сети выполняется только через него. Брандмауэр является полезным инструментом в обеспечении безопасности вашей сети. Однако не следует забывать о безопасности только из-за того, что у вас установлен брандмауэр. Если нарушитель прорвался через брандмауэр или действует изнутри сети, у него будет огромное поле деятельности.

Существует большое количество типов и методов организации брандмауэра. Более подробную информацию вы получите, прочитав великолепную книгу "Брандмауэры в Linux" (см. приложение 5).

Администрирование системы

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

Резервная копия системы

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

В настоящее время существует несколько малобюджетных вариантов резервирования системы:

• использование жестких IDE-дисков. Сегодня приличный жесткий диск емкостью 20 Гбайт стоит порядка восьмидесяти долларов. Как представляется, это небольшая плата за систему, которую отлаживали долго и упорно, а тем более, если в ней хранятся важные данные. Еще одно преимущество резервного копирования на жесткий диск – его можно сконфигурировать так, чтобы было достаточно подключить винчестер в сервер, и система практически сразу становится полностью работоспособна;

• использование привода CD-RW. Очень экономичный вариант. При стоимости одного диска CD-R менее шестидесяти центов, а диска CD-RW около доллара, это, пожалуй, самый экономичный вариант;

• использование привода DVD-RAM. Позволяет резервировать достаточно большие объемы данных;

• привод Zip. Удобен тем, что существует внешний вариант исполнения;

• привод Jazz. Емкость диска порядка одного гигабайта;

• накопители на магнитооптике. Существуют разные модели с разной емкостью дисков. Достаточно дороги;

• ленточные накопители. Существуют разные модели с разной емкостью. Достаточно дороги.

Сразу после создания резервных копий на лентах и других перезаписываемых носителях необходимо поставить защиту от записи. Сохраняйте ваши резервные копии в надежных недоступных местах. Периодически проверяйте восстанавливаемость резервной копии. Периодически устраивайте "боевые учения" по восстановлению системы.

Режим резервирования

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

• в конце рабочей недели делается полная резервная копия системы;

• в течение недели делается нарастающее резервирование системы (то есть резервируется изменение данных по сравнению с прошлым днем);

• при особо важных изменениях в системе резервная копия делается немедленно.

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

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

Резервирование RPM-базы

При взломе системы взломщик обычно модифицирует для своих нужд несколько файлов, устанавливаемых при инсталляции из пакетов RPM. Если есть подозрение на взлом системы – одним из первых действий будет проверка целостности этих файлов. Однако, если работал опытный взломщик, велика вероятность того, что он подправит нужным ему образом базу установленных RPM-пакетов или, вообще, уничтожит ее. На функциональности системы отсутствие или повреждение базы установленных RPM-пакетов не влияет, но при этом теряется возможность проверки целостности установленных пакетов. Поэтому крайне желательно периодически копировать базу RPM (/var/lib/rpm/*) на съемный носитель и хранить его отдельно.

Для проверки целостности установленных пакетов можно воспользоваться командой

rpm -Va

Но не забывайте после установки или удаления пакетов обновлять резервную копию базы RPM.

Файлы регистрации

Первое, что делает опытный взломщик системы после успешного проникновения в нее – заметает следы. А поскольку ведутся специальные файлы регистрации пользователей в системе, подключений к сетевым сервисам и тому подобных событий, вполне очевидным действием взломщика является уничтожение или модификация файлов журналов. Поэтому крайне важно сохранить эти файлы в неприкосновенности. Начинать надо с ограничения списка пользователей, способных читать и писать в каталог /var/log.

Регулярно инспектируйте свои журнальные файлы. Большое количество неудачных попыток регистрации или сканирование портов с одного и того же компьютера может указывать на попытку вторжения. Чтобы узнать, где ваш дистрибутив ведет системные журналы, нужно посмотреть в файл /etc/syslog.conf, который указывает syslog, куца записывать различные сообщения. Если вы заметили, что в журнальных файлах кто-то похозяйничал, необходимо определить, когда это началось и каких процессов касалось. Лучше всего в такой ситуации восстановить журналы с резервных копий и определить момент взлома.

Можно настроить syslog так, чтобы он отсылал копию наиболее важных данных на безопасную систему. Это предотвратит попытки взломщика скрыть свою деятельность путем удаления информации о его действиях в системе. Более подробную информацию по syslog.conf можно найти на соответствующей странице помощи (man-странице).

Обновляйте операционную систему

Большинство систем Linux устанавливаются с компакт-дисков. Но жизнь не стоит на месте, выходят различные обновления и исправления программ. К примеру, к дистрибутиву Red Hat только официальных обновлений за четыре месяца набралось более ста тридцати мегабайт. И это далеко не все обновления! Однако в погоне за номером версии не стоит устанавливать самое свежее программное обеспечение. Есть одно неплохое правило "Работает – не трогай!" Нашли в программе ошибку – обновите. Хотите получить самую свежую версию программы – подождите неделю-другую после ее выхода. Пусть на грабли наступают другие. За это время наверняка в безопасности системы найдутся прорехи или в программе ошибки. Однако после обнаружения ошибки в безопасности программы, не затягивайте с ее обновлением – велик шанс, что вашу систему попытаются взломать, используя именно эту брешь.

Действия во время и после взлома системы

Если вы обнаружили, что ваша система взломана – не паникуйте, расслабьтесь. Поспешные действия еще никого до добра не доводили.

Нарушение безопасности

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

Если обнаружено вторжение в сеть, первым делом отсоедините вашу сеть. Если это представляется невозможным, запретите доступ из сети взломщика или заблокируйте пользователей в системе. После того как будет сделано что-либо из вышеперечисленного (отсоединена сеть, запрещен доступ из сети взломщика или заблокированы его учетные записи), следует ликвидировать все его пользовательские процессы.

Некоторое время после этого необходимо отслеживать состояние системы, поскольку попытка взлома может повториться, причем необязательно от имени этого же пользователя или с того же сетевого адреса.

Взлом системы произошел

Взлом обнаружен. Что дальше?

Закрытие бреши

Если вы четко знаете, каким образом взломщик проник в систему, постарайтесь сразу же закрыть эту брешь. К примеру, взлом произошел через сервер Samba. Самый простой выход – завершить процесс и отправиться в Интернет искать решение проблемы. Как правило, существует обновленная версия программы или какой-либо список исправлений известных ошибок.

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

Оценка повреждений

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

Так как Linux достаточно легко инсталлировать, рекомендуется создать специальный конфигурационный файл kickstart, содержащий список установленных в системе пакетов, который затем используется при инсталляции системы. А конфигурационные файлы следует заранее переписать. Рекомендуется также восстановить систему из резервной копии, поскольку наверняка резервная копия содержит важные данные. Однако нужно очень точно определить момент взлома системы, чтобы не случилось так, что восстановленная из резервной копии система уже содержит "закладки" взломщика.

Выслеживание взломщика

Взломщик заблокирован, система восстановлена, откуда пришел взломщик определено. Однако не следует забывать, что раз взломали вас, могут взломать и кого-то другого. Поэтому следует сообщить об атаке администратору системы, с которой была взломана ваша система (этого администратора можно найти с помощью базы internic). Пошлите ему описание процесса взлома, описание нанесенных повреждений и приложите содержимое системных журналов с датой и временем событий. Как правило, система, откуда была произведена атака, оказывается тоже взломанной, но администратор об этом даже не подозревает.

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

Ссылки

В Интернете существует очень много узлов, посвященных безопасности систем UNIX и специфике безопасности Linux. Обязательно подпишитесь на списки рассылки по вопросам безопасности и анонсы свежих выпусков программ. В частности, большой список русскоязычных рассылок, в том числе и по Linux, можно найти на сайте www.citycat.ru. Кроме того, можно посетить и эти адреса:

• www.rootsheU.com – сайт, полезный для изучения современных методов взлома, которые сейчас используют взломщики;

• www.netspace.org/lsv-archive/bugtraq.html/ – содержит советы в области безопасности;

• www.aoy.com/Linux/Security/ – хороший узел по безопасности в Linux.

Вопросы безопасности затрагивают документы, находящиеся и по нижеприведенным ссылкам.

• www.linuxdocs.org – Network Administrators Guide (Руководство сетевого администратора).

• linux.webclub.ru/books/linuxsos/index.html – безопасность и оптимизация Linux. Редакция для Red Hat – русский перевод.

• dc.internic.net/rfc/rfc2196.txt – документ, посвященный политике безопасности системы.

• www.consensus.com/security/ssl-talk-faq.htrnl – часто задаваемые вопросы по протоколу SSL.

• www.kernel.org/pub/linux/libs/pam/index.html – РАМ-модули.

• linux.webclub.ru/adm/attr_ext2.html – Безопасность файловой системы Ext2. Michael Shaffer.

• pwl.netcom.com/~spoon/lcap/ – Linux Kernel Capabilities Bounding Set Editor.

• www.linuxdocs.org – содержит соответствующие HOWTO (см. гл. 13):

– security-howto – документ, посвященный безопасности операционной системы;

– hacker-howto – документ, посвященный взлому и защите от оного операционной системы;

– NFS HOWTO – документ о настройке и использовании NFS – сетевой файловой системы;

– Firewall-HOWTO – документ, посвященный настройке брандмауэра;

– IP-Masquerade mini-howto – организация маскарадинга.

Глава 8 RPM

Фирма Microsoft и Windows уже приучили нас, что установка любой программы начинается с запуска программ Setup или Install. Затем, после согласия с лицензионным соглашением (по которому фирма-производитель обязывает вас установить программное обеспечение только на один компьютер, и, в свою очередь, сообщает, что не несет никакой ответственности за функционирование этого программного обеспечения), задается пара вопросов (куда и какие модули программного обеспечения установить) и все: "Программа установлена, перезагрузите, пожалуйста, компьютер". Достаточно быстро и просто.

Назад Дальше