为什么在此snort规则中EOF缺少'。

时间:2019-04-01 08:59:00

标签: http pcre snort

我有一个要输入IDS的snort规则。

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 :(得分:0)

您的问题出在HTTP标头中:

 /^HTTP/1.1 200...

PCRE使用正斜杠定界。您无意间在表达式中留了一个斜线。此外,您可能会不想在此处有一个点。您将需要进行以下调整:

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