07.04.2008

Пассивный анализ сети

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

Stephen Barish

SecurityFocus.com

«Дома и стены помогают», что очень часто доказывается результатами соревнований спортсменов. Но по какой-то причине мы редко думаем о преимуществе "дома", когда рассматриваем защиту наших сетей. В конце концов, лучшей практикой построения безопасных сетей является многоуровневая стратегия defense-in-depth. Мы используем брандмауэры, демилитаризованные зоны, VPN, настраиваем VLAN-ы на наших коммутаторах, а также используем сетевые централизованные и децентрализованные технологии организации систем обнаружения вторжения как датчики для предупреждения вторжений.

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

Паранойя? Или, возможно, только благоразумие

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

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

Во-первых, для создания защиты мы должны иметь хорошую карту сети с описанием всех узлов. Традиционно, злоумышленники и защитники используют программы для построения карт сети, таких как nmap [1], которые используют методы типа «запрос-ответ» для подтверждения наличие хоста и, в зависимости от используемых настройек, для определения операционной системы, используемой на хосте, и открытых портов. Этот метод использует несовместимые с RFC ответы на «случайные» пакеты и был популярен довольно долгое время(Fyodor предоставляет большое количество документации по этому методу [2] и является пионером в области идентификации активных операционных систем). Построение карт сети - это очень мощный метод, но он имеет свои недостатки. Он создает значительный объем трафика в сети, что может вызвать проблемы для работы некоторых сетевых приложений. В некоторых случаях nmap может спровоцировать нестабильную работу операционной системы, хотя в последние годы эта проблема встречается гораздо реже. Этот метод предоставляет только текущую топологию и состав сети предприятия. Кроме того, инструменты построение схем сети не всегда корректно работают с брандмауэрами, NAT и маршрутизаторами с фильтрами пакетов. К счастью, есть пассивные методы анализа, которые предоставляют схожие результаты.

Теория пассивного анализа

Пассивный анализ сети может быть обнаружен гораздо легче, но, не смотря на это, такой метод используется наиболее широко. Пассивные методы могут отображать соединения, определять порты и службы, используемые в сети, и даже могут определить операционные системы. Ланс Спицнер из Honeynet project [3] и Майкл Залевский [4] помогли инициировать разработку технологии passive fingerprinting, которая  достоверно определяет операционные системы из трассировки TCP/IP. ПО p0f v 2.0.8 [5], разработанное Залевским, является одним из самых эффективных инструментов пассивного опеределения ОС с помощью технологии fingerprinting и использовано в этой статье для демонстрации некоторых возможностей данной технологии.

Ключом для понимания методов пассивного анализа сети является понимание того, что они работает почти так же, как и активные методы построения карт. Все пассивные методы основываются на сценарии «запрос-ответ», они полагаются на чужой запрос, а затем собирают ответы (рис. 1).


Figure 1 – Active and Passive Network Analysis

В активном сценарии объект (А) отвечает на запрос приложения, который строит карты сети, что является эффективным, но для этого примера мы создали искусственные условия наблюдения. В пассивном сценарии объект (А) отвечает на запросы в результате нормального функционирования. В обоих случаях мы получаем данные об используемых портах и службах, потоках соединений, информацию о времени, по которым можно сделать предположение о рабочих характеристиках нашей сети. Но пассивный метод позволяет также сделать то, что невозможно сделать с помощью активного метода: мы можем видеть сеть с точки зрения пользователя и изучать поведение приложений в ходе обычных операций. 

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

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

