Лекция №10 Развертывание системы обнаружения вторжений Тезис Развертывание IDS должно вписываться в общую стратегию информационной безопасности компании. Нет смысла тратить деньги и время на развертывание IDS, если непонятно, для чего это делается. Этапы развертвывания NIDS Процесс выбора сетевой системы обнаружения вторжений состоит из трех основных этапов: определение требований к системе и выбор отвечающей им системы задание сетевой конфигурации указание набора событий, на которые будет реагировать система. Разбиение составление списка требований; разработка схемы внедрения; определение бюджета проекта; тестирование выбранной системы; приобретение IDS (в случае выбора коммерческой системы); разработка документации по процессу развертывания; физическое размещение, подключение и ввод в эксплуатацию; финальная отладка и тестирование. Описание Прежде всего необходимо определить требования, которые будут предъявляться к системе. Затем следует проанализировать текущую конфигурацию сети и наметить точки установки сенсоров IDS. Кроме того, на этой стадии желательно предусмотреть техническую возможность масштабирования IDS в будущем. При выработке бюджета принимается решение о покупке коммерческой IDS (например, RealSecure компании Internet Security Systems) или установке одной из бесплатных открытых реализаций IDS (например, Snort). В случае приобретения коробочного варианта программного обеспечения вы получите, вероятнее всего, поддержку и обновление продукта. Остановив свой выбор на бесплатном ПО, вам придется загрузить дистрибутив либо в исходных кодах, либо скомпилированный для той или иной ОС и самостоятельно осуществить установку, настройку и сопровождение системы. Поддержка бесплатного продукта редко оказывается полноценной, хотя компания-разработчик бесплатного продукта может предложить оплатить ее на фиксированный срок. Надо отметить, что использование бесплатного ПО необязательно сведет расходы к минимуму, точно так же коммерческое ПО не всегда является дорогим. При подсчете стоимости решения следует учитывать и временной фактор, т. е. какое время потребуется на развертывание коммерческой и бесплатной IDS при прочих равных условиях. Принятие неверного решения на этой стадии приведет к кратковременной экономии, но росту затрат в будущем. В предложение к руководству о внедрении системы обнаружения вторжений желательно включить фактор возврата инвестиций, имея в виду те средства, которые компания сохранит благодаря правильно настроенной системе обнаружения вторжений, а также вернет в результате судебного процесса над злоумышленником, взломавшим систему, если вина последнего будет доказана благодаря отчетам системы обнаружения вторжений. В процессе предварительного тестирования проверяется, соответствуют ли возможности IDS характеристикам, заявленным производителем. На данном этапе придется потратиться на приобретение ограниченной копии системы (в случае выбора коммерческой IDS) и оборудования, на котором устанавливается IDS. При этом производительность последнего может как совпадать с предполагаемой рабочей конфигурацией, так и иметь худшие характеристики. К примеру, для тестирования подойдет любой списанный бухгалтерией, но работоспособный компьютер, между тем как рабочая система впоследствии может быть установлена на компьютер в корпусе промышленного исполнения для монтажа в серверную стойку. Описание Государственными органами не накладывается каких-либо ограничений на приобретение, распространение и эксплуатацию систем обнаружения вторжений, так что их использование регламентируется только лицензионным соглашением с поставщиком и внутренней документацией организации. Развертывание IDS следует производить в соответствии с разработанной документацией, где должны быть указаны ответственные лица, регламент эксплуатации IDS и инструкция по вводу IDS в эксплуатацию, включая физическое размещение сенсоров. Назначение ответственных лиц подразумевает возложение обязанностей по администрированию как минимум на двух человек, причем ни одному из них не стоит предоставлять полный набор привилегий на управление IDS (в соответствии с принципом ролевого администрирования). В тот же документ можно включить регламент доступа в помещение, где установлена система. Желательно на этой же стадии разработать инструкцию по реагированию на нарушения политики безопасности. Вышеописанные документы служат своеобразным «мостиком» между административной и технической частью проекта. Наконец, на стадии финальной отладки устанавливается окончательный набор правил IDS, оптимальные точки подключения сенсоров и прочие тонкие моменты, которые невозможно предусмотреть на стадии первичного тестирования. Определение «окончательный» не означает, что правила устанавливаются раз и навсегда, скорее, речь идет о введении определенной схемы их регулирования в ходе проекта. При формировании набора правил рекомендуется сначала включить все доступные правила, а в дальнейшем отключать те из них, которые не относятся к критическим в данном сегменте. Выбор правил, регламентирующих мониторинг трафика, — основной момент в настройке NIDS. К примеру, если в защищаемом сегменте расположены только серверы под управлением ОС UNIX, то включение правил, описывающих атаки на серверы под управлением Windows NT, породит избыточную информацию (причем, как показывает практика, ее объем оказывается весьма большим), в результате может случиться, что действительная атака не будет замечена администратором. С другой стороны, увлекаться чрезмерным ограничением набора действующих правил также не стоит, поскольку вероятно отключение необходимых правил по неосторожности. При выборе сетевой системы обнаружения вторжений следует обращать внимание на наличие графического интерфейса (GUI) для просмотра событий и администрирования (желательно через защищенное соединение), процедуры добавления новых модулей и правил в систему, централизованного управления системой (особенно актуально в случае вынесения отдельных сенсоров системы на удаленные узлы сети), возможность самостоятельного написания правил с указанием таких атрибутов трафика, как заголовки TCP/UDP и содержание пакета. Кроме того, система должна анализировать трафик в режиме реального времени (желательна возможность анализа трафика на всех семи уровнях сетевой модели OSI), оповещать администратора (по электронной почте, на пейджер, посредством SMS и т. п.), быть прозрачной для пользователей и не влиять на выполнение повседневных задач. Включение NIDS в сеть NIDS размещают таким образом, чтобы она могла наблюдать за всеми подконтрольными ей сегментами сети. Как правило, непосредственное наблюдение осуществляют несколько расположенных в ней сенсоров. Сенсорами могут быть как сетевые интерфейсы, так и группы сетевых интерфейсов под управлением операционной системы (к примеру, кластер NIDS). В самом простом случае IDS устанавливают на вход защищаемого сегмента таким образом, чтобы весь трафик сегмента проходил через систему +- + - Параллельное включение в сеть Сенсоры системы подключаются к коммутаторам или концентраторам сети, причем масштабируемость системы ограничена только наличием свободных слотов в системе для установки сетевых интерфейсов. Сенсором выступает сам сетевой интерфейс. Если свободные слоты для размещения сенсора отсутствуют, то возможен переход к технологии распределенной IDS (Distributed IDS, dIDS). Распределенная IDS предполагает установку дополнительного узла для размещения сенсоров, доступ к базе данных событий центрального узла он получает посредством сетевого соединения с центральным узлом. При этом надо учесть, что, к примеру, запросы SQL передаются по сети в открытом виде, так что между отдельными узлами распределенной IDS должно быть установлено шифруемое соединение для предотвращения изменения данных в ходе передачи. При разрастании системы за центральным узлом имеет смысл оставить только функции консоли управления и обслуживания СУБД. Кроме того, вынесение сенсора IDS на отдельную машину оправдано, если текущая конфигурация IDS не справляется с анализом трафика. (Хотя IDS на базе Snort и СУБД MySQL под управлением Linux 2.4.18 на компьютере с процессором Pentium III на 450 МГц и оперативной памятью 128 Мбайт прекрасно справляется с анализом трафика с трех интерфейсов Ethernet на 100 Мбит/с.) Далее У этой схемы, на мой взгляд, только один минус, и то несущественный — она в состоянии обеспечить самостоятельное реагирование на события в сети, тогда как положительных сторон намного больше. Во-первых, система не оказывает существенного влияния на функционирование сети. Единственное воздействие — увеличение нагрузки на порты концентратора или коммутатора за счет «зеркалируемости» трафика. (Однако при наличии низкопроизводительного сетевого оборудования имеет смысл применять первую схему, с включением IDS в разрыв сети.) Естественно, интерфейсы IDS и сетевого оборудования (коммутаторы, концентраторы) должны работать либо на одной скорости (например, 100 Мбит/с), либо пропускная способность сетевых интерфейсов IDS должна быть выше. В противном случае — если, предположим, сетевое оборудование работает по Gigabit Ethernet, а IDS поддерживает 100 Мбит/с — не избежать потери трафика. Во-вторых, при подобном включении IDS не требуется никакой настройки концентраторов. На коммутаторах же сети должна быть активизирована функция анализатора портов (Switch Port Analyzer, SPAN) для зеркального отображения трафика с одного порта коммутатора на другой. К сожалению, во многих коммутаторах такая функция может быть задействована либо для одного порта (analysis port), либо для группы портов (VLAN), но с перенаправлением всего трафика на один наблюдающий порт (monitoring port). Функция зеркального копирования трафика с нескольких портов на ряд портов коммутатора зачастую отсутствует. Кроме того, при наблюдении за группой портов нагрузка на сенсор возрастает пропорционально количеству интерфейсов в группе, что также может привести к потере трафика. Функция SPAN удобна еще одной особенностью: при переводе порта коммутатора в режим мониторинга он работает только на прием. Это дополнительный способ сокрытия факта присутствия сенсора в сети. Третий вариант включения IDS в сеть является комбинацией из двух вышеописанных: часть сенсоров устанавливается параллельно контролируемому оборудованию, а наиболее критичные сегменты защищаются путем последовательного включения IDS. В информационных системах, где секретность данных ставится выше бесперебойности работы, имеет смысл воспользоваться последним методом для защиты сегмента. В критической ситуации при последовательном подключении IDS система может просто отключить сегмент, в результате весь защищаемый сегмент станет недоступен по сети. Размещение сенсоров Что касается сенсоров IDS, то их местоположение зависит от того, какой трафик намечено анализировать. В связи с этим и сеть условно делится на три зоны: красную, зеленую и синюю. Красная означает, что сенсор в ней должен быть настроен таким образом, чтобы фиксировать максимальное количество нарушений. К красной зоне относится, например, Internet, так как с точки зрения информационной безопасности глобальная сеть представляет собой наибольшую угрозу. В синюю зону входит Intranet (сегмент, в котором расположены рабочие станции пользователей). И, наконец, зеленая охватывает демилитаризованную зону и другие сегменты, не подпадающие под предыдущие два определения. В отдельных случаях могут выделяться и подзоны, например зона proxy-сервера: физически она располагается в зеленой зоне, но требует отдельного внимания со стороны IDS. Такие подзоны могут быть обозначены как синие. Разделение сети на зоны полезно еще и с позиции перспективного масштабирования IDS, так как позволяет заранее определить набор соответствующих правил для зоны. В общем случае полезно установить сенсор в каждый сегмент, трафик которого выходит за его пределы (или поступает извне). Так, если конфигурация сети включает демилитаризованную зону и локальный сегмент, то сенсоры пригодятся на каждом из этих участков. Наблюдать за локальным сегментом стоит даже тогда, когда внешний трафик отсутствует, особенно если в нем выполняются какие-либо критичные сервисы, так как, по общемировой статистике, более 80% атак приходится на атаки изнутри компании. Обычно сенсоры устанавливают между маршрутизатором и межсетевым экраном, в демилитаризованной зоне, в сегменте пользовательских рабочих станций и в других ключевых сегментах сети. Сенсоры должны работать в режиме приема всех пакетов (promiscuous mode), чтобы видеть весь сетевой трафик, поступающий на интерфейс, а кроме того, им необходимо обладать свойством «невидимости», т. е. сетевым интерфейсам не стоит задавать IP-адрес. Для уменьшения количества сенсоров, например, чтобы не подключать сенсор непосредственно к коммутатору, наблюдаемый порт можно вывести на концентратор (к примеру, подходящим решением являются четырехпортовые концентраторы), и к нему уже подключить сенсор . В таком случае следует предусмотреть повышенную нагрузку на сенсор и концентратор. Отладка Для отладки сетевого окружения, в частности для проверки правильности набора правил на межсетевом экране, сенсоры можно подключить следующим образом: один из них устанавливается в соответствии с топологией сети перед экраном, а другой — за экраном. Таким образом, на IDS будут фиксироваться события, имевшие место до экрана и после его прохождения. По окончании составления набора правил сенсор, находящийся перед экраном, можно убрать. Snort SNORT® это сетевая система обнаружения и предотвращения вторжений (IDS/IPS) с открытым исходным кодом. SNORT использует язык описания правил, который сочетает преимущества методов обследования, основанных на подписях, протоколах и аномалиях. В настоящее время, SNORT это наиболее широко используемая технология обнаружения вторжения в мире, ставшая индустриальным стандартом де-факто. Что же такое Snort? Snort - это сетевая IDS, способная выполнять в режиме реального времени анализ трафика, передаваемого по контролируемому интерфейсу, с целью обнаружения попыток взлома или попыток поиска уязвимостей (таких, как переполнение буфера, сканирование портов, CGIатаки, идентификация операционной системы, идентификация версий используемых сетевых сервисов и др.). Гибкость и удобство Snort основываются на трех столпах: языке правил, используемый для описания свойств подозрительного и потенциально опасного трафика; механизме оповещения об обнаружении атаки; модульной архитектуре кода, анализирующего трафик, основанной на концепции подключаемых модулей. Язык правил ACTION PROTO IP_ADDR1 PORT1 DIRECTION IP_ADDR2 PORT2 [ (OPTIONS) ] ACTION Имеются три основных директивы, определяющие дальнейшие действия при обнаружении сетевого пакета, соответствующего некоторому правилу: pass, log и alert. Директива pass указывает просто игнорировать пакет. Директива log определяет, что пакет должен быть передан процедуре журналирования, выбранной пользователем, для последующей записи в файл журнала. Директива alert генерирует уведомление об обнаружении пакета, удовлетворяющего правилу - опять же определенным пользователем способом - и потом уже передает пакет процедуре журналирования для последующего анализа. Язык правил PROTO IP_ADDR Snort не имеет механизма для разрешения имен (и вряд ли он появится в дальнейшем - по соображениям производительности), поэтому для задания хостов необходимо использовать их IP-адреса. Ключевое слово any позволяет задать все возможные адреса, для подсетей указываются CIDR-блоки. Символ ! инвертирует условие, т.е. !192.168.3.0/24 означает любой не принадлежащий подсети 192.168.3.0/24 IP-адрес. Кроме того, можно задавать списки адресов, перечисляя их через запятую и заключая в квадратные скобки: [192.168.2.0/24,192.169.3.54/32]. PORT В настоящее время для анализа доступны три протокола, и, соответственно, допустимы три значения этого параметра - tcp,udp,icmp. В будущем, возможно, появится поддержка ARP, IPX, IGRP, GRE, RIP, OSPF и других. Задание номеров портов осуществляется точно также, как и в Linux-утилите ipchains. То есть кроме единственного номера порта можно задать диапазон портов через двоеточие, например, 6000:6010 - порты с 6000 по 6010 включительно, :1024 - порты с 1 по 1024, 1024: - порты с 1024 по 65536. Как и в случае IP-адресов, символ ! инвертирует условие, а ключевое слово any обозначает все порты. DIRECTION Этот оператор позволяет определить направление движения пакета: -> (одностороннее) - правило будет применяться только к пакетам, идущим с IP_ADDR1 на IP_ADDR2; <> (двустороннее) - направление движения пакета роли не играет. OPTIONS Заключаемые в круглые скобки параметры являются необязательной частью правила - и одновременно самой важной частью системы обнаружения вторжения. Параметры могут определять текст уведомляющего об угрозе сообщения, задавать дополнительные действия при срабатывании правила и дополнительные условия на соответствие анализируемых пакетов данному правилу. Параметры отделяются друг от друга точкой с запятой, а ключевое слово параметра отделяется от его аргумента двоеточием. Примеры alert tcp !192.168.1.0/24 any -> 192.168.1.0/24 any (msg:"IDS004 - SCAN-NULL Scan";flags:0; seq:0; ack:0;) Такое правило обнаруживает попытку так называемого NULL- сканирования портов. alert tcp !192.168.1.45/32 any -> 192.168.1.45/32 80 (msg:"IIS- _vti_inf";flags:PA; content:"_vti_inf.html"; nocase;) Адресованные web-серверу пакеты, содержащие в себе запрос к файлу _vti_inf.html, рассматриваются как попытка воспользоваться одной из уязвимостей Internet Information Server, что вызовет при обнаружении таких пакетов генерацию сообщения об этом событии, а сам пакет запишется в лог-файл. alert tcp any 80 <> 192.168.1.0/24 any (content-list: "adults.txt"; msg: "Not for children!"; react: block, msg;) Этим правилом блокируется доступ на web-сайты, адреса которых перечислены в файле adults.txt. При обнаружении запроса к нежелательному серверу соединение с ним закрывается, генерируется сообщение «Not for children!», которое кроме записи в лог отправляется и браузеру. Таким образом, Snort может выполнять функции web-фильтра. Screenshots