Почему одного брандмауэра недостаточно? Что такое IDS и почему их стоит иметь?
Является ли брандмауэр окончательным решением?
Термин «брандмауэр» уже стал модным словом в компьютерной литературе. Компании, занимающиеся маркетингом брандмауэров, создали в менталитете администраторов бюджета прямую ассоциацию: «У нас есть брандмауэр, и поэтому наша сеть должна быть защищена».
Однако полная зависимость от брандмауэра может создать ложное ощущение безопасности. Брандмауэр не будет работать сам по себе (независимо от того, как он спроектирован или реализован), поскольку он не является панацеей. Брандмауэр — это просто один из многих инструментов в наборе инструментов для политики ИТ-безопасности.
Кратко рассмотрим, какие задачи возлагаются на современные межсетевые экраны. Брандмауэры контролируют как входящий, так и исходящий сетевой трафик. Они могут пропускать определенные пакеты или отключать для них доступ. Например, брандмауэр можно настроить так, чтобы он пропускал трафик только на порт 80 веб-сервера и на порт 25 почтового сервера. Этот простой пример показывает, что брандмауэр не может оценить содержимое «легитимных» пакетов и может неосознанно пропускать некоторые атаки на веб-сервер.
Существуют различные типы брандмауэров. На рынке межсетевых экранов есть множество решений — от имитации брандмауэра до очень продвинутых фильтров приложений.
По сути, брандмауэр, вынутый из упаковки и установленный между сетью и Интернетом, немного улучшает безопасность системы. Вмешательство человека также требуется для принятия решения о том, как фильтровать трафик и «инструктировать» межсетевой экран принимать или отклонять входящие пакеты. Это де-факто сложная и чувствительная задача. Всего одно правило политики безопасности, установленное по неверным причинам, может сделать систему уязвимой для внешних злоумышленников. Следует также помнить, что плохо настроенный брандмауэр может ухудшить эффективную устойчивость системы к атакам. Это связано с тем, что системные администраторы могут полагать, что их системы безопасны внутри «линии Мажино», и станут небрежными в отношении внутренних повседневных стандартов безопасности, если установлен брандмауэр.
Наряду с «брандмауэром» в последнее время очень популярным стало другое модное словечко — «IDS». Решения IDS предназначены для мониторинга событий в ИТ-системе, таким образом дополняя первую линию защиты (за брандмауэрами) от атак. В этой статье объясняется терминология, связанная с IDS, и более подробно рассматриваются основы технологии защиты.
Мониторинг ИТ-систем: зачем и как?
Общеизвестно, что системный администратор подобен полицейскому (или, если угодно, охраннику), поскольку отвечает за предотвращение внешних атак на ИТ-систему. Отличие в том, что полицейские работают посменно, обеспечивая круглосуточное дежурство, поэтому круглосуточное дежурство гарантировано. Однако такая ситуация выходит за рамки ожиданий администрации ИТ-системы. Еще одно отличие заключается в том, что Интернет по своей природе не является безопасным, поэтому современные ИТ-системы подвергаются атакам со стороны хакеров со всего мира с преступными намерениями. Итак, каким должен быть современный «полицейский»? Как можно заранее защитить свои активы от неизвестных угроз из неизвестных источников, которые могут появиться в любое время дня и ночи? Ответ прост – использовать автоматические системы для помощи «милиционерам» в их работе. Инструменты IDS — это те, которые выполняют функцию такого «полицейского», заботясь о безопасности ИТ-систем и обнаруживая потенциальные вторжения. Следует помнить важное предостережение: брандмауэры — это инструменты, предназначенные только для использования людьми.
Что такое ИДС?
IDS означает систему обнаружения вторжений, и для простоты это система, которая обнаруживает попытки взлома. Если сравнивать с домашней противовзломной системой, брандмауэры выполняют роль дверных и оконных замков. Эти типы замков остановят большинство взломщиков, но опытные злоумышленники могут обойти устройства безопасности, которые защищают намеченную цель, например, дом. Поэтому большинство людей используют комбинацию сложных замков с сигнализацией. IDS выполняет роль такой системы оповещения и добавляет следующий превентивный уровень безопасности, обнаруживая атаки, проникающие в ИТ-системы.
Создатели IDS исходили из того, что никакая система защиты не может обеспечить 100-процентную защиту сети от внешних атак. После преодоления защитного барьера о такой аномальной ситуации необходимо как можно быстрее сообщить системному администратору. Было бы полезно посмотреть, что злоумышленник делал в ИТ-системе. Это ключевые задачи для программ системы обнаружения вторжений.
Как работает IDS?
IDS осуществляет непрерывный мониторинг событий. Программное обеспечение для обнаружения вторжений отслеживает сервер и регистрирует любые попытки несанкционированного доступа и нестандартные модели поведения. Конечно, IDS должна быть проинструктирована распознавать такие события. IDS может обрабатывать различные типы данных. Наиболее частые: подслушивание трафика, утекание пакетов в системные журналы, информация о действиях пользователей. С точки зрения эксплуатации доступны три основных типа систем обнаружения вторжений:
– Хост-системы – HIDS,
– Сетевые системы – NIDS,
– Системы на основе сетевых узлов – NNIDS.
IDS на основе хоста (HIDS)
Это программное обеспечение брандмауэра, которое основано на проверке любой информации, которую он может собрать, сгенерированной в результате деятельности ОС. Такая информация может включать в себя журналы, созданные системой, системные события (например, попытки несанкционированного входа в систему, ошибочный доступ к файлам, статус файла и т. д.). Как правило, IDS имеет дело со всеми ИТ-системами, которые можно отслеживать.
Аудит журнала
Основная задача HIDS — аудит данных системного журнала. Это означает, что они в основном полагаются на соответствующую конфигурацию механизмов журнала ОС, например, EventLog в системах на базе Windows, Syslog — в Unix. HIDS собирает данные, поступающие в системные журналы, и ищет любую информацию, которая вызывает оповещения. Эта задача относительно проста в реализации и аналогична задаче, используемой словарями тестового процессора. Идентификатор на основе хоста может быть «проинструктирован», например, активировать сигнал тревоги после трехкратной попытки несанкционированного входа в систему в течение одной минуты. Сервис LogCaster является примером обсуждаемого здесь анализатора логов.
Щелкните здесь, чтобы просмотреть список систем обнаружения вторжений на основе аудита журналов.
Проверка целостности файлов
HIDS все чаще используют технологии, которые позволяют им обнаруживать изменения в важных системных файлах и ресурсах. Как правило, файлы для проверки периодически суммируются и сравниваются с базой данных контрольных сумм. Если контрольная сумма не соответствует текущему результату, хранящемуся в базе данных контрольных сумм, это означает, что целостность файла была изменена. Очевидно, что это правило можно использовать для мониторинга только критических неизменяемых системных файлов.
Некоторые HIDS могут проверять характеристики определенных активов. Хорошо известно, например, что файлы системного журнала являются добавочными файлами. Следовательно, система должна быть настроена таким образом, чтобы тревога срабатывала, как только система обнаруживает какие-либо аномальные журналы.
На рынке доступен ряд продуктов, которые занимаются мониторингом файлов и активов. Они обозначаются аббревиатурой FIA (File Integrity Assessment). Первой программой, которая могла использовать проверку целостности файлов путем проверки контрольной суммы, была Tripwire.
При развертывании программного обеспечения HIDS необходимо уделить внимание обеспечению безопасности баз данных, используемых системой (файлы правил обнаружения событий, файлы контрольных сумм). Представьте, что ваша операционная система подвергается атаке, и злоумышленник знает, что ваша ОС использует покрытие HIDS. Внося изменения в систему, злоумышленник также может модифицировать базу данных, содержащую сигнатуры измененных файлов. Поэтому рекомендуется хранить сигнатуры и другие базы данных, а также файлы конфигурации и двоичные файлы HIDS, используя нестираемый метод, например, на защищенной от записи дискете или компакт-диске.
Щелкните здесь, чтобы просмотреть список средств проверки целостности файлов.
Система предотвращения вторжений
Самым большим недостатком большинства хост-систем HIDS является то, что они пассивны, а это означает, что они должны ждать события, свидетельствующего об атаке, и не могут заранее предотвратить ее. В последнее время HIDS оснащаются технологией предотвращения вторжений, направленной на обнаружение определенных признаков атаки и возможность противостоять ей до того, как может быть нанесен какой-либо ущерб. Один из таких расширенных гибридных идентификаторов основан на мониторинге вызовов программного интерфейса прикладного программирования (API) системы (сделанных в ОС или ядре) и на перехвате вызовов, которые запрещены установленными правилами политики безопасности. Таким образом, система не только обнаружит аберрантное действие, но и предотвратит его. Например, если системный пользователь (или процесс) получает повышенные права доступа в операционной системе в результате навязчивых действий (или троянской программы) и пытается уничтожить важный файл, пассивная система обнаружит отсутствие или модификацию этот файл. Проактивная система, помимо уведомления системного администратора, также сможет предотвратить повреждение данных. Эта техника использовалась, среди прочего, системой обнаружения вторжений Linux (LIDS).
Сетевые IDS (NIDS)
Программное обеспечение, относящееся к этой группе IDS, анализирует сетевые пакеты. Агент NIDS переводит сетевую карту в «неразборчивый» режим и проверяет весь трафик, проходящий через интерфейс. Как правило, он должен иметь возможность анализировать весь трафик в определенном сегменте сети. Поэтому в коммутируемых сетях агент NIDS должен быть подключен к порту мониторинга концентратора. Агент NIDS функционирует как соответствующий программный модуль, который находится на одном из серверов в сегменте LAN. Однако следует помнить, что объем пакетов, отправляемых по современным локальным сетям, огромен. И этот объем должен быть проанализирован NIDS. Если у агента недостаточно возможностей для обработки экстремальных нагрузок, он может пропустить пакеты из-за перегрузки в сетевом канале, который он отслеживает, и не сможет собрать следующие полученные пакеты. Поэтому работа в режиме, близком к режиму реального времени, является обязательной для NIDS. С другой стороны, сам агент NIDS может перегрузить систему, в которой он находится, и «вывести из строя» систему для выполнения других задач. Эта слабость побуждает производителей NIDS разрабатывать агенты сбора данных в виде выделенной системы, устанавливаемой на отдельный надежный ПК (например, NFR NID-100 предлагается в виде компакт-диска для загрузки системы). Другой вариант — полная система, включающая как аппаратное, так и программное обеспечение (например, Cisco NetRanger — это ПК с программным обеспечением Cisco, работающий под управлением операционной системы Solaris).
NIDS устанавливаются для покрытия сегмента сети, связанного с типичными атаками (например, ping of death или IIS.ida), или же используются для обработки более мелких событий, которые являются не просто атаками, а подготовительными этапами (например, сканирование портов).
Для обнаружения аберрантного трафика NIDS использует некоторые другие методы, представленные ниже.
Сопоставление с образцом
Это базовая техника, которая использовалась программами NIDS с момента их зарождения. Каждый пакет в сети принимается системой прослушивания, NIDS, затем фильтруется и сравнивается на основе сопоставления байт-кода с базой данных известных сигнатур атак (или шаблонов). Сигнатура атаки — это известный метод, используемый антивирусными программами. CA eTrust использует тот же движок — InoculateIT — что и антивирусное программное обеспечение того же производителя. Этот метод прост в развертывании, но требует наличия мощной системы. Кроме того, простая математика показывает, что существует экспоненциальная зависимость между объемом обработанных данных или обнаруженных атак (сигнатур) и потребностью в вычислительной мощности.
IDS аномалий на основе протокола
Этот подход к IDS основан на том, что агент мониторинга трафика имеет базу данных известных уязвимостей, специфичных для протокола, и, таким образом, может обнаруживать определенные подозрительные пакеты. Например, при атаках «ping of death», которые отправляют необычно большое эхо-сообщение ICMP (ping), NIDS, анализирующая протоколы, обнаружит атаку — этот очень большой пакет эха ICMP. Добавление технологии на основе протокола значительно улучшает обнаружение атак, использующих базы данных сигнатур, поскольку заголовки удаляются, а для анализа берется только полезная нагрузка.
С добавлением этого метода агенты NIDS также получили механизмы, позволяющие им анализировать корреляцию между последовательными пакетами. Таким образом, могут быть обнаружены SYN-флуд-атаки или сканирование для поиска атак с открытым портом.
Еще одно существенное расширение возможностей NIDS было дано с помощью метода дефрагментации пакетов, связанного с протоколом. Агенту NIDS, не снабженному этой функцией, может быть трудно выявить наличие атаки, скрытой во фрагментированных пакетах (распространенный метод, используемый для обмана «обычных» брандмауэров).
Анализ пакетов на основе сеанса
Разработчики IDS предприняли шаги для расширения функциональности систем обнаружения вторжений — в дополнение к анализу отдельных пакетов они предоставили NIDS возможность отслеживать атаки на основе сеансов, которые могут происходить в ходе диалога между системами. Агент NIDS, настроенный таким образом, сможет повторно собирать потоки пакетных данных. Это задача, которая предъявляет высокие требования к процессору, но позволяет полностью просмотреть аномальные действия, не ограничиваясь отдельными пакетами. Например, могут быть выявлены попытки манипулировать TCP-потоком или обойти инспекционные брандмауэры.
Полный анализ протокола
Продвинутая NIDS должна иметь базу данных с большинством современных протоколов и иметь возможность обрабатывать различные варианты этих протоколов. Предположим, злоумышленник атакует веб-сервер, отправляя команды определенного формата скрипту cgi.bin (например, test.cgi или showcode.asp). IDS на основе сигнатур должен соответствовать некоторым конкретным шаблонам для идентификации атаки. Другой пример: злоумышленник создал вариант с использованием UNICODE. «Простая» NIDS никогда бы даже не заметила такую модифицированную атаку. Только сложная, полностью основанная на протоколе система, способная «нормализовать» проверенные данные перед обработкой (в данном случае с использованием чистого ASCII), может обнаружить такие атаки. Это распространенный метод сокрытия атак от NIDS.
Специализированные сетевые драйверы
Сетевые драйверы, поставляемые сегодня с операционными системами, не предназначены для высокоэффективного сетевого анализа трафика, связанного со всеми компьютерами в определенном сегменте сети. Кроме того, сами стандартные драйверы были источником инсайдерских угроз. Поэтому поставщики сложных NIDS иногда поставляют свои собственные драйверы. Они оптимизированы для прослушивания трафика и специально настроены путем отбрасывания частей, которые не нужны для приложений NIDS.
Проактивные решения
Как и HIDS, часть NIDS способна не только обнаруживать, но и заранее предотвращать атаки до того, как будет нанесен какой-либо ущерб. Обычно сеансы прерываются при обнаружении атаки. Усовершенствованные IDS могут взаимодействовать внутри брандмауэров (например, Cisco NetRanger и маршрутизаторы Cisco) и отключать трафик от источника атаки. Обратите внимание, однако, что эта явно интересная функция может сделать DINS уязвимым для атак типа «отказ в обслуживании» (DoS). Например, сайт, использующий настроенные брандмауэром IDS, подвергается DoS-атаке с использованием поддельного адреса на веб-сервере (например, www.onet.pl или адрес основного корпоративного сервера). После вмешательства IDS брандмауэр запретит доступ к этому адресу.
IDS сетевых узлов (NNIDS)
Этот подподход IDS является особой модификацией NIDS. Традиционные агенты NIDS при правильно настроенном сетевом интерфейсе собирают данные, предназначенные для всей сети. С другой стороны, NNIDS состоят из микроагентов, распределенных по каждой рабочей станции в сегменте сети. Каждый микроагент отслеживает сетевой трафик, направленный только на эту рабочую станцию, что значительно снижает требования к емкости, необходимые для NIDS. Слабые стороны NNIDS связаны с необходимостью иметь и управлять огромным количеством микроагентов, а также с тем, что у NNIDS могут возникнуть трудности с обнаружением атак, для которых требуется покрытие всей сети, например, для обнаружения TCP Stealth Scanning. Такой подход к анализу трафика является обязательным в VPN, когда используется метод сквозного шифрования. Ни одна традиционная NIDS не сможет провести аудит такого трафика, поскольку он зашифрован. NNIDS анализирует мгновенно после расшифровки.
Базы данных атак
Из этого обзора технологических решений IDS видно, что некоторые IDS (в частности, NIDS) используют сигнатуры атак. Поэтому крайне важно иметь часто обновляемую базу данных сигнатур для обеспечения эффективности решений IDS. Следует помнить, что обновления сигнатур иногда зависят от версии программного обеспечения NIDS, которое может быть не в состоянии обнаруживать атаки, не имеющие отпечатков пальцев в базе данных системы.
Сегодня разработчики IDS периодически выпускают информацию об обновлении базы данных сигнатур. При выборе решения IDS помните, прежде всего, о том, как часто поставщик обновляет сигнатуры, и какова будет частота ответов поставщика с точки зрения интервала между публикацией BugTraq/информацией поставщика и появлением конкретной подписи в IDS. Помните, что потенциальный злоумышленник или троян, копающийся на вашем веб-сайте, воспользуется новейшей информацией об ошибках и эксплойтах.
Некоторые поставщики предоставляют механизмы автоматического ответа (например, ISS Real Secure X-Press Updates).
Иногда возможен «создание собственного» подхода с более совершенным программным обеспечением IDS, т. е. возможны написанные пользователем подключаемые модули, связанные с подписью, поскольку они скомпилированы с использованием языка программирования высокого уровня. Это очень полезная опция для опытных администраторов безопасности, поскольку они могут настраивать свои NIDS. Языки сценариев Snort и NFR (язык N-Code, похожий на Perla и C) имеют эту опцию. При таких подходах IDS проблема ложноположительных результатов (объяснение см. ниже) может быть значительно облегчена.
Проблемы с IDS
Основная проблема с использованием программного обеспечения IDS заключается в том, что оно подвержено «ложным срабатываниям» (ложным предупреждениям). Как триггеры, так и сигнатуры атаки, как правило, не настолько сложны и точны при использовании. Поэтому вполне возможно, что система обнаружения вторжений генерирует предупреждение, когда на самом деле проблем с сетевым трафиком не было. Это известно как ложноположительный результат. Если система выдает несколько предупреждений, которые кажутся ложными срабатываниями, сетевой администратор может проигнорировать эти предупреждения, что может позволить серьезной атаке пройти незамеченной. Подразумевается, что перед внедрением IDS необходимо выполнить детальную настройку правил предупреждений и срабатывания, чтобы они соответствовали среде, в которой будет работать IDS.
Администраторы безопасности или интеграторы, желающие установить IDS, должны учитывать, что это серьезная задача. Поэтому крайне важно понимать свойства технологий IDS и рабочей среды, которые будут использоваться, а также иметь обширные знания о современных типах вторжений. В отличие от межсетевых экранов, для IDS требуется более строгая политика настройки, поскольку они представляют собой гораздо более сложные инструменты. Следовательно, рекомендуется поручить внедрение службы IDS специалистам.
IDS-модули
В основном, текущее поколение программ IDS имеет модульную архитектуру. В своей самой базовой форме архитектура IDS состоит из следующих модулей:
- Агенты IDS, которые собирают информацию. Это программы, которые находятся на серверах (HIDS), в критических сегментах сети (NIDS) или на каждом сетевом узле (NNIDS). Агенты являются ключевыми элементами для функционирования IDS. Они могут генерировать предупреждения о вредоносных действиях.
- База данных. Здесь хранятся все данные, собранные агентами. Путем аудита данных, собранных всеми агентами, можно обнаружить определенные атаки, представляющие угрозу для всей сети, а также можно отслеживать тенденции и шаблоны атак в сети.
- Управляющий делами. Это консоль, которая управляет всеми модулями. Менеджер — это интерфейс администратора.
- Генератор оповещений. Этот модуль отвечает за уведомление администратора о потенциальной угрозе. В настоящее время существует множество доступных подходов к IDS. Некоторые IDS ограничены генерацией предупреждений (которые могут быть зарегистрированы) или другие, которые могут быть размещены только на консоли управления (Snort, Cisco RealSecure) и основаны на внешнем программном обеспечении для целей обработки информации (Cisco рекомендует, например, netForensics). Другие решения могут принимать форму широкого спектра сложных уведомлений (электронная почта, ловушка SNMP, отображение окна консоли, факс, SMS, отправка сообщений в управляющее программное обеспечение, запуск любой преднамеренной программы).
Модуль оповещения может быть включен либо в агент, либо в центральную систему сбора данных.
- Генератор отчетов. Это программный модуль, предназначенный для формирования отчетов на основе собранных данных.
Часто (особенно с IDS) база данных, менеджер и программное обеспечение для создания отчетов интегрированы в одну консоль.
Поставщики иногда предлагают, например, дополнительные модули, которые могут консолидировать IDS с централизованной консолью управления (HP OpenView, Tivoli).
При встраивании IDS в остальную структуру безопасности следует с должным вниманием рассматривать защиту внутренней связи. Если межмодульная передача подвержена перехвату и прослушиванию, сама IDS будет уязвима для атак. Связь между модулями должна быть зашифрована с использованием всех общепризнанных стандартов безопасности. Избегайте использования специальных стандартов шифрования, разработанных ранними адаптерами или неопубликованных стандартов. Безопасные и надежные IDS используют технологию IPSec для шифрования пакетов. Если конкретная IDS не снабжена такой функцией или ее протокол шифрования кажется ненадежным, передача между центральной консолью и агентами должна быть защищена от использования сторонних программ. Я хотел бы еще раз подчеркнуть: безопасность передачи IDS внутри является ключевым вопросом. Чрезмерная зависимость от механизма IDS, который не может гарантировать целостность данных в пути, недопустима!
Резюме
IDS являются сложными организмами. В то время как сторонники программного обеспечения IDS стремятся предлагать свои продукты как можно более полными, шаг к внедрению IDS в организации является очень серьезной и сложной задачей, требующей больших знаний и навыков.
По сравнению с брандмауэрами IDS более чувствительны к ошибкам конфигурации и вводящим в заблуждение предположениям о конструкции и выбору набора продуктов. Таким образом, необходима тщательная проверка работоспособности любой IDS-инфраструктуры перед ее плановой покупкой и установкой. Это может включать:
- Архитектура системы,
- Управление системой,
- Вместимость,
- целостность базы данных,
- Частота обновления,
- безопасность инфраструктуры IDS,
- Эффективность системы (обработка ложных срабатываний),
- Уведомления контрмеры,
- Беспрепятственное взаимодействие с другими компонентами сетевой инфраструктуры,
- Средство отчетности.
Что наиболее важно, по-прежнему требуется вмешательство человека, т. е. со стороны специалистов по безопасности, которые будут нести ответственность за настройку и обслуживание IDS и будут предупреждены о попытках нарушения безопасности. IDS не может выполнять работу в одиночку и не может быть «волшебной палочкой», чтобы сделать IDS единственной защитой, необходимой для наших систем. Это всего лишь инструмент для использования людьми, для этой цели должен быть подготовлен предварительный набор процедур реагирования, который пользователи должны строго соблюдать. В противном случае IDS останется только дорогим гаджетом.
Желающим попробовать IDS могу порекомендовать Snort — проект OpenSource (http://www.snort.org). Это бесплатно загружаемый агент IDS с огромными возможностями в обнаружении атак. В частности, я предлагаю установить его через ваше интернет-соединение, чтобы проверить, сколько попыток атак выполняется каждый день на ваши «менее ценные» данные.