Инструменты безопасности с открытым исходным кодом. Системы обнаружения вторжений

Распространенные системы IDS. Системы обнаружения вторжений на основе выявления аномальной активности. Системы предотвращения вторжений. Сигнатуры сетевых систем обнаружения вторжений. Проблема ложных срабатываний сетевых систем обнаружения вторжений.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 12.07.2008
Размер файла 115,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Курсовая работа

по предмету

«Информационная безопасность»

Тема: «Инструменты безопасности с открытым исходным кодом. Системы обнаружения вторжений»

  • Введение
    • Наиболее распространенные системы IDS
      • Системы обнаружения вторжений на основе выявления аномальной активности
      • Системы предотвращения вторжений
      • Примеры сигнатур сетевых систем обнаружения вторжений
      • Проблема ложных срабатываний сетевых систем обнаружения вторжений
      • Типичные причины ложных срабатываний
      • Правильное размещение сетевой системы обнаружения вторжений
      • Snort: система обнаружения вторжений с открытыми исходными текстами
      • Требования к оборудованию
      • Уникальные особенности Snort
      • Установка Snort
      • Запуск Snort
      • Режим протоколирования пакетов
      • Режим обнаружения вторжений
      • Режимы сигнализации Snort
      • Хостовые системы обнаружения вторжений
      • Tripwire: Программа проверки целостности файлов
      • Конфигурирование Tripwire
      • Инициализация эталонной базы данных
      • Проверка целостности файлов
      • Обновление базы данных
      • Введение

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

Брандмауэры позволяют уберечься от многих неприятностей, однако по своей сущности они предназначены для пассивной защиты - как замок на двери. Однако во многих ситуациях в добавление к замку требуется еще и сигнализация, которая сообщит вам, что в вашу сеть (или на важный сервер вашей сети) пытаются проникнуть. Роль такой сигнализации выполняют системы обнаружения вторжений - Intrusion Detection Systems (IDS). Системы IDS производят непрерывный мониторинг информации, получаемой при помощи: мониторинга сети/сетевого адаптера. Более мощные корпоративные системы IDS могут производить мониторинг, к примеру, всего трафика во внутренней сети, обнаруживая запрещенные действия (например, сканирование портов) и сигнатуры (например, применение какого-либо эксплойта). Такие системы относятся к классу NIDS - Network Intrusion Detection Systems. Персональные IDS обычно ограничиваются анализом трафика, который явно направлен на определенный компьютер. Такие системы принадлежат к классу HIDS - Host Intrusion Detection Systems.

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

- IDS обычно не могут нормально работать в сетях с большим трафиком (за исключением некоторых очень дорогих аппаратных систем). Обычно 50 000 пакетов в секунду (средним размером в 180 байт) в 100 Мбит сети - недосягаемый предел для большинства систем IDS;

- большинство IDS бессильно перед приемом, который называется snow blind (ослепление снегом). При этом атакующий забрасывает систему IDS сотнями пакетов с "обманными" IP и MAC-адресами. В таком потоке определить пакеты, при помощи которых производится, например, попытка взлома, IDS не может;

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

Наиболее распространенные системы IDS.

Очень часто используются системы IDS, которые встроены в прокси-серверы и брандмауэры (например, в тот же самый Kerio WinRoute Firewall или Microsoft ISA Server). Обычно такие системы IDS не отличаются большой функциональностью - в них встроено буквально несколько правил обнаружения вторжений, например, на сканирование портов). Тем не менее даже такое решение может успешно применяться для немедленного реагирования на нападения.

Очень распространенная система IDS (фактически классическая) - это система SNORT (www.snort.org). Изначально она была создана под *nix, затем перенесена и под платформу Windows. В классическом варианте необходимо руками редактировать текстовый файл конфигурации, но существует и графическое приложение для настройки SNORT под Windows - IDSCenter. SNORT, "упакованный" для более удобной установки и настройки под Windows и заранее преконфигурированный, называется EagleX. К плюсам SNORT можно отнести надежность, большое количество документации и дополнительных утилит, а также бесплатность (утилита поставляется с открытым исходным кодом). К недостаткам - сложность в установке и настройке, а также то, что программа требует большого количества компонентов, которые необходимо доустанавливать отдельно (Apache, Perl, mySQL и т.п.). Фактически сейчас SNORT является стандартом де-факто для систем обнаружения вторжений. Его распространенность можно сравнить, например, с распространенностью Web-сервера Apache или DNS-сервера BIND.

