Почему в этом правиле фырканья EOF отсутствует в '.' - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть правило фырканья, которое я хочу импортировать в 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/";

до

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), он говорит, что синтаксис действителен.

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

1 Ответ

0 голосов
/ 14 апреля 2019

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

 /^HTTP/1.1 200...

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

 /^HTTP\/1\.1 200...
...