Почему в этом правиле snort отсутствует EOF в '.'

У меня есть правило snort, которое я хочу импортировать в IDS.

alert tcp any any -> any any (msg:"FOX-IT - Trojan - Possible CobaltStrike C2 Server";
  flow:to_client;
  content:"HTTP/1.1 200 OK |0d0a|"; fast_pattern; depth:18;
  content:"Date: ";
  pcre:"/^HTTP/1.1 200 OK \r\nContent-Type: [^\r\n]{0,100}\r\nDate: [^\r\n]{0,100} GMT\r\n(Content-Length: \d+\r\n)\r\n/";
  threshold:type limit, track by_dst, count 1, seconds 600;
  classtype:trojan-activity; priority:2;
sid:21002217; rev:3;)

Я получаю сообщение об ошибке:

Ошибка проверки: недопустимый или неподдерживаемый токен PCRE: [...] ОШИБКА: неподдерживаемый синтаксис PCRE: отсутствует EOF в '.'

Когда я редактирую PCRE из

pcre:"/^HTTP/1.1 200 OK \r\nContent-Type: [^\r\n]{0,100}\r\nDate: [^\r\n]{0,100} GMT\r\n(Content-Length: \d+\r\n)\r\n/";

to

pcre:"/^HTTP 200 OK \r\nContent-Type: [^\r\n]{0,100}\r\nDate: [^\r\n]{0,100} GMT\r\n(Content-Length: \d+\r\n)\r\n/";

(поэтому удаляя /1.1), он говорит, что синтаксис действителен.

Как я могу это исправить?


person igs    schedule 01.04.2019    source источник
comment
Похоже, обратную косую черту после HTTP следует экранировать. В какую IDS и какую версию вы импортируете? Я напишу утром автору правила (коллеге).   -  person David    schedule 02.04.2019


Ответы (1)


Ваша проблема в заголовке HTTP:

 /^HTTP/1.1 200...

PCRE разделяется косой чертой. Вы непреднамеренно оставили косую черту на своем лице. Кроме того, у вас есть точка, которую вы, вероятно, не имеете в виду. Вы захотите внести коррективы, такие как:

 /^HTTP\/1\.1 200...
person David Hoelzer    schedule 14.04.2019