Существует большое количество коммерческих систем обнаружения вторжений (как правило, очень дорогих, но чрезвычайно мощных, с автоматически обновляемыми сигнатурами атак). В качестве примеров таких систем можно привести McAfee Entercept или ETrust Intrusion Detection фирмы Computer Associates. Есть и персональные системы обнаружения атак, которые предназначены для защиты единственного рабочего компьютера. Обычно они очень просты в настройке и нересурсоемки. К одной из самых удачных программ такого рода можно отнести Internet Periscope. Помимо обнаружения вторжений, эта система умеет также в автоматическом режиме находить сведения о домене и IP-сети, из которой пришел злоумышленник, показывать координаты для контактов его провайдера и т.п. В отдельный класс IDS можно отнести специальные программы, которые проводят не анализ сетевого трафика, а постоянный мониторинг журналов событий Windows (обычно при помощи них можно также настроить аудит). К таким системам относится, например, GFI SELM. Конечно, имеются также аппаратные системы обнаружения вторжений (часто объединенные с аппаратными брандмауэрами). Наиболее распространены такие устройства фирм CheckPoint и NetScreen.

Еще один тип программ, которые имеют отношение к системам обнаружения вторжений - это так называемые Honeypots (другое называние - Deception или Decoy systems). В соответствии со своим названием они действуют как приманка (липкая лента) для хакеров. Honeypots поставляются в виде коммерческих и некоммерческих продуктов, отдельных аппаратных решений (например, Specter) или образов готовых Unix-систем. Впрочем, Honeypot несложно создать и самому, использовав для этого старый компьютер (или виртуальный компьютер на основе VMWare). Обычно на него помещается максимальное число уязвимых приложений и внешне привлекательных для хакера ресурсов - и одновременно там же стоит система обнаружения вторжений (например, SNORT), которая фиксирует все действия хакера. Для атакующих из Интернета обычно такие приманки помещаются в DMZ, а во внутренней сети роль Honeypots обычно играют каталоги с привлекательными названиями и настроенным аудитом на файловых серверах.

По сути программы ISD представляют собой модифицированные анализаторы, которые видят все потоки данных в сети, пытаются выявить потенциально вредный сетевой трафик и предупредить вас, когда таковой появляется. Основной метод их действия заключается в исследовании проходящего трафика и сравнении его с базой данных известных шаблонов вредоносной активности, называемых сигнатурами. Использование сигнатур очень похоже на работу антивирусных программ. Большинство видов атак на уровне TCP/IP имеют характерные особенности. Система обнаружения вторжений может выявлять атаки на основе IP-адресов, номеров портов, информационного наполнения и произвольного числа критериев. Существует другой способ обнаружения вторжений на системном уровне, состоящий в контроле целостности ключевых файлов. Кроме того, развиваются новые методы, сочетающие концепции обнаружения вторжений и межсетевого экранирования или предпринимающие дополнительные действия помимо простого обнаружения. Рассмотрим здесь два наиболее популярным способам обнаружения вторжений в сети и системах: сетевое обнаружение вторжений и контроль целостности файлов.

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

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

Имеется веская причина, чтобы внимательно следить за трафиком внутренней сети. Как показывает статистика ФБР, более 70 процентов компьютерных преступлений исходят из внутреннего источника. Внутренние злоумышленники - не всегда ночные хакеры. Это могут быть и обиженные системные администраторы, и неосторожные служащие. Простое действие по загрузке файла или по открытию файла, присоединенного к электронному сообщению, может внедрить в вашу систему "троянскую" программу, которая создаст дыру в межсетевом экране для всевозможных бед.

Системы обнаружения вторжений на основе выявления аномальной активности

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

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

Системы предотвращения вторжений

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

Хотя эта новая технология постоянно развивается и совершенствуется, ей еще слишком далеко до проведения анализа и принятия решений на уровне человека. Факт остается фактом - любая система, которая на 100% зависит от машины и программного обеспечения, всегда может быть обманута посвятившим себя этому человеком. Примером системы предотвращения вторжений с открытыми исходными текстами служит Inline Snort Джеда Хейла - свободный модуль для сетевой системы обнаружения вторжений Snort.