Чтобы лучше понять пассивный метод анализа, давайте изучим пример захвата с использованием Ethereal [6]. Такой же результат можно получить, используя tcpdump, если вы умеете писать BPF-выражения (Berkley Packet Filters). Ethereal предлагает множество инструментов, которые позволят сэкономить время ленивым, включая улучшенные возможности фильтрации и быструю сортировку собранных пакетов по практически любым полям данных. Конечно, до начала сбора трафика и настройки фильтра полезно иметь представление о том, что мы ищем, в частности - о службах, используемых в нашей сети. К счастью, есть несколько настроек, позволяющих сделать это немного проще. Во-первых, большинство служб связаны с определенным портом. Эти "стандартные" порты назначаются IANA (Internet Assigned Numbers Authority) [7] и описаны в RFC для стандартных TCP / IP служб и протоколов. Малоизвестные или используемые злоумышленниками порты могут быть исследованы с использованием Internet Storm Center [8], предоставленного SANS Institute [9]. Оба ресурса обеспечивают отличное изучение материалов для общего анализа сети в целом, а также показывают, как другие администраторы безопасности сети анализируют свои сети.

Другое правило при анализе трафика позволяет разделить клиентов и серверы. Вообще говоря, серверы отправляют пакеты на номер порта, связанный со службой. Поэтому, найдя Web-сервер, вы смотрите на источник TCP-запроса на 80-ый порт, исходящий из вашей сети. Чтобы продемонстрировать это, я захватил трафик из моей домашней сети с помощью Ethereal и отсортировал его по портам TCP-запроса. Меня интересовало наличие веб-сервера, в чем я и убедился, отсортировывая захваченный трафик по 80 порту. Заметим, что наш датчик не инициировал трафик внутри сети. Чтобы получить результат, пакеты были сняты с канала. Я мог бы добиться того же результата, используя nmap, но это потребовало бы инициализации трафика в сети. Обращу ваше внимание - не все протоколы TCP подчиняются этому правилу, это исследование копии TCP / IP Illustrated!

 

 
рисунок 2 = перехват трафика веб сессии, используя Ethereal

Благодаря тому, что TCP/IP fingerprinting работает в пассивном режиме почти также, как и в активном, мы можем выдвинуть некоторые гипотезы об операционных системах, используя системы перехвата трафика. Этот метод работает, потому что различные операционные системы имеют разные реализации TCP / IP стека. В своей статье  "Know Your Enemy: Passive Fingerprinting" Спицнер (4 марта 2002 года) обсуждал четыре параметра, которые, постоянно варьировались между операционными системами: TTL, размер окна, DF и TOS. Программа Залевского p0f 2.0 расширяет эти параметры, позволяя проводить гораздо более точных тестов для выявления операционных систем в пассивном режиме (рис. 3).


Figure 3 – Типичная сигнатура p0f

При повторном запуске p0f для захваченного ранее трафика мы определяем вебсервер как систему FreeBSD 6.x для данного Web сервера.




Этот пример демонстрирует основные принципы пассивного анализа сети. Мы можем использовать аналогичные приемы и методы для описания статистики трафика (процент запросов TCP, UDP, ARP и т.д.), отслеживания состояние соединения, используемой полосы пропускания, числа и размера передаваемых пакетов и т.д.

Потенциальные возможности использования пассивного анализа

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


  • Осведомленность о ситуации

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

 

  •   Политика форсирования.

Пассивный анализ позволяет выявить неразрешенные службы и другие аномальные поведения пользователей в сети практически мгновенно. Простой сбор пакетов с помощью Ethereal или любой другой программы наблюдения за сетью будет определять наличие передачи потоков данных, открытых файлов в Peer-to-peer сетях, игровой активности и другие источники несанкционированного использования сети. Самый простой способ сделать это -  использовать Ethereal с фильтром пакетов на определенный IP-адрес внутренней сети, а затем отсортировать по портам TCP или UDP. В большинстве случаев, вы увидите общий набор служб, которые легко идентифицировать, как благоприятные. Эти TCP порты, как правило, используются операционными системами для работы в сети и типичными службами (DNS, FTP, HTTP и т.д.). Главное - это сравнить источники, определенные Вами как авторизованные ресурсы, с полученными в результате пассивного анализа. В конце концов, почему бы Трояну не использовать порт 80 вместо произвольно выбранных эфемерных портов.

  • Обнаружения утечки инсайдерской информации

