04.10.2005

Введение в IPAudit

image

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

Пол Асадуриан, перевод Владимир Куксенок

IPAudit – удобная утилита, позволяющая вам производить анализ всех входящих и исходящих пакетов вашей сети. Она прослушивает сетевое устройство в promisc-режиме, также как это делают IDS, и предоставляет подробную информацию о хостах, портах и протоколах. Утилита может использоваться для мониторинга трафика, отслеживания соединений, обнаружения компрометаций и ботнетов, а также слежения за теми, кто сканирует вашу сеть. По сравнению с подобными приложениями, такими как Cisco System's Netflow, IPAudit имеет большое количество преимуществ. Рассматриваемая утилита проще в настройке и, если вы устанавливаете ее на сенсоры IDS, не требует покупки дополнительных аппаратных средств. Так как IPAudit перехватывает трафик непосредственно с порта, вам не нужно изменять настройки вашего сетевого оборудования или межсетевого экрана (МСЭ).

Средства анализа трафика, подобные IPAudit, помогают заполнить пробелы в работе IDS или IPS. Каким образом? IDS производит поиск по сигнатуре или соответствию определенным критериям и может выдавать предупреждения и вести логи. IPS ищет те же самые аномалии, но кроме этого может предотвращать атаки. Обе эти технологии могут существенно повысить безопасность вашей сети, но что произойдет, если они пропустят атаку? Как вы узнаете об этом? Даже если IDS обнаружит злонамеренный пакет, система все еще может быть скомпрометирована. Если это произойдет, как вы узнаете, что происходило в сети после компрометации? IPAudit, кроме предоставления полезной информации о вашей сети, может помочь вам ответить на эти вопросы. Часто эта утилита используется в университетах для выявления пользователей, потребляющих слишком большой объем трафика. Автор этой статьи считает, что IPAudit будем полезна во всех организациях, так как на практике очень многие корпоративные пользователи включают эту утилиту в свой арсенал средств программной сетевой защиты.

Установка и настройка

IPAudit это Perl-приложение, написанное Джоном Рифкиным (John Rifkin) из Университета Коннектикута. Оно распространяется под лицензией GNU GPL и может быть загружено с сайта Sourceforge. IPAudit это консольная утилита, использующая библиотеку libpcap для перехвата трафика. Пакет IPAudit-Web в дополнение к веб интерфейсу, создающему отчеты на основе собранной информации, включает в себя бинарную версию IPAudit. Рекомендуется использовать именно этот пакет, так как он предоставляет вам удобный графический интерфейс с диаграммами и возможностью поиска.

Вам потребуется Linux или Unix система с установленной библиотекой libpcap, последняя версия которой может быть загружена с сайта tcpdump.org. Кроме libpcap, вам понадобится Perl, Apache, GNUplot и perl-модуль Time::ParseDate. Для получения информации о том, как установить эти пакеты, обратитесь к документации вашего дистрибутива Linux (подсказка: в Debian Linux для установки Time::ParseDate выполните команду 'apt-get install libtime-modules-perl'). После инсталляции этих пакетов вы будете готовы начать установку IPAudit:

Шаг 1 – Зайдите в систему под root’ом и создайте пользователя с именем ‘ipaudit’. Нужно будет задать существующий командный интерпретатор и домашнюю директорию (в этой статье для простоты использовалась /home/ipaudit). Затем переключитесь на только что созданного пользователя.

Шаг 2 – Загрузите и распакуйте архив ipaudit-web:

$ tar zxvf ipaudit-web-1.0BETA9.tar.gz

 

Шаг 3 - Перейдите в директорию compile:

$ cd ipaudit-web-1.0BETA9/compile

 

Шаг 4 - Выполните конфигурационный скрипт и запустите make:

$ ./configure
$ make

 

Шаг 5 - Выполните команды make install с правами root

$ su - 
Password:
# make install
# make install-cron
# exit (Выйдите из под root'a, снова получив права пользователя ipaudit)
$

 

Шаг 6 - Теперь отредактируйте файл /home/ipaudit/ipaudit-web.conf

#
LOCALRANGE=127.0.0
#