Примеры сигнатур сетевых систем обнаружения вторжений

Сетевые системы обнаружения вторжений действуют, проверяя пакеты и сравнивая их с известными сигнатурами. Хорошим примером распространенной атаки, которую можно четко идентифицировать по ее сигнатуре, является атака cmd.exe, направленная против Информационного Сервера Интернет (IIS) - web-сервера корпорации Microsoft. Эта атака применяется Интернет-"червями" и вирусами, такими как Nimda и Code Red. Атакующий "червь" или человек пытается выполнить в каталоге с правом на запись копию программы cmd.exe - командного интерпретатора Windows, используя переполнение буфера в модуле IIS, называемом Internet Server API (ISAPI). В случае успеха хакер или червь получает доступ к командной строке на этой машине и может произвести значительные разрушения. Однако команда для копирования этого файла является очевидной и нет причины для ее легального выполнения пользователями через сеть с помощью IIS. Поэтому, если вы видите подобную активность, то весьма вероятно, что это попытка вторжения. Проверяя полезную нагрузку пакета и разыскивая слова cmd.exe, сетевая система обнаружения вторжений может идентифицировать данную атаку. На листинге показан один из таких пакетов. Шестнадцатеричное представление содержимого находится слева, а перевод в текст - справа.

length = 55

000 : 47 45 54 20 2F 73 63 72 69 70 74 73 2F 2E 2E 25 GET / scripts/..%

010 : 35 63 25 35 63 2E 2E 2F 77 69 6E 6E 74 2F 73 79 5c%5c../winnt/sy

020 : 73 74 65 6D 33 32 2F 63 6D 64 2E 65 78 65 3F 2F stem32/cmd.exe?/

030 : 63 2B 64 69 72 0D 0A c+dir..

Листинг. Пакет выполнения cmd.exe (html, txt)

Другой атакой, которую легко идентифицировать по ее сигнатуре, является переполнение буфера .ida. "Червь" Code Red распространялся с помощью этого метода. Эксплуатируется переполнение буфера в расширении .ida для web-сервера Microsoft IIS. Это расширение установлено по умолчанию, но часто не требуется. Если вы не наложили заплату на это место, оно может предоставить прямой доступ к вашей машине. По счастью, сетевая система обнаружения вторжений способна быстро идентифицировать эти пакеты, находя содержащийся в них оператор GET /default.ida.

Проблема ложных срабатываний сетевых систем обнаружения вторжений

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

Типичные причины ложных срабатываний:

Работа системы мониторинга сети

Многие организации используют системы мониторинга сети, такие как HP OpenView или WhatsUp Gold, чтобы следить за системами в своей сети. Они характеризуются высокой сетевой активностью опроса и обнаружения. Для опроса состояния эти системы обычно применяют SNMP или аналогичный протокол, но они могут также использовать эхо-тестирование и другие, более назойливые проверки. По умолчанию большинство систем обнаружения вторжений рассматривают эту активность как вредоносную или, по крайней мере, подозрительную. В большой сети мониторинг может порождать тысячи сигналов тревоги в час, если система обнаружения вторжений настроена для отслеживания такой деятельности. Этого можно избежать, игнорируя активность с участием IP-адреса системы мониторинга. Можно также исключить из базы данных соответствующие сигналы тревоги, если их отслеживание не представляет для вас особой важности.

Сетевое сканирование уязвимостей/сканеры портов

Всякий раз, когда вы запускаете сетевое тестирование уязвимостей или сканирование портов с помощью таких программ, как Nessus и Nmap, ваша сетевая система обнаружения вторжений будет сходить с ума. Эти программы созданы для выполнения именно того, что делают хакеры. На самом деле, вероятно, сигналы тревоги заданы для большинства встраиваемых модулей Nessus. И здесь также можно отключить сообщения с участием IP-адреса сервера Nessus или Nmap, но лучше всего вообще выключать систему обнаружения вторжений на время планового сканирования. В этом случае сканирующая машина будет по-прежнему защищена от атак, когда не выполняется сканирование, а база данных сигналов тревоги не будет искажена множеством данных от вашей собственной активности по сканированию.

