{"id":718,"date":"2015-12-20T10:49:41","date_gmt":"2015-12-20T09:49:41","guid":{"rendered":"http:\/\/www.netnea.com\/cms\/?p=718"},"modified":"2015-12-20T21:54:19","modified_gmt":"2015-12-20T20:54:19","slug":"modsec-crs-2-2-x-vs-3-0-0-dev","status":"publish","type":"post","link":"https:\/\/www.netnea.com\/cms\/2015\/12\/20\/modsec-crs-2-2-x-vs-3-0-0-dev\/","title":{"rendered":"OWASP ModSecurity Core Rules: Comparing 2.2.x and 3.0.0-dev"},"content":{"rendered":"<p>It has been a while since we have seen big development in the OWASP ModSecurity Core Rules. This is due to the fact, that the development took place in a separate branch named 3.0.0-dev which adopts many of the newer features and operators included in ModSecurity since 2.7; notably @detectSQLi and @detectXSS. When you take a closer look at the new rules, you realize quickly, that the whole file structure has been adopted. It looks quite unfamiliar if you got used to the 2.2.X rulesets.<\/p>\n<p>I want to understand the differences between the rulesets and given the fact we are talking of several hundred rules, reading them one by one or following the changelog seems a daunting task. Let&#8217;s take a more behavioristic approach. Let&#8217;s see them in action.<\/p>\n<p>The idea here is to setup two servers, one with Core Rules v2.2.9 and one with Core Rules v3.0.0-dev. Then configure a minimal set of local pages and have a vulnerability scanner examine the site. This won&#8217;t be a sophisticated venture into securing a site, but rather a report on how v2.2.9 reacts to a scan and what v3.0.0-dev does with the same requests.<\/p>\n<p>For quick access and simplicity I used nmap first. Nmap comes with a lot of http scanning scripts and I ran them all one after another. However, they are more reconnaissance tools than attack scripts, so most of the requests went unnoticed by ModSecurity (well outside of thousands of fuzzying requests which were blocked with a 414). So I switched over to nikto. Nikto is not the newest scanner (and my version 2.1.4 is not the latest), but it&#8217;s very quick. And it is an attack scanner firing thousands of http exploits at a server. ModSecurity is alarmed by a lot of these, so we actually end up with many alerts and thus enough data to compare the two Core Rule versions.<\/p>\n<p>Nikto has been called with the following commando:<tt><br \/>\n$&gt; nikto -h localhost -p 80<br \/>\n<\/tt><\/p>\n<p>Core Rules v2.2.9 would let nikto carry out its tasks. But with v3.0.0-dev, there is a new feature: IP repudiation. As soon as the scanner had ramped up, ModSecurity realized what we are up to and started to block the source IP. This is done via an internal collection and based on the setting of the variable IP:BLOCK, rule 981140 will skip all further processing and rule 981175 will block the client IP. That&#8217;s a good feature. I do not know about false positives and I would not be surprised if legitimate users would be blocked by this rule. However, there is no need to allow a scanner to run thousands of requests against a website without reaction. In production some tuning might be due. In our case, tuning is also necessary, since the blocking mechanism cloaks the other rules which are not being executed. So I disabled the ip blocking as follows:<\/p>\n<p><tt><br \/>\n# No Blocking via IP repudiation, based on previous requests<br \/>\nSecRuleRemoveById 981140<br \/>\nSecRuleRemoveById 981175<br \/>\n<\/tt><\/p>\n<p>Then I reran the test and ended up with 6179 requests for both rulesets.<\/p>\n<p>Here is a graphical overview over the distribution of the anomaly scores:<\/p>\n<p><a href=\"http:\/\/www.netnea.com\/cms\/wp-content\/uploads\/2015\/12\/modsec-positive-stats.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-721\" src=\"http:\/\/www.netnea.com\/cms\/wp-content\/uploads\/2015\/12\/modsec-positive-stats.png\" alt=\"modsec-positive-stats\" width=\"770\" height=\"373\" \/><\/a><\/p>\n<p>And here the statistical data (generated using <a href=\"https:\/\/github.com\/Apache-Labor\/labor\/blob\/master\/bin\/modsec-positive-stats.rb\">modsec-positive-stats.rb<\/a>):<\/p>\n<pre>\r\n<code>\r\n\t\t\t\t  Core Rules v2.2.9  | Core Rules v3.0.0-dev\r\nINCOMING                     Num of req. | % of req. |# of req| % of req. \r\nNumber of incoming req. (total) |   6197 | 100.0000% |   6197 | 100.0000% \r\n\r\nEmpty or miss. incoming score   |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of   0 |    217 |   3.5016% |    217 |   3.5016%\r\nReqs with incoming score of   1 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of   2 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of   3 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of   4 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of   5 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of   6 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of   7 |      0 |   0.0000% |   2826 |  45.6027%\r\nReqs with incoming score of   8 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of   9 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  10 |   2850 |  45.9899% |    197 |   3.1789%\r\nReqs with incoming score of  11 |      0 |   0.0000% |      2 |   0.0322%\r\nReqs with incoming score of  12 |      0 |   0.0000% |     80 |   1.2909%\r\nReqs with incoming score of  13 |    201 |   3.2435% |      0 |   0.0000%\r\nReqs with incoming score of  14 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  15 |    142 |   2.2914% |     19 |   0.3065%\r\nReqs with incoming score of  16 |      3 |   0.0484% |      6 |   0.0968%\r\nReqs with incoming score of  17 |      0 |   0.0000% |    117 |   1.8880%\r\nReqs with incoming score of  18 |     52 |   0.8391% |     67 |   1.0811%\r\nReqs with incoming score of  19 |      2 |   0.0322% |      0 |   0.0000%\r\nReqs with incoming score of  20 |   2113 |  34.0971% |     26 |   0.4195%\r\nReqs with incoming score of  21 |     16 |   0.2581% |     25 |   0.4034%\r\nReqs with incoming score of  22 |      1 |   0.0161% |   2195 |  35.4203%\r\nReqs with incoming score of  23 |     76 |   1.2263% |      0 |   0.0000%\r\nReqs with incoming score of  24 |     93 |   1.5007% |      0 |   0.0000%\r\nReqs with incoming score of  25 |    155 |   2.5012% |      4 |   0.0645%\r\nReqs with incoming score of  26 |     16 |   0.2581% |      1 |   0.0161%\r\nReqs with incoming score of  27 |      5 |   0.0806% |    182 |   2.9369%\r\nReqs with incoming score of  28 |     11 |   0.1775% |      2 |   0.0322%\r\nReqs with incoming score of  29 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  30 |     13 |   0.2097% |      7 |   0.1129%\r\nReqs with incoming score of  31 |      8 |   0.1290% |      1 |   0.0161%\r\nReqs with incoming score of  32 |     23 |   0.3711% |    125 |   2.0171%\r\nReqs with incoming score of  33 |      5 |   0.0806% |      0 |   0.0000%\r\nReqs with incoming score of  34 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  35 |      6 |   0.0968% |     12 |   0.1936%\r\nReqs with incoming score of  36 |      0 |   0.0000% |     21 |   0.3388%\r\nReqs with incoming score of  37 |      0 |   0.0000% |     27 |   0.4356%\r\nReqs with incoming score of  38 |      8 |   0.1290% |      0 |   0.0000%\r\nReqs with incoming score of  39 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  40 |      0 |   0.0000% |      2 |   0.0322%\r\nReqs with incoming score of  41 |      0 |   0.0000% |      7 |   0.1129%\r\nReqs with incoming score of  42 |      0 |   0.0000% |     14 |   0.2259%\r\nReqs with incoming score of  43 |      2 |   0.0322% |      0 |   0.0000%\r\nReqs with incoming score of  44 |      3 |   0.0484% |      1 |   0.0161%\r\nReqs with incoming score of  45 |      1 |   0.0161% |      3 |   0.0484%\r\nReqs with incoming score of  46 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  47 |      0 |   0.0000% |      5 |   0.0806%\r\nReqs with incoming score of  48 |     10 |   0.1613% |      0 |   0.0000%\r\nReqs with incoming score of  49 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  50 |      1 |   0.0161% |      0 |   0.0000%\r\nReqs with incoming score of  51 |      2 |   0.0322% |      0 |   0.0000%\r\nReqs with incoming score of  52 |      0 |   0.0000% |      1 |   0.0161%\r\nReqs with incoming score of  53 |     52 |   0.8391% |      0 |   0.0000%\r\nReqs with incoming score of  54 |      3 |   0.0484% |      0 |   0.0000%\r\nReqs with incoming score of  55 |      0 |   0.0000% |      1 |   0.0161%\r\nReqs with incoming score of  56 |     81 |   1.3070% |      0 |   0.0000%\r\nReqs with incoming score of  57 |      0 |   0.0000% |      1 |   0.0161%\r\nReqs with incoming score of  58 |      2 |   0.0322% |      0 |   0.0000%\r\nReqs with incoming score of  59 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  60 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  61 |      8 |   0.1290% |      0 |   0.0000%\r\nReqs with incoming score of  62 |      0 |   0.0000% |      1 |   0.0161%\r\nReqs with incoming score of  63 |      3 |   0.0484% |      0 |   0.0000%\r\nReqs with incoming score of  64 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  65 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  66 |      2 |   0.0322% |      0 |   0.0000%\r\nReqs with incoming score of  67 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  68 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  69 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  70 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  71 |      4 |   0.0645% |      0 |   0.0000%\r\nReqs with incoming score of  72 |      0 |   0.0000% |      1 |   0.0161%\r\nReqs with incoming score of  73 |      1 |   0.0161% |      0 |   0.0000%\r\nReqs with incoming score of  74 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  75 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  76 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  77 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  78 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  79 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  80 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  81 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  82 |      0 |   0.0000% |      1 |   0.0161%\r\nReqs with incoming score of  83 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  84 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  85 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  86 |      1 |   0.0161% |      0 |   0.0000%\r\nReqs with incoming score of  87 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  88 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  89 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  90 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  91 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  92 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  93 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  94 |      1 |   0.0161% |      0 |   0.0000%\r\nReqs with incoming score of  95 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  96 |      1 |   0.0161% |      0 |   0.0000%\r\nReqs with incoming score of  97 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  98 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of  99 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 100 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 101 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 102 |      1 |   0.0161% |      0 |   0.0000%\r\nReqs with incoming score of 103 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 104 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 105 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 106 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 107 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 108 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 109 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 110 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 111 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 112 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 113 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 114 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 115 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 116 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 117 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 118 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 119 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 120 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 121 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 122 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 123 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 124 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 125 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 126 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 127 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 128 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 129 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 130 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 131 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 132 |      1 |   0.0161% |      0 |   0.0000%\r\nReqs with incoming score of 133 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 134 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 135 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 136 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 137 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 138 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 139 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 140 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 141 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 142 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 143 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 144 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 145 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 146 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 147 |      0 |   0.0000% |      0 |   0.0000%\r\nReqs with incoming score of 148 |      1 |   0.0161% |      0 |   0.0000%\r\n\r\n2.2.9 \t   Avg:  15.8043  Median: 13.0000  Std. deviation:   9.5405\r\n3.0.0-dev  Avg:  14.3466  Median: 10.0000  Std. deviation:   8.7512\r\n\r\n\r\nOUTGOING                     Num of req. | % of req.  of req. | % of req. \r\nNumber of outgoing req. (total) |   6197 | 100.0000% |   6197 | 100.0000% \r\n                                                                          \r\nEmpty or miss. outgoing score   |      0 |   0.0000% |      0 |   0.0000% \r\nReqs with outgoing score of   0 |   6193 |  99.9354% |   6193 |  99.9354% \r\nReqs with outgoing score of   1 |      0 |   0.0000% |      0 |   0.0000% \r\nReqs with outgoing score of   2 |      0 |   0.0000% |      0 |   0.0000% \r\nReqs with outgoing score of   3 |      0 |   0.0000% |      0 |   0.0000% \r\nReqs with outgoing score of   4 |      4 |   0.0645% |      4 |   0.0645% \r\n\r\n2.2.9     Avg:   0.0026   Median:  0.0000  Std. deviation:   0.1016\r\n3.0.0-dev Avg:   0.0026   Median:  0.0000  Std. deviation:   0.1016\r\n<\/code>\r\n<\/pre>\n<p>So for 2.2.9, almost all nikto requests triggered at least two rules and ended up with a<br \/>\nscore of 10 or above. That is not the case with the 3.0.0-dev ruleset. Here, almost half of<br \/>\nthe requests stayed below 10. But mind you, we disabled the rule 981175, which would<br \/>\nhave stopped almost all these requests. An interesting feature of the new ruleset is<br \/>\nthe cluster at the score of 22. This is higher than a similar cluster of the v2.2.9<br \/>\nruleset at 20. So in this midrange, a lot of requests score a bit higher with the<br \/>\nnew ruleset.<\/p>\n<p>The highest substantial cluster of requests with the v3.0.0-dev ruleset hit a score of<br \/>\n32. With the old v2.2.9 rules, we have a cluster at a score of 56. The highest scoring<br \/>\nrequest with the v3.0.0-dev ruleset came in at 82:<\/p>\n<p>&#8220;GET \/submit.php?subject=&lt;script&gt;alert(&#8216;Vulnerable&#8217;)&lt;\/script&gt;&amp;story=&lt;script&gt;alert(&#8216;Vulnerable&#8217;)&lt;\/script&gt;&amp;storyext=&lt;script&gt;alert(&#8216;Vulnerable&#8217;)&lt;\/script&gt;&amp;op=Preview HTTP\/1.1&#8221;<\/p>\n<p>This request has the nikto test ID 000786. With the v2.2.9 ruleset, the very same<br \/>\nrequest scored 148.<\/p>\n<p>So in the higher range, v2.2.9 seems to lead to higher scores. When we look at the<br \/>\naverage and the median, they are slightly higher for 2.2.9 and the results<br \/>\nseem to be a bit more stretched out according to the standard deviation.<\/p>\n<p>Now scoring a bit lower than before is no fault in itself. It all depends on the anomaly<br \/>\nthreshold which you set. So when migrating adjusting the anomaly setting seems<br \/>\nimportant. A threshold of 10 would have stopped over 95% of all nikto requests with<br \/>\nthe v2.2.9 ruleset. With the new one, almost 50% of the requests stay below 10.<\/p>\n<p>With the http responses, there was no difference in my tests. That is not surprising, as<br \/>\nthere is no application to exploit and thus no interesting responses to scan.<\/p>\n<p>Let&#8217;s move to the rules themselves. Which rules are actually scoring? Here is an overview.<\/p>\n<table style=\"page-break-before: always;\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td><strong>v2.2.9\u00a0RuleID<\/strong><\/td>\n<td><strong>v2.2.9\u00a0Description<\/strong><\/td>\n<td><strong>Hits<\/strong><\/td>\n<td><\/td>\n<td><strong>Hits<\/strong><\/td>\n<td><strong>v3.0.0-dev\u00a0Description<\/strong><\/td>\n<td><strong>v3.0.0-dev\u00a0RuleID<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950000<\/td>\n<td style=\"border: none; padding: 0in;\">Session Fixation<\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">0<\/td>\n<td style=\"border: none; padding: 0in;\">Rule not triggering anymore in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\">950000<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950001<\/td>\n<td style=\"border: none; padding: 0in;\">SQL Injection Attack<\/td>\n<td style=\"border: none; padding: 0in;\">5<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">3<\/td>\n<td style=\"border: none; padding: 0in;\">SQL Injection Attack<\/td>\n<td style=\"border: none; padding: 0in;\">950001<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950005<\/td>\n<td style=\"border: none; padding: 0in;\">Remote File Access Attempt<\/td>\n<td style=\"border: none; padding: 0in;\">223<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">219<\/td>\n<td style=\"border: none; padding: 0in;\">OS File Access Attempt<\/td>\n<td style=\"border: none; padding: 0in;\">950005<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950006<\/td>\n<td style=\"border: none; padding: 0in;\">System Command Injection<\/td>\n<td style=\"border: none; padding: 0in;\">6<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950011<\/td>\n<td style=\"border: none; padding: 0in;\">SSI injection Attack<\/td>\n<td style=\"border: none; padding: 0in;\">3<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950103<\/td>\n<td style=\"border: none; padding: 0in;\">Path Traversal Attack<\/td>\n<td style=\"border: none; padding: 0in;\">178<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">190<\/td>\n<td style=\"border: none; padding: 0in;\">Path Traversal Attack (\/..\/)<\/td>\n<td style=\"border: none; padding: 0in;\">950103<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">New rule in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">259<\/td>\n<td style=\"border: none; padding: 0in;\">Path Traversal At (\/..\/)<\/td>\n<td style=\"border: none; padding: 0in;\">950104<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950107<\/td>\n<td style=\"border: none; padding: 0in;\">URL Encoding Abuse Attack Attempt<\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\">URL Encoding Abuse Attack Attempt<\/td>\n<td style=\"border: none; padding: 0in;\">950107<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950109<\/td>\n<td style=\"border: none; padding: 0in;\">Multiple URL Encoding Detected<\/td>\n<td style=\"border: none; padding: 0in;\">67<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">67<\/td>\n<td style=\"border: none; padding: 0in;\">Multiple URL Encoding Detected<\/td>\n<td style=\"border: none; padding: 0in;\">950109<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950118<\/td>\n<td style=\"border: none; padding: 0in;\">Remote File Inclusion Attack<\/td>\n<td style=\"border: none; padding: 0in;\">141<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">141<\/td>\n<td style=\"border: none; padding: 0in;\">Possible Remote File Inclusion (RFI) Attack: Common RFI<br \/>\nVulnerable &#8230;<\/td>\n<td style=\"border: none; padding: 0in;\">950118<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950119<\/td>\n<td style=\"border: none; padding: 0in;\">Remote File Inclusion Attack<\/td>\n<td style=\"border: none; padding: 0in;\">2272<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">2272<\/td>\n<td style=\"border: none; padding: 0in;\">Possible Remote File Inclusion (RFI) Attack: URL Payload Used<br \/>\n&#8230;<\/td>\n<td style=\"border: none; padding: 0in;\">950119<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950120<\/td>\n<td style=\"border: none; padding: 0in;\">Possible Remote File Inclusion (RFI) Attack: Off-Domain &#8230;<\/td>\n<td style=\"border: none; padding: 0in;\">2331<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">2331<\/td>\n<td style=\"border: none; padding: 0in;\">Possible Remote File Inclusion (RFI) Attack: Off-Domain<br \/>\nReference\/Link<\/td>\n<td style=\"border: none; padding: 0in;\">950120<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950901<\/td>\n<td style=\"border: none; padding: 0in;\">SQL Injection Attack: SQL Tautology Detected.<\/td>\n<td style=\"border: none; padding: 0in;\">245<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">246<\/td>\n<td style=\"border: none; padding: 0in;\">SQL Injection Attack: SQL Tautology Detected.<\/td>\n<td style=\"border: none; padding: 0in;\">950901<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950907<\/td>\n<td style=\"border: none; padding: 0in;\">System Command Injection<\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">196<\/td>\n<td style=\"border: none; padding: 0in;\">Remote Command Execution (RCE) Attempt<\/td>\n<td style=\"border: none; padding: 0in;\">950907<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">New rule in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\">HTTP Header Injection Attack via payload (CR\/LF deteced)<\/td>\n<td style=\"border: none; padding: 0in;\">950913<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">950921<\/td>\n<td style=\"border: none; padding: 0in;\">Backdoor access<\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">958001<\/td>\n<td style=\"border: none; padding: 0in;\">Cross-site Scripting (XSS) Attack<\/td>\n<td style=\"border: none; padding: 0in;\">105<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev, probably integrated into 973340-973343<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">958031<\/td>\n<td style=\"border: none; padding: 0in;\">Cross-site Scripting (XSS) Attack<\/td>\n<td style=\"border: none; padding: 0in;\">2<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev, probably integrated into 973340-973343<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">958051<\/td>\n<td style=\"border: none; padding: 0in;\">Cross-site Scripting (XSS) Attack<\/td>\n<td style=\"border: none; padding: 0in;\">243<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev, probably integrated into 973340-973343<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">958052<\/td>\n<td style=\"border: none; padding: 0in;\">Cross-site Scripting (XSS) Attack<\/td>\n<td style=\"border: none; padding: 0in;\">282<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev, probably integrated into 973340-973343<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">New rule in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">3<\/td>\n<td style=\"border: none; padding: 0in;\">PHP Injection Attack: Configuration Directive Found<\/td>\n<td style=\"border: none; padding: 0in;\">958979<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">New rule in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">67<\/td>\n<td style=\"border: none; padding: 0in;\">PHP Injection Attack: Variables Found<\/td>\n<td style=\"border: none; padding: 0in;\">958980<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">959071<\/td>\n<td style=\"border: none; padding: 0in;\">SQL Injection Attack<\/td>\n<td style=\"border: none; padding: 0in;\">2<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">959073<\/td>\n<td style=\"border: none; padding: 0in;\">SQL Injection Attack<\/td>\n<td style=\"border: none; padding: 0in;\">5<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">960008<\/td>\n<td style=\"border: none; padding: 0in;\">Request Missing a Host Header<\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\">Request Missing a Host Header<\/td>\n<td style=\"border: none; padding: 0in;\">960008<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">960010<\/td>\n<td style=\"border: none; padding: 0in;\">Request content type is not allowed by policy<\/td>\n<td style=\"border: none; padding: 0in;\">5<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\">Request content type is not allowed by policy<\/td>\n<td style=\"border: none; padding: 0in;\">960010<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">960011<\/td>\n<td style=\"border: none; padding: 0in;\">GET or HEAD Request with Body Content.<\/td>\n<td style=\"border: none; padding: 0in;\">17<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">17<\/td>\n<td style=\"border: none; padding: 0in;\">GET or HEAD Request with Body Content.<\/td>\n<td style=\"border: none; padding: 0in;\">960011<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">960015<\/td>\n<td style=\"border: none; padding: 0in;\">Request Missing an Accept Header<\/td>\n<td style=\"border: none; padding: 0in;\">6079<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">6079<\/td>\n<td style=\"border: none; padding: 0in;\">Request Missing an Accept Header<\/td>\n<td style=\"border: none; padding: 0in;\">960015<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">960024<\/td>\n<td style=\"border: none; padding: 0in;\">Meta-Character Anomaly Detection Alert &#8211; Repetative Non-Word<br \/>\n&#8230;<\/td>\n<td style=\"border: none; padding: 0in;\">417<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">960032<\/td>\n<td style=\"border: none; padding: 0in;\">Method is not allowed by policy<\/td>\n<td style=\"border: none; padding: 0in;\">11<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\">Method is not allowed by policy<\/td>\n<td style=\"border: none; padding: 0in;\">960032<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">960034<\/td>\n<td style=\"border: none; padding: 0in;\">HTTP protocol version is not allowed by policy<\/td>\n<td style=\"border: none; padding: 0in;\">13<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">13<\/td>\n<td style=\"border: none; padding: 0in;\">HTTP protocol version is not allowed by policy<\/td>\n<td style=\"border: none; padding: 0in;\">960034<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">960035<\/td>\n<td style=\"border: none; padding: 0in;\">URL file extension is restricted by policy<\/td>\n<td style=\"border: none; padding: 0in;\">219<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">219<\/td>\n<td style=\"border: none; padding: 0in;\">URL file extension is restricted by policy<\/td>\n<td style=\"border: none; padding: 0in;\">960035<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">960208<\/td>\n<td style=\"border: none; padding: 0in;\">Argument value too long<\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Misconfiguration by the author: Limit not set properly<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">960209<\/td>\n<td style=\"border: none; padding: 0in;\">Argument name too long<\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Misconfiguration by the author: Limit not set properly<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">960901<\/td>\n<td style=\"border: none; padding: 0in;\">Invalid character in request<\/td>\n<td style=\"border: none; padding: 0in;\">65<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">65<\/td>\n<td style=\"border: none; padding: 0in;\">Invalid character in request<\/td>\n<td style=\"border: none; padding: 0in;\">960901<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">960911<\/td>\n<td style=\"border: none; padding: 0in;\">Invalid HTTP Request Line<\/td>\n<td style=\"border: none; padding: 0in;\">17<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">10<\/td>\n<td style=\"border: none; padding: 0in;\">Invalid HTTP Request Line<\/td>\n<td style=\"border: none; padding: 0in;\">960911<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">970901<\/td>\n<td style=\"border: none; padding: 0in;\">The application is not available<\/td>\n<td style=\"border: none; padding: 0in;\">4<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">4<\/td>\n<td style=\"border: none; padding: 0in;\">The Application Returned a 500-Level Status Code<\/td>\n<td style=\"border: none; padding: 0in;\">970901<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">973300<\/td>\n<td style=\"border: none; padding: 0in;\">Possible XSS Attack Detected &#8211; HTML Tag Handler<\/td>\n<td style=\"border: none; padding: 0in;\">246<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">973304<\/td>\n<td style=\"border: none; padding: 0in;\">XSS Attack Detected<\/td>\n<td style=\"border: none; padding: 0in;\">2<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">973305<\/td>\n<td style=\"border: none; padding: 0in;\">XSS Attack Detected<\/td>\n<td style=\"border: none; padding: 0in;\">15<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">973307<\/td>\n<td style=\"border: none; padding: 0in;\">XSS Attack Detected<\/td>\n<td style=\"border: none; padding: 0in;\">282<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">973331<\/td>\n<td style=\"border: none; padding: 0in;\">IE XSS Filters &#8211; Attack Detected.<\/td>\n<td style=\"border: none; padding: 0in;\">243<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">973334<\/td>\n<td style=\"border: none; padding: 0in;\">IE XSS Filters &#8211; Attack Detected.<\/td>\n<td style=\"border: none; padding: 0in;\">2<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">973335<\/td>\n<td style=\"border: none; padding: 0in;\">IE XSS Filters &#8211; Attack Detected.<\/td>\n<td style=\"border: none; padding: 0in;\">63<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">973336<\/td>\n<td style=\"border: none; padding: 0in;\">XSS Filter &#8211; Category 1: Script Tag Vector<\/td>\n<td style=\"border: none; padding: 0in;\">230<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">244<\/td>\n<td style=\"border: none; padding: 0in;\">XSS Filter &#8211; Category 1: Script Tag Vector<\/td>\n<td style=\"border: none; padding: 0in;\">973336<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">973338<\/td>\n<td style=\"border: none; padding: 0in;\">XSS Filter &#8211; Category 3: Javascript URI Vector<\/td>\n<td style=\"border: none; padding: 0in;\">3<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">2<\/td>\n<td style=\"border: none; padding: 0in;\">XSS Filter &#8211; Category 4: Javascript URI Vector<\/td>\n<td style=\"border: none; padding: 0in;\">973338<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">New rule in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">247<\/td>\n<td style=\"border: none; padding: 0in;\">NoScript XSS InjectionChecker: HTML Injection<\/td>\n<td style=\"border: none; padding: 0in;\">973340<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">New rule in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">15<\/td>\n<td style=\"border: none; padding: 0in;\">NoScript XSS InjectionChecker: Attribute Injection<\/td>\n<td style=\"border: none; padding: 0in;\">973341<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">New rule in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">114<\/td>\n<td style=\"border: none; padding: 0in;\">Node-Validator Blacklist Keywords<\/td>\n<td style=\"border: none; padding: 0in;\">973342<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">New rule in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">246<\/td>\n<td style=\"border: none; padding: 0in;\">XSS Attack Detected via Libinjection<\/td>\n<td style=\"border: none; padding: 0in;\">973343<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">973346<\/td>\n<td style=\"border: none; padding: 0in;\">IE XSS Filters &#8211; Attack Detected.<\/td>\n<td style=\"border: none; padding: 0in;\">15<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">15<\/td>\n<td style=\"border: none; padding: 0in;\">IE XSS Filters &#8211; Attack Detected.<\/td>\n<td style=\"border: none; padding: 0in;\">973346<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981173<\/td>\n<td style=\"border: none; padding: 0in;\">Restricted SQL Character Anomaly Detection Alert &#8211; Total # of<br \/>\n&#8230;<\/td>\n<td style=\"border: none; padding: 0in;\">427<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981227<\/td>\n<td style=\"border: none; padding: 0in;\">Apache Error: Invalid URI in Request.<\/td>\n<td style=\"border: none; padding: 0in;\">19<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">19<\/td>\n<td style=\"border: none; padding: 0in;\">Apache Error: Invalid URI in Request.<\/td>\n<td style=\"border: none; padding: 0in;\">981227<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981231<\/td>\n<td style=\"border: none; padding: 0in;\">SQL Comment Sequence Detected.<\/td>\n<td style=\"border: none; padding: 0in;\">71<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981240<\/td>\n<td style=\"border: none; padding: 0in;\">Detects MySQL comments, conditions and ch(a)r injections<\/td>\n<td style=\"border: none; padding: 0in;\">3<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">3<\/td>\n<td style=\"border: none; padding: 0in;\">Detects MySQL comments, conditions and ch(a)r injections<\/td>\n<td style=\"border: none; padding: 0in;\">981240<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981242<\/td>\n<td style=\"border: none; padding: 0in;\">Detects classic SQL injection probings 1\/2<\/td>\n<td style=\"border: none; padding: 0in;\">9<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">9<\/td>\n<td style=\"border: none; padding: 0in;\">Detects classic SQL injection probings 1\/2<\/td>\n<td style=\"border: none; padding: 0in;\">981242<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981243<\/td>\n<td style=\"border: none; padding: 0in;\">Detects classic SQL injection probings 2\/2<\/td>\n<td style=\"border: none; padding: 0in;\">154<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">154<\/td>\n<td style=\"border: none; padding: 0in;\">Detects classic SQL injection probings 2\/2<\/td>\n<td style=\"border: none; padding: 0in;\">981243<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981245<\/td>\n<td style=\"border: none; padding: 0in;\">Detects basic SQL authentication bypass attempts 2\/3<\/td>\n<td style=\"border: none; padding: 0in;\">76<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">76<\/td>\n<td style=\"border: none; padding: 0in;\">Detects basic SQL authentication bypass attempts 2\/3<\/td>\n<td style=\"border: none; padding: 0in;\">981245<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981246<\/td>\n<td style=\"border: none; padding: 0in;\">Detects basic SQL authentication bypass attempts 3\/3<\/td>\n<td style=\"border: none; padding: 0in;\">29<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">29<\/td>\n<td style=\"border: none; padding: 0in;\">Detects basic SQL authentication bypass attempts 3\/3<\/td>\n<td style=\"border: none; padding: 0in;\">981246<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981249<\/td>\n<td style=\"border: none; padding: 0in;\">Detects chained SQL injection attempts 2\/2<\/td>\n<td style=\"border: none; padding: 0in;\">8<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">8<\/td>\n<td style=\"border: none; padding: 0in;\">Detects chained SQL injection attempts 2\/2<\/td>\n<td style=\"border: none; padding: 0in;\">981249<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981257<\/td>\n<td style=\"border: none; padding: 0in;\">Detects MySQL comment-\/space-obfuscated injections and backtick<br \/>\n&#8230;<\/td>\n<td style=\"border: none; padding: 0in;\">6<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">6<\/td>\n<td style=\"border: none; padding: 0in;\">Detects MySQL comment-\/space-obfuscated injections and backtick<br \/>\n&#8230;<\/td>\n<td style=\"border: none; padding: 0in;\">981257<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981260<\/td>\n<td style=\"border: none; padding: 0in;\">SQL Hex Encoding Identified<\/td>\n<td style=\"border: none; padding: 0in;\">3<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">New rule in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">32<\/td>\n<td style=\"border: none; padding: 0in;\">SQL Injection Attack Detected via LibInjection<\/td>\n<td style=\"border: none; padding: 0in;\">981261<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981276<\/td>\n<td style=\"border: none; padding: 0in;\">Looking for basic sql injection. Common attack string for mysql<br \/>\n&#8230;<\/td>\n<td style=\"border: none; padding: 0in;\">3<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">3<\/td>\n<td style=\"border: none; padding: 0in;\">Looking for basic sql injection. Common attack string for mysql<br \/>\n&#8230;<\/td>\n<td style=\"border: none; padding: 0in;\">981276<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981317<\/td>\n<td style=\"border: none; padding: 0in;\">SQL SELECT Statement Anomaly Detection Alert<\/td>\n<td style=\"border: none; padding: 0in;\">3<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981318<\/td>\n<td style=\"border: none; padding: 0in;\">SQL Injection Attack: Common Injection Testing Detected<\/td>\n<td style=\"border: none; padding: 0in;\">161<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">125<\/td>\n<td style=\"border: none; padding: 0in;\">SQL Injection Attack: Common Injection Testing Detected<\/td>\n<td style=\"border: none; padding: 0in;\">981318<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">981319<\/td>\n<td style=\"border: none; padding: 0in;\">SQL Injection Attack: SQL Operator Detected<\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">1<\/td>\n<td style=\"border: none; padding: 0in;\">SQL Injection Attack: SQL Operator Detected<\/td>\n<td style=\"border: none; padding: 0in;\">981319<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">990002<\/td>\n<td style=\"border: none; padding: 0in;\">Request Indicates a Security Scanner Scanned the Site<\/td>\n<td style=\"border: none; padding: 0in;\">6079<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">6079<\/td>\n<td style=\"border: none; padding: 0in;\">Request Indicates a Security Scanner Scanned the Site<\/td>\n<td style=\"border: none; padding: 0in;\">990002<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">990012<\/td>\n<td style=\"border: none; padding: 0in;\">Rogue web site crawler<\/td>\n<td style=\"border: none; padding: 0in;\">6079<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">Rule gone in v3.0.0-dev<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\">990902<\/td>\n<td style=\"border: none; padding: 0in;\">Request Indicates a Security Scanner Scanned the Site<\/td>\n<td style=\"border: none; padding: 0in;\">0<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-green.png\" alt=\"arrow-green\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">2336<\/td>\n<td style=\"border: none; padding: 0in;\">Request Indicates a Security Scanner Scanned the Site<\/td>\n<td style=\"border: none; padding: 0in;\">990902<\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\">TOTAL<\/td>\n<td style=\"border: none; padding: 0in;\">33275<\/td>\n<td style=\"border: none; padding: 0in;\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cms\/wp-content\/uploads\/2015\/12\/arrow-red.png\" alt=\"arrow-red\" width=\"15\" height=\"20\" \/><\/td>\n<td style=\"border: none; padding: 0in;\">28352<\/td>\n<td style=\"border: none; padding: 0in;\">TOTAL<\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\" colspan=\"6\" valign=\"top\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\" colspan=\"6\" valign=\"top\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\" colspan=\"6\" valign=\"top\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border: none; padding: 0in;\"><\/td>\n<td style=\"border: none; padding: 0in;\" colspan=\"6\" valign=\"top\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>We see less hits for about half of the rules. They appear weaker, or they are gone<br \/>\nfrom the ruleset. About a third of the rules come in with exactly the same number<br \/>\nof rules and a bit more than a sixth of the rules bring more hits or they are new<br \/>\nrules.<\/p>\n<p>I did not look into all the rules in detail. So it is likely, rules shifted<br \/>\ntheir ids, or they were consolidated. The github changelog might contain<br \/>\nthis information.<\/p>\n<p>For this blog post, I will only look at the most striking changes:<br \/>\n<b>Rule 950104 (Path Traversal Attack) : New rule in v3.0.0-dev<\/b><br \/>\nThis is a new and very simple rule looking at the URI patterns &#8220;..\\&#8221; and &#8220;..\/&#8221;<br \/>\nIt&#8217;s a sibling of 950103, but a lot easier to read.<br \/>\nThe numbers are impressive: 359 new hits.<\/p>\n<p><b>Rule 950907 (Remote Command Execution (RCE) Attempt) : Bigger teeth in v3.0.0-dev<\/b><br \/>\nThis rule has been rewritten and enriched with a big number of system commands<br \/>\nout of a file named os-commands.data. The success is striking:<br \/>\n196 hits vs. 1 in the simple variant in the v2.2.9 ruleset.<\/p>\n<p><b>Rule 950913 (HTTP Header Injection Attack via payload) : New rule in v3.0.0-dev<\/b><br \/>\nThis new rule with a single hit is not newsworthy at all. But then I happened<br \/>\nto propose it for inclusion via a <a href=\"https:\/\/github.com\/SpiderLabs\/owasp-modsecurity-crs\/pull\/255\">pull request<\/a>.<br \/>\nTo see this exotic regex<br \/>\ntrigger an alert with a well-known attack scanner pleases me.<\/p>\n<p><b>Rules 958001, 958031, 958051, 958052 (Cross-site Scripting (XSS) Attack) : Gone from v3.0.0-dev<\/b><br \/>\nThese rules are all gone from the new version. There are new rules compensating<br \/>\nfor the loss partly, but the new rules do not make up for the over 600 alerts<br \/>\nthat this group of rules triggered.<\/p>\n<p><b>Rule 958980 (PHP Injection Attack: Variables Found) : New rule in v3.0.0-dev<\/b><br \/>\nThat&#8217;s a new rule based on items in the data file php-variables.data.<br \/>\nNice one. Rule 958979 does the same with php-config-directives.data.<\/p>\n<p><strong>Rule 960024 (Meta-Character Anomaly Detection Alert &#8211; Repetative Non-Word &#8230; ) : Gone from v3.0.0-dev<\/strong><br \/>\nThis rule disappeared from the ruleset. It is likely, this simple ruleset<br \/>\ntriggered a lot of false positives: \\W{4,}<br \/>\nIt is similar to the case of the rules 981172 and 981173 whose disappearance I<br \/>\ndescribed in a <a href=\"https:\/\/www.netnea.com\/cms\/2015\/11\/19\/dont-let-981172-and-981173-disappear-from-the-core-rules\/\">recent blogpost<\/a>.<br \/>\n960024 is the same type of shepherd dog that barks quickly and often<br \/>\n(417 times, mind you!) and hands out 3 anomaly scoring points.<br \/>\nI think it should be brought back.<\/p>\n<p><strong>Rules 973300, 973304, 973305, 973307, 973331, 973334, 973335 (Various XSS Rules) : Gone from v3.0.0-dev ruleset<\/strong><br \/>\nLike the Anti-XSS rule described above, these are gone for good despite summing 800 alerts.<br \/>\nThere are new Anti-XSS rules described below, but I do not think they make up for the<br \/>\nloss.<\/p>\n<p><strong>Rules 973340, 973341, 973342 (Various Anti-XSS rules) : New rules in v3.0.0-dev<\/strong><br \/>\nThis is a group of new rules aimed to prevent XSS. Especially 973340 brings<br \/>\na very big Regex with obvious success and 247 hits.<br \/>\nThis is nice but it does not cover the loss of the Anti-XSS rules mentioned above.<\/p>\n<p><strong>Rule 973343 (XSS Attack Detected via Libinjection) : New rule in v3.0.0-dev<\/strong><br \/>\nSo this is the rule with the new @detectXSS operator based on libinjection<br \/>\nfrom client9: <a href=\"https:\/\/libinjection.client9.com\/\">https:\/\/libinjection.client9.com\/<\/a>, <a href=\"https:\/\/github.com\/client9\/libinjection\">https:\/\/github.com\/client9\/libinjection<\/a>.<br \/>\nThis neat library brought 246 hits, so its inclusion is welcome. However,<br \/>\nthere are issues. It has been a topic before on the ModSecurity mailinglist,<br \/>\nbut I mention them here again: LibInjection seems to be a fine piece of code.<br \/>\nBut the website comes with a broken SSL Certificate and a server error, the<br \/>\nChangelog on github is severely outdated and the inclusion of XSS detection<br \/>\ninto the library is mostly undocumented as is the functioning of @detectXSS and<br \/>\n@detectSQLi in ModSecurity. 99% of the commits to libinjection were done by<br \/>\nthe main developer.<br \/>\nIf you want to know how this works, you will find little information beyond<br \/>\nslides presented at OWASP meetings. What I would like to see is a technical<br \/>\ndescription of how this parser works. If I would be happy with impressive<br \/>\nslides, I would go and buy a commerical product.<br \/>\nI have no idea of the code quality, but from what I can tell about the project<br \/>\nlooking at the surface, libinjection does not look trustworthy.<\/p>\n<p><strong>Rules 981172, 981173 (Restricted SQL Character Anomaly Detection Alert) : Gone from v3.0.0-dev<\/strong><br \/>\n981172 did not trigger any alarms, but its sibling 981173 did issue 427 alerts.<br \/>\nLike 96024, these are workhorses likely to trigger a lot of false positives. And<br \/>\nthis is why they went away. I am working on a pull request to bring them back,<br \/>\nprobably via an optional setting.<br \/>\nSee this <a href=\"https:\/\/www.netnea.com\/cms\/2015\/11\/19\/dont-let-981172-and-981173-disappear-from-the-core-rules\/\">blogpost<\/a> for a more detailed discussion.<\/p>\n<p><strong>Rule 981231 (SQL Comment Sequence Detected) : Gone from 3.0.0-dev<\/strong><br \/>\nThis rule was removed from the dev-tree of the Core Rules. It was aimed at<br \/>\nSQL comments. Maybe this was not deemed important enough, or a cause of<br \/>\ntoo many false positives. I can not tell. But 71 hits in my tests<br \/>\nmay be enough to reconsider this step.<\/p>\n<p><strong>Rule 981261 (SQL Injection Attack Detected via LibInjection) : New rule in v3.0.0-dev<\/strong><br \/>\nThis is the rule with the new @detectSQLi operator based on libinjection.<br \/>\nGiven the number of other SQLi rules triggered I actually expected more hits<br \/>\nhere. But then all I know about libinjection are the impressive slides.<br \/>\nGiven my tests, there was not the same haircut with Anti-SQLi rules like with<br \/>\nAnti-XSS. But @detectSQLi still does not compensate the ones that are gone.<\/p>\n<p><strong>Rule 981318 (SQL Injection Attack: Common Injection Testing Detected) : Rule with shorter teeth<\/strong><br \/>\nThis rule is no longer applied to cookies and it does not cover the same range of<br \/>\ncharacters anymore. See:<br \/>\nTargets old: SecRule REQUEST_COOKIES|!REQUEST_COOKIES:\/__utm\/|!REQUEST_COOKIES:\/_pk_ref\/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:\/*<br \/>\nTargets new: SecRule ARGS_NAMES|ARGS|XML:\/*<br \/>\nRegex old: &#8220;(^[\\&#8221;&#8216;`\u00b4\u2019\u2018;]+|[\\&#8221;&#8216;`\u00b4\u2019\u2018;]+$)&#8221;<br \/>\nRegex new: &#8220;(^[\\&#8221;&#8216;`;]+|[\\&#8221;&#8216;`]+$)&#8221;<br \/>\nWe lost about a quarter of the hits with this simplification.<\/p>\n<p><strong>Rule 990012 (Request Indicates a Security Scanner Scanned the Site) : Gone from v3.0.0-dev<\/strong><br \/>\nThis rule is gone from the ruleset. The loss of 6000 hits based on the<br \/>\ndata file modsecurity_35_bad_robots.data is partially compensated in the<br \/>\n990902 rule, which received an extended pair of teeth. But we lost<br \/>\nmore than 3000 alerts.<br \/>\nThe reason for the removal could be, that this rule is redundant to 990002,<br \/>\nwhich was based on modsecurity_35_scanners.data. But in fact, the two<br \/>\ndata files are complementary and both rules target the User-Agent.<br \/>\nThe data file scanners-user-agents.data now used in rule 990002 received<br \/>\nsome of the user agents in modsecurity_35_bad_robots.data, but far from all.<br \/>\nSo I really do not know.<\/p>\n<p><strong>Rule 990902 (Request Indicates a Security Scanner Scanned the Site) : Rule with bigger teeth in v3.0.0-dev<\/strong><br \/>\n990902 used to test only for 2-3 regexes in the former edition. Now the dataset was expanded.<br \/>\nObviously to cover nikto as well. The feat is performed via the query string parameter<br \/>\nhttp:\/\/cirt.net\/rfiinc.txt sent by nikto in thousands of cases.<br \/>\nThe 2336 hits look impressive here and if a script kiddy attacker really makes<br \/>\nan approach using this tool, then the bells will go off. But all these<br \/>\nanti-scanner rules only work against the obvious scanning attempts, so we<br \/>\nshould not trust them too much. The expansion of 990902 sure is a good thing.<\/p>\n<p>So this is my overview over the development of the OWASP ModSecurity Core Rules 3.0.0.<br \/>\nThere are interesting new features, but also important rules which disappeared. I<br \/>\nhope some of them can be brought back before the 3.0.0 ruleset is released to the public.<\/p>\n<p>If you have questions or feedback, then please get in touch via mail or twitter.<\/p>\n<p>Christian Folini, netnea, <a href=\"https:\/\/www.twitter.com\/ChrFolini\">@ChrFolini<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>It has been a while since we have seen big development in the OWASP ModSecurity Core Rules. This is due to the fact, that the development took place in a separate branch named 3.0.0-dev which adopts many of the newer features and operators included in ModSecurity since 2.7; notably @detectSQLi and @detectXSS. When you take [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[33,10,15],"class_list":{"0":"post-718","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-security","7":"tag-core-rules","8":"tag-modsecurity","9":"tag-security-2","10":"czr-hentry"},"_links":{"self":[{"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/posts\/718","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/comments?post=718"}],"version-history":[{"count":33,"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/posts\/718\/revisions"}],"predecessor-version":[{"id":755,"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/posts\/718\/revisions\/755"}],"wp:attachment":[{"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/media?parent=718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/categories?post=718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.netnea.com\/cms\/wp-json\/wp\/v2\/tags?post=718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}