Описание правила

Все правила в СОВ имеют определенную структуру (тело правила) и пишутся с использованием специального синтаксиса. Рассмотрим общие принципы построения правила на примере:

alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"ET NETBIOS MS04-007 Kill-Bill ASN1 exploit attempt"; flow: established,to_server; content:"CCCC|20f0fd7f|SVWf"; reference:url,www.phreedom.org/solar/exploits/msasn1-bitstring/; reference:url,www.microsoft.com/technet/security/bulletin/MS04-007.mspx; reference:cve,CAN-2003-0818; reference:url,doc.emergingthreats.net/bin/view/Main/2001944; classtype:attempted-admin; sid:2001944; rev:7;)

Привило состоит из трех частей:

Действие может принимать одно из возможных значений (pass, drop, reject, alert). Однако, в СОВ в основном используются правила, содержащие действие alert, которые предполагают лишь предупреждение администратора о возможной атаке, без непосредственных действий над подозрительным пакетом.

Заголовок содержит информацию о протоколе (tcp), отправителе ($EXTERNAL_NET) и получателе ($HOME_NET), их портах (any - 445), а также о направлении движения пакета (->).

Указанный в правиле протокол определяет протокол пакета, который может попасть под данное правило. Например, при прописанном http-протоколе заданное правило действует только в рамках http-трафика. Возможны варианты протоколов – tcp, udp, icmp, ip; а также несколько протоколов прикладного уровня – http, ftp, tls (ssl), smb, dns.

В качестве значений параметров отправителя и получателя могут быть заданы как непосредственно IP-адреса, так и переменные (EXTERNAL_NET и HOME_NET), которые задаются в отдельном файле.

Значение порта прописывается рядом с переменными отправителя и получателя и указывает номер порта, с которого или на который направляется трафик. Порт отправителя обычно имеет значение any.

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

Опциональные параметры не влияют на исследование трафика СОВ, а лишь определяют представление записи об инциденте. Указываются в круглых скобках после заголовка.

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

alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"ET NETBIOS MS04-007 Kill-Bill ASN1 exploit attempt"; flow: established,to_server; content:"CCCC|20f0fd7f|SVWf"; reference:url,www.phreedom.org/solar/exploits/msasn1-bitstring/; reference:url,www.microsoft.com/technet/security/bulletin/MS04-007.mspx; reference:cve,CAN-2003-0818; reference:url,doc.emergingthreats.net/bin/view/Main/2001944; classtype:attempted-admin; sid:2001944; rev:7;)

Первая часть содержит имя файла сигнатуры и пишется заглавными буквами.

SID – уникальный числовой идентификатор правила. Значение параметра указывается после ключевого слова sid.

alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"ET NETBIOS MS04-007 Kill-Bill ASN1 exploit attempt"; flow: established,to_server; content:"CCCC|20f0fd7f|SVWf"; reference:url,www.phreedom.org/solar/exploits/msasn1-bitstring/; reference:url,www.microsoft.com/technet/security/bulletin/MS04-007.mspx; reference:cve,CAN-2003-0818; reference:url,doc.emergingthreats.net/bin/view/Main/2001944; classtype:attempted-admin; sid:2001944; rev:7;)

Версия прописывается сразу после SID и представляет собой версию модификации правила. Значение параметра указывается после ключевого слова rev.

alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"ET NETBIOS MS04-007 Kill-Bill ASN1 exploit attempt"; flow: established,to_server; content:"CCCC|20f0fd7f|SVWf"; reference:url,www.phreedom.org/solar/exploits/msasn1-bitstring/; reference:url,www.microsoft.com/technet/security/bulletin/MS04-007.mspx; reference:cve,CAN-2003-0818; reference:url,doc.emergingthreats.net/bin/view/Main/2001944; classtype:attempted-admin; sid:2001944; rev:7;)

Класс правила определяет принадлежность сигнатуры к определенному классу. Значение параметра указывается после ключевого слова classtype.

alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"ET NETBIOS MS04-007 Kill-Bill ASN1 exploit attempt"; flow: established,to_server; content:"CCCC|20f0fd7f|SVWf"; reference:url,www.phreedom.org/solar/exploits/msasn1-bitstring/; reference:url,www.microsoft.com/technet/security/bulletin/MS04-007.mspx; reference:cve,CAN-2003-0818; reference:url,doc.emergingthreats.net/bin/view/Main/2001944; classtype:attempted-admin; sid:2001944; rev:7;)

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

alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"ET NETBIOS MS04-007 Kill-Bill ASN1 exploit attempt"; flow: established,to_server; content:"CCCC|20f0fd7f|SVWf"; reference:url,www.phreedom.org/solar/exploits/msasn1-bitstring/; reference:url,www.microsoft.com/technet/security/bulletin/MS04-007.mspx; reference:cve,CAN-2003-0818; reference:url,doc.emergingthreats.net/bin/view/Main/2001944; classtype:attempted-admin; sid:2001944; rev:7;)

Ссылки могут быть нескольких типов (system, bugtraq, cve, nessus, arachnids, mcafee, url). Тип ссылки указывается в начале и разделяется запятой от самого значения.

Поток указывает направление движения пакетов от (к) клиента или от (к) сервера, прием значения to_client и from_server равнозначны, так же, как и from_client и to_server. Данный параметр также определяет, установлена сессия (established) или нет, без сохранения состояния (stateless), а также должно ли правило распространяться на весь поток (only_stream) или только на отдельные пакеты (no_stream). Значение параметра указывается после ключевого слова flow.

alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"ET NETBIOS MS04-007 Kill-Bill ASN1 exploit attempt"; flow: established,to_server; content:"CCCC|20f0fd7f|SVWf"; reference:url,www.phreedom.org/solar/exploits/msasn1-bitstring/; reference:url,www.microsoft.com/technet/security/bulletin/MS04-007.mspx; reference:cve,CAN-2003-0818; reference:url,doc.emergingthreats.net/bin/view/Main/2001944; classtype:attempted-admin; sid:2001944; rev:7;)

Содержание является очень важной частью правила и содержит значение сигнатуры в байтах (0-255) или буквах (a-z). Могут использоваться верхний и нижний регистры, а также символы. Для непечатаемых символов используется шестнадцатеричное представление. Многие языки программирования используют формат 0x00, однако синтаксис сигнатур приписывает |00| для шестнадцатеричного обозначения. Этот формат также может быть использован и для печатаемых символов. Значение параметра указывается после ключевого слова content.

alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"ET NETBIOS MS04-007 Kill-Bill ASN1 exploit attempt"; flow: established,to_server; content:"CCCC|20f0fd7f|SVWf"; reference:url,www.phreedom.org/solar/exploits/msasn1-bitstring/; reference:url,www.microsoft.com/technet/security/bulletin/MS04-007.mspx; reference:cve,CAN-2003-0818; reference:url,doc.emergingthreats.net/bin/view/Main/2001944; classtype:attempted-admin; sid:2001944; rev:7;)

 

Существуют и другие параметры, указываемые в правиле. Для получения более подробной информации рекомендуем воспользоваться сторонними источниками, например: https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricata_User_Guide.