Пользовательская активность

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

Поведение, напоминающее "троянскую" программу или "червя"

Современные вирусы и вирусоподобное программное обеспечение ("черви" и "троянские" программы) нередко используют сетевые средства, пытаясь выполнять такие действия, как инфицирование других машин или массовая рассылка электронных сообщений. Подобную активность можно выявить с помощью сетевых систем обнаружения вторжений. Однако эти сигнатуры могут порождать сигналы тревоги и при нормальной деятельности. Примером служит червь Nimda, который пытается копировать на различные системы файлы с определенными расширениями, такими как .eml. К сожалению, программа Microsoft Exchange ведет себя аналогично при использовании ее web-интерфейса. Поэтому, хотя знать о подобной "троянской" активности в сети было бы полезно, можно при желании отключить сигналы, порождаемые известной нормальной деятельностью, даже когда имеется потенциальная опасность, что трафик все-таки окажется вредоносным. Это поможет избежать чрезмерного количества ложных срабатываний.

Длинные базовые цепочки аутентификации

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

Аутентификационная активность базы данных

Некоторые сетевые системы обнаружения вторжений следят за деятельностью по администрированию баз данных. Теоретически в производственных базах данных не должно наблюдаться высокой административной активности, а ее наличие может служить признаком того, что кто-то пытается что-то сделать с базой. Однако во многих базах данных использование идет параллельно с разработкой, отсюда и большой объем администрирования. Эта деятельность, хотя и вполне законная, будет порождать множество сигналов тревоги. Если ваша база данных находится в состоянии непрерывного развития, то вам, вероятно, следует отключить эти сигналы, по крайней мере пока база не стабилизируется и не перейдет в режим производственной эксплуатации.

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

Правильное размещение сетевой системы обнаружения вторжений

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

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

Однако при подобном размещении будет генерироваться много сигналов тревоги на основе потоков данных Windows, так что будьте готовы проделать большой объем работы по настройке в этой области. Далее, если у вас коммутируемая ЛВС, то понадобится возможность отражения всех портов в порт монитора, чтобы система обнаружения вторжений могла прослушивать весь трафик ЛВС.

· В демилитаризованной зоне. Можно поместить сенсор Snort в демилитаризованной зоне, чтобы отслеживать активность по отношению к вашим общедоступным серверам. Так как эти серверы наиболее открыты в вашей организации и обычно представляют собой ценные ресурсы, то весьма разумно наблюдать за ними с помощью системы обнаружения вторжений. Проблема, которая возникает при подобной конфигурации, состоит в сортировке всех сигналов. Хотя все они могут быть оправданными сигналами тревоги, в наше время общий уровень атакующего трафика в Интернет таков, что любой общедоступный IP-адрес по несколько раз в день подвергается случайным атакам. Реагирование и попытки отследить эти сигналы будут излишними и контрпродуктивными.

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

· Между вашим поставщиком Интернет-услуг и межсетевым экраном. В этом случае будет фильтроваться весь входящий и исходящий трафик вашей ЛВС и демилитаризованной зоны. Положительная сторона этого подхода состоит в том, что вы будете перехватывать все, что направлено против ваших общедоступных серверов и внутренней ЛВС, отрицательная - в том, что вы не увидите внутренний трафик, а общий объем сигналов может быть весьма большим из-за высокого уровня фонового атакующего трафика.

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

Мы перечислили все разумные варианты размещения системы обнаружения вторжений. Разумеется, ничто не мешает использовать их все, если у вас достаточно оборудования и времени для управления.

Snort: система обнаружения вторжений с открытыми исходными текстами

Snort - творение Мартина Реша, вышедшее, однако, далеко за пределы его авторства. В настоящее время ядро группы разработчиков насчитывает более 30 человек, не считая тех, кто пишет правила и другие части программного обеспечения. Как можно видеть из приведенных выше списков рассылки, существует много доступных источников информации о Snort. И это только бесплатные сетевые ресурсы. Имеется также несколько полноформатных книг на эту тему. Данный раздел, хотя и не является истиной в последней инстанции, дает достаточно сведений об основах, позволяет освоить Snort и работать с ним.

