Руководство по настройке ПО на базе операционной системы Dionis NX C 1.2-10 Hand UTM (2015 год) - часть 6

 

  Главная      Книги - Разные     Руководство по настройке ПО на базе операционной системы (программной оболочки) Dionis NX C 1.2-10 Hand UTM (2015 год)

 

поиск по сайту            правообладателям  

 

   

 

   

 

содержание      ..     4      5      6      7     ..

 

 

 

Руководство по настройке ПО на базе операционной системы Dionis NX C 1.2-10 Hand UTM (2015 год) - часть 6

 

 

250
• нормализация фрагментированного RPC-запроса в один нефрагментрованный RPC-запрос.
Для входа в режим конфигурации препроцессора следует ввести команду:
preprocessor rpc
35.16.13.1
Команды конфигурации ППР по умолчанию
ports {PORT,4}
Эта команда устанавливает порты RPC-трафика.
alert fragments
Эта команда предписывает предупреждать о фрагментированных RPC-запросах.
no alert <incomplete|multiple|large>
Эта команда предписывает не предупреждать:
• если весь запрос не помещается в один пакет;
• если в одном пакете множество запросов;
• если сумма фрагментированных записей превышает один пакет;
35.16.14
Препроцессор DCERPC
Позволяет обнаруживать и предупреждать DCE/RPC-атаки.
DCE/RPC - это технология реализации RPC (Удаленного вызова процедур) для DCE (Распреде-
лённая вычислительная среда). Транспорт для DCE/RPC: SMB,TCP,UDP,RPC-over-HTTP.
Цели ППР:
• SMB-дефрагментация для команд: Write, Write Block Raw, Write and Close, Write
AndX,Transaction, Transaction Secondary, Read, Read Block Raw и Read AndX;
• DCE/RPC-дефрагментация.
Для входа в режим конфигурации этого препроцессора введите команду:
preprocessor dcerpc
35.16.14.1
Команды конфигурации по умолчанию
limit fragment-size <N>
Эта команда задает максимальный рразмер фрагмента, который может участвовать в дефраг-
ментации. Если фрагмент больше указанного, он усекается до указанного размера и далее далее
идет на процедуру дефрагментации.
smb-fingerprint-policy <server |client|both>
251
Эта команда устанавливает политику работы ППР на основе данных, полученных от
SessionSetupAndX-запроса и соответствующего ответа.
В начальной фазе SMB-сессии клиенту нужно аутентифицировать себя с помощью команды
SessionSetupAndX. Данная команда и ответ на нее содержат информацию об ОС и версии, которая
позволяет ППР установить политику обработки трафика для данной сессии и лучше защититься
против Windows- и Samba-атак.
threshold reassemble
эта команда устанавливает минимальный размер данных в буфере дефрагментации и десег-
ментации, при достижении которого осщуествляется пересборка пакета и посылка его в подси-
стему обнаружения.
По умолчанию: отключено.
no defatagmentation
Эта команда отключает дефрагметнацию в ППР.
По умолчанию: не отключать.
alert <smb|memory|connection-oriented|connectionless|all>
Эта команда предписывает предупреждать в случае:
• memory - достижения или превышения limit memory-значения;
• smb - событий,связанных с обработкой SMB-трафика;
• connection-oriented - событий,связанных с обработкой DCE/RPC с установкой соединения;
• connectionless - событий,связанных с обработкой DCE/RPC без установки соединения;
• all - всех перечисленных событий.
35.16.14.2
Команды конфигурации экзэмпляра
alert <shares {SHARE,4} |max-andx-commands>
Эта команда предписывает предупреждать в случае:
• shares
- попытки соединения с указанными ресурсами по SMB с помощью команд
TreeConnect, TreeConnectAndX;
• max-andx-commands - максимальное число SMB AndX-команд в очереди, при превышении
которого выдается предупреждение.
policy <w2000|w2003|xp|vista|samba|samba320|samba322>
Эта команда задает ОС защищаемого сервера:
• w2000 - Windows 2000;
• w2003 - Windows 2000;
• xp - Windows XP;
• vista - Windows Vista;
• samba - Samba;
• samba320 - Samba-3.0.20;
252
• samba322 - Samba-3.0.22.
По умолчанию: policy xp.
ports <PROTO> [{PORT,4}] [{PORT1:[PORT2],4}]
Эта команда устанавливает порты, используемые в качестве транспорта DCE/RPC, и сервер-
ные DCE/RPC-порты. Параметры:
• PROTO: протокол, для которого определяются порты:
- smb - SMB-порты;
- tcp - TCP-порты
- udp - UDP-порты
- rpc-over-http-proxy - RPC-over-HTTP proxy;
- rpc-over-http-server - RPC-over-HTTP server;
• PORT,PORT1,PORT2 - порты и интервалы портов.
35.16.15
Препроцессор DNP3
Позволяет обнаруживать и предупреждать DNP3-атаки. Протокол DNP3 используется в SCADA-
сетях. Если сеть не содержит DNP3-устройств, то не нужно использовать данный ППР.
Для входа в режим конфигурации препроцессора следует ввести команду:
preprocessor dnp3
35.16.15.1
Команды конфигурации по умолчанию
alert wrong-crc
Эта команда предписывает предупреждать в случае неверной контрольной суммы в кадрах
канального уровня для DNP3-пакетов.
ports {PORT,4}
Эта команда устанавливает порты DNP3-трафика.
35.16.16
Препроцессор GTP
Позволяет обнаруживать и предупреждать GTP-атаки. Протокол GTP (протокол туннелирова-
ния GPRS) используется в комуникационных сетях для создания каннала между различными GSN
(обслуживающими узлами GPRS). Если сеть не содержит GPRS-устройств, то не нужно использо-
вать данный ППР.
Цели ППР:
253
• отслеживание попыток вторжения в централизованную часть подсистемы GPRS через GTP-
протокол.
• извелечение IP/TCP/UDP пакета из GTP-пакета: обнаружение и правила работают так, как
будто нет GTP-заголовка, т.к. он отрасывается.
Для входа в режим конфигурации препроцессора следует ввести команду:
preprocessor gtp
35.16.16.1
Команды конфигурации по умолчанию
ports {PORT,4}
Эта команда устанавливает порты GTP-трафика.
35.16.17
Препроцессор MODBUS
Позволяет обнаруживать и предупреждать MODBUS-атаки. Протокол MODBUS используется в
SCADA-сетях. Если сеть не содержит MODBUS-устройств, то не нужно использовать данный ППР.
Для входа в режим конфигурации препроцессора следует ввести команду:
preprocessor modbus
35.16.17.1
Команды конфигурации по умолчанию
ports {PORT,4}
Эта команда устанавливает порты MODBUS-трафика.
35.16.18
Препроцессор IMAP
Позволяет обнаруживать и предупреждать IMAP-атаки.
Для входа в режим конфигурации препроцессора следует ввести команду:
preprocessor imap
35.16.18.1
Команды конфигурации по умолчанию
ports {PORT,4}
Эта команда устанавливает порты IMAP-трафика.
alert <base64-decoding |bitenc-decoding| qp-decoding |uu-decoding> <all|none|N>
Эта команда предписывает предупреждать о неуспешных попытках декодирования или извле-
чения MIME-вложений.
Параметры:
254
• base64-decoding - BASE-64-декодирование MIME-вложений;
• bitenc-decoding - извлечение незакодированных MIME-вложений;
• qp-decoding - Quoted-Printable-декодирование MIME-вложений;
• uu-decoding - Unix-to-Unix-декодирование вложений;
• all - неограниченное потребление памяти для декодирования;
• none - не декодировать;
• N - объем памяти в байтах для декодирования.
35.16.19
Препроцессор POP
Позволяет обнаруживать и предупреждать POP-атаки.
Для входа в режим конфигурации препроцессора следует ввести команду:
preprocessor pop
35.16.19.1
Команды конфигурации по умолчанию
ports {PORT,4}
Эта команда устанавливает порты POP-трафика.
alert <base64-decoding |bitenc-decoding| qp-decoding |uu-decoding> <all|none|N>
Эта команда предписывает предупреждать о неуспешных попытках декодирования или извле-
чения MIME-вложений.
Параметры:
• base64-decoding - BASE-64-декодирование MIME-вложений;
• bitenc-decoding - извлечение незакодированных MIME-вложений;
• qp-decoding - Quoted-Printable-декодирование MIME-вложений;
• uu-decoding - Unix-to-Unix-декодирование вложений;
• all - неограниченное потребление памяти для декодирования;
• none - не декодировать;
• N - объем памяти в байтах для декодирования.
35.16.20
Препроцессор SIP
Позволяет обнаруживать и предупреждать SIP-атаки. Протокол SIP - протокол уровня при-
ложений для создания,модификации и завершения сессий Internet-телефонии,видео-трансляций
или видео-конференций с одним или более участниками.
Для входа в режим конфигурации препроцессора следует ввести команду:
preprocessor sip
255
35.16.20.1
Команды конфигурации по умолчанию
ports {PORT,4}
Эта команда устанавливает порты SIP-трафика.
alert
<uri-len|call-id-len|req-name-len|from-len|to-len|via-len|contact-len|content-
len> <N>
Эта команда предписывает предупреждать о превышении максимальной длины следующих
параметров:
• uri-len - URI;
• call-id-len - поля CallID;
• req-name-len - имени запроса;
• from-len - поля From;
• to-len - поля To;
• via-len - поля Via;
• contact-len - поля Contact;
• content-len - содержимого.
Длина N задается в байтах.
no inspection media-data
Эта команда предписывает не проверять аудио- и видеоданные в SIP-трафике.
limit <sessions|dialogs> <N>
Эта команда задает максимаальное число:
• sessions - сессий (по умолчанию 10000);
• dialogs - диалогов (по умолчанию 4).
inspection methods {METHOD,14}
Эта команда задает методы SIP, для которых следует проверять SIP-сообщения.
Поддерживаются следующие методы: invite,cancel,ack,bye,register,options,refer,subscribe,date,join,info,
35.16.21
Препроцессор REP
Позволяет отбросить, запретить или разрешить трафик с указанных IP-адресов.
Для входа в режим конфигурации препроцессора следует ввести команду:
preprocessor rep
256
35.16.21.1
Команды конфигурации по умолчанию
permit <IP[/MSK]>
Эта команда определяет разрешенный IP-адрес источника или сеть.
deny <IP[/MSK]>
Эта команда определяет запрещенный IP-адрес источника или сеть.
nested-ip <inner|outer|both>
Эта команда определяет, какой именно IP-адрес проверять в случае IP-инкапсуляции:
• inner - внутренний (IP источника пакета, который является вложенным);
• outer - внешний (IP источника пакета, в который вложен другой IP-пакет);
• both - оба.
35.16.22
Препроцессор SSLTLS
Позволяет обнаруживать и предупреждать SSL/TLS-атаки. Данный ППР:
• декодирует SSL и TLS трафик;
• опционально определяется, нужно ли инспектровать данный трафик.
Для входа в режим конфигурации препроцессора следует ввести команду:
preprocessor ssltls
35.16.22.1
Команды конфигурации по умолчанию
ports {PORT,8}
Эта команда устанавливает порты SSL- и TLS-трафика. По умолчанию ППР знает о следующих
портах SSL- и TLS-трафика:
• 443 HTTPS;
• 465 SMTPS;
• 563 NNTPS;
• 636 LDAPS;
• 989 FTPS;
• 992 TelnetS;
• 993 IMAPS;
• 994 IRCS;
• 995 POPS.
257
no inspection encrypted-traffic [trust-servers]
Эта команда предписывает не проверять зашифрованный трафик. Будет проверяться только
SSL-рукопожатие. Далее, как только обнаруживается зашифрованный трафик со стороны клиента
и сервера после SSL-рукопожатия, дальнейшие проверки не осуществляются.
Если же одна из сторон во время создания сессии (например,во время SSL-рукопожатия) со-
общила об ошибке, сессия считается не зашифрованной.
Сессия считается зашифрованной, если зашифрованные данные замечены с обеих сторон
(клиента и сервера). Однако, в случае опции trust-servers, это требование снимается и данные
предполагаются зашифрованными, будучи зарегистрированными только на стороне клиента (ини-
циатора SSL/TLS сессии) - это используется, если можно доверять соответствующим серверам и
твердо известно, что они не были скомпроментированы. В результате можно получить прирост
производительности ППР.
35.16.23
Препроцессор нормализации
Данный ППР осуществляет нормализацию пакетов в режиме mode ips, что помогает снизить
шансы вторжения.
Для входа в режим конфигурации препроцессора введите команду:
preprocessor norm
35.16.23.1
Команды конфигурации по умолчанию
icmp
Эта команда включает нормализацию ICMP-протокола:
• очистка поля Код в Echo-запросах и Echo-ответах.
tcp
<ips|urp|trim|allow-option
<sack|echo|partial-order|conn-count|alt-
checksum|md5|OPT> >
Эта команда включает нормализацию TCP-протокола:
• base - базовая нормализация TCP:
- очистка зарезервированных флагов;
- очистка Указателя срочности, если Флаг срочности не установлен и наоборот;
- очистка Указателя срочности и Флага срочности, если в пакете нет данных (полезной
нагрузки TCP);
- очистка дополняющих байт TCP-опций;
• ips - отбрасывать сегменты, которые не могут быть верно пересобраны;
• urp - не уменьшать указатель важности, если он превышает данные;
• trim - удалять данные в SYN- и RST-пакетах, урезать данные до границ TCP-окна и MSS;
• allow-option - не очищать указанные опции:
258
- sack - SACK опции (4,5);
- echo - echo опции (6,7);
- partial-order - опции частичного порядка (9,10);
- conn-count - счетчик соединения (11,12,13);
- alt-checksum - опции альтернативной чексуммы (14,15);
- md5 - опции MD5 (19);
- OPT - опция, заданная числом.
tcp ecn <packet|stream>
Эта команда включает нормализацию TCP-протокола в части контроля за ECN-флагами:
• packet - очищать ECN-флаги в пакетах;
• stream - очищать ECN-флаги ,если их использвание не было согласовано.
ip <base [MIN_TTL <NEW_TTL>] |df|rf|tos|trim>
Эта команда включает нормализацию IP-протокола:
• base - базовая нормализация IP:
- нормализация TTL;
- очистка поля TOS;
- все октеты полей опций устанавливаются в NOP (НетОперации);
• MIN_TTL : минимальный TTL пакета;
• NEW_TTL : новый TTL пакета;
• df - очищать бит DontFragment входящих пакетов;
• rf - очищать Зарезервированный бит входящих пакетов;
• tos - очищать бит TOS (Тип обслуживания) входящих пакетов;
• trim - обрезать пакеты с избыточными данными до длины, равной сумме длины заголовка
канального уровня и размера датаграммы ,указанного в IP заголовке; однако не обрезать
меньше,чем минимальный размер кадра.
Нормализация TTL осуществляется следующим образом: если служба получает пакет с TTL <
MIN_TTL, то TTL пакета устанавливается в NEW_TTL.
35.17
Настройки подсистемы обнаружения
35.17.1
Общие настройки
Тип команд данной секции: глобальный.
detection
search-method
<ac|ac-bnfa|lowmem>
[non-queue|split|no-stream-
inserts|max-pattern-len]
Эта команда задает алгоритм поиска в пакетах по образцу содержимого, указанного в прави-
лах:
259
• ac - полный Aho-Corasick: большие затраты памяти, большая производительность;
• ac-bnfa - бинарный Aho-Corasick: средние затраты памяти, средняя производительность;
• lowmem - низкие затраты памяти, низкая/средняя производительность.
Дополнительные параметры:
• non-queue - найденное алгоритмом поиска не кладется в очередь;
• split - правило с портами any/any источника/назначения добавляется к каждому не-any/any
правилу,таким образом увеличивая затраты памяти и увеличивая производительность; ес-
ли правил any/any много, затраты памяти могут быть значительными; данная опция поз-
воляет не добавлять каждое any/any правило к каждому не any/any, тем самым уменьшая
затраты памяти и производительность
• no-stream-inserts - не анализировать пакет, который должен быть пересобран: увеличение
производительности;
• max-pattern-len - максимальная длина образца в алгоритме поиска по образцу: может уве-
личить производительность и уменьшить затраты памяти.
По умолчанию: detection search-method ac-bnfa non-queue
detection max-queue-events <VAL>
Эта команда устанавливает максимальное число событий для правила, которые помещаются
в очередь до момента выбора события.
По умолчанию: 5
detection port-limit-any <VAL>
Эта команда устанавливает максимальное число портов источника и назначения, которые
должны быть в правиле, чтобы признать его правилом с портами any/any.
По умолчанию: 1024
detection debug <TYPE>
Эта команда задает уровень отладочной информации подсистемы обнаружения. Параметр
TYPE может быть следующим:
• all - все типы отладочной информации;
• port-group-evaluation - информация о портах во время оценки пакета;
• fast-patterns - информация о быстрых образцах, используемых для данной группы портов;
• port-group-compilation - инфомация о портах во время создания групп портов;
• port-group-compiled - информация о созданных группах портов;
• port-group-uncompiled - информация о несозданных группах портов;
• content-fast-pattern - если в правиле используются быстрые образцы, вывести информацию
о содержании, использованном в анализе;
• port-limit-any-exceed - предупреждать о превышении detection port-limit-any-значения для
правила.
260
35.17.2
Настройка группы правил
Отдельные правила сгруппированы по группам правил.
Типы групп правил:
• системная - правила данной группы можно отключать и включать:
- личные данные (ruleset private-data) - группа правил обнаружения атак на личные
данные;
- препроцессор (ruleset preprocessor) - группа правил подсистемы препроцессинга;
- декодер (ruleset decoder) - группа правил подсистемы декодирования;
- обнаружение (ruleset detection) - группа подгрупп правил подсистемы обнаружения
всех прочих атак;
• пользовательская (ruleset manual) - группа пользовательских подгрупп правил; правила
данных подгрупп можно создавать,удалять, отключать и включать.
Идентификация отдельного правила системной группы осуществляется по номерам GID и SID,
которые можно узнать при просмотре списка правил с помощью команды show service ids rules.
Для группы правил обнаружения (ruleset detection) в списке правил не указывается их GID - это
значит, что он по умолчанию равен 1.
ruleset <decoder|preprocessor|private-data|detection <NAME>|manual <NAME> >
По этой команде осуществляется вход в режим конфигурации группы правил декодера, пре-
процессора, личных данных или вход в режим конфигурации подгруппы правил прочего обнару-
жения (ruleset detection NAME) и пользовательского обнаружения атак (ruleset manual NAME).
Параметр NAME задает:
• имя подгруппы для группы правил обнаружения; может быть строго определенным, напри-
мер: smtp - подгруппа правил обнаружения SMTP-атак , dns - подгруппа правил обнаруже-
ния DNS-атак;
• имя подгруппы для группы пользовательских правил; это имя выбирается пользователем.
Далее, для простоты, будем подгруппу (для ruleset detection и ruleset manual) называть груп-
пой.
35.17.2.1
Настройка правил системной группы
Если войти в группу правил, то открывается возможность использования следующих команд:
on <all| <GID> <SID> >
По этой команде можно включить все или указанное правило данной группы. Правила иден-
тифицируется по номерам GID/SID, которые можно узнать по команде show service ids rules.
off <all|<GID> <SID»
по этой команде можно выключить все или указанное правило данной группы. Правила иден-
тифицируется по номерам GID/SID, которые можно узнать по команде show service ids rules.
261
action <GID> <SID> <TYPE>
Эта команда меняет действие встроенного правила под номером GID/SID на действие, опре-
деляемое параметром TYPE:
• alert : записать в журнал пакет и предупреждение;
• log : записать в журнал пакет;
• pass : разрешить прохождение пакета;
• drop : записать пакет в журнал и одновременно запретить его;
• reject : записать пакет в журнал и одновременно запретить его; дополнительно послать
“TCP reset” (для TCP) или “ICMP port unreachable” (для UDP);
• sdrop : запретить пакет.
35.17.2.2
Настройка правил пользовательской группы
В этом случае в дополнение к командам включения и выключения правил (см. Настройка
правил системной группы), добавляется команда создания правила.
[NUM] rule <NAME>
По этой команде можно создать пользовательское правило под именем NAME, войти в режим
его конфигурации и поместить его под номером NUM.
По умолчанию создается такое правило:
alert tcp any any> any any ( gid:8001; sid:1000001; rev:1; classtype:unknown; )
35.17.3
Настройка пользовательского правила
Правило состоит из:
• заголовка : определяет, какой трафик подпадает под анализ данным правилом; заголовок
состоит из следующих параметров:
- action : действие (что будет сделано с пакетом, если будут выполнены условия, опи-
санные опциями данного правила).
- proto : тип протокола, может быть tcp,udp,ip,icmp;
- src/dst : IP-адреса источника и назначения пакета;
- sport/dport : порты источника/назначения пакета;
- dir : направление трафика: от источника к назначению, либо в обе стороны;
• опций : под этим термином понимаются различные проверки, выполняемые над данными,
содержащимися в пакете:
- опции правила для описания правила;
- опции правила для проверки содержимого пакета;
- остальные опции правила: для проверки заголовка пакета и др.
Введем понятия,необходимые для понимания правил:
262
курсор обнаружения - это смещение в пакете после последнего найденного содержимого
или перемещение туда,куда указывает команда byte-jump/byte-test (см.ниже); т.е. это ука-
затель на данные в пакете, где будет продолжено обнаружение в соответствии с опциями
правила;
• для некоторых опций правила важен порядок их нахождения в списке опций правила, т.е.
приоритет; опции с приоритетом анализируются в этих правилах в порядке, определяемом
приоритетом;
• в некоторых командах используется параметр LOGIC, задающий оператор сравнения;
этот оператор может принимать значения: more,less,not,equal,more-equal,less-equal (боль-
ше,меньше,не равно,равно,больше либо равно,меньше либо равно).
35.17.3.1
Управление пользовательским правилом
on
Эта команда включает текущее пользовательское правило (по умолчанию правило и так вклю-
чено).
off
Эта команда выключает текущее пользовательское правило.
35.17.3.2
Заголовок пользовательского правила
action <TYPE>
Эта команда задает действие правила:
• alert : записать в журнал пакет и предупреждение;
• log : записать в журнал пакет;
• pass : разрешить прохождение пакета;
• drop : записать пакет в журнал и одновременно запретить данный пакет;
• reject : записать пакет в журнал и одновременно запретить данный пакет; дополнительно
послать “TCP reset” (для TCP) или “ICMP port unreachable” (для UDP);
• sdrop : запретить данный пакет.
По умолчанию: alert
proto <tcp|udp|ip|icmp>
Эта команда задает тип протокола. Параметр может быть следующим: tcp,udp,ip,icmp.
По умолчанию: tcp
src <{[!]IP[/MSK]|IPVAR,4}>
Эта команда задает адреса источника пакета. Только те пакеты, IP-адрес источника которых
принадлежит указанным адресам, будут обрабатываться данным правилом.
По умолчанию: any
dst <{[!]IP[/MSK]|IPVAR,4}>
263
Эта команда задает адреса назначения пакета. Только те пакеты, IP-адрес назначения кото-
рых принадлежит указанным адресам, будут обрабатываться данным правилом.
По умолчанию: any
sport <{[!]PORT1[:PORT2],4}>
Эта команда задает порт источника пакета. Только те пакеты, порт источника которых при-
надлежит указанным портам, будут обрабатываться данным правилом.
По умолчанию: any
dport <{[!]PORT1[:PORT2],4}>
Эта команда задает порт назначения пакета. Только те пакеты, порт назначения которых
принадлежит указанным портам, будут обрабатываться данным правилом.
По умолчанию: any
bidirectional
Эта команда задает двунаправленный трафик: адреса и порты,указанные командами src/sport
и dst/dport, могут быть адресами и портами источника и адресами и портами назначения.
35.17.3.3
Опции для описания пользовательского правила
general message <STRING>
Эта команда задает описание правила в виде текстовой строки.
general reference <bugtraq|cve|nessus|arachnids|mcafee|osvdb|URL>
Задает ID атаки, которую отслеживает правило, в той или иной базе данных уязвимостей.
Также возможно указание непосредственно URL. Возможные базы данных:
• bugtraq;
• cve;
• nessus;
• arachnids;
• mcafee;
• osvdb.
general gid <VAL>
Эта команда задает идентификатор группы, к которой принадлежит правило.
Параметр VAL принимает значения от 1 до 128.
Реальное значение gid, идущее в правило: VAL+8000. Это необходимо учитывать при исполь-
зовании идентификатора в других командах: нужно прибавлять 8000 к значению gid, указанному
в данной команде.
general sid <VAL>
Эта команда задает идентификатор правила.
Реальное значение sid, идущее в правило: VAL+1000000. Это необходимо учитывать при ис-
пользовании идентификатора в других командах: нужно прибавлять 1000000 к значению sid,
указанному в данной команде.
264
general class <CLASS>
Эта команда задает класс правила. Параметр может принимать только те значения, которые
выдаются по автодополнению команды.
35.17.3.4
Опции для проверки содержимого пакета
В некоторых опциях данного типа важен их приоритет, т.к. опции с приоритетом в правиле
анализируются последовательно. Например,если опция стоит под номером 1, она будет анализи-
роваться первой и, возможно, установит курсор обнаружения в новое значение.
Сначала будут рассмотрены команды, для которых можно задавать приоритет (PRIO). После
них будут описаны команды без приоритета.
[PRIO] payload content <PAT> [PARAMS]
Эта команда позволяет правилу искать заданный образец в содержимом (данных) пакета.
Формат образца PAT: текстовая строка и/или бинарные данные. Пример использования:
payload content abc*12fef*def
Образец представляет собой тестовую строку «abc», за которой следует набор байтов
0x12,0xfe,0xf0 и далее текстовая строка «def». Особенности формата образца:
• последовательность символов является бинарными данными,если она состоит из симолов
0..9 ,a..f, заключенных между 2мя симолами «*»;
• все остальные последовательности символов являются текстом;
• если число цифр бинарных данных (не включая ограничивающие символы «*») нечетное,
то результирующая hex-последовательность дополняется справа нулем (как например 0xf0
в вышеприведенном примере).
Образец PAT - единственный обязательный параметр команды payload content. Остальные
параметры PARAMS - необязательные и нужны для изменения особенностей поиска по указанно-
му образцу. Рассмотрим далее возможные параметры PARAMS команды payload content вместе с
примерами.
35.17.3.4.1
nocase Это значение параметра задает нечувствительный к регистру поиск;
«payload content abc nocase» будет искать, например, такие строки как abc, ABC, abC и др.
35.17.3.4.2
rawbytes При этом значении параметра правило будет рассматривать только чи-
стые, неизмененные фазой декодирования и нормализации, данные пакета: такие ППР, как telnet,
rpc, smtp по умолчанию нормализуют данные перед поиском по образцу. Если необходимо ана-
лизировать чистые, неизмененные данные - следует использовать данную опцию.
35.17.3.4.3
depth <VAL|BEVAL> Это значение параметра задает размер данных, начиная с
начала данных пакета, в которых следует вести поиск по образцу.
Дополнительные параметры:
265
• VAL - число от 1 до 65535;
• BEVAL - имя заданного в данном правиле byte-extract-параметра.
По умолчанию: все данные пакета.
35.17.3.4.4
offset <VAL|BEVAL> Это значение параметра задает смещение от начала дан-
ных пакета, которое будет применено при определении начальной позиции в данных, с которой
начнется поиск по образцу.
Дополнительные параметры:
• VAL - число от -65535 до 65535;
• BEVAL - имя заданного в данном правиле byte-extract-параметра
По умолчанию: offset 0.
35.17.3.4.5
match-offset <PAT2> < min <VAL1|BEVAL1> | <max <VAL2|BEVAL2> > Па-
раметр VAL1 задает смещение относительно смещения последнего найденного образца, с которо-
го начинать поиск образца PAT2. Т.е. VAL1 это то же самое, что и offset, но смещение задается не
относительно начала данных пакета, а относительно смещения последнего найденного образца.
Параметр VAL2 задает максимальное смещение относительно смещения последнего найден-
ного образца, до которого следует осуществлять поиск образца PAT2.
Т.е. данной командой мы задаем интервал поиска образца PAT2, относительно смещения по-
следнего найденного образца.
Рассмотрим пример: payload content ABC match-offset DEF min 10 max 20.
Данная команда ищет по образцу /ABC.{10}DEF/, причем DEF ищется в первых 20 байтах
после ABC,но не далее.
Аргументы для max и min:
• VAL - число от -65535 до 65535;
• BEVAL - имя заданного в данном правиле byte-extract параметра.
35.17.3.4.6
http-client-body Этот параметр предписывает вести поиск только в неизмен-
ном HTTP-запросе клиента. Размер данных, проверяемых в запросе, определяется опцией HTTP-
препроцессора ‘inspect client post’.
35.17.3.4.7
http-cookie Этот параметр предписывает вести поиск только в извлеченных
Cookie-заголовках (кроме имен заголовков и переносов строк в конце Cookie-заголовка) HTTP-
запроса клиента и HTTP-ответа сервера.
Особенности применения данного параметра:
• будет работать,только если включена опция HTTP-препроцессора ‘inspect cookies’;
• извлеченный Cookie может быть нормализован,если включена alert normalize cookies в HTTP-
препроцессоре.
266
35.17.3.4.8
http-raw-cookie Этот параметр предписывает вести поиск только в извлеченных
Cookie-заголовках (кроме имен заголовков и переносов строк в конце Cookie-заголовка) HTTP-
запроса клиента и HTTP-ответа сервера. Особенности применения данного параметра:
• будет работать,только если включена опция HTTP-препроцессора ‘inspect cookies’;
• извлекается не нормализованный Cookie.
35.17.3.4.9
http-header Этот параметр предписывает вести поиск только в HTTP-заголовках
HTTP-запроса клиента и HTTP-ответа сервера.
HTTP-заголовки могут быть нормализованы, если включена опция HTTP-препроцессора alert
normalize headers.
35.17.3.4.10
http-raw-header Этот параметр предписывает вести поиск только в ненормали-
зованных HTTP-заголовках HTTP-запроса клиента и HTTP-ответа сервера.
35.17.3.4.11
http-method Этот параметр предписывает вести поиск только в поле Method
HTTP-запроса.
35.17.3.4.12
http-uri Этот параметр предписывает вести поиск только в нормализованных
данных поля URI HTTP-запроса.
35.17.3.4.13
http-raw-uri Этот параметр предписывает вести поиск только в ненормализо-
ванных данных поля URI HTTP-запроса.
35.17.3.4.14
http-stat-code Этот параметр предписывает вести поиск только в данных поля
Status HTTP-ответа сервера.
35.17.3.4.15
http-stat-msg Этот параметр предписывает вести поиск только в данных поля
Status Message HTTP-ответа сервера.
35.17.3.4.16
fast-pattern [only | <OFF>,<LEN> ] Этот параметр предписывает активиро-
вать быстрый поиск по образцу - позволяет ускорить поиск образца. Дополнительные парамет-
ры:
• only - содержимое PAT используется только в механизме быстрого поиска в содержимом, и
не учитываются остальные опции правила. Полезно, если заранее известно ,что образец
должен находится где-либо в данных пакета (не важно, где именно).
• OFF,LEN - задает смещение и длину части образца для поиска. Полезно, если образец слиш-
ком длинный, чтобы сохранить память в механизме быстрого поиска.
267
35.17.3.4.17
[PRIO] payload isdataat [!]<VAL> relat Этот параметр предписывает прове-
рять, есть ли (нет ли,если указан знак »!») данные по указанному смещению VAL от начала
данных пакета, или от конца последнего найденного образца (если указан relat).
Например, по команда:
payload content PASS isdataat 50 relat
будет проверено, есть ли еще какие-то данные на протяжение 50 байт после слова PASS. Если
данные есть, выдается предупреждение.
Параметр rawbytes - искать в ненормализованных препроцессорами данных.
35.17.3.4.18
[PRIO] payload regex [no]<REGEX>[newline|nocase] Этот параметр пред-
писывает создать регулярное выражение для поиска по образцу. Дополнительные параметры:
• no - поиск инвертируется;
• newline - в метасмивол ».» попадают также символы переноса строк;
• nocase - нечувствительный к регистру поиск.
Крайне желательно,чтобы перед данной командой была команда payload content, которая от-
сеивала бы неподходящие варианты перед передачей данных на анализ с помощью регулярного
выражения (что более медленно).
35.17.3.4.19
[PRIO] payload base64-decode [size <VAL>] [offset <VAL> [relative] Этот
параметр предписывает разрешить декодировать base64-данные и осуществлять в них поиск по
образцу.
Дополнительные параметры:
• size - размер base64-данных для декодирования;
• offset - смещение начала base64-данных относительно начала данных пакета (если не задан
relative);
• relative - параметр offset задает смещение base64-данных относительно курсора обнаруже-
ния.
35.17.3.4.20
[PRIO] payload detbuf <transport|application|sip-header|sip-body|dce-stub-data|mo
Этот параметр устанавливает курсор обнаружения на :
• transport - данные транспортного уровня пакета;
• application - данные уровня приложения (application);
• sip-header - заголовок SIP;
• sip-body - данные сообщения SIP;
• dce-stub-data - stub данные DCE/RPC;
• modbus-data - поле данных Modbus;
• dnp3-data - начало DNP3 пересобранного (ППР dnp3) фрагмента уровня приложения.
268
Будучи установленным, курсор будет действовать на все опции правила, заданные после него.
[PRIO] payload asn1
[bisttring-overflow][double-overflow][OLEN][absolute-offset
<VAL>|relative-offset <VAL>]
Эта команда включает декодирование ASN1 и задает обнаружение атак, связанных с ASN1-
кодированием.
Параметры:
• double-overflow - обнаружение двойного ASCII-кодирования с превышением размера буфе-
ра;
• bitstring-overflow - обнаружение атаки, связанной с неверным кодированием битовых строк;
• OLEN - максимальный размер типа ASN1;
• absolute-offset - абсолютное смещение от начала пакета, где находятся ASN1-данные;
• relative-offset - смещение относительно курсора обнаружения.
[PRIO] payload byte test <[no] OP> <VAL> <OFF> <NUM> [relative] [dce] [END]
[string <hex|dec|oct>]
Цели этой команды:
• сравнение байтового поля из пакета с указанным значением;
• конвертация байтовых строк в байтовое поле и сравнение его с указанным значением.
Параметры команды:
• OP - оператор: more/less/equal/and/or (больше/меньше/равно/и/или); модификатор no - де-
лает отрицание оператора, т.е.: euqal no - проверка на «не равно»;
• VAL - значение, с которым сравнивается байтовое поле из пакета;
• OFF - смещение в данных пакета, определяющее начало байтового поля;
• NUM - число байт байтового поля (от 1 до 10);
• relative - смещение относительно курсора обнаружения;
• dce - DCE/RPC-препроцессор будет определять порядок байтового поля пакета;
• END - порядок байт: little-endian или big-endian;
• string : задает тип байтовой строки в пакете, которая конвертируется в байтовую последо-
вательность: hex(16-ричная),dec(10-тичная),oct(8-ричная)
[PRIO] payload byte jump <OFF> <NUM> [relative] [string <hex|dec|oct>] [END] [dce]
[from-beginning] [align] [post-offset <POFF>] [mul <MUL>]
Эта команда позволяет перемещать курсор обнаружения на значение ,считанное из пакета по
заданному смещению. Обычно это удобно для протоколов, в которых по определенным смещени-
ям указаны длины различных полей пакета.
Параметры:
• OFF - смещение в данных пакета, определяющее начало байтового поля;
• NUM - число байт байтового поля (от 1 до 10);
269
• relative - смещение относительно курсора обнаружения;
• string : задает тип байтовой строки в пакете, которая конвертируется в байтовую последо-
вательность: hex(16-ричная),dec(10-тичная),oct(8-ричная);
• dce - DCE/RPC-препроцессор будет определять порядок байтового поля пакета;
• END - порядок байт: little-endian или big-endian;
• from-begginig - следует перемещать курсор обнаружения, начиная с начала пакета, а не с
текущей позиции курсора;
• align - следует выравнивать число конвертированных байт на 32-битную границу;
• POFF - пропуск вперед или назад после отработки остальных опций команды;
• MUL - число, на которое умножается число взятых/сконвертированных байт.
[PRIO] payload byte extract <OFF> <NUM> <VAR> [relative] [string <hex|dec|oct>]
[END] [dce] [from-beginning] [align] [post-offset <POFF>] [mul <MUL>]
Эта команда позволяет прочитать определенное число байт из пакета и присвоить полученное
значение переменной, которую можно далее использовать в правиле.
Параметры:
• OFF - смещение в данных пакета, определяющее позицию начала считывания байт;
• NUM - число байт для считывания (от 1 до 10);
• VAR - имя переменной, которой следует присвоить считанное значение;
• relative - смещение относительно курсора обнаружения;
• string : задает тип байтовой строки в пакете, которая конвертируется в байтовую последо-
вательность: hex(16-ричная),dec(10-тичная),oct(8-ричная);
• dce - DCE/RPC-препроцессор будет определять порядок байтового поля пакета;
• END - порядок байт: little-endian или big-endian;
• from-begginig - передвигать курсор обнаружения относительно начала пакета, а не с теку-
щей позиции курсора
• align - выравнивать число конвертированных байт на 32-битную границу;
• POFF - пропуск вперед или назад после отработки остальных опций команды;
• MUL - число, на которое умножается число взятых/сконвертированных байт.
payload cvs
По этой команде осуществляется детектирование атак на CVS. Порты CVS должны быть вклю-
чены в ППР stream.
payload http-encode
<uri|header|cookie>
[no] encoding-types
<{utf8,double-
encode,non-ascii,ascii,iis-encode,uencode,bare-byte}>
Эта команда предписывает предупреждать об использовании кодирования в запросе или от-
вете.
Место поиска:
• uri - URI-поле запроса клиента;
• header - HTTP-заголовки запроса или ответа;
• cookie - Cookie-поля HTTP-запроса или ответа.
270
Тип кодирования:
• utf8 - UTF8-кодирование;
• double-encode - double-кодирование;
• non-ascii - не ASCII-кодирование;
• ascii - ASCII-кодирование;
• iis-encode - IIS-Unicode-кодирование;
• uencode - u-кодирование;
• bare-byte - bare-byte-кодирование.
Прочие параметры:
• no - предупреждать,если используемое кодирование не входит в перечисленный список
кодирований.
payload urilen < <more|less LEN0 > | <LEN0 LEN1> > [raw|norm]
Эта команда задает ограничения на длину URI и тип буфера, в котором осуществляется про-
верка длин URI. Параметры:
• LEN0 - максимальная длина URI;
• LEN1 - минимальная длина URI;
• more LEN0 - длина больше, чем LEN0;
• less LEN0 - длина больше, чем LEN0;
• raw - использовать ненормализованный буфер (по умолчанию);
• norm - использовать нормализованный буфер.
payload ftpbounce
Эта команда задает обнаружение FTP-bounce атак.
35.17.3.5
Препроцессоро-зависимые опции правил
Данные опции доступны, если включен соответсвующий ППР, указанный в описании опции.
payload ssl-version {VER,5} [no]
Эта команда задает отслеживание версии SSL, согласованной двумя точками SSL-соединения.
Правило срабатывает,если замечена хотя бы одна из версий (OR-логика).
Если применено несколько данных команд, между ними используется AND-логика.
Параметры:
• VER
:
принимает
значения:
ssl2,ssl3,tls10,tls11,tls12
для
версий
SSLv2,SSLv3,TLS1.0,TLS1.1,TLS1.2, соответственно;
• no - оператор отрицания; правило будет проверять, что не используется ни одна из указан-
ных версий.
271
Замечание: должен быть включен ППР ssltls.
payload ssl-state {VER,5} [no]
Эта команда задает отслеживание состояния SSL-соединения во время процесса приветствия
и обмена ключом.
Правило срабатывает, если замечено хотя бы одно из состояний (OR-логика).
Если применено несколько данных команд, между ними используется AND-логика (правило
сработает, если соединение достигло всех указанных множеств состояний).
Параметры:
• STATE : принимает значения: client-hello, server-hello, client-keyx, server-keyx, unknown для
состояний Clinet Hello (клиент отослал сообщение Client Hello), Server Hello (сервер отве-
тил на сообщение Client Hello сообщением Server Hello), Client Key Exchange, Server Key
Exchange и неизвестное состояние;
• no - оператор отрицания; правило будет проверять, что не было достигнуто ни одно из
указанных состояний.
Замечание: Должен быть включен ППР ssltls.
payload dce-opnum {<OP|OP1-OP2>,4} [no] По этой команде осуществляется поиск одно-
го из указанных номеров операций (OP) DCE/RPC. Возможно указание интервала номеров опера-
ций OP1-OP2.
Возможно указание оператора отрицания no - правило сработает,если указанные номера не
были обнаружены.
Замечание: Должен быть включен ППР dcerpc.
payload priv-pattern <credit-card|us-ssn|us-ssn-nodash|email> <COUNT>
эта команда задает тип отслеживаемых личных данных.
Параметры:
• credit-card - номера кредитных карт;
• us-ssn - номера социального обеспечения США;
• us-ssn-nodash - номера социального обеспечения США без дефисов;
• email - адреса электронной почты;
• COUNT - число обнаружений личных данных до генерации предупреждения.
Замечание: Должен быть включен ППР priv.
payload sip-method {METHOD,4} [no]
Эта команда задает тип отслеживаемых SIP-методов запроса. Поддерживаются следующие
методы: invite,cancel,ack,bye,register,options,refer,subscribe,date,join,info,message,notify,prack.
Необязательный параметр no - это оператор отрицания.
Замечание: Должен быть включен ППР sip.
payload sip-status-code {CODE|CODE1-CODE2,4}
272
Эта команда задает тип отслеживаемых SIP-кодов ответа (числа от 100 до 999, или интервалы
таких чисел).
Замечание: Должен быть включен ППР sip.
payload sip-header {CODE|CODE1-CODE2,4}
Эта команда задает тип отслеживаемых SIP-кодов ответа (чсила от 100 до 999, или интервалы
таких чисел).
Замечание: Должен быть включен ППР sip.
payload gtp version <VAL>
Эта команда предписывает проверять на указанную версию протокола GTP.
Замечание: Должен быть включен ППР gtp.
payload gtp info <VAL>
Эта команда предписывает проверять на наличие указанного информационного элемента GTP.
Замечание: Должен быть включен ППР gtp.
payload gtp type {VAL,4}
Эта команда предписывает проверять на наличие указанных типов сообщений GTP.
Замечание: Должен быть включен ППР gtp.
payload modbus func <VAL>
Эта команда предписывает проверять на наличие указанного значения Function code в заго-
ловке Modbus-протокола.
Замечание: Должен быть включен ППР modbus.
payload modbus unit <VAL>
Эта команда предписывает проверять на наличие указанного значения Unit ID в заголовке
Modbus-протокола.
Замечание: Должен быть включен ППР modbus.
payload dnp3 flags {VAL,16}
Эта команда предписывает проверять на наличие указанных флагов Internal Indicators в DNP3.
Будучи заданными в одной команде, между флагами применяется операция ИЛИ.
Будучи заданными в разных командах, между множествами флагов этих команд применяется
операция И.
Замечание: Должен быть включен ППР dnp3.
payload dnp3 func <VAL>
Эта команда предписывает проверять на наличие указанного значения Function code в заго-
ловке DNP3-протокола.
Замечание: Должен быть включен ППР dnp3.
payload dnp3 obj <GROUP> <OVAR>
Эта команда предписывает проверять на наличие указанных объектных заголовоков в DNP3-
протоколе.
273
Параметры:
• GROUP - группа объекта;
• VAR - объект.
Замечание: Должен быть включен ППР dnp3.
35.17.3.6
Опции для проверки заголовка пакета
Сначала рассмотрим команды, для которых можно задавать приоритет (PRIO). После них будут
описаны команды без приоритета.
[PRIO] header stream <reassembly <enable|disable> > <server|client|both> [noalert]
[fastpath]
Эта команда включает или выключает пересборку TCP-пакетов для трафика, попадающего в
правило. Параметры:
• enable/disable - включить/выключить пересборку TCP пакетов;
• server/client/both - тип трафика (серверный,клиентский или оба типа);
• fastpath - игнорировать остальные соединения;
• noalert - не выдавать предупреждения.
Должен быть включен ППР stream.
header frag-offset [LOGIC] <VAL>
Эта команда задает ограничение на значение смещения фрагмента в IP-заголовке. Парамет-
ры:
• LOGIC - задает оператор сравниния со значением VAL: not,more,less.
Например, для того чтобы в правило попадали все первые фрагменты IP-сессии, следует вы-
полнить следующие команды:
header fragbits morefrags
header fragoffset 0
header ttl <[LOGIC] VAL0 | VAL0 VAL1>
Эта команда задает ограничение на значение TTL в IP-заголовке. Параметры:
• LOGIC - задает оператор сравнения со значением VAL0: more,less,equal,more-equal,less-
equal;
• VAL0,VAL1 - интервал значений.
header tos [LOGIC] VAL
Эта команда задает ограничение на значение TOS в IP-заголовке. Параметры:
274
• LOGIC - задает оператор сравнения со значением VAL: not;
• VAL - значение TOS.
header id VAL
Эта команда проверяет значение ID в IP-заголовке.
header ipopts <IPOPTS>
Эта команда проверяет на наличие IP-опции в IP-заголовке. Возможные опции:
• rr - запись маршрута;
• eol - конец списка;
• nop - нет опции;
• ts - временная метка;
• sec - IP-безопасность;
• esec - расширенная IP-безопасность;
• lsrr - гибкая маршрутизация от источника;
• lsrre - расширенная гибкая маршрутизация от источника;
• ssrr - жесткая маршрутизация от источника;
• satid - идентификатор потока;
• any - любые опции.
header frag-flags <{more-frags|dont-frag|rsrv-bit,3}> [more|any|not]
Эта команда предписывает проверять, установлены ли биты фрагментации или зарезервиро-
ванный бит IP-заголовка.
Параметры:
• more-frags - бит More Fragments (будут еще фрагменты);
• dont-frag - бит Don’t Fragment (не фрагментировать);
• rsrv-bit - зарезервированный бит;
• more - обнаружение срабатывает, если установлены, как минимум, указанные биты;
• any - обнаружение срабатывает, если установлены любые из указанных битов;
• not - обнаружение срабатывает, если указанные биты не установлены.
header tcp-flags <{BITS,8}> [more|any|not]
Эта команда предписывает проверять, установлены ли биты фрагментации или зарезервиро-
ванный бит IP-заголовка.
Параметры:
• BITS - флаги TCP-пакета: fin,syn,rst,psh,ack,urg,cwr,ece,none (нет флагов);
• more - обнаружение срабатывает, если установлены, как минимум, указанные флаги;
• any - обнаружение срабатывает, если установлены любые из указанных флагов;
• not - обнаружение срабатывает, если указанные флаги не установлены.
275
header data-size [LOGIC] VAL0 [VAL1]
Эта команда задает обнаружение пакетов с данными заданной длины.
Параметры:
• LOGIC - задает оператор сравнения со значением VAL: not;
• VAL0 VAL1 - интервал значений (в байтах)
header seq VAL
Эта команда предписывает проверять значение номера последовательности TCP-пакета (TCP
Sequence number).
header ack VAL
Эта команда предписывает проверять значение номера уведомления TCP-пакета
(TCP
Acknowledge number).
header window-size [not] VAL
Эта команда предписывает проверять значение размера окна TCP-пакета. Параметр not - про-
верять,что пакет не имеет заданный размер окна.
header icmp-code < more|less VAL0 | VAL0 VAL1>
Эта команда предписывает проверять значение кода ICMP-ответа. Параметры:
• LOGIC - задает оператор сравнения со значением VAL0: more,less;
• VAL0,VAL1 - интервал значений.
Данная опция может быть задана только при icmp-типе протокола в правиле.
header icmp-type < more|less VAL0 | VAL0 VAL1>
Эта команда предписывает проверять значение типа сообщения ICMP. Параметры:
• LOGIC - задает оператор сравнения со значением VAL0: more,less;
• VAL0,VAL1 - интервал значений.
Данная опция может быть задана только при icmp-типе протокола в правиле.
header icmp-id VAL
Эта команда предписывает проверять значение идентификатора сообщения ICMP.
Данная опция может быть задана только при icmp-типе протокола в правиле.
header icmp-seq VAL
Эта команда предписывает проверять значение номера последовательности сообщения ICMP.
Данная опция может быть задана только при icmp-типе протокола в правиле.
header rpc <VAL1> [version <VAL2|any>] [procedure <VAL3|any>]
Эта команда предписывает проверять значение номера приложения,версии и процедуры RPC
для SunRPC-запросов.
Параметры:
276
• VAL1 - номер приложения RPC;
• VAL2 - номер версии RPC;
• VAL3 - номер процедуры RPC.
header ip-proto [not|more|less] <VAL>
Эта команда предписывает проверять значение типа протокола,вложенного в IP. Параметры:
• LOGIC - задает оператор сравнения со значением VAL: more,less,not;
• VAL0,VAL1 - интервал значений.
Данная опция может быть задана только при ip-типе протокола в правиле.
header sameip
Эта команда предписывает проверять на совпадение IP-адресов получателя и отправителя.
header stream-size <client|server|both|either> <LOGIC> <VAL>
Эта команда предписывает рассматривать только сессии заданного размера. Параметры:
• LOGIC: задает оператор сравнения со значением VAL: more,less,not,equal,more-equal,less-
equal;
• client,server,both,either - тип трафика: от клиента, от сервера, оба типа, любой из типов;
• VAL - размер данных.
Должен быть включен ППР stream.
header
flow
[dir
<to-server|from-server>]
[state
<established|not-
esatblished|stateless>] [stream <no-stream|only-stream>] [frag <no-frag|only-frag>]
Эта команда задает, какой именно трафик наблюдать, исходя из следующих его свойств: на-
правление,состояние,фрагментация,пересборка.
Параметры:
• dir - направление трафика - запросы клиентов или ответы серверов (from-server);
• state - состояние TCP-соединений: установленные, неустановленные, независимо от состо-
яния;
• stream - no-stream - не учитывать пересобранные пакеты;
• only-stream - учитывать только пересобранные пакеты;
• frag - no-frag - не учитывать фрагментированные пакеты;
• only-frag - учитывать только фрагментированные пакеты.
header flowbits <OP> <BITS|any|all> <BITMAP>
Эта команда позовляет настроить отслеживание сессий для транспортных протоколов. Для
TCP-сессий данная опция позволяет правилу отслеживать состояние протоколов уровня прило-
жений.
Параметры:
277
• BITMAP - имя битовой карты, над которой производится операция OP над битами BITS;
• BITS - биты битовой карты: цифры от 1 до 8; any - любой бит; all - все биты; между битами
могут быть операции AND (&) или OR(|);
• OP - операция с битовой картой:
- set - установить указанные биты BITS в битовой карте BITMAP;
- unset - сбросить указанные биты BITS в битовой карте BITMAP;
- setx - установить указанные биты BITS в битовой карте BITMAP и сбросить все осталь-
ные;
- toogle - установить указанные биты BITS в битовой карте BITMAP и сбросить все осталь-
ные;
- isset - проверить, установлены ли биты BITS в битовой карте BITMAP; может быть
применен модификатор or для битов BITS, вместо модификатора AND по умолчанию;
- isnotset - проверить, не установлены ли биты BITS в битовой карте BITMAP; может
быть применен модификатор or для битов BITS,вместо умалчиваемого AND;
- noalert - не предупреждать о выполнениях команды set,unset,toggle в правиле;
- reset - сбросить все биты указанной группы.
35.18
Подсистема фильтров частоты
Подсистема фильтрации по частоте предотвращает атаки, основанные на частоте обнаруже-
ния некоторого действия. Пользователь может сконфигурировать службу так, что при достижении
некоторого события(правила) заданной частоты обнаружения осщуствляется выполнения нового
действия. Для каждого правила можно сконфигурировать множество фильтров частоты: будет
использован первый найденный для правила фильтр частоты.
rate-filter
<GID>
<SID>
<src|dst|rule>
<COUNT/SEC>
<ACT>
<TO>
[nets
{IP/MSK,4}]
Параметры:
• GID,SID - идентификаторы подсистемы и правила, для которых применяется данная коман-
да;
• src - счетчик событий COUNT; ведется по числу уникальных IP-адресов источника;
• dst - счетчик событий COUNT; ведется по числу уникальных IP-адресов назначения;
• rule - счетчик событий COUNT; ведется по числу срабатывания правила;
• COUNT/SEC - счетчик событий за интервал времени SEC(в секундах);
• SEC - интервал времени в сек., за который считается счетчик событий; если он равен 0 , то
COUNT - общее число событий;
• ACT - новое действие для правила, которое будет им использоваться в результате срабаты-
вания данного фильтра частоты;
• TO - время в секундах, через которое правило вернет себе старое действие вместо нового
действия ACT, которе начало использоваться в результате срабатывания данного фильтра
частоты; если равно 0, то не будет произодиться возврат к старому действию;
• nets - список сетей источника(если задан параметр src) или назначения(если задан пара-
метр dst), к которым применяется фильтр.
278
35.19
Подсистема контроля задержек
Тип команд данной секции: глобальный.
Данная подсистема представляет собой механизм пороговых значений, который может исполь-
зорваться для контроля над задержками в работе службы. Проверка на задержки осуществляется
для пакетов и правил. Можно также указать действие,применяемое, если обнаружена чрезмерная
задержка.
latency packet <LAT> [skip-slow] [log] [stats]
Параметры:
• LAT - максимальная задержка в микросекундах; примерные значения: 100/250/1000 для
1G/100M/5M сетей;
• skip-slow - пропускать дальнейший анализ пакета, задержка которого превысила макси-
мальную;
• log - регистрировать в журнале пакеты, задержка которых превысила максимальную;
• stats - писать в журнал статистику по каждому пакету.
latency rule <LAT> [N] [skip-slow [TIME] ] [log] [log-alert]
Параметры:
• LAT - максимальная задержка в микросекундах; примерные значения: 100/250/1000 для
1G/100M/5M сетей;
• N - число превышений максимальной задержки правила, после которого данное правило
перестает использоваться (по умолчанию: 5);
• skip-slow - останавливать дальнейший анализ правила, задержка которого превысила мак-
симальную;
• TIME - время в секундах, на которое останавливается анализ правила, задержка которого
превысила максимальную (в случае опции skip-slow); по умолчанию: 60сек;
• log - регистрировать в журнале правила, задержка которых превысила максимальную;
• log-alert - записывать в журнал предупреждения правил, задержка которых превысила мак-
симальную.
35.20
Подсистема событий
Подсистема событий отвечает за:
• частоту журналирования обнаружений: для уменьшения частоты записи в журнал преду-
преждений для каких-либо или всех правил;
• подавление правил в зависимости от трафика входящего и/или исходящего на указанные
IP-адреса;
• сортировку событий и максимальное число событий, которое может зарегистрировано или
отслежено для каждого пакета в каждый момент времени.
279
event filter setup <GID> <SID> <limit|threshold|both> <src|dst> <COUNT/SEC>
Эта команда предназначена для уменьшения числа ложных предупреждений.
Для каждой пары GID,SID может быть задана только одна команда. Параметры:
• GID,SID - идентификаторы подсистемы и правила, для которых применяются данные пара-
метры; особые комбинации :
- gid != 0, sid = 0 - команда применяется для всех правил группы gid;
- gid = 0 , sid = 0 - команда применяется для всех правил;
- gid = 0, sid ! = 0 - неразрешенная комбинация;
• limit - предупреждать о первых COUNT-событиях за интервал времени SEC; затем игнори-
ровать события для оставшейся части интервала SEC;
• threshold - предупреждать о каждом COUNT-событии за интервал времени SEC;
• both - предупреждать один раз после обнаружения COUNT-числа событий в течение интер-
вала SEC; затем игнорировать события для оставшейся части интервала SEC;
• src - счетчик событий COUNT ведется по числу уникальных IP-адресов источника;
• dst - счетчик событий COUNT ведется по числу уникальных IP-адресов назначения;
• COUNT/SEC - число событий за интервал времени SEC(в секундах).
event filter block <GID> <SID> <src|dst> {IP[/MSK],4}
Данная команда позволяет указать события, о которых не нужно предупреждать. Т.е. правило
может быть включено, но предупреждения выдавать оно не будет.
Команда предназначена для уменьшения числа ложных предупреждений.
Параметры:
• GID,SID - идентификаторы подсистемы и правила, для которых применяются данные пара-
метры; особые комбинации :
- gid != 0, sid = 0 - команда применяется для всех правил группы gid;
- gid = 0 , sid = 0 - команда применяется для всех правил;
- gid = 0, sid ! = 0 - неразрешенная комбинация;
• src - счетчик событий COUNT ведется по числу уникальных IP-адресов источника;
• dst - счетчик событий COUNT ведется по числу уникальных IP-адресов назначения;
• IP/[MSK] - список IP-адресов, для которых применяется команда подавления предупрежде-
ний.
event queue <max-events|max-to-log|order-events <priority|content-length> >
Эта команда задает параметры очереди событий. Параметры:
• max-events - размер очереди событий; задает максимальное число событий, запоминаемых
для каждого пакета/сессии;
• max-to-log - задает максимальное число событий, регистрируемых в журнале для каждого
пакета/сессии;
• order-events - задает тип сортировки событий в очереди; priority - по важности; content-
length - по длине параметра опции content-правила.
Тип: глобальный
280
35.21
Статистика работы службы
Тип команд данной секции: глобальный.
Имеется возможность вести статистику работы службы. Измеряются показатели работы реаль-
ного времени и теоретически достижимые максимальные показатели работы службы.
perfmon [flow] [flow-ip] [events] [TIME]
Параметры:
• flow - статистика о наблюдаемом типе трафика и протоколах;
• flow-ip - для каждой пары хостов ведется следующая статистика:
- TCP Packets - число TCP-пакетов;
- TCP Traffic in Bytes - объем ТСР-трафика в байтах;
- TCP Sessions Established - число установленных TCP-сессий;
- TCP Sessions Closed - число закрытых TCP-сессий;
- UDP Packets - число UDP-пакетов;
- UDP Traffic in Bytes - объем UDP-трафика в байтах;
- UDP Sessions Created - число созданных UDP-сессий;
- Other IP Packets - число других IP-пакетов;
- Other IP Traffic in Bytes - другой IP трафик в байтах;
• events - статистика отношения числа событий, которые не выполнились (правило анализи-
ровалось и не сработало) к числу событий, которые выполнились (правило анализирова-
лось и сработало);
• TIME - время между интервалами (в сек.).
Для просмотра данной статистики следует использовать команду:
show service ids log <perfmon|perfmon-flowip>
Максимальные размеры perfmon-журналов - 5Мб. Максимальное число архивов журналов
perfmon - 2.
stat rules [N] [SORT]
Эта команда включает ведение статистики по производительности подсистемы обнаружения.
Параметры:
• N - число самых «медленных» правил, которые записываются в журнал статистики;
• SORT - порядок сортировки:
- checks - по числу проверок правила;
- matches - по числу попаданий в правило;
- nomatches - по числу непопаданий в правило;
- avg-ticks - по среднему числу процессорных тактов;
- avg-ticks-per-match - по числу процессорных тактов на попадание;
- avg-ticks-per-nomatch - по числу процессорных тактов на непопадание;
- total-ticks - по общему числу процессорных тактов.
281
Чтоб посмотреть статистику по производительности, следует остановить службу и выполнить
команду: show service ids stat-rules.
stat preprocs [N] [SORT]
Эта команда подключает ведение статистики по производительности препроцессоров.
Параметры:
• N - число самых «медленных» препроцессоров, которые записываются в журнал статисти-
ки;
• SORT - порядок сортировки:
- checks - по числу проверок правила;
- avg-ticks - по среднему числу процессорных тактов;
- total-ticks - по общему числу процессорных тактов.
Чтоб посмотреть статистику по производительности препроцессоров, нужно остановить служ-
бу и выполнить команду: show service ids stat-preprocs
35.22
Журналы
Тип команд данной секции: глобальный.
log <local>
Эта команда включает ведение журналов предупреждений в режиме:
• local: журналы ведутся в локальной файловой системе.
log shmem <SUS_IP> [size <SZ>] [port <PORT>] [name <SNAM>][ID] [packet]
Эта команда включает режим журналирования в разделяемую память и одновременно пе-
реключает систему на работу с правилами ЦНИИ ЭИСУ. Особенности данной работы состоят в
следующем:
• система переключается на cni-правила (это другой,особый набор системных правил, кото-
рый может отличаться от std-правил);
• все команды изменения действия системного правила, включения и отключения систем-
ных правил, а также команды создания собственных правил применяются только к std-
правилам и никак не применяются к cni-правилам;
• команды включения и отключения ruleset-ов применяются к cni-правилам - можно как и
для std-правил включать только определенный набор ruleset-ов;
• команда обновления локальных правил service ids rules upgrade/downgrade работает только
для std-правил и никак не действует на cni-правила;
• cni-правила обновляются автоматически.
Параметры команды:
282
• SUS_IP - IP-адрес сервера-приемника предупреждений;
• SZ - размер разделяемой памяти для хранения предупреждений (15мб по умолчанию);
• PORT - номер порта сервера-применика предупреждений (1101 по умолчанию);
• SNAM - название сенсора (sensor1 по умолчанию);
• ID - идентификатор сенсора (1 по умолчанию);
• packet - следует передавать данные пакета, на который выдано предупреждение.
log <BD> <IFACE> <SRV> [user <USR>] [password <PAS>] [PORT][brief]
Эта команда включает режим пересылки информации о предупреждениях на удаленный сер-
вер в базу данных snortdb.
Параметры:
• BD : типа базы данных (пока поддерживается только postgresql);
• IFACE : интерфейс, c которого отправляются данные на сервер баз данных (тип ethernet
или bond);
• SRV : адрес удаленного сервера базы данных;
• PORT : порт сервера SRV, на котором ожидает запросов база данных (по умолчанию - 5432);
• USR : пользователь (по умолчанию - snort);
• PAS : пароль (по умолчанию - pass);
• brief : краткая информация (по умолчанию - полная).
35.23
Просмотр информации
show service ids status
Эта команда выводит следующую информацию:
1. статус сервиса: включен или выключен;
2. версию правил.
show service ids statistics
Эта команда показывает статистику сервиса.
show service ids log [alerts|portscans|perfmon|perfmon-flowip]
Эта команда показывает следующие журналы:
• alerts - разные предупреждения;
• portscans - предупреждения о сканировании портов;
• perfmon - показывает базовую статистику perfmon;
• perfmon-flowip - показывает статистику perfmon flow-ip.
283
Максимальные размеры журналов portscans и perfmon - 5Мб. Максимальное число архивов
журналов portscans и perfmon - 2 (текущий и предыдущий).
Если тип журналов не задан - показывает журнал службы.
show service ids ipvars [VIEW]
Эта команда показывает переменные ipvars для конфигурации по умолчанию или для вида
VIEW, если он указан. Все имена переменных будут показаны заглавными буквами, хотя в кон-
фигурации они определены строчными.
show service ids portvars [VIEW]
Эта команда показывает переменные portvars для конфигурации по умолчанию или для вида
VIEW,если он указан. Все имена переменных будут показаны заглавными буквами, хотя в конфи-
гурации они определены строчными.
show service ids rules <decoder|private-data|preprocessor|detection <NAME>|manual
<NAME> > [disabled|enabled] [VIEW]
Эта команда показывает правила соответствующей группы правил для конфигурации по умол-
чанию или для вида VIEW,если он указан.
Параметры:
• disabled - отключенные правила;
• enabled - включенные правила.
В начале правила будет показан его номер. Этот номер может использоваться для поиска
правила после выдачи команды show service ids rule by-message:
show service ids rule by-message <MSG> [VIEW]
Эта команда ищет правило по сообщению предупреждения и ,если оно найдено, выдает на-
звание списка правил и номер правила в этом списке.
35.24
Обновление правил
Обновление правил службы возможно двух типов:
• локальное, с помощью флэшки - происходит обновление std-правил;
• удаленное, когда служба работает с CNII-правилами (в конфигурации присутствует коман-
да log shmem) - происходит обновление cni-правил.
service ids rules upgrade <DEV>
По этой команде выполняется обновление встроенных системных правил из указанного архи-
ва. Тип архива должен быть gz или bz2.
В случае успешного выполнения обновления правил будет выведено сообщение (пример):
Info: Rules successfully upgraded to version 2013.05.23 (type:std)
284
Перед обновлением осуществляются следующие проверки архива правил:
• должно быть наличие файла preproc_rules/sensitive-data.rules;
• должно быть наличие файла preproc_rules/decoder.rules;
• должно быть наличие файла preproc_rules/preprocessor.rules;
• должно быть наличие в директории etc следующих файлов: classification.config,
reference.config, sid-msg.map, snort.conf, threshold.conf, unicode.map;
• должно быть наличие в директории rules хотя бы одного файла с расширением rules (на-
пример: rules/x11.rules).
service ids rules downgrade
Эта команда выполняет отмену обновления встроенных системных правил из указанного ар-
хива к правилам, которые были изначально в данном релизе.
В случае успешного выполнения отката обновления правил будет выведено сообщение (при-
мер):
Info: Rules successfully downgraded to version 20120413.12:01:15 (type:std)
updatecheck <SRV> [TO]
Данная команда осуществляет проверку наличия более свежих правил (только std-правила),
чем те, что в системе уже установлены.
Параметры -
• SRV - это URL директории на сервере,где хранятся архивы правил.
• TO - период проверки (в часах, от 1 до 23).
При наличии свежих правил на сервере для их обновления в службе необходимо:
1. загрузить архив правил с сервера командой copy (для FTP-сервера), либо ssh get (для SSH-
сервера); имя архива правил имеет формат ANAME.tar.gz, либо ANAME.tar.bz2.
2. загрузить файл с эталонной контрольной суммой архива правил; имя этого файла имеет
формат CNAME.chk, где CNAME=ANAME (из п.1).
3. подсчитать контрольную сумму архива командой gostsum (см.Основы работы с интерфей-
сом командной строки: Команды работы с файлами)
4. сравнить подсчитанную контрольную сумму с эталонной контрольной суммой данного ар-
хива, которая указана в файле из п.2.
35.25
Примеры конфигураций
35.25.1
Пример 1.
Обнаружение ICMP-Echo-сообщения (пинг) из сети 192.168.33.0/24 .
285
iface ethernet 3
mode ids
log local
preprocessor frag
preprocessor stream
ruleset manual my
1 rule r
action alert
proto icmp
src 192.168.33.0/24
enable
35.25.2
Пример 2.
Обнаружение атак внутри текущей сети.
service ids
iface ethernet 3
mode ids
log local
1 ipvar homenet 192.168.33.0/24
preprocessor frag
instance my
detectanomalies
policy type linux
preprocessor stream
tracksessions icmp yes
tracksessions ip yes
instancetcp default
detectanomalies
policy linux
sessionhijacking
preprocessor portscan
detectackscans
log
protocol all
sense medium
type all
preprocessor priv
preprocessor http
alert proxy
codepage 861
instance default
ports 80 8080
profile apache
alert limit dirsize 300
alert limit reqheaders
30
286
alert decompression
alert normalize headers
alert normalize javascript 200
alert normalize utf
inspect client request 1000
inspect cookies
inspect methods connect put head
inspect server response 2000
log hostname
log uri
log xff
instance iis
matchip 192.168.0.1 192.168.1.1
ports 80 81 82
profile iis5
no alert proxy
ruleset decoder
ruleset detection icmp
ruleset preprocessor
ruleset privatedata
enable
Описание примененной конфигурации:
• Защищаемая сеть 192.168.33.0/24 , внешняя сеть - любая;
• Режим ids - обнаружение вторжений;
• Препроцессоры:
- stream (отслеживание всех сессий, аномалий TCP, атаки TCP MInM, linux политика);
- frag (аномалии фрагментации,политика linux);
- portscan (средняя чувствительность, ведение отдельного журнала препроцессора,все
типы сканирования портов, ack-сканирование);
- priv (частные данные);
* кодовая страница 861;
* для вэб-серверов 192.168.0.1/1.1 на портах 80-82 задейстован профиль IIS5; для
всех остальных - профиль Apache на портах 80 и 8080;
* предупреждения об использовании прокси-сервера для всех вэб-серверов, кроме
192.168.0.1/1.1 (профиль iis5); другие предупреждения и настройки;
• Журнал предупреждений: локальный, в файловую систему;
• Активированы все системные группы правил (часть из них по умолчанию отключена).
Тестирование работы:
• следует набрать с другой машины команду nmap -PN -v 192.168.33.xxx, где 192.168.33.xxx
- адрес интерфейса ethernet3, который указан в службе ids;
287
• следует посмотреть журналы предупреждений при помощи команд show service ids log
portscan/alerts;
• в журнале alerts должна появиться примерно такая запись: 02/07-18:26:09.293886 [* *]
[122:1:1] <NULL> portscan: TCP Portscan [* *];
• в журнале portscan - такая:
Time: 02/07/1318:26:09.293886
event_id: 51
192.168.33.144> 192.168.33.149 (portscan) TCP Portscan
Priority Count: 13
Connection Count: 15
IP Count: 1
Scanner IP Range: 192.168.33.144:192.168.33.144
Port/Proto Count: 15
Port/Proto Range: 21:8888
35.25.3
Пример 3.
iface ethernet 0
mode ids
1 ipvar homenet 192.168.33.0/24 83.1.2.3
2 ipvar externalnet !homenet
daq snaplen 1514
perfmon events flow flowip 10
daq bufsize 32
decoder checksum calc all
decoder esp
decoder teredo
detection searchmethod acbnfa nostreaminserts
log postgresql ethernet 2 192.168.33.160 full
preprocessor frag
limit memory 1000 1000
instance default
detectanomalies
policy type linux
preprocessor stream
limit memory 16000
tracksessions icmp yes
tracksessions ip yes
tracksessions tcp yes
tracksessions udp yes
instancetcp default
policy linux
sessionhijacking
timeout 30
preprocessor portscan
288
detectackscans
log
protocol all
sense high
type all
watch 83.220.32.68 83.220.32.70
192.168.33.254
preprocessor rpc
alert fragments
preprocessor http
alert proxy
limit compressedsize 5000
limit memory decompress 1000
limit memory log 3000
instance default
profile apache
alert decompression
alert normalize cookies
alert normalize headers
alert normalize javascript 100
alert normalize utf
log hostname
log xff
preprocessor smtp
inspect ignoredata
inspect mode stateful
ports 25
preprocessor ftptelnet
alert encryptedtraffic yes continue
alert telnetanomalies
alert telnetayt 50
inspection mode stateful
telnetnormalize
telnetports 23
instanceftpserver default
ports 21
alert limit paramlen 256
instanceftpclient default
alert bounce yes
alert telnetesc yes
preprocessor ssh
ports 22
alert baddirection
alert crc32exploit
alert invalidpayloadsize
alert maxclientbytes 19600
alert maxversionlength 80
alert nonsshports
alert nonsshtraffic
289
alert protomismatchexploit
alert responseoverflowexploit
alert seccrtexploit
inspection maxencryptedpackets
10
preprocessor dns
ports 53
alert experimentalrrs
alert obsoletedrrs
alert rdataoverflow
preprocessor ssltls
preprocessor arp
alert unicast
preprocessor priv
alert privatedata 10
preprocessor dcerpc
alert all
limit memory 10000
preprocessor norm
icmp
ip base
tcp base
preprocessor rep
limit memory 1000
ruleset decoder
ruleset detection backdoor
ruleset detection botnetcnc
ruleset detection chat
ruleset detection ddos
ruleset detection dns
ruleset detection exploit
ruleset detection fileidentify
ruleset detection fileother
ruleset detection ftp
ruleset detection icmp
ruleset detection icmpinfo
ruleset detection misc
ruleset detection nntp
ruleset detection phishingspam
ruleset detection policy
ruleset detection policyother
ruleset detection policysocial
ruleset detection puap2p
ruleset detection rpc
ruleset detection scan
ruleset detection servermail
ruleset detection shellcode
ruleset detection smtp
ruleset detection snmp
290
ruleset detection spywareput
ruleset detection sql
ruleset detection telnet
ruleset detection tftp
ruleset detection webactivex
ruleset detection webattacks
ruleset detection webcgi
ruleset detection webclient
ruleset detection webcoldfusion
ruleset detection webiis
ruleset detection webmisc
ruleset detection webphp
ruleset detection x11
ruleset preprocessor
ruleset privatedata
enable
35.25.4
Примеры правил
Рассмотрим далее различные полезные правила.
35.25.4.1
Блокировка подбора SSH-пароля
Правило делает невозможным попытки SSH-соединения с одного и того же IP-адреса чаще
чем 3 раза за 10 секунд:
1 rule ssh
action drop
proto tcp
dport 22
header tcpflags syn
postdet detectionfilter src 3/10
35.26
Установка базы данных Postgres
В локальной сети, в которой находится
со службой IDS, необходимо установить базу
данных Postgres. В данную базу данных служба IDS Diosni-NX будет передавать информацию о
предупреждениях.
В данной инструкции предполагается, что используется пользователь snort и база данных
snortdb:
• sudo su -
• apt-get install postgresql
291
passwd postgres : задайте пароль пользователю postgres
su postgres : войдите под пользователем postgres
createuser -P snort : создайте пользователя базы данных; пароль пользователя: pass
Enter password for new role: *****
Enter it again: *****
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
createdb -O snort snortdb : создаем базу данных snortdb
Проверьте содержимое файла /etc/postgresql/9.1/main/pg_hba.conf , в нем должны быть
такие строки (сеть 192.168.33.0/24 замените на сеть, в которой находится служба IDS):
local all
postgres
peer
local all
all
trust
host all
all
127.0.0.1/32
trust
host all
all
192.168.33.0/24
md5
postgresql ; приведем его содержимое здесь:
CREATE TABLE schema ( vseq INT4 NOT NULL, ctime TIMESTAMP with time zone NOT NULL,
PRIMARY KEY (vseq));
INSERT INTO schema (vseq, ctime) VALUES (’107’, now());
CREATE TABLE signature ( sig_id SERIAL NOT NULL, sig_name TEXT NOT NULL, sig_class_id INT8,
sig_priority INT8, sig_rev INT8, sig_sid INT8, sig_gid INT8, PRIMARY KEY (sig_id));
CREATE INDEX sig_name_idx ON signature (sig_name);
CREATE INDEX sig_class_idx ON signature (sig_class_id);
CREATE TABLE sig_reference (sig_id INT4 NOT NULL, ref_seq INT4 NOT NULL, ref_id INT4 NOT
NULL, PRIMARY KEY(sig_id, ref_seq));
CREATE TABLE reference ( ref_id SERIAL, ref_system_id INT4 NOT NULL, ref_tag TEXT NOT NULL,
PRIMARY KEY (ref_id));
CREATE TABLE reference_system ( ref_system_id SERIAL, ref_system_name TEXT, PRIMARY KEY
(ref_system_id));
CREATE TABLE sig_class ( sig_class_id SERIAL, sig_class_name TEXT NOT NULL, PRIMARY KEY
(sig_class_id) );
CREATE INDEX sig_class_name_idx ON sig_class (sig_class_name);
CREATE TABLE event ( sid INT4 NOT NULL, cid INT8 NOT NULL, signature INT4 NOT NULL,
timestamp timestamp with time zone NOT NULL, PRIMARY KEY (sid,cid));
CREATE INDEX signature_idx ON event (signature);
CREATE INDEX timestamp_idx ON event (timestamp);
CREATE TABLE sensor ( sid SERIAL, hostname TEXT, interface TEXT, filter TEXT, detail INT2,
encoding INT2, last_cid INT8 NOT NULL, PRIMARY KEY (sid));
CREATE TABLE iphdr ( sid INT4 NOT NULL, cid INT8 NOT NULL, ip_src INT8 NOT NULL, ip_dst INT8
NOT NULL, ip_ver INT2, ip_hlen INT2, ip_tos INT2, ip_len INT4, ip_id INT4, ip_flags INT2,
ip_off INT4, ip_ttl INT2, ip_proto INT2 NOT NULL, ip_csum INT4, PRIMARY KEY (sid,cid));
292
CREATE INDEX ip_src_idx ON iphdr (ip_src);
CREATE INDEX ip_dst_idx ON iphdr (ip_dst);
CREATE TABLE tcphdr( sid INT4 NOT NULL, cid INT8 NOT NULL, tcp_sport INT4 NOT NULL,
tcp_dport INT4 NOT NULL, tcp_seq INT8, tcp_ack INT8, tcp_off INT2, tcp_res INT2,
tcp_flags INT2 NOT NULL, tcp_win INT4, tcp_csum INT4, tcp_urp INT4, PRIMARY KEY
(sid,cid));
CREATE INDEX tcp_sport_idx ON tcphdr (tcp_sport);
CREATE INDEX tcp_dport_idx ON tcphdr (tcp_dport);
CREATE INDEX tcp_flags_idx ON tcphdr (tcp_flags);
CREATE TABLE udphdr( sid INT4 NOT NULL, cid INT8 NOT NULL, udp_sport INT4 NOT NULL,
udp_dport INT4 NOT NULL, udp_len INT4, udp_csum INT4, PRIMARY KEY (sid,cid));
CREATE INDEX udp_sport_idx ON udphdr (udp_sport);
CREATE INDEX udp_dport_idx ON udphdr (udp_dport);
CREATE TABLE icmphdr( sid INT4 NOT NULL, cid INT8 NOT NULL, icmp_type INT2 NOT NULL,
icmp_code INT2 NOT NULL, icmp_csum INT4, icmp_id INT4, icmp_seq INT4, PRIMARY KEY
(sid,cid));
CREATE INDEX icmp_type_idx ON icmphdr (icmp_type);
CREATE TABLE opt ( sid INT4 NOT NULL, cid INT8 NOT NULL, optid INT2 NOT NULL, opt_proto INT2
NOT NULL, opt_code INT2 NOT NULL, opt_len INT4, opt_data TEXT, PRIMARY KEY
(sid,cid,optid));
CREATE TABLE data ( sid INT4 NOT NULL, cid INT8 NOT NULL, data_payload TEXT, PRIMARY KEY
(sid,cid));
CREATE TABLE encoding(encoding_type INT2 NOT NULL, encoding_text TEXT NOT NULL, PRIMARY
KEY (encoding_type));
INSERT INTO encoding (encoding_type, encoding_text) VALUES (0, ’hex’);
INSERT INTO encoding (encoding_type, encoding_text) VALUES (1, ’base64’);
INSERT INTO encoding (encoding_type, encoding_text) VALUES (2, ’ascii’);
CREATE TABLE detail (detail_type INT2 NOT NULL, detail_text TEXT NOT NULL, PRIMARY KEY
(detail_type));
INSERT INTO detail (detail_type, detail_text) VALUES (0, ’fast’);
INSERT INTO detail (detail_type, detail_text) VALUES (1, ’full’);
• cat create_postgresql | psql snortdb snort : создаете таблицы базы данных для службы IDS
• psql snortdb snort -c «grant all privileges on database snortdb to snort;»
• psql snortdb snort -c «GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO snort;»
• проверьте что все хорошо: psql snortdb snort -c «\dp» должна выдать следующие права на
все таблицы: snort=arwdDxt/snort, где snort -имя пользователя
• В файле /etc/postgresql/9.1/main/postgresql.conf добавьте(измените) следующие строки:
- listen_addresses = ‘192.168.33.160,127.0.0.1’ - адрес на котором слушать запросы к
БД; адрес 192.168.33.160 замените на адрес, который доступен узлу службы IDS.
• /etc/init.d/postgresql restart : перезапустите postgresql
293
35.27
Установка клиента просмотра базы данных BASE
Бывает удобно использовать web-клиент для работы с базой данных предупреждений. Напри-
мер, существует такой клиент,как BASE. Рассмотрим шаги по его установке.
• apt-get install apache2 libapache2-mod-php5 php5-gd php5-pgsql libphp-adodb
• добавьте в файл /etc/php5/apache2/php.ini:
extension=pgsql.so
extension=gd.so
скачайте последнюю версию BASE с http://sourceforge.net/projects/secureideas/
files/BASE/
распакуйте файлы архива BASE в директорию /var/www/base
установите права chown -R www-data:www-data /var/www/base
cd /var/www/base
cp base_conf.php.dist base_conf.php
отредактируйте файл так чтобы следующие параметры были такими:
$BASE_Language = ’russian’;
$Use_Auth_System = 0;
$BASE_urlpath = ’/base’;
$DBlib_path = ’/usr/share/php/adobd’;
$DBtype = ’postgres’;
$alert_dbname
= ’snortdb’;
$alert_host
= ’192.168.33.160’;
$alert_port
= ’5433’; порт, указанный в файле
/etc/postgresql/9.1/main/postgresql.conf
$alert_user
= ’snort’;
$alert_password = ’pass’;
$archive_exists
= 0;
/etc/init.d/apache2 restart
Откройте в браузере http://localhost/base/base_db_setup.php
Нажмите кнопку Create BASE AG
Далее заходить нужно через http://localhost/base/index.php
если нужно добавьте пользователей через Administrtion и в ключите заново систему аутен-
тификации в /var/www/base/base_main.php: Use_Auth_System = 1;
294
295
36. Служба IDSSUR
Система имеет службу предупреждения и предотвращения вторжений idssur. Основное от-
личие от службы IDS - большая производительность.
36.1
Режимы
Служба IDSSUR может работать в двух режимах:
• ids - система обнаружения вторжений;
• ips - система обнаружения и предупреждения вторжений.
36.2
Переменные
В службе есть понятие именованных переменных, которые могут быть двух типов:
• ipvar - именованная переменная, хранящая IP-адреса;
• portvar - именованная переменная, хранящая порты.
Существуют предопределенные наборы системных переменных обоих типов, имеющие неко-
торые стандартные значения, например: «portvar ssh-ports 22 1022», т.е. переменная с именем
ssh-ports равная набору чисел 22,1022, определяющих набор SSH-портов. Смысл переменной
приведен не в ее определении, а в определении правила, использующего ее.
Системные переменные, показываемые по авто-дополнению команды ipvar/portvar, использу-
ются в системном наборе правил. Их можно изменять, но нельзя удалять.
Пользовательские переменные, в свою очередь, могут создаваться,удаляться и изменяться
пользователем по своему усмотрению. Они могут быть использованы в пользовательских прави-
лах.
Для определения своей, либо переопределения системной именованной переменной следует
использовать следующие команды.
portvar <NAME> <{[!]PORT1[:PORT2]|any|NAME2},8>
Эта команда задает переменную NAME, определяющую набор портов: NAME2 - другая, заранее
определенная portvar-переменная, PORT1:PORT2 - интервал портов, PORT1 - отдельный порт,
знак “!” - отрицание набора портов/порта.
ipvar <NAME> <{[!]IP1[:IP2]|any|NAME2},8>
Эта команда задает переменную NAME, определяющую набор IP-адресов. Формат аналогичен
команде portvar.
296
36.3
Начальная настройка
Вначале необходимо определиться с методом перехвата трафика: nfq или af-packet.
active-capmode <nfq|afp>
Эта команда задает используемый в службе метод перехвата трафика. Метод afp работает
быстрее, чем nfq.
Далее необходимо задать интерфейсы, трафик которых необходимо анализировать.
36.3.1
Режим NFQ
В данном режиме перехвата трафика необходимо задать пары интерфейсов, которые будут
анализироваться.
Для входа в настройки режима NFQ выполните команду:
capmode nfq
Если не задать ничего, будет анализироваться весь трафик всех интерфейсов:
iface-pair <IFACE_IN> <IFACE_OUT>
Интерфейс IFACE_IN задает интерфейс входящего трафика, IFACE_OUT - исходящего. Это
относится как к прямым, так и транзитным пакетам, приходящим на интерфейс IFACE_IN и марш-
рутизируемым на интерфейс IFACE_OUT.
36.3.2
Режим AFP
В конфигурации режима afp есть настройки по умолчанию и настройки для конкретных интер-
фейсов, трафик которых подлежит перехвату и анализу. Специфичные настройки интерфейсов
переопределяют настройки по умолчанию.
Для входа в настройки режима AFP выполните команду:
capmode afp
Для выхода в режим настройки интерфейса следует выполнить команду:
iface <IFACE>
Параметр IFACE задает интерфейс входящего трафика.
threads <NUM>
Эта команда задает число потоков получения трафика.
По умолчанию: 1.
297
36.3.2.1
Настройка интерфейса в режиме AFP
buffer-size <N>
Эта команда задает размер буфера приема трафика (Кб). Большее значение может увеличить
производительность.
emergency-flush
Эта команда задает восстановление из фазы отбрасывания пакетов. Данная опция может по-
мочь при высокой нагрузке.
cksum <yes|no|auto>
Эта команда предписывает включить (yes) или выключить(no) проверку контрольной суммы
пакетов. В режиме auto служба сама определяет, что делать.
cluster-id <ID>
Эта команда задает идентификатор кластера. Данный параметр нужен для балансировки на-
грузки на основе потока.
cluster-type <flow|cpu>
Эта команда задает режим балансировки нагрузки для кластера:
• flow - все пакеты данного потока направляются в один и тот же сокет;
• cpu - все пакеты данного процессора направляются в один и тот же сокет.
По умолчанию: режим балансировки Round-Robin.
copy-to <IFACE> <ips|ids>
Эта команда задает интерфейс, куда следует копировать трафик, полученный с интерфейса,
в конфигурации которого находится данная команда.
Параметр ips говорит о том, что в случае срабатывания на пакет drop-правила, пакет далее
не копируется на указанный интерфейс.
Параметр ids говорит о том, что в случае срабатывания на пакет drop-правила, пакет все равно
копируется на указанный интерфейс. Т.е. блокирования подозрительных пакетов не происходит.
defrag <yes|no>
Эта команда определяет, включить или выключить дефрагментацию пакетов в ядре. Если
включено (yes): ядро выполняет дефрагментацию перед посылкой пакета. Если выключено (no):
ядро не выполняет дефрагментацию перед посылкой пакета.
no promisc
Эта команда предписывает выключить неразборчивый режим.
ring-size <VAL>
Эта команда устанавливает размер кольцевого буфера.
По умолчанию: размер кольцевого буфера равен (pp * 2 / nt), где
• pp - это значение, определяемое командой limit pending-packets;
• nt - это значение определяемое командой threads.
298
36.4
Общие настройки.
policy <POL> {<NET>,8}
Эта команда задает привязку типа обработки фрагментов и слежения за сессиями к сетевым
адресам. Т.е. определяет политику подсистемы дефрагментации и подсистемы сессий.
Возможные политики POL: linux, macos, vista, windows2k3 и др.
runmode <auto|single|workers|autofp <round-robin|active-packets|hash> >
Эта команда устанавливает метод, по которому потоки выполнения, модули и очереди взаи-
модействуют вместе.
Возможные методы:
• auto - пакеты одного и того же сетевого потока могут быть обработаны любым потоком
выполнения подсистемы обнаружения;
• single - однопоточный режим;
• workers - каждый поток выполнения делает всю работу, начиная от выборки пакетов и
заканчивая ведением лога;
• autofp - пакеты из каждого сетевого потока обрабатываются специально потоком выполне-
ния подсистемы обнаружения, при этом балансировка нагрузки может быть выполнена по
алгоритмам: - round-robin - сетевые потоки назначаются для обработки потокам выполне-
ния циклически; - active-packets - сетевые потоки назначаются для обработки тем потокам
выполнения,которые имеют самое низкое число необработанных пакетов,т.е. наименее за-
нятым потокам; - hash - сетевые потоки назначаются для обработки потокам выполнения
на основе хэш IP-адресов, т.е. это по сути случайная баоансировка.
limit asn1-frames
Эта команда задает максимальное число отслеживаемых ASN1-фрэймов.
По умолчанию: 256.
limit packet-size
Эта команда задает заранее выделяемый размер памяти для пакета.
По умолчанию: 1514.
limit pending-packets
Эта команда задает максимальное число пакетов, ожидающих в очереди на обработку.
По умолчанию: 1024.
limit pcre
Эта команда задает параметры обработки с использованием регулярных выражений.
Параметры:
• match : максимальное число обрабатываемых совпадений при поиске по регулярным выра-
жениям;
• match-recursion : задает максимальное число обрабатываемых рекурсивных совпадений
при поиске по регулярным выражениям.
По умолчанию: 1500 и 3500.
299
36.5
Подсистема дефрагментации IP-пакетов.
Позволяет настроить опции подсистемы дефрагментации IP-пакетов.
Для входа в режим настройки опций следует ввести команду:
defragmentation
Далее следуют команды настройки подсистемы дефрагментации.
frags <NUM>
Эта команда задает максимальное число хранимых IP-фрагментов.
По умолчанию: 65535
hash-size <NUM>
Эта команда задает максимальное число записей хэш-таблицы подсистемы.
По умолчанию: 4096
memcap <VAL>
Эта команда задает максимальный объем памяти, выделяемый для подсистемы.
По умолчанию: 16мб.
timeout <NUM>
Эта команда задает таймаут (сек.),после которого будет прекращено слежение за фрагментом.
По умолчанию: 60 сек.
trakcers <NUM>
Эта команда задает максимальное число отслеживаемых дефрагментируемых потоков.
По умолчанию: 1000.
36.6
Подсистема сессий и соединений.
Позволяет настроить опции подсистемы сессий и соединений.
Для входа в режим настройки опций данной подсистемы следует ввести команду:
stream
Далее следуют команды настройки подсистемы.
tracking async
Эта команда предписывает следить за ассинхронными TCP-сессиями.
tracking cksum
Эта команда предписывает не обрабатывать пакеты с неверными контрольными суммами.
tracking memcap <VAL>
Эта команда задает максимальный размер памяти для подсистемы (байт).

 

 

 

 

 

 

 

содержание      ..     4      5      6      7     ..