Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1401

.pdf
Скачиваний:
8
Добавлен:
30.04.2022
Размер:
1.11 Mб
Скачать

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

Пытаясь понять уязвимости сетевых систем, нужно все время помнить об основном моменте, которым является доверие, или доверительные отношения, между хостами сети. Даже при использовании в большой сети TCP-wrappers и файлов hosts.equiv, .rhosts и .shosts, многие из этих сетей обычно атакуются на основе злоупотребления доверием между хостами. Администратор сети должен убедиться, что доверенные хосты одинаково защищены от удалённых атак.

Ещё один вид атак — это внедрение «троянских коней» или «люков» на корпоративные хосты. На многих узлах в Internet выставляется программное обеспечение (ПО) типа «хранителей экрана» screensavers и предлагаются другие утилиты, которые могут содержать «троянских коней».

Ошибки в программном обеспечении можно класси-

фицировать следующим образом:

1.Переполнение буфера. Многие уязвимости связаны именно с этой проблемой.

2.Неожиданные комбинации. Программы обычно со-

ставляются с использованием многих слоёв (уровней) кода, включая ядро операционной системы (ОС) в качестве основы для большой части других слоёв. Нарушители могут послать входные данные, которые являются бессмысленными для одного слоя (уровня), но много значащими для другого. Например, часто используемый язык для обработки входных данных пользователя на Web — это PERL. Программы, написанные на PERL, как правило, посылают эти данные к другим программам для дальнейшей обработки. Наиболее распространённый метод

29

— это ввод строки типа «|mail</etc/passwd». И она будет выполняться, потому что PERL "просит" ОС запустить дополнительную программу с этими входными данными. Однако ОС перехватывает символ '|' и запускает mail–программу, которая передаёт нарушителю файл паролей по электронной почте.

3.Необрабатываемые входные данные. Большинство программ пишутся для обработки достоверных входных данных. Но многие программисты не учитывают ситуацию, когда кто-то вводит данные, не соответствующие спецификации.

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

кфайлу и проникнуть в саму систему.

Ошибки в конфигурации системы можно классифици-

ровать следующим образом:

1.Конфигурации по умолчанию. Большинство систем по-

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

2.Ленивые администраторы. Огромное количество компьютеров сконфигурировано с пустым паролем root/administrator.

3.Создание лазейки. Фактически все программы можно сконфигурировать для запуска в незащищённом режиме. Временами администраторы неумышленно открывают уязвимости

вкомпьютере.

4.Доверенные связи. Нарушители часто «прыгают по островкам» по всей сети, используя доверенные связи. Сеть из

30

доверенных компьютеров является защищённой в той же степени, что и её самая слабая связь или звено.

Ошибки в использовании паролей (перехват паро-

лей):

1.Перехват открытого текста. Многие протоколы

(Telnet, FTP, HTTP) используют незашифрованные пароли при передаче информации по сети между клиентом и сервером. Это достаточно эффективный способ выдачи нарушителю большого числа имен и паролей пользователей внутренних сетевых хостов.

Так как sniffer должен работать в том же Ethernet-сег- менте интрасети, что и хост, к которому нужно получить доступ, будет неэффективно запускать его на внешнем хосте. Для прослушивания данных, передаваемых по внутренней сети, нарушить должен реализовать удалённый взлом от имён root внутреннего хоста, находящегося в том же сегменте, что и другие внутренние хосты. После взлома, установки лазеек и «троянских» программ ps и netstat, атакующий должен установить на хосте sniffer. Обычно такие программы располагаются в директориях /usr/bin или /dev, а затем модифицируются таким образом, чтобы казалось, что они установлены вместе со всеми другими системными утилитами.

Большинство sniffer-программ работает в фоновом режиме и переводит сетевой интерфейс в режим promiscuous mode. Это интерфейс, который прослушивает и передает snifferпрограмме все log-файлы, все имена пользователей, их пароли

идругие данные, которые могут быть использованы для получения доступа к другим сетевым хостам — не важно передаются они от или к хосту, на котором установлен sniffer. Атакующий позже загружает log-файлы, созданные sniffer.

2.Перехват зашифрованного текста. В случае шифро-

вания паролей нарушителю потребуется провести атаку по словарю или подбор пароля для того, чтобы попытаться его расшифровать.

Например, в системе Unix пароль и другая специфическая информация о пользователе хранится в каталоге /etc в

31

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

в сравнении двух зашифрованных строк. Если обнаружится их соответствие, то необходимый пароль найден. Затраты времени на сравнение всего словаря с файлом пароля у таких программ невелики

Для усовершенствования защиты паролей во многих ОС, вместо просто зашифрованного пароля хранится хэш-функция, которую подобрать значительно сложнее. Кроме того, в современных Unix зашифрованные пароли не хранятся в доступном всем /etc/passwd, а хранятся в файле, доступном только админи-

стратору: /etc/master.passwd или /etc/shadow.

3.Повторное использование. В некоторых случаях нару-

