ХАКЕР.PROВеб-интерфейс к Snort — SnortConМастер настройки пакетов Ubuntu поможет настроить Snortимеется пять действий: alert, log, pass, activateи dynamic. Кроме того, в режиме inline доступныеще три: drop, reject и sdrop. Правило может бытьодносторонним ( ) и двусторонним ( ), когданаправление движения пакета роли не играет.Файл конфигурации snort.confПоследний шаг, который остается сделать,— это отредактировать конфигурационныйфайл / etc / snort / snort. conf. В дистрибутивеуже имеется готовый шаблон, поэтому с нуляего писать не придется. В файле используютсяпеременные, в том числе встречающиесяв правилах. Это довольно удобно: при сменекакого‐либо параметра затем не придетсяего переписывать несколько раз. Кроме того,некоторые опции вынесены во внешние файлы,которые подключаются директивой includeс именем файла. Все параметры снабжены комментариями,начинающимися традиционно сознака решетки. Для удобства восприятия файлразбит на шесть частей:1. установка переменных сети;2. указание динамически подгружаемыхбиблиотек;3. настройка препроцессоров;4. настройка вывода информации;5. установка дополнительных директив;6. модификация правил.Примечание: вторая и пятая секции не представляютдля нас особого интереса.Переменная HOME_NET определяет IP-адреса,которые Snort будет считать домашними.Возможно задание отдельного адреса илидиапазона. Если требуется указать несколькоадресов, то они перечисляются через запятую.Ключевое слово «any» означает любой адрес.Например:var HOME_NET 192.168.1.0 / 24var HOME_NET [10.1.1.0/ 24,192.168.1.0/ 24]Переменная EXTERNAL_NET указывает навнешние узлы. По умолчанию стоит any./ 152xàêåðМожно оставить как есть, а можно указатьболее логично, что все, не являющееся домом,будет внешним:var EXTERNAL_NET!$HOME_NETНиже в файле идет список серверов (DNS,SMTP, web, sql, telnet и snmp), используемыхв сети. Можно оставить как есть, то есть$HOME_NET, или указать конкретный IP-адрес.С другой стороны, если у нас нет web‐сервера,то и незачем отслеживать специфические длянего атаки. Поэтому лишнее можно смелоотключить.Далее задаются номера портов, используемыхсерверами. Это позволяет Snort не распылятьресурсы, а искать атаку более конкретно(прицельно). Принцип тот же: если нет Oracle,то соответствующую строку лучше закомментировать.Обрати внимание, что номер портаможет быть задан как единичный (80) и какнепрерывный (80:8080). Перечисление портовчерез запятую работать не будет (уже нескольколет обещают исправить этот момент).Поэтому если web‐сервер использует два порта,то писать необходимо так:var HTTP_PORTS 80var HTTP_PORTS 8080Препроцессоры, подключаемые в третьейсекции «Configure preprocessors», — штука довольносерьезная и в хозяйстве, как говорится,полезная, но требующая некоторого временидля того, чтобы разобраться с назначениеми особенностями работы. Обрати внимание,что некоторые препроцессоры дублируют другдруга, поэтому включать все сразу также неимеет смысла. Так, вместо Portscan и Flow-Portscan разработчики рекомендуют использоватьsfPortscan, разработанный в Sourcefireи предназначенный для тех же целей, то естьдля определения сканирования портов. Болеебыстрый в работе модуль Frag3, используемыйдля дефрагментации IP-пакетов, пришел насмену более старому Frag2. Кроме того, некоторыепрепроцессоры направлены на определениеаномалий в работе определенных сервисов.Так, X‐Link2State предназначен для определенияуязвимости в Exchange Server, а HTTPInspectизучает аномалии в http-трафике.Настройка вывода данныхВ четвертой секции «Configure output plugins»,как уже говорилось, настраиваются выходныепараметры. В общем случае строка параметровимеет такой вид:output :В настоящее время Snort может использовать10 плагинов для вывода информации (каждыйиз которых имеет дополнительные опции):1. alert_syslog — для вывода информациииспользуется демон syslog; модуль позволяетнастроить приоритеты сообщений и уровень;2. alert_fast — информация о возможной атакевыводится в указанный в качестве дополнительногопараметра файл в сокращенномформате без подробностей;3. alert_full — модуль, подходящий для небольшихсетей, так как сильно тормозит работуSnort; заголовок пакета выводится полностью;в лог‐каталоге будет создан подкаталог, по каждомуIP в который будут записываться пакеты,вызвавшие предупреждение;4. alert_unixsock — схож с предыдущим за исключениемтого, что информация в реальномвремени передается в Unix‐сокет, откуда можетбыть считана любой другой программой;5. log_tcpdump — записывает в указанныйфайл перехваченные пакеты в формате утилитыtcpdump (к имени файла будет добавлятьсяметка времени, поэтому затереть его приперезапуске не получится);6. database — модуль, позволяющий заноситьинформацию в базу данных;7. csv — вывод в файл формата csv, которыйможет быть использован для занесения02 /98/ 07
ХАКЕР.PRO >> I-TSnort в режиме захвата пакетовДержись, хакер!информации в базу данных. Кроме именифайла, необходимо перечислить параметры,которые в него заносятся;8. unified — выводит данные в специальномформате, оптимизированном для обработкивнешними утилитами, которые затем будутзаниматься регистрацией события;9. alert_prelude — доступен при конфигурированиис опцией '-– enable-prelude', в этом случаеSnort используется как датчик гибридной IDSPrelude (www.prelude-ids.org);10. log_null — в этом случае Snort способенреагировать на указанные предупреждения безрегистрации пакетов.И, наконец, в конце файла ты найдешь шестуюсекцию «Customize your rule set», в которой необходимоубрать комментарии, указывающиена файлы с правилами:include $RULE_PATH / local.rulesinclude $RULE_PATH / bad-traffic.rules…# include $RULE_PATH / multimedia.rules# include $RULE_PATH / p2p.rulesinclude $RULE_PATH / experimental.rulesНазвания правил говорят сами за себя. Оставьто, что тебе действительно нужно (хотя еслисомневаешься, лучше включи все). По умолчаниюфайл local.rules пуст, в него заносит своиправила сам пользователь.Запуск SnortПосле того как все будет готово, можнозапускать Snort. Для работы в режимеснифера Snort запускается с флагом '– v'.При этом на экран выводятся заголовкипакетов. Если же есть желание просмотретьи передаваемую информацию, используйследующую команду:# snort -vdЕсли в системе один интерфейс, то программасама разберется, с чем ей работать. В противномслучае его требуется указать c помощью '– i':# snort -vd -i eth0Можно указать на конкретную информацию,которую требуется захватить. Например,устанавливаем в качестве домашней сети192.168.1.0 и захватываем пакеты с узла192.168.1.1:# snort -h 192.168.1.0 / 24 ‐d -vhost 192.168.1.1Для регистрации пакетов в общем случаеуказываем каталог, куда следует записыватьинформацию:# snort -l . / logЕсли на выходе требуется файл в форматеtcpdump, то добавляем параметр '– b'.И, наконец, работа в режиме системы обнаруженияатак. Так как файл snort.conf уже создан,то поступаем просто:# snort -c / etc / snort / snort.confДля тестирования набираем «ping -s 65507ip_адрес». После чего, если выбран соответствующийрежим ведения журнала, в каталоге/ var / log / snort появится файл с предупреждениемо потенциально опасном пакете:[**] [1:499:3] ICMP Large ICMPPacket [**][Classification: Potentially BadTraffic] [Priority: 2]15 / 11‐18:21:2.1131991802 192.168.0.1 -> 192.168.0.20ICMP TTL:255 TOS:0x0 ID:18479IpLen:20 DgmLen:63028Type:0 Code:0 ID:512 Seq:19456 ECHOREPLY[Xref => arachnids 246]При всестороннем тестировании работы Snortследует использовать специальные утилитывроде IDSwakeup (www.hsc.fr / ressources /outils / idswakeup / download).Для автоматического запуска Snort при загрузкесистемы необходимо использовать скриптsnortd, который лежит в подкаталоге rpmдистрибутива. Копируем его в / etc / rc. d / init.d и даем команду:# chkconfig snortd onАнализаторы файлов и веб-мордыSnort создан для того, чтобы выполнять однузадачу — определение атак, и выполняет онее хорошо. Анализ файлов журналов отдан наоткуп сторонних разработчиков. Некоторыеутилиты, предназначенные для этих целей, тынайдешь на сайте проекта. Например, c помощьюPerl‐скрипта SnortALog (jeremy.chartier.free.fr / snortalog) можно отобрать необходимуюинформацию и вывести ее в удобном длячтения виде. Вот так можно вывести топ атак,сгруппированных по времени, и отослать егопо почте:# cat / var / log / snort / snort.log.1164559498 | ./ snortalog.pl-hour_attack | / usr / sbin / sendmail-f admin@domain.comТакже имеется несколько веб-интерфейсов, позволяющихпроанализировать собранную информацию:ACID (Analysis Console for IntrusionDatabases, acidlab.sf.net), BASE (Basic Analysisand Security Engine, base.secureideas.net),SnortCon (snortcon.sf.net). zxàêåð 02 /98/ 07/153