Snort можно отнести к системам обнаружения вторжений на основе сигнатур, хотя с добавлением модуля Spade он приобрел способность выявлять аномальную активность. Имеются также дополнительные модули, такие как Inline Snort, которые позволяют автоматически реагировать на любые сигналы тревоги.

Требования к оборудованию

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

Для работы Snort желательно иметь процессор Intel 500 МГц, хотя можно обойтись и ПК с 266 МГц. Если вы храните файлы журналов локально, вам потребуется также по крайней мере несколько гигабайт доступного дискового пространства. Должна применяться сетевая плата 100 Мбит/с, чтобы исключить возможность заторов, если вы будете анализировать сеть 100 Мбит/с. Авторы Snort утверждают, что программа будет работать в активно используемом сегменте сети 100 Мбит/с без потери пакетов. Однако, если ваша сеть перегружена, то, возможно, придется несколько повысить требования к оборудованию - до процессора 1 ГГц. Так или иначе, необходимым требованиям легко удовлетворит любая машина, кроме разве что самых старых.

Уникальные особенности Snort

· Открытые исходные тексты. Исходные тексты Snort открыты, он переносим практически на любую разновидность операционной системы UNIX. Доступны также версии для Windows и других операционных систем.

· Легковесность. В силу эффективной реализации Snort не требует мощного оборудования. Это позволяет анализировать трафик в сети 100 Мбит/с практически в реальном масштабе времени, что кажется невероятным, если представить, что делается с каждым пакетом.

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

Установка Snort

Snort устанавливается довольно просто.

1. В качестве предварительного условия требуется установить пакет libpcap. Если вы загрузили любой из пакетов из лекций с 4 по 6, то libpcap уже установлен. В противном случае его можно загрузить с http://www.tcpdump.org/.

2. После загрузки этих библиотек просто возьмите файл с компакт-диска, прилагаемого к книге, или загрузите самую свежую версию с web-сайта.

3. Когда файл окажется в вашей машине, распакуйте его и выполните команды компиляции:

4. ./configure

5. make

make install

Запуск Snort

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

Режим анализа пакетов

В этом режиме Snort действует просто как анализатор, показывая нефильтрованное содержимое среды передачи. Конечно, если вам требуется только анализатор, можно применить Tcpdump или Ethereal, однако данный режим позволяет убедиться, что все работает правильно и Snort видит пакеты. В табл. 1 перечислены ключи, которые можно использовать при выполнении Snort в режиме анализа. Необходимо включить как минимум команду -v, поскольку иначе Snort по умолчанию будет выполняться в одном из двух других режимов (протоколирования или обнаружения вторжений), ожидая других опций.

Испробовать этот режим можно, просто набрав в командной строке

snort -v

или

snort -vde

Выдача будет практически такой же, как от анализаторов, описанных в предыдущей лекции. Для выхода нажмите Ctrl+C, и вы увидите сводные данные сеанса анализа пакетов.

Таблица 1. Опции режима анализа пакетов

Опция

Описание

-v

Выдает на экран заголовки пакетов TCP/IP в сети Ethernet

-d

Аналогично предыдущей опции, но отображаются также данные прикладного уровня

-e

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

Режим протоколирования пакетов

Этот режим аналогичен предыдущему, но позволяет записывать пакеты на диск для последующего анализа, аналогично функциям протоколирования в описанных выше анализаторах. Чтобы запустить Snort в режиме протоколирования, воспользуйтесь той же командой, что и для режима анализа (-v, -d и/или -e), но с добавлением ключа -l каталог_журналов, задающего маршрутное имя каталога журналов, в которые Snort будет записывать пакеты. Пример:

snort -vde -l /var/log/snort

Эта команда создаст файлы журналов в каталоге /var/log/snort. Убедитесь, что указанный каталог существует, иначе программа не будет загружаться правильно. Snort протоколирует пакеты по IP-адресам, создавая отдельный каталог для каждого из них. Если вы протоколируете трафик в большой локальной сети с множеством адресов, ситуация может быстро выйти из-под контроля. Поэтому можно применить другую настройку, чтобы Snort протоколировал пакеты относительно вашей домашней сети, в которой вы находитесь. Это делается с помощью команды -h домашняя_сеть, где домашняя_сеть - диапазон IP-адресов локальной сети в нотации с косой чертой. В этом случае Snort будет помещать пакеты в каталоги на основе нелокального IP-адреса в пакете, что позволяет легко распознавать "неместный" трафик. Если оба хоста, целевой и исходный, являются локальными, Snort помещает пакет в каталог, соответствующий стороне с большим номером порта, как бы отдавая предпочтение подключающемуся хосту перед серверным. В случае равенства номеров портов Snort по умолчанию использует исходный адрес в качестве каталога для размещения данных пакета. Сейчас это может показаться несущественным, но если вы протоколируете сигналы о вторжении, важно быстро определить, откуда исходит подозрительный трафик.