шителям нет необходимости расшифровывать пароль. Они могут повторно передать зашифрованный пароль в процессе аутентификации.

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

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

6.Социальная инженерия (social engineering). Злоупо-

требление доверием пользователей, или социальная инженерия

один из наиболее эффективных методов получать информацию у пользователей особенно больших корпораций.

32

Сами пароли становятся известны атакующему по следующим причинам.

1.Действительно слабые пароли. В целом существует перечень из не менее, чем 30 возможностей, которые может использовать нарушитель для подбора паролей.

2.Атака по словарю (dictionary attack). В этом случае нарушитель использует программу, которая будет опробовать в качестве пароля каждое возможное слово, приведенное в словаре. Атаки по словарю могут осуществляться либо путём неоднократных регистраций в атакуемой системе, либо путём сбора шифрованных паролей и попыток найти им незашифрованную пару. Один из лучших словарей для подбора паролей, составленный злоумышленниками, можно найти, например, по адресу http://sdg.ncsa.uiuc.edu/~mag/Misc/Wordlists.html.

3.Подбор пароля (brute force). Аналогично атаке по паролю, нарушитель старается использовать все возможные комбинации символов. Длинный семизначный пароль, состоящий из символов в нижнем и верхнем регистре, а также чисел и знаков препинания (10 миллионов комбинаций), может потребовать не один месяц для взлома.

Системы обнаружения вторжений (СОВ) можно разбить на две основные категории.

1. Системы обнаружения атак на сетевом уровне (Network IDS, NIDS, сетевые СОВ, ССОВ) проверяют пакеты и обнаруживают попытки злоумышленника проникнуть внутрь защищаемой системы или реализовать атаку "отказ в обслуживании". Эти СОВ работают с сетевыми потоками данных. Типичный пример ССОВ – система, которая проверяет большое число TCP-запросов на соединение (SYN) по многим портам на выбранном компьютере, обнаруживая, таким образом, что ктото пытается осуществить сканирование TCP-портов. Сетевая СОВ может запускаться либо на отдельном компьютере, который контролирует свой собственный трафик, либо на выделенном компьютере, прозрачно просматривающем весь трафик в сети. Сетевые СОВ контролируют много компьютеров, тогда

33

как другие СОВ контролируют только один (тот, на котором они установлены).

2. СОВ, которые устанавливаются на хосте и обнаруживают злонамеренные действия на нем. Они называются хостовыми СОВ (host-based IDS). Иначе их еще называют системными СОВ (СиСОВ). Ниже приведены три типичные примера СиСОВ.

Системы контроля целостности (System integrity verifiers, SIV) проверяют системные файлы с целью определения, когда в них были внесены изменения. Очень трудно взломать систему без того, чтобы не изменить системный файл, поэтому средства контроля целостности файлов (СКЦФ) существенно помогают при ОВ. СКЦФ вычисляет контрольную сумму для каждого защищаемого файла и хранит её. Позднее снова можно вычислить контрольную сумму и сверить её текущее и хранимое значения, что покажет, изменился ли файл. СКЦФ должно входить в состав любой коммерческой СиСОВ.

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

Если есть предположения, что система была взломана, можно запустить СКЦФ и определить, какие файлы модифицировались, а какие — нет. Один из способов применения СКЦФ

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

Мониторы регистрационных файлов (Log-file monitors,

LFM) контролируют регистрационные файлы, создаваемые се-

34

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

На основе анализа регистрационной и учётной информации можно, например, установить:

вход/выход субъектов доступа в/из системы (узла сети);

выдачу печатных (графических) документов;

запуск/завершение программ и процессов (заданий);

доступ программ субъектов доступа к защищаемым файлам, включая их создание и удаление, передачу;

доступ программ субъектов доступа к терминалам, ЭВМ, узлам сети, каналам связи, внешним устройствам, программам, томам, каталогам, файлам, записям, полям записей;

изменения полномочий субъектов доступа;

создаваемые защищаемые объекты доступа.

Обманные системы (deception systems), работающие с

псевдо-сервисами, цель которых заключается в воспроизведении хорошо известных уязвимостей для обмана злоумышленников. В качестве примера можно назвать систему The