#
INTERFACE=eth1
#
Измените значение переменной LOCALRANGE на локальную подсеть вашей сети. Также установите значение переменной INTERFACE, соответствующее интерфейсу, трафик которого вы будете перехватывать.

 

Шаг 7 - Добавьте следующие строки в конфиг сервера Apache – httpd.conf, если их там еще нет.

<Directory /home/*/public_html>
AllowOverride All
Options MultiViews Indexes Includes FollowSymLinks
Order allow,deny 
Allow from all
</Directory>

<Directory /home/*/public_html/cgi-bin>
Options +ExecCGI -Includes -Indexes
SetHandler cgi-script
</Directory>
Обратите внимание, конфигурационный файл вашего сервера Apache уже может содержать запись, подобную вышеупомянутой "/home/*/public_html". Если вы не планируете использовать модуль Userdir для чего либо кроме IPAudit, предпочтительно, чтобы вы закомментировали первоначальную запись и заменили ее на приведенный выше пример.

 

Ваш сервер Apache должен поддерживать SUEXEC, Mod_Perl и Mod_Userdir. После изменения конфигурации перезапустите Apache. Для получения подробностей об установке IPAudit-Web смотрите файл INSTALL в директории этого пакета. Он содержит информацию о требуемом perl-модуле Time::ParseDate, SUEXEC, а также о том, как поставить пароль на доступ к IPADUIT-Web. Так как с помощью Google несложно найти сервера с установленным IPAudit, возможность контроля доступа с помощью пароля будет весьма полезна.

Шаг 8 - Тестирование

Откройте следующий URL в вашем браузере:

http://<your web server>/~ipaudit/

Если установка прошла успешно, вы увидите веб страницу, подобную этой (Рисунок 1):


Рисунок 1. Web-интерфейс IPAudit во время первого запуска.

 

Вы должны удостовериться в том, что время на сервере верное и регулярно обновляется с помощью NTP. Без точного значения времени, IPAudit может запутаться, если время пакетов будет сильно отличаться от системного времени.

После первого получаса работы, IPAudit начнет строить графики на основе вашего трафика и генерировать отчеты. Все это должно выглядеть примерно так же как на Рисунке 2.



Рисунок 2. Первые результаты появятся через 30 минут.

С течением времени и трафика графики станут более информативными. “Пики” обычно являются признаками проблемы, например DoS атаки на сервер.

Отчеты

Отчеты о работе сети (Network Reports), сгенерированные IPAudit, полезны по многим причинам. Тридцатиминутные и ежедневные отчеты ничем не отличаются, кроме временного периода. Кликнув на ссылку “-last-” рядом с “30min” вы увидите отчет за последние 30 минут. Наверху экрана отображается общая статистика сети, которая может пригодиться, если вы следите за использованием трафика. Кроме того, можно просмотреть данные по каждому хосту, что позволит отследить, кто в вашей организации потребляет большое количество входящего или исходящего трафика, как это показано на Рисунке 3.



Рисунок 3. Потребление трафика каждым хостом.

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

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



Рисунок 4. Самые активные удаленные хосты.

Обычно это сервера кэширования Akamai, IP адреса Windows Update и другие популярные сайты, типа Google или Yahoo. Если какой-нибудь из перечисленных сайтов имеет имя типа www.evil.com, это может быть причиной для тревоги.

Следующий отчет “Possible Incoming Scan Hosts” показывает IP адреса хостов, которые соединялись или пытались создать соединение с большим количеством различных IP адресов в вашей подсети. Это отчет показывает, кто сканировал вашу сеть, и какие порты его интересовали.



Рисунок 5. Список IP адресов, сканировавших вашу сеть.

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

  • SANS – На главной странице вы найдете форму поиска информации о портах в базе данных Dshield. Здесь также находится свежая информация о технологиях сканирования портов и другой злонамеренной деятельности.
  • Официальная база данных номеров портов.
  • Google – С помощью этого поисковика можно найти информацию о портах, например запрос “tcp port 6881” выдаст информацию о известных троянах, часто использующих 6881 порт.

