Особенности безопасности Linux
Подборка: Daemon
Система ASPLinux, построеная на базе Red Hat Linux и поддерживающая стандарт
IEEE POSIX (Portable Operating System Interface), обеспечивает многоуровневую систему приоритетов
с вытесняющей многозадачностью, виртуальную организацию памяти и полную
се тевую поддержку. Различные дистрибутивы операционной системы
Linux, в частности ASPLinux, установленные на Интернет-серверы в
сочетании с антивирусными программами, гарантируют максимальную безопасность внутренней сети
предприятия. ОС ASPLinux, практически не поддающаяся атакам вирусов и обладающая встроенными
средствами защиты от посторонних вторжений, например от хакерских,
- надежное решение для построения сервера безопасности.
В общем случае под безопасностью подразумевается предотвращение
несанкционированного доступа. Впрочем, как правило, системы страдают
от внедрения вирусов или от происков злоумышленников.
По данным Вирусной лаборатории (www.viruslist.com/viruslist.html?id=4285), в настоящее время существует ни много ни мало
семь вирусов, способных внедриться в Linux.
Возникает закономерный вопрос: почему для Windows и ее приложений
вирусы появляются чуть ли не ежедневно, а в случае с Linux
этого не происходит?
Во-первых, Linux - многопользовательская система.
Во-вторых, вследствие классического построения Linux как «кирпичного
здания», где каждый «кирпичик» - отдельная программа, имеющая
свой путь развития, свои версии, достоинства и недостатки, вероятность
распространения вируса снижается, поскольку он должен обладать некоторым
«интеллектом», чтобы распознавать бреши в системе безопасности тех или
иных программ.
В-третьих, при распространении в Сети вирусы часто используют
почтовое ПО, самостоятельно запускающее исполняемые файлы.
В-четвертых, у Linux, как и у любой другой системы семейства
UNIX-подобных, существует брандмауэр (межсетевой экран, firewall),
при правильной настройке которого значительно снижается риск получить
вирус через программу, работающую сервисом в локальной сети.
В-пятых, открытость исходных текстов способствует высокой защищенности
Linux. Аудит кода производится тысячами программистов во всем мире,
поэтому уязвимые места, как правило, достаточно быстро удаляются.
В-шестых, Linux переняла многое из программного обеспечения,
разработанного ранее на старых ОС, где количество «дыр» значительно
ниже в силу их возраста.
Конечно, здесь приведен далеко не полный список преимуществ Linux в
сфере безопасности. Рассмотрим подробнее, как они влияют на
распространяемость вирусов в сетях.
Вирусы условно можно разделить на несколько видов:
:> Boot-вирусы, поражающие загрузочные секторы жесткого диска.
При работе в Linux и других UNIX-подобных ОС их функционирование
невозможно из-за отсутствия прямого доступа к физическим секторам жестких дисков.
:> Вирусы, поражающие исполняемые файлы и системные библиотеки.
В среде Linux такое воздействие невозможно, поскольку процесс,
происходящий при работе рядового пользователя, не имеет права на запись
ни в один системный файл или каталог.
:> Вирусы-троянцы, автоматически запускаемые фоновым процессом и
производящие вредоносные действия - порчу информации или
передачу конфиденциальных данных злоумышленнику. Данный механизм
практически неосуществим в Linux из-за того, что системный администратор
может ежесекундно контролировать любой процесс, происходящий в
данный момент в системе. В фоновом режиме, запущенном
от имени рядового пользователя, невозможно прочитать ни одного важного
файла, открывающего доступ к файлам других пользователей. Существует
еще одно препятствие к запуску такого вируса в Linux: при разработке
троянской программы для любой UNIX-подобной системы злоумышленнику
требуется точно знать конфигурацию системы и состав
входящих в нее библиотек, иначе программа просто не запустится или
будет выполнять совсем не то, что было задумано автором.
:> Скриптовые вирусы, распространяемые в файлах закрытого
формата (*.DOC, *.XLS). Они не способны активизироваться, даже
если принесены на UNIX-подобную ОС, поскольку зачастую пишутся
специально под продукты Microsoft. При импорте из формата фай-
лов Microsoft в такие программы, как StarOffice/OpenOffice.org, gnumeric,
KOffice, AbiWord, данные макросы обезвреживаются.
:> Вирусы, приходящие вместе с электронной почтой. Практически
все перечисленные выше вирусы могут спокойно распространяться таким
образом. Известные почтовые клиенты для Windows-систем используют
стандартное API, чтобы открывать файлы, присланные во вложении к
электронному письму. Поэтому файлы с расширениями exe,
com, pif, bat, dll при попытке открытия такого письма зачастую будут запущены
операционной системой без предупреждения пользователя, а вирус получит
полный доступ к файловой системе и дисковым накопителям компьютера.
В среде Linux подобное невозможно, поскольку ни одна почтовая программа
не будет автоматически исполнять ни один файл (как известно, в UNIX-подобных
системах признаком исполняемости файла является наличие не определенного
расширения .com, exe, pif, ..., а специального атрибута файла,
не передающегося через почтовые сообщения). На сервере с установленным
антивирусом eSafe или AVP Касперского подобные вирусы можно
обезвреживать на этапе обработки письма почтовым роботом, что
обеспечивает защищенность входящих в локальную сеть рабочих станций с
различными версиями Windows.
Из теории известно, что большинство вирусов-червей распространяются
через программы, предоставляющие какие-либо услуги в локальной
сети. Как правило, это может быть любая программа, слушающая сетевые
порты и ожидающая соединения по ним. Так что писать такие
программы и проводить их аудит надо с высокой степенью аккуратности и
точности, чем и занимаются специалисты по проверке кодов.
Еще один немаловажный момент обеспечения безопасности любой
ОС - ее стойкость к хакерским атакам. Для защиты от нападений такого рода
и строят межсетевые экраны. Как дополнительное средство обеспечения
безопасности все системы на базе Linux имеют развитую схему
фильтрации пакетов (statefull firewall), которая позволяет защититься
от распространения вирусов напрямую, в обход почтовых и файловых
серверов с поддержкой проверки антивирусными программами, а также
обезопасить компьютеры от несанкционированного доступа к ресурсам,
на которых установлена ОС Windows, и от атак типа DoS (Deny-of-
Service - отказ от обслуживания), рассчитанных на блокирование
предоставления какого-либо сервиса, а также на использование уязвимых
мест в известных общеупотребимых сервисах.
Хакеры довольно часто напада ют на различные сервисы, работающие от
имени суперпользователя, к примеру на ftpd, pop3, imap, ntp, sshd
и др., которым необходима авторизация пользователей или прямой доступ
к сетевым интерфейсам. Такие атаки производятся с помощью эксплоитов.
Эксплоиты - специальные хакерские программы, использующие ошибку
в каком-либо конкретном ПО. Они нужны для получения доступа к
компьютеру через слабые места в программах, запущеных суперпользователем.
Разные эксплоиты делают разные гадости, эксплуатируют разные ошибки и
потому не универсальны. Чаще всего они вызывают аварийную остановку
программы. Эти эксплоиты посылают специальные последовательности
символов, переполняющие внутренние буфера программы, и выполняют код,
содержащийся в посланной последовательности. В ASPLinux
существует встроенная защита от атак типа buffer overflow (переполнение
буфера).
На практике команда ASPLinux встречалась с хакерскими атаками
на вовремя не обновленный DNS-сервер BIND и в другом случае на
сервер NTP (network time protocol) - XNTPD. Сценарий обоих нападений
примерно одинаков. Используя уязвимость программы-сервера, на
систему по сети переносится почти полноценный стандартный так на-
зываемый RootKit - набор программ для взлома, подменяющий
основные системные утилиты по контролю процессов, которые, как
правило, запускаются от суперпользователя (root). В их число обычно
входят следующие команды: login, ps, top, netstat, route и т.п. Загрузка
необходимых программ во время старта операционной системы
устанавливалась путем редактирования файла /etc/rc.d/rc.sysinit.
Также на зараженной системе запускались sniffer - программа мониторинга
сетевых пакетов на предмет отлавливания паролей на различные виды
сервисов - и IRC bot для каналов IRC.
Вопрос об «успешности» этих атак скорее философский, так как, с
одной стороны, на машину доступ был получен, а с другой стороны,
конфиденциальная информация могла и не перейти в руки злоумышленника.
В итоге главным моментом здесь является человеческий фактор
и, следовательно, скорость реакции на обнаруженную диверсию. Если
вовремя и безболезненно удалить подсадную «утку», то атаку можно
считать успешно отраженной.
Рекомендации по профилактике на такие случаи следующие. Необходимо
проверить на правильность контрольных сумм пакеты initscripts,
psacct, procps, net-tools, util-linux или вообще все пакеты, воспользовавшись
командой rpm -Va.
Если на какой-то бинарный файл команда выдает ошибку контрольной
суммы MD5, то стоит просмотреть систему и восстановить поврежденные
пакеты из дистрибутива командой rpm -Uvh - force <имя_файла_rpm>. Затем, по
команде ps просмотреть текущие процессы в памяти и остановить
сомнительные из них. После чего необходимо найти сам комплект программ
RootKit и удалить его. Обычно такого рода комплекты маскируются в
системных каталогах или создают каталог с именем подобным
«...». В конце всех проделанных операций следует заняться поиском
уязвимости, например проанализировав содержимое /var/log/ messages,
если оно не оказалось стертым, и устранением ее путем правки
соответствующих исходных текстов и перекомпиляции программ или замены
старых версий ПО на новые. В подавляющем большинстве случаев
все эти комплекты используют слабые места полугодичной давности,
поэтому при своевременной установке обновлений риск вторжения
снижается значительно.
Особенность ASPLinux - встроенные средства борьбы с несанкционированным
доступом. Они включают в себя защиту от исполнения кода
в сегменте стека и операции с «небезопасными» символическими ссылками и
FIFO. First-In First-Out - специальный файл типа очереди - «пеpвым вошел,
пеpвым вышел»; именованный канал, который может
быть открыт несколькими процессами для чтения или записи. Когда
процессы обмениваются данными через FIFO, ядро передает их непосредственно,
без промежуточного сохранения в файле на диске.
Вот основные «заплатки», заимствованные из дистрибутива OpenWall:
:> Неисполняемый пользовательский стек: большинство атак типа
переполнения буфера базируются на изменении адреса возврата из
функции на адрес с неким произвольным кодом, который также содержится
в стеке. Если стек будет неисполняемым, то атаки такого типа становятся
довольно трудными для реализации.
:> Ограниченные FIFO в каталоге /tmp. Такое дополнение позволяет
ограничить запись в недоверенные FIFO, что позволяет делать атаки смены
данных (data spoof) более затруднительными. Включение этой особенности
не разрешает запись в FIFO, которые не принадлежат пользователям, в
каталогах с атрибутом +t, кроме случаев, когда владелец FIFO и каталога
один и тот же, или FIFO был открыт без флага O_CREATE.
P.S. Опыт работы сайта www.linuxnews.ru показывает, что с
августа 2001 г. этот популярный Web-ресурс пытались поломать 72
593 раза, заходя с 1704 уникальных адресов, но все нападения успешно
отражались, так как подавляющее большинство из них было рассчитано
на атаку против серверов, использующих Microsoft IIS.
:: на начало ::