Учитывая приведенные соображения, командной строке для режима протоколирования пакетов целесообразно придать следующий вид:

snort -vde -l /var/log/snort -h 192.168.1.0/24

Тем самым внутренняя сеть задается диапазоном 192.168.1.1-254.

Можно также применить опцию -b для протоколирования всех данных в одном бинарном файле, пригодном для последующего чтения с помощью анализатора пакетов, такого как Ethereal или Tcpdump. При протоколировании с опцией -b нет необходимости определять домашнюю сеть, так как данные будут записываться последовательно в один большой файл. Этот метод намного быстрее для протоколирования работы активно используемых сетей или на медленных машинах. Он также облегчает анализ с помощью более развитых средств, которые приходится применять при просмотре больших объемов перехваченных сетевых данных.

Режим обнаружения вторжений

В этом режиме Snort протоколирует подозрительные или требующие дополнительного внимания пакеты. Для перевода Snort в режим обнаружения вторжений достаточно добавить к приведенной выше инструкции ключ -c конфигурационный_файл, предписывающий использовать указанный конфигурационный файл для управления протоколированием пакетов. Конфигурационный файл определяет все настройки Snort, он очень важен. Snort поставляется с подразумеваемым конфигурационным файлом, но перед запуском в него целесообразно внести некоторые изменения, отражающие специфику вашей среды. Поэтому, набрав в командной строке

snort -de -l /var/log/snort -h 192.168.1.0/24 -c /etc/snort/snort.conf

вы запустите Snort в режиме обнаружения вторжений с использованием подразумеваемого конфигурационного файла snort.conf. Убедитесь, что указанный конфигурационный файл существует, или задайте маршрутное имя, соответствующее его расположению в вашей системе.

Обратите внимание, что я не использовал ключ -v для запуска Snort в режиме обнаружения вторжений. Если, помимо сопоставления всех пакетов с сигнатурами, заставлять Snort еще и выдавать на экран сигналы тревоги, это может привести к потере пакетов, особенно в загруженных сетях. Можно также не задавать ключ -e, чтобы повысить производительность, если не требуется протоколировать работу канального уровня. Если убрать ключ -l, то Snort будет использовать подразумеваемый каталог протоколов /var/log/snort. Опять-таки убедитесь, что этот каталог существует, иначе Snort не запустится. Можно также задать ключ -b, если вы хотите направить протокол в бинарный файл для последующего анализа отдельной программой. Команда для запуска Snort в режиме обнаружения вторжений в результате будет выглядеть следующим образом:

snort -h 192.168.1.0/24 -c /etc/snort/snort.conf

Режимы сигнализации Snort

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

Таблица 2. Опции режима сигнализации Snort

Опция

Описание

-A full

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

-A fast

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

-A unsock

Посылает сигнал в UNIX-сокет с указанным номером, на котором может слушать другая программа

-A none

Отключает сигналы тревоги

Имеются также опции вывода syslog, smb и database, но они используют не ключ -A, а отдельные модули вывода и предлагают более широкое разнообразие выходных форматов. Эти опции следует конфигурировать во время компиляции при помощи ключей инструкции configure.

· SMB посылает сигналы тревоги службе всплывающих окон Windows, поэтому вы увидите сигналы всплывающими на вашем экране или экране машины, осуществляющей мониторинг. Однако, прежде чем использовать эту опцию, желательно тщательно настроить систему обнаружения вторжений, иначе вы не сможете ничего делать, кроме как наблюдать всплывающие то и дело окна! Для того чтобы включить этот метод сигнализации, при установке Snort задайте в инструкции configure опцию enable-smbalerts. Затем нужно запустить snort со следующими аргументами snort -c /etc/snort.conf -M рабочие_станции задав после -M имена хостов Windows, на которые отправляются сигналы.