Пики активности попыток сканирования портов случаются после выхода новых утилит для сканирования (например, scanssh) или появления новых вирусов или червей. Обладая этой информацией, неплохо было бы предупредить пользователей об угрозе. Администратор может рассылать уведомления определенным группам пользователей. Например, если было обнаружено сканирование портов, специфичных для MySQL, вы должны сообщить об этом администраторам, порекомендовав установить все необходимые исправления и, если это возможно, сделать их сервера недоступными из сети интернет. Очень часто можно наблюдать корреляцию между выпуском уведомлений или эксплойтов и сканированием вашей сети. Вероятно, у вас установлен МСЭ, пресекающий такие попытки, но что если вследствие чьих-либо непрофессиональных действий в какой-то момент МСЭ будет сконфигурирован неправильно? Отчеты IPAudit позволят вам своевременно реагировать на внешние угрозы, добавляя дополнительный уровень к вашей сетевой защите.

Далее показаны хосты, предположительно производящие сканирование внешней сети.



Рисунок 6. Таблица хостов, делающих попытки сканирования IP адресов из внешней сети, может быть полезна для обнаружения компрометированных машин с установленным трояном.

Если компьютер, находящийся во внутренней сети, пытается сканировать внешнюю сеть, это может быть показателем того, что данная машина скомпрометирована червем или вирусом, а некоторых случаях может указывать на то, что атакующий контролирует хост и использует его для сканирования других хостов. Если вы начнете регулярно проверять отчеты IPAudit, со временем вы узнаете какие показатели “нормальны” для вашей сети и с примерно каким количеством хостов взаимодействуют каждый день машины внутренней сети. Некоторым хостам, например SMTP и DNS серверам, ежедневно нужно подключаться к большому количеству различных хостов. Однако типичная рабочая станция каждый день в среднем контактирует не более чем с 1000 уникальных хостов.

Номера сканируемых вашими хостами портов тоже весьма существенны. Машина, сканирующая 445 (Windows CIFS) или 6667 (IRC) порты в интернет должна сразу вызвать у вас подозрения и причины для внимательного ее исследования на предмет компрометации. Порты 445, SMB CIFS часто сканируются из-за большого количества уязвимостей в приложениях работающих на этих портах. IRC часто используется для создания сетей из компрометированных машин (ботнетов). Если компьютер сканирует порт 6881 (BitTorrent) или 6346 (GNUTella), на нем, скорее всего, запущено P2P приложение, ведущее в интернет поиск других P2P хостов. Политика вашей организация должна определять соответствует ли такое поведение установленным правилам или нет.

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

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

  • HTTP сервера
  • Mail сервера
  • SSH сервера
  • Telnet сервера
  • HTTPS сервера

Обычно я еженедельно проверяю эти отчеты, чтобы узнать, кто какие сервера запускает на своих машинах. Если пользовательский компьютер находится в списке 10 самых используемых SMTP серверов, это может быть индикатором того, что данная машина компрометирована и используется для рассылки спама. Список HTTP серверов может быть полезен не только для того, чтобы узнать, кто из пользователей имеет свои HTTP сервера. Наличие сервера на 80 или 443 TCP порту может быть признаком туннелирования других протоколов через HTTP. Так как IPAudit анализирует только IP адреса и информацию транспортного уровня модели OSI, эта утилита не различает HTTP трафик и туннелированный трафик.

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

Возможность поиска в логах – отличный способ найти нужные данные, используя различные критерии, как это показано на Рисунке 7.



Рисунок 7. Поиск в логах IPAudit.

Вы можете сделать запрос об определенном периоде времени, с точностью до минуты. IP адрес (IP Address) может быть как из внутренней, так и из внешней сети. Локальный порт (Local Port), относящийся к локальному адресному пространству, вы указывали в конфигурационном файле IPAudit-Web. Удаленный порт (Remote Port) нужно указывать как есть. Следующие два поля “Max Lines Displayed” и “Print Increment” указывают IPAudit в каком виде выводить запрос. На всякий случай лучше начать с небольшого количества выводимых строк, так как запрос на вывод, к примеру, нескольких тысяч строк, может занять много времени. Длительность сессии очень полезное поле для определения типа трафика. Иногда вам нужно отделить фактическую передачу данных и трафик, вызванный сканированием портов. Изменяя значения этих полей, вы можете осуществить такое разделение (например, вам потребуется узнать, кто взаимодействовал с MySQL сервером, а не просто сканировал соответствующий порт). Выпадающий список с названиями протоколов позволяет вам выбрать протокол TCP, UDP или ICMP. IPAudit пытается отслеживать соединения, выделяя хост, инициировавший соединение.

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