Пассивный анализ может помочь выявить уязвимости в системе безопасности, не обнаруженные внутри периметра. Хорошим примером может быть Wualess BackDoor, о котором сообщил Symantec [11, Backdoor.Wualess.C]. Эта угроза открывала BackDoor и пыталась установить связь с IRC-сервером через TCP-порт 5202 в домене dnz.3322.org, используя канал "# Phantom". Существует три дискретных критерия, по которым мы можем легко определить эту угрозу: присутствие TCP 5202, IRC-протокола в целом и исходящего соединения на этот домен. Если мы осведомлены о ситуации в сети (какие виды трафика разрешается использовать в сети нашего предприятия), то будет легко выявить данную угрозу.

  • Реакция на инцидент

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

Определения и предупреждения

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

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

или введите имя

CAPTCHA
09-04-2008 00:41:35
> В идеале мы могли бы просто пойти в отдел ИТ и попросить подробную сетевую топологию, адресное пространство, широко используемые порты и протоколы в сети. Простите, кто мог бы пойти в отдел ИТ? Рекламщик? Гендиректор? Уборщица? Охранник при входе в офис? Кому статья адресована-то? Сисадмину, который не знает топологию свой сети и числится манагером в отделе продаж? "Папа, а с кем ты сейчас разговаривал?" Если сисадмину надо УЗНАТЬ топологию администрируемой сети, то не спасут никакие добрые советы. Если топологией сети озадачивается НЕ сисадмин, то свет можно тушить сразу, без выноса вопроса на совет директоров. Впрочем, лично меня насторожил предшествующий пассаж про средневековые замки: на самом деле были ширпотребные "китайские поделки", а был качественный штучный (по понятным причинам) продукт, который для своего времени был даже более эффективен, чем современные сверхнавороченные замки. Более того, концеп лежавший в основе этих замков с известными поправками на развитие технологии дошел до наших дней и вполне себе успешно воплощается на практике, от навесных замков до сейфовых...
0 |
LcL
09-04-2008 07:38:43
FlyFotMon - LOL! (к словам про: "Если сисадмину надо УЗНАТЬ топологию администрируемой сети, то не спасут никакие добрые советы. Если топологией сети озадачивается НЕ сисадмин, то свет можно тушить сразу, без выноса вопроса на совет директоров.") Хорошая статья. Автору респект!
0 |
09-04-2008 20:35:48
Простите, кто мог бы пойти в отдел ИТ? Рекламщик? Гендиректор? Уборщица? Охранник при входе в офис? Кому статья адресована-то? О Pen тестерах ничего не слышали? ИТ может не быть посталены в известность. В идеале такие проверки - наиболее приближены к реальным условиям. Вам может ИТ сообщить о многом, но не обо всем (Вы уверены, что в ИТ вся сеть задокументирована), тем более в больших корпорациях. Иногда ИТ-сотрудники даже не знают всех способов доступа сотрудников к Интернет, что сильно осложняет организацию системы безопасности в таких объединенных корпорациях. Эта проблема особенно остро стоит в организациях, которые часто осуществляют слияния и поглощения. - В реальной жизни так все и есть. Пасивный мониторинг не может навредить сети, в то же время может дать хорошее представление о ней. Лично я подобные методы использовал.
0 |
09-04-2008 17:01:12
Улыбнуло "Мониторинг сети в режиме реального времени позволяет определять зону копроментации". Наверное, речь идет о зоне КОМПРОМЕТАЦИИ. С терминологией беда.
0 |
Статья адресована менеджерам СУИБ (Систем Управления Информационной Безопасностью), эти люди не входят в состав ИТ компании, так как выполняют другие функции. И именно менеджер СУИБ контроллирует шаловливые ручки СисАдмина.
0 |
Ы
06-05-2008 10:44:24
Статья действительно актуальна для больших компаний, а не для тех, где админ - мастер на все руки: и сервера и хелпдеск и провода и картриджи (ау, FlyFotMon). В реально крупных распределенных компаниях (число хостов >5000) карта сети - вещь весьма эфемерная, если она не обновляется достаточно часто. В этом случае пассивный анализ - едва ли не единственный выход. Статья неплохая, но по мне так не нова.
0 |