· Syslog посылает сигналы тревоги Syslog-серверу UNIX. Syslog - это служба, выполняющаяся на машине (обычно UNIX), которая может подхватывать и сохранять различные файлы журналов. Это помогает консолидировать журналы вашей сети в одном месте, а также затрудняет хакеру удаление протоколов вторжений. В данной книге не рассматриваются особенности настройки сервера Syslog, но если он у вас есть, то при наличии в командной строке ключа -s Snort будет посылать сигналы туда. Можно также определить в конфигурационном файле различные форматы Syslog, которые рассматриваются в следующем разделе.

· Snort напрямую поддерживает четыре вида вывода в базу данных посредством своих модулей вывода. К числу поддерживаемых форматов принадлежат MySQL, PostgreSQL, Oracle и unixODBC. Это должно удовлетворить потребности большинства пользователей баз данных. И, естественно, если ваша база данных не поддерживается, можно взяться за проект по написанию нужного модуля расширения. Модуль вывода в базу данных требует как параметров времени компиляции, так и настроек в конфигурационном файле. Более подробные сведения - в следующем разделе.

Хостовые системы обнаружения вторжений

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

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

Преимущества хостовых методов обнаружения вторжений:

· Меньшее число ложных срабатываний.

· Отслеживается активность, а не сигнатуры, поэтому не требуется постоянное обновление сигнатур.

· Менее подвержены обману.

· Требуют меньше обслуживания и настройки.

Недостатки хостовых методов обнаружения вторжений:

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

· Сигналы тревоги поступают после успешной атаки; сетевые системы обнаружения вторжений обеспечивают иногда более раннее предупреждение.

Tripwire: Программа проверки целостности файлов

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

Имеются существенные различия между коммерческой и открытой версиями. Самые значительные из них - поддержка коммерческой версией большего числа платформ и ее закрытость. Версия с открытыми исходными текстами в настоящее время доступна только для Linux, в то время как коммерческая - на нескольких платформах, включая Windows. Еще одно различие состоит в том, что коммерческая версия поставляется с программой, называемой twagent, которая служит для управления несколькими установками Tripwire. Коммерческая версия имеет также прекрасный графический интерфейс для управления базами данных и конфигурациями.

Обе версии Tripwire работают, создавая базу данных эталонных атрибутов важных файлов, которые предполагается отслеживать, поэтому в любое время можно сравнить текущие атрибуты с эталонными, чтобы узнать, изменилось ли что-нибудь. Это хорошо подходит для отслеживания системных бинарных файлов. Один из любимых приемов хакеров при проникновении в систему состоит в замене ключевых бинарных файлов собственными троянскими версиями. Таким образом, когда вы выполняете команду типа ls или ps, вы не увидите нелегальные файлы или процессы. Tripwire можно также применять во время судебного разбирательства, чтобы определить, где был взломщик; это напоминает исследование цифровых отпечатков.

Конфигурирование Tripwire

Заключительным шагом, предшествующим запуску Tripwire, служит задание вашей политики. Файл политики очень важен для работы Tripwire: в нем специфицируются отслеживаемые файлы и уровень детализации. Основной файл политики, twpol.txt, находится в главном каталоге Tripwire. Строго говоря, это не сам файл политики, а копия зашифрованной версии, которую в действительности использует программа. Для большей безопасности необходимо сделать копию и удалить незашифрованную версию twpol.txt, после того как вы определите и протестируете свою политику.

В начале файла политики задано несколько системных переменных, а затем следует список различных файлов и каталогов с директивами политики для них. Эти директивы представлены либо кодовыми буквами, либо именами переменных. Они называются масками свойств и задают свойства, отслеживаемые Tripwire. В табл. 3 перечислены элементы, которые могут отслеживаться для каждого файла, и их кодовые буквы.

Таблица 3. Маски свойств Tripwire

Буква кода

Отслеживаемый атрибут

a

Время последнего доступа

b

Отведенные блоки

с

Время создания/изменения

d

Идентификатор устройства, на котором располагается описатель файла

g

Идентификатор владеющей группы файла

i

Номер описателя файла