Обнаружение компрометированных хостов

Подобно IDS, IPAudit ведет историю вашего сетевого трафика. Если IDS обнаружила попытку атаки на сеть с помощью эксплойта, это будет зафиксировано в логах. Просматривая логи, содержащие полный пакет, вы может сказать “Да, это был эксплойт. Интересно, атака завершилась успешно?” IPAudit работает аналогичным образом, за исключением того, что позволяет отслеживать всю активность хоста, предположительно компрометированного после применения эксплойта. Приведем пример:

snort: [1:2351:10] NETBIOS DCERPC ISystemActivator path overflow attempt little
endian unicode [Classification: Attempted Administrator Privilege Gain]
[Priority: 1]: {TCP} 192.168.1.237:4014 -> 192.168.1.223:135

snort: [1:2123:3] ATTACK-RESPONSES Microsoft cmd.exe banner [Classification:
Successful Administrator Privilege Gain] [Priority: 1]: {TCP}
192.168.1.223:31337 -> 192.168.1.45:32768
Эти сообщения говорят нам о том, что 192.168.1.237 пытается атаковать 192.168.1.223, используя известный эксплойт на уязвимость RPC (MS03-026). Также вы видим попытку создания бэкдора, вероятно сводящуюся к простой команде Netcat, например "nc.exe -l -p31337 -e cmd.exe".

Давайте исследуем трафик атакованного хоста с помощью IPAudit. Я бы произвел поиск по IP адресу в требуемом временном периоде. В результате мы получим отчет, подобный тому, что показан Рисунке 8.



Рисунок 8. Результаты поиска по IP адресу в определенном временном промежутке.

Эти данные говорят о том, что происходило сканирование 445 порта. Мы можем увидеть, что для соединения с различными целевыми хостами использовался один и тот же порт. В нормальных TCP соединениях для соединения с разными хостами используются разные порты. Кроме этого, можно заметить попытки подключения к 445 порту в сети класса B, сопровождающиеся небольшим обменом данными. Также, если мы посмотрим на графу “First Talker”, то узнаем, какой хост в локальной сети инициировал соединение. Графа “Last Talker” пуста, что говорит о том, что 192.168.1.223 отсылал пакеты, но не получил ответа. Все это признаки сканирования портов.

Но что если вы хотите знать, что происходило после сканирования портов? Если кто-то действительно скомпрометировал систему, скорее всего он установил rootkit или IRC бота. Давайте возьмем IP адрес машины, установившей бэкдор на наш атакованный хост и посмотрим, с какими другими хостами она соединялась в тот день (Рисунок 9).



Рисунок 9. Поиск выдает потенциально скомпрометированные машины.

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

После дальнейшего анализа мы можем заметить такой же обмен данными с другим хостом нашей сети, 192.168.111.69, что хорошо заметно на Рисунке 10.



Рисунок 10. Аналогичный обмен данными с другой машиной.

Порт бэкдора другой, но хост скомпрометирован тем же способом, что и 192.168.1.223. Это подтверждают логи IDS:

snort: [1:2123:3] ATTACK-RESPONSES Microsoft cmd.exe banner [Classification:
Successful Administrator Privilege Gain] [Priority: 1]: {TCP}
192.168.111.69:2143 -> 192.168.1.45:32768

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

Атака, описанная выше, была основана на реальном инциденте и воссоздана в лаборатории. В реальной атаке присутствовала дюжина компрометированных компьютеров, два IRC сервера, атакующий хост и удаленный шел. Все это было обнаружено с помощью IPAudit и Snort.

Заключение

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

CAPTCHA