Назад | Перейти на главную страницу

Как сделать срабатывание правила на DNS rdata / IP-адресе?

В настоящее время у меня есть следующее правило оповещения о запросах DNS, настроенное в Suricata (в целях тестирования):

 alert dns any any -> any any (msg:”Test dns_query option”; dns_query; content:”google”; nocase; sid:1;)

Что срабатывает, когда он захватывает события DNS, содержащие слово "google", например, в этом пакете:

{"timestamp":"2017-06-08T15:58:59.907085+0000","flow_id":1798294020028434,"in_iface":"ens33","event_type":"dns","src_ip":"172.16.10.132","src_port":53,"dest_ip":"192.168.160.140","dest_port":52385,"proto":"UDP","dns":{"type":"answer","id":57334,"rcode":"NOERROR","rrname":"www.google.com","rrtype":"A","ttl":300,"rdata":"172.217.12.164"}}

Однако вместо поиска имен записей ресурсов, содержащих слово «google», я хочу использовать тот же тип предупреждения для запуска по IP-адресам, которые разрешаются для обратной петли, как в случае со следующим пакетом (обратите внимание на rdata поле):

{"timestamp":"2017-06-08T15:59:37.120927+0000","flow_id":36683121284050,"in_iface":"ens33","event_type":"dns","src_ip":"172.16.10.132","src_port":53,"dest_ip":"192.168.160.140","dest_port":62260,"proto":"UDP","dns":{"type":"answer","id":53553,"rcode":"NOERROR","rrname":"outlook1.us","rrtype":"A","ttl":120,"rdata":"127.0.0.1"}}

Как я заметил, contentРаздел правила Suricata ищет только строку. Мое текущее правило срабатывает при текстовом совпадении с rrname / domain, как мне сделать так, чтобы правило срабатывало на rdata / IP-адресе?

p.s. Просто из любопытства я попытался заменить «google» в разделе содержимого моего предупреждения на «127.0.0.1», и это тоже не сработало, как и ожидалось.

IP-адрес - это всего лишь 32-битное число. В правиле IP должен быть представлен в виде шестнадцатеричного значения, а не строки, в целях эффективности и экономии полосы пропускания (строка будет иметь размер 8+ байтов, а не 4 байта).

Вот мое последнее правило Suricata, чтобы предупреждать всякий раз, когда кто-то попадает в петлю в моей сети:

alert dns any any -> any any (msg:"BLACKLISTED DOMAIN"; content:"|7F 00 00 01|"; sid:1;)