24 #ifndef __TEST_PATTERNDB_H__
25 #define __TEST_PATTERNDB_H__
27 #define MYHOST "MYHOST"
30 #define pdb_conflicting_rules_with_different_parsers "<patterndb version='4' pub_date='2010-02-22'>\
31 <ruleset name='testset' id='1'> \
33 <pattern>prog1</pattern>\
34 <pattern>prog2</pattern>\
37 <!-- different parsers at the same location -->\
38 <rule provider='test' id='11' class='short'>\
40 <pattern>pattern @ESTRING:foo1: @</pattern>\
43 <rule provider='test' id='12' class='long'>\
45 <pattern>pattern @ESTRING:foo2: @tail</pattern>\
52 #define pdb_conflicting_rules_with_the_same_parsers "<patterndb version='4' pub_date='2010-02-22'>\
53 <ruleset name='testset' id='1'>\
55 <pattern>prog1</pattern>\
56 <pattern>prog2</pattern>\
59 <!-- different parsers at the same location -->\
60 <rule provider='test' id='11' class='short'>\
62 <pattern>pattern @ESTRING:foo: @</pattern>\
65 <rule provider='test' id='12' class='long'>\
67 <pattern>pattern @ESTRING:foo: @tail</pattern>\
77 #define pdb_ruletest_skeleton "<patterndb version='5' pub_date='2010-02-22'>\
78 <ruleset name='testset' id='1'>\
79 <description>This is a test set</description>\
81 <pattern>prog1</pattern>\
82 <pattern>prog2</pattern>\
85 <rule provider='test' id='10' class='system' context-scope='program'>\
87 <pattern>simple-message</pattern>\
90 <tag>simple-msg-tag1</tag>\
91 <tag>simple-msg-tag2</tag>\
94 <value name='simple-msg-value-1'>value1</value>\
95 <value name='simple-msg-value-2'>value2</value>\
96 <value name='simple-msg-host'>${HOST}</value>\
99 <rule provider='test' id='10a' class='system' context-scope='program' context-id='$PID' context-timeout='60'>\
101 <pattern>correlated-message-based-on-pid</pattern>\
104 <value name='correlated-msg-context-id'>${CONTEXT_ID}</value>\
105 <value name='correlated-msg-context-length'>$(context-length)</value>\
108 <rule provider='test' id='10b' class='violation' context-scope='program' context-id='$PID' context-timeout='60'>\
110 <pattern>correlated-message-with-action-on-match</pattern>\
113 <action trigger='match'>\
116 <value name='MESSAGE'>generated-message-on-match</value>\
117 <value name='context-id'>${CONTEXT_ID}</value>\
120 <tag>correlated-msg-tag</tag>\
126 <rule provider='test' id='10c' class='violation' context-scope='program' context-id='$PID' context-timeout='60'>\
128 <pattern>correlated-message-with-action-on-timeout</pattern>\
131 <action trigger='timeout'>\
134 <value name='MESSAGE'>generated-message-on-timeout</value>\
140 <rule provider='test' id='10d' class='violation' context-scope='program' context-id='$PID' context-timeout='60'>\
142 <pattern>correlated-message-with-action-condition</pattern>\
145 <action trigger='match' condition='\"${PID}\" ne \"" MYPID "\"' >\
148 <value name='MESSAGE'>not-generated-message</value>\
152 <action trigger='match' condition='\"${PID}\" eq \"" MYPID "\"' >\
155 <value name='MESSAGE'>generated-message-on-condition</value>\
161 <rule provider='test' id='10e' class='violation' context-scope='program' context-id='$PID' context-timeout='60'>\
163 <pattern>correlated-message-with-rate-limited-action</pattern>\
166 <action trigger='match' rate='1/60'>\
169 <value name='MESSAGE'>generated-message-rate-limit</value>\
175 <rule provider='test' id='10f' class='violation' context-scope='program' context-id='$PROGRAM' context-timeout='60'>\
177 <pattern>correlated-message-with-action-condition-filter</pattern>\
180 <action trigger='match' condition='message(\"filter-not-exists\" type(pcre))' >\
183 <value name='MESSAGE'>not-generated-message</value>\
187 <action trigger='match' condition='message(\"filter\" type(pcre))' >\
190 <value name='MESSAGE'>generated-message-on-condition</value>\
196 <rule provider='test' id='11b' class='violation'>\
198 <pattern>simple-message-with-action-on-match</pattern>\
201 <action trigger='match'>\
204 <value name='MESSAGE'>generated-message-on-match</value>\
205 <value name='context-id'>${CONTEXT_ID}</value>\
208 <tag>simple-msg-tag</tag>\
214 <rule provider='test' id='11d' class='violation'>\
216 <pattern>simple-message-with-action-condition</pattern>\
219 <action trigger='match' condition='\"${PID}\" ne \"" MYPID "\"' >\
222 <value name='MESSAGE'>not-generated-message</value>\
226 <action trigger='match' condition='\"${PID}\" eq \"" MYPID "\"' >\
229 <value name='MESSAGE'>generated-message-on-condition</value>\
235 <rule provider='test' id='11e' class='violation'>\
237 <pattern>simple-message-with-rate-limited-action</pattern>\
240 <action trigger='match' rate='1/60'>\
243 <value name='MESSAGE'>generated-message-rate-limit</value>\
250 <test_message program='prog1'>simple-message-with-rate-limited-action</test_message>\
252 <test_value name='PROGRAM'>prog1</test_value>\
253 <test_value name='MESSAGE'>foobar</test_value>\
257 <test_message program='prog2'>simple-message-with-rate-limited-action</test_message>\
261 <rule provider='test' id='12' class='violation'>\
263 <pattern>simple-message-with-action-to-create-context</pattern>\
266 <action trigger='match'>\
267 <create-context context-id='1000' context-timeout='60' context-scope='program'>\
268 <message inherit-properties='context'>\
270 <value name='MESSAGE'>context message</value>\
277 <rule provider='test' id='13' class='violation' context-id='1000' context-timeout='60' context-scope='program'>\
279 <pattern>correlated-message-that-uses-context-created-by-rule-id#12</pattern>\
282 <value name='triggering-message'>${MESSAGE}@1 assd</value>\
285 <rule provider='test' id='14' class='violation' context-id='1001' context-timeout='60' context-scope='program'>\
287 <pattern>correlated-message-with-action-to-create-context</pattern>\
290 <value name='rule-msg-context-id'>${.classifier.context_id}</value>\
293 <action trigger='match'>\
294 <create-context context-id='1002' context-timeout='60' context-scope='program'>\
295 <message inherit-properties='context'>\
297 <!-- we should inherit from the LogMessage matching this rule and not the to be created context -->\
298 <value name='MESSAGE'>context message ${rule-msg-context-id}</value>\
305 <rule provider='test' id='15' class='violation' context-id='1002' context-timeout='60' context-scope='program'>\
307 <pattern>correlated-message-that-uses-context-created-by-rule-id#14</pattern>\
310 <value name='triggering-message'>${MESSAGE}@1 assd</value>\
311 <value name='triggering-message-context-id'>$(grep ('${rule-msg-context-id}' ne '') ${rule-msg-context-id})</value>\
318 #define pdb_complete_syntax "\
319 <patterndb version='5' pub_date='2010-02-22'>\
320 <ruleset name='testset' id='1'>\
321 <url>http://foobar.org/</url>\
323 <url>http://foobar.org/1</url>\
324 <url>http://foobar.org/2</url>\
326 <description>This is a test set</description>\
328 <pattern>prog2</pattern>\
329 <pattern>prog3</pattern>\
331 <pattern>prog1</pattern>\
333 <rule provider='test' id='10' class='system' context-id='foobar' context-scope='program'>\
334 <description>This is a rule description</description>\
336 <url>http://foobar.org/1</url>\
337 <url>http://foobar.org/2</url>\
340 <pattern>simple-message</pattern>\
341 <pattern>simple-message-alternative</pattern>\
344 <tag>simple-msg-tag1</tag>\
345 <tag>simple-msg-tag2</tag>\
348 <value name='simple-msg-value-1'>value1</value>\
349 <value name='simple-msg-value-2'>value2</value>\
350 <value name='simple-msg-host'>${HOST}</value>\
354 <test_message program='foobar'>This is foobar message</test_message>\
356 <test_value name='foo'>foo</test_value>\
357 <test_value name='bar'>bar</test_value>\
365 <value name='FOO'>foo</value>\
366 <value name='BAR'>bar</value>\
375 <create-context context-id='foobar'>\
378 <value name='FOO'>foo</value>\
379 <value name='BAR'>bar</value>\
394 #define pdb_inheritance_enabled_skeleton "<patterndb version='4' pub_date='2010-02-22'>\
395 <ruleset name='testset' id='1'>\
397 <pattern>prog2</pattern>\
400 <rule provider='test' id='11' class='system'>\
402 <pattern>pattern-with-inheritance-enabled</pattern>\
409 <action trigger='match'>\
410 <message inherit-properties='TRUE'>\
412 <value name='actionkey'>actionvalue</value>\
415 <tag>actiontag</tag>\
425 #define pdb_inheritance_disabled_skeleton "<patterndb version='4' pub_date='2010-02-22'>\
426 <ruleset name='testset' id='1'>\
428 <pattern>prog2</pattern>\
431 <rule provider='test' id='12' class='system'>\
433 <pattern>pattern-with-inheritance-disabled</pattern>\
440 <action trigger='match'>\
441 <message inherit-properties='FALSE'>\
443 <value name='actionkey'>actionvalue</value>\
446 <tag>actiontag</tag>\
456 #define pdb_inheritance_context_skeleton "\
457 <patterndb version='4' pub_date='2010-02-22'>\
458 <ruleset name='testset' id='1'>\
460 <pattern>prog2</pattern>\
463 <rule provider='test' id='11' class='system' context-scope='program'\
464 context-id='$PID' context-timeout='60'>\
466 <pattern>pattern-with-inheritance-context</pattern>\
473 <action trigger='timeout'>\
474 <message inherit-properties='context'>\
476 <value name='MESSAGE'>action message</value>\
479 <tag>actiontag</tag>\
489 #define pdb_msg_count_skeleton "<patterndb version='4' pub_date='2010-02-22'>\
490 <ruleset name='testset' id='1'>\
492 <pattern>prog1</pattern>\
493 <pattern>prog2</pattern>\
496 <rule provider='test' id='13' class='system' context-scope='program'\
497 context-id='$PID' context-timeout='60'>\
499 <pattern>pattern13</pattern>\
502 <value name='n13-1'>v13-1</value>\
505 <action condition='\"${n13-1}\" eq \"v13-1\"' trigger='match'>\
506 <message inherit-properties='TRUE'>\
508 <value name='CONTEXT_LENGTH'>$(context-length)</value>\
514 <rule provider='test' id='14' class='system' context-scope='program'\
515 context-id='$PID' context-timeout='60'>\
517 <pattern>pattern14</pattern>\
520 <action condition='\"$(context-length)\" eq \"1\"' trigger='match'>\
521 <message inherit-properties='TRUE'>\
523 <value name='CONTEXT_LENGTH'>$(context-length)</value>\
529 <rule provider='test' id='15' class='system' context-scope='program'\
530 context-id='$PID' context-timeout='60'>\
532 <pattern>pattern15@ANYSTRING:p15@</pattern>\
535 <action condition='\"$(context-length)\" eq \"2\"' trigger='match'>\
536 <message inherit-properties='FALSE'>\
538 <value name='fired'>true</value>\
548 #define pdb_tag_outside_of_rule_skeleton "<patterndb version='3' pub_date='2010-02-22'>\
549 <ruleset name='testset' id='1'>\
551 <pattern>prog1</pattern>\
560 #define pdb_test_match_in_program "<patterndb version='5' pub_date='2010-02-22'>\
561 <ruleset name='sshd' id='1'>\
563 <pattern>sshd @NUMBER:num@</pattern>\
566 <rule id='12347598' class='sshd' provider='batman'>\
567 <patterns><pattern>almafa</pattern></patterns>\
573 #define pdb_test_program_template "<patterndb version='5' pub_date='2010-02-22'>\
574 <ruleset name='sshd' id='1'>\
576 <pattern>sshd @NUMBER:num@</pattern>\
579 <rule id='12347598' class='sshd' provider='batman'>\
580 <patterns><pattern>almafa @STRING:str@</pattern></patterns>\