Родерик Смит - Сетевые средства Linux
• Универсальные источники информации о защите. В конце данной главы приведены сведения о Web-узлах, списках рассылки и группах новостей, посвященных вопросам безопасности при работе в Internet, в частности обеспечению защиты системы Linux. Эти источники информации чрезвычайно важны и могут оказать существенную пользу каждому администратору. В них приводятся советы, позволяющие противодействовать злоумышленникам, пытающимся использовать недостатки в защите программ. Последовав этим советам, вы можете уберечь свою систему на время, пока не будут выпущены дополнительные модули, предназначенные для устранения ошибок в программах. Там же содержатся ссылки на Web-узлы разработчиков программ, где вы можете получить более подробные сведения о замеченных ошибках и способах их устранения.
В большинстве случаев последние два способа позволят вам находиться в курсе последних новостей, имеющих отношение к используемым вами программам. Большую помощь в работе также могут оказать Web-узлы, посвященные отдельным серверам. Просматривая две-три Web-страницы в день, вы сможете избежать участи многих администраторов, сети которых подверглись атаке.
Автоматическое обновление программ
Поиск дополнительных модулей вручную — утомительное занятие, занимающее много времени. Для автоматизации этого процесса были разработаны специализированные инструментальные средства. Некоторые из них описаны ниже.
• apt-get. Данная программа является стандартным компонентом Debian и систем, созданных на ее основе. Программа apt-get используется для инсталляции пакетов, а также автоматически обновляет установленное программное обеспечение. По команде apt-get update, за которой следует apt-get dist-upgrade, программа извлекает информацию в наличии дополнений и обновляет все пакеты, для которых были выпущены новые версии. Если вторую команду заменить на apt-get -s -u upgrade, программа apt-get будет предоставлять отчет об обновлениях, не инсталлируя их. Для того чтобы apt-get работала, в файле /etc/apt/sources.list необходимо указать хотя бы один узел, предназначенный для распространения дистрибутивных пакетов Debian. Существуют средства для переноса apt-get в другие системы.
• Red Hat Update Agent. Для обновления компонентов системы Red Hat используется программа Update Agent. Ее необходимо зарегистрировать, после чего она будет передавать информацию об аппаратных и программных средствах вашего компьютера на сервер Red Hat. После этого обновление системы осуществляется автоматически. Процесс настройки Update Agent достаточно сложен. Дополнительные сведения об этой программе вы можете получить по адресу http://www.redhat.com/docs/manuals/RHNetwork/ref-guide/.
Автоматические средства обновления программ позволяют эффективно устранять ошибки, снижающие уровень защиты системы, однако они имеют свои недостатки. Полагаясь на такие средства, вы принимаете на себя дополнительную ответственность. Автоматическое обновление иногда осуществляется некорректно. Например, обновленный пакет может содержать новые ошибки либо конфликтовать с другими программами (последнее чаще всего происходит в тех случаях, когда пакет, подлежащий обновлению, работает совместно с программами, написанными вами или установленными из tar-архивов). Не исключено также, что узел, управляющий автоматическим обновлением, подвергнется атаке и хакеры будут использовать его для распространения программ типа "троянский конь". Злоумышленники также могут захватить контроль над сервером DNS и перенаправлять обращения программ автоматического обновления на свой сервер. Пакеты, обновляющие программное обеспечение в системе Debian, обычно вызывают инсталляционные сценарии, требующие участия пользователя в процессе установки систем. По этой причине программу apt-get нельзя запускать с помощью cron. Даже если вы планируете регулярно вызывать данную программу, делать это необходимо вручную. (Посредством cron может вызываться лишь команда apt-get -s -u upgrade.) Средства автоматического обновления, как правило, не делают различий между дополнительными модулями, предназначенным для устранения недостатков в системе защиты, и дополнениями, которые были созданы для других целей и могут оказаться причиной возникновения проблем при работе других программ.
Несмотря на то что средства автоматического обновления очень удобны и экономят время администратора, использовать их необходимо очень осторожно. В настоящее время разрабатываются средства авторизации дополнений, которые существенно повысят надежность инструментов, предназначенных для обновления программ.
Выявление случаев незаконного доступа к системе
Как известно, иногда злоумышленники взламывают даже системы, для которых была разработана формальная политика, в которых учетные записи создавались с соблюдением всех правил и в которых отсутствуют ненужные серверы. Вовремя выявив факт незаконного проникновения в систему, вы можете минимизировать урон от атаки. Существуют специальные инструменты, предназначенные для выявления попыток взлома и выполняющиеся в системе Linux. Кроме того, вам необходимо распознать признаки, свидетельствующие о незаконном доступе к системе.
Инструменты, выявляющие попытки вторжения
Если взломщик проникает в систему, он изменяет ее конфигурацию в соответствии со своими потребностями. В зависимости от характера вторжения изменяется внешний вид Web-страниц, в файлах протоколов появляются новые записи, упрощающие обращение злоумышленников к системе, изменяются коды программ, а также появляются другие "сюрпризы". К сожалению, предсказать, какие именно действия предпримет взломщик, невозможно. Именно поэтому бороться с последствиями вторжения крайне сложно; если вы не знаете, что предпринял взломщик и каковы были его цели, нельзя доверять ни одной из системных программ. Радикальное решение — удалить с дисков компьютера всю информацию и повторно установить систему или восстановить ее с помощью резервной копии, сделанной еще до атаки.
Поскольку взломщик модифицирует системные файлы, наличие измененных файлов может служить признаком атаки. Обнаружить факт проникновения в систему можно лишь в том случае, если администратор заранее сохранил информацию о состоянии основных системных файлов, например, файла /etc/passwd и исполняемых программ в каталоге /bin. Эта информация должна храниться в закодированном виде либо ее следует записать на сменный носитель. Эти данные необходимо периодически использовать для проверки целостности файлов. Если файл, который не должен был подвергаться изменениям, окажется модифицированным, есть все основания полагать, что система была взломана. (Необходимо учитывать, что некоторые файлы мог изменить сам администратор. Например, при создании новой учетной записи данные записываются в файл /etc/passwd.)
Использование базы данных пакетовВо многих версиях Linux есть инструмент, который можно использовать для контроля целостности файлов. Речь идет о базе данных пакетов. Система управления пакетами Debian и система RPM сохраняют в базе данных информацию об инсталлированных программах. Для сравнения программы на диске с исходным содержимым пакета надо указать опцию --verify (или -V) программы rpm. Ниже приведен пример вызова данной команды.
# rpm -V postfix
S.5.... Т с /etc/postfix/aliases
S.5.... Т с /etc/postfix/main.cf
В результате выполнения программы выводится информация о файлах, состояние которых не соответствует исходному. В начале каждой строки выходных данных содержится набор признаков, сообщающих о характере несоответствия файлов. Например, буква "S" указывает на то, что размер файла изменился, цифра "5" свидетельствует о несоответствии сумм MD5, а буква "Т" означает; что изменилось время модификации файла. Сообщения, отображаемые в данном примере, не являются признаком атаки, так как файлы, указанные программой, могут периодически изменяться при настройке пакета. Если же вы выясните, например, что был изменен исполняемый файл Postfix, вам необходимо начать поиски других признаков вторжения, а впоследствии предпринять меры для устранения последствий атаки.
В системе Debian аналогичные функции выполняет утилита dlocate, однако она не входит в составе Debian 2.2. Установив данную программу, вы сможете выполнить команду наподобие следующей:
# dlocate -md5check postfix
При выполнении данной команды проверяются суммы MD5 для содержимого пакета postfix и генерируется отчет о том, совпадают ли эти суммы для каждого файла.
Вместо проверки каждой программы вы можете проверить целостность всех пакетов, используя команду rpm -Va. Выходные данные будут насчитывать сотни строк, большинство из которых сообщают об изменениях конфигурационных файлов и файлов данных. Такие сообщения можно не принимать во внимание. Учитывая большой объем данных, желательно перенаправить выход в файл либо передать сгенерированную программой информацию утилите more или less.