l

Разрешен ли рост файла

m

Метка времени изменения

n

Значение счетчика ссылок в описателе файла

p

Режим доступа к файлу

s

Размер файла

t

Тип файла

u

Идентификатор пользователя владельца файла

C

Хэш-код CRC32

H

Хэш-код Haval

M

Хэш-код MD5

S

Хэш-код SHA/SHS

Политики Tripwire действуют по принципу флагов игнорирования. Можно сконфигурировать Tripwire для отслеживания или игнорирования различных свойств файлов. Знак + (плюс) используется для отслеживания свойств, а знак - (минус) - для их игнорирования. Формат инструкций в файле политики таков:

имя_файла/каталога -> маска_свойств;

Например, следующая строка в файле политики

/etc/secretfile.txt -> +amcpstu;

предписывает Tripwire извещать вас всякий раз, когда у файла secretfile.txt в каталоге /etc изменяются время последнего доступа, время создания или модификации, режим доступа, владелец, размер или тип файла.

Существует также несколько предопределенных масок свойств. В табл. 4 перечислены эти стандартные маски и их действие.

Таблица 4. Стандартные маски свойств

Маска свойств

Действие

$Readonly

+pinugtsdbmCM-rlaSH

$Dynamic

+pinugtd-srlbamcCMSH

$Growing

+pinugtdl-srbamcCMSH

$Device

+pugsdr-intlbamcCMSH

$IgnoreAll

-pinugtsdrlbamcCMSH

$IgnoreNone

+pinugtsdrrlbamcCMSH

Предопределенные переменные соответствуют поведению различных наборов файлов. Например, можно использовать $Readonly для ключевых конфигурационных файлов, так как время доступа будет изменяться, когда программы их используют, но вы не желаете, чтобы изменялись размер или содержимое. Можно использовать $Growing для файлов журналов, так как они будут (во всяком случае, должны) постоянно увеличиваться в размере.

Инициализация эталонной базы данных

Первым шагом при выполнении Tripwire является формирование эталонной базы данных. Создается начальный список сигнатур, согласно которым будут применяться политики. Помните, что выполнение этого шага после того, как в системе появились подозрительные файлы, ни к чему хорошему не приведет; необходимо создать эталонную базу данных до того, как появятся какие-либо проблемы с безопасностью, лучше всего сразу после установки и конфигурирования системы. Чтобы создать начальный файл базы данных, используйте команду

tripwire -m i -v

Ключ -m определяет режим выполнения, в данном случае i означает инициализацию. Ключ -v задает расширенный вывод, чтобы можно было посмотреть, что происходит. Tripwire определяет все файлы, заданные в файле политики, создает базу данных в каталоге ./database и шифрует ее с помощью пароля сайта.

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

Проверка целостности файлов

Это основной режим выполнения программы Tripwire после ввода в эксплуатацию. В этом режиме текущие атрибуты определенных файлов сравниваются с атрибутами в базе данных Tripwire. Формат запуска в этом режиме таков:

tripwire -m c маршрутное_имя

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

Обновление базы данных

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

tripwire -m u -r маршрутное_имя_отчета

Здесь маршрутное_имя_отчета соответствует самому свежему файлу отчета. Выполнение этой команды покажет все произошедшие изменения, а также правила, их обнаружившие. Рядом с файлами, в которых обнаружились изменения, будет присутствовать знак x в квадратных скобках. Если оставить x на месте, то Tripwire обновит сигнатуру для этого файла, когда вы закончите работу с отчетом. Если удалить x, то Tripwire будет предполагать, что исходная сигнатура правильна, и не будет ее обновлять. При выходе Tripwire внесет изменения. Можно задать ключ -c в командной строке, чтобы пропустить предварительный просмотр отчета. В этом случае Tripwire просто учтет обнаруженные изменения.

Список источников:

1. Т. Хаулет. Инструменты безопасности с открытым исходным кодом (http://www.intuit.ru/goto/course/secopen/http://www.intuit.ru/goto/lecture/1263/)

2. П. Покровский. «Развертывание системы обнаружения вторжений». «LAN», № 6/2003 .

3. Андрей Васильков. Системы обнаружения вторжения aka IDS . "Компьютерра" №19 от 20 мая 2002 года.


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.