Deception ToolKit (http://www.all.net/dtk/). Также можно исполь-

зовать трюки с переименованием ресурса администратора и создание обманных ресурсов с отсутствующими правами.

Как системные, так и сетевые СОВ имеют свои достоинства и недостатки. Эффективные СОВ используют комбинацию сетевого и системного ОВ.

СОВ должна быть размещена там, где она сможет контролировать наиболее интересующий администрацию интрасети трафик. Например, если есть опасения относительно вторжения из Internet, то имеет смысл поместить СОВ снаружи МЭ.

35

Это позволит контролировать весь входящий трафик. Рассмотрим четыре основных места, в которых можно разместить ССОВ (рис. 9).

1. Сетевой периметр (СОВ1). СОВ наиболее эффективна на сетевом периметре с обоих сторон МЭ. Эти соединения, как правило, низкоскоростные, так что СОВ не снижает их пропускной способности.

Рис. 9. Варианты размещения ССОВ

2. Магистраль локальной сети (СОВ2). СОВ обнаружи-

вает атаки, которые успешно проникают через МЭ. Далеко не все атаки происходят снаружи. Внутреннее размещение позволяет контролировать трафик во внутренней, защищаемой сети. Это важно, особенно для защиты от авторизованных пользователей. Такое размещение позволит обнаружить новое сетевое соединение или атакующих, проникших через «чёрный ход», например, через модем. Плюс обнаружение попыток несанкционированного использования туннелей через МЭ. Главный недостаток такого размещения — невозможность контроля трафика, приходящего из внешних, недоверенных сетей. При таком размещении СОВ не в состоянии вовремя предупредить об очевидных сигналах о надвигающейся атаке (например, при сканировании портов). Но СОВ бывают также непрактичны во внутренней сети из-за неспособности контролировать высокоскоростной трафик. СОВ, выполняющая полный разбор пакетов, вряд ли сможет быть применена в высокоскоростных сегментах локальной сети. Упрощённый вариант сетевой СОВ, ко-

36

торый позволяет обнаруживать только простейшие атаки, возможно, будет более эффективным выбором.

3.Магистраль глобальной сети (СОВ3). Это размещение СОВ на глобальной магистрали обнаруживает атаки, предпринимаемые против МЭ. Снаружи МЭ СОВ контролирует трафик, приходящий на почтовые и Web-серверы, размещённые в демилитаризованной зоне интрасети. Что более важно, такое размещение позволяет видеть трафик, который обычно блокируется МЭ и остаётся необнаруженным внутренними системами. Внешнее расположение также даёт выгоду в случае постоянного контроля сетевых услуг, «законных» для МЭ (например, контроль вторжений через почту). Так как эти соединения относительно низкоскоростные, то СОВ не снижает их пропускной способности.

4.У важного узла (СОВ4). Размещая СОВ везде внутри интрасети, можно выявлять атаки внутренних злоумышленников. Иногда ССОВ устанавливают перед особо важными серверами (например, сервер баз данных) для контроля трафика с этим сервером, у модемного пула или в демилитаризованной зоне (DMZ). Атака — не единственное событие, приносящее вред. Существуют мошенничество, шпионаж, воровство и неправильное использование сетевых ресурсов. Однако в данном случае проблема состоит в том, что трафик во внутренней сети передаётся с большей скоростью, чем в сети внешней, что приводит к неспособности СОВ справляться со всем трафиком и, как следствие, снижению пропускной способности локальной сети. Именно поэтому СОВ ставят перед конкретным сервером, контролируя только определённые соединения.

Рассмотрим особенности применения СОВ в ОС типа

UNIX.

Для любой ОС важно инсталлировать только те сервисы, которые необходимы. В дистрибутивах есть много средств, например, наглядно сопровождающих процесс сканирования портов. Так, netstat или TCP/UDP-сканер и rpcinfo используются для получения перечня всех сервисов, доступных на компьютере.

37

При поиске нарушителей нужно рассматривать четыре области. Это — файловая система, время (timestamps), файлы регистрации (logfiles), содержание неопознанных файлов и их функции.

Анализ файловой системы основан на использования команд:

find / -name "*" -o -name ".*"

-ls или ls -RalF /.

Эти две команды генерируют почти одинаковые результаты — рекурсивный список всех файлов с атрибутами и типами файлов для всех смонтированных файловых систем. Команд ls часто является компонентом хакерского средства rootkit и поэтому может чего-то не замечать (чаще всего, намеренно). Также find имеет несколько больше параметров, позволяющих искать время создания, модификации и доступа. Имея список всех файлов, можно искать некоторые записи, указывающие на аномалии. Например, каталог, называемый " ... ", никто не со-

здавал. Или /root/ls,ps,rm,mv,cp,*sh подобно linsniff, crack и дру-

гим утилитам должны находиться в определённом месте. СОВ должна искать такие аномалии. В корне не должно быть "." или "$HOME", иначе они должны быть последними в указании пути. Это предотвращает, в первую очередь, от запуска /root/ls (во вторую от /bin/ls) и создания корневых оболочек setuid, скрывающих файлы или уничтожающих их. Особо важен ана-

лиз файлов setuid и setgid.

Время и файлы регистрации просматриваются совместно. После атак на консоли в файле регистрации ошибок можно обнаружить попытку удалённо смонтировать какуюлибо директорию ("/"). Эти отклонения и укажут на нападение. Проверка lastlog на неизвестные имена входа в систему поможет в обнаружении вторжения. Проверяются времена входа в систему. Хотя каждый файл регистрации обычно создаётся различными службами, часто какое-либо событие может быть зарегистрировано и в других файлах регистрации. Файл регистрации защиты может сообщить о несанкционированной попытке монтирования, authlog показывает подбор пароля. Запуски

38