File: template-examples.conf

package info (click to toggle)
oinkmaster 2.0-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 680 kB
  • sloc: perl: 3,270; makefile: 7
file content (182 lines) | stat: -rw-r--r-- 5,747 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# $Id: template-examples.conf,v 1.9 2006/01/29 14:54:58 andreas_o Exp $ #

# Disclaimer:
# DO NOT USE THIS FILE DIRECTLY. The templates in here are only 
# quick examples just to give you some ideas and are subject to be 
# changed/deleted in future releases. If there is a template you want 
# to use, review if carefully and put it in your own oinkmaster.conf (or 
# your own templates.conf or whatever) instead of using this file 
# directly. If you create your own templates and want them added to 
# this file, please send them to me.
# For more information about templates, see README.templates.


# Here are a bunch of sample template definitions, later followed by 
# examples how to use them.

# Tag by src for 10 seconds by adding the string 
# "tag: host,src,10,seconds;" right after the SID statement.
define_template add_src_tagging \
  "\b(sid\s*:\s*\d+\s*;)" | \
  "${1} tag: host,src,10,seconds;"

# If you want to append stuff at the very end of a rule, you could do 
# something like this:
# define_template add_src_tagging \
#  "\)\n$" | \
#  "tag: host,src,10,seconds;)\n"


# Take text given as argument and append it to the rule's "msg" string.
define_template append_msg \
  "\b(msg\s*:\s*".+?)"\s*;+s*" | \
  "${1}%ARG1%";"


# Add thresholding of type "both", count 30, seconds 60.
define_template add_threshold \
  "\b(sid\s*:\s*\d+\s*;)" | \
  "${1} threshold:type both,track by_dst,count 30,seconds 60;"


# Add by_dst thresholding with values for count and seconds given
# as arguments when using the template.
define_template add_threshold_with_values \
  "\b(sid\s*:\s*\d+\s*;)" | \
  "${1} threshold:type both,track by_dst,count %ARG1%,seconds %ARG2%;"


# Change classtype to the one specified as argument.
define_template change_classtype \
  "\bclasstype\s*:\s*\S+\s*;" | \
  "classtype:%ARG1%;"


# Convert an active alert rule to a drop rule
define_template make_drop "^alert\s" | "drop "


# Remove "flow" statement.
define_template remove_flow "flow\s*:\s*[a-z,_ ]+;" | ""


# Comment out rules containing a certain option.
define_template disable_by_keyword "(.*\b%ARG1%\s*:.+;.*)" | "#${1}"


# Switch $EXTERNAL_NET/$HOME_NET in a rule watching for stuff from 
# $EXTERNAL_NET to $HOME_NET, so it becomes $HOME_NET to $EXTERNAL_NET.
define_template check_outgoing \
  "(.+) \$EXTERNAL_NET (.+) \$HOME_NET (.+)" | \
  "${1} \$HOME_NET ${2} \$EXTERNAL_NET ${3}"


# Switch $EXTERNAL_NET/$HOME_NET in a rule watching for stuff from
# $HOME_NET to $EXTERNAL_NET, so it becomes $EXTERNAL_NET to $HOME_NET.
define_template check_incoming \
  "(.+) \$HOME_NET (.+) \$EXTERNAL_NET (.+)" | \
  "${1} \$EXTERNAL_NET ${2} \$HOME_NET ${3}"


# Make source and destination address specifications in an alert rule
# become "any", regardless of their current values.
define_template src_dst_any_any \
  "^(alert\s+\S+)\s+\S+\s+(.*?>)\s+\S+" | "${1} any ${2} any"


# Just like disablesid but also add a comment line before the disabled 
# rule.
define_template disable_with_comment \
  "^alert\s" | "# Rule disabled by Oinkmaster, reason=%ARG1%:\n#alert "


# Delete an active rule by removing it from the file completely.
define_template delete_rule \
  "^alert\s.+$" | ""


# Tag by src for the number of seconds given as argument. Also include 
# this number in a string appended to the rule's msg.
define_template tag_src_and_append_msg \
  "^(\s*alert\s+.+\bmsg\s*:\s*".+?)"\s*;+s*(.*)\b(sid\s*:\s*\d+\s*;)" | \
  "${1}, tagging for %ARG1% seconds";${2}${3} tag: host,src,%ARG1%,seconds;"


# This is a template to disable a rule only if it has a specific 
# revision. Very useful if you want to temporarily disable a rule 
# because of false positives and you want to start using the rule again
# as soon as it is updated (i.e. when the "rev" keyword changes).
# The revision is specified as argument when using the template.
define_template disablesid_rev "(.+\brev\s*:\s*%ARG1%\s*;.*)" | "#${1}"



# Now some examples how to use the above templates.


# Add tagging by src to SID 1324.
# use_template add_src_tagging 1324


# Append the string " - added text!" to the msg of SID 1324.
# use_template append_msg 1324 " - added text!"


# Add thresholding with values hardcoded into the add_threshold template.
# use_template add_threshold 1326


# Add thresholding with count value given as first argument
# and seconds value given as second argument.
# use_template add_threshold_with_values 1326 "10" "30"


# Change the classtype to "some-other-classtype" in SID 1324 and 1325.
# use_template change_classtype 1324,1325 "some-other-classtype"


# Make SID 1324 a drop rule.
# use_template make_drop 1324


# Make all rules in exploit.rules to be drop rules.
# use_template make_drop exploit.rules


# Remove the "flow" statement from SID 1324.
# use_template remove_flow 1324


# Disable all rules that are using the "uricontent" keyword.
# use_template disable_by_keyword * "uricontent"


# Reverse $EXTERNAL_NET and $HOME_NET in SID 1324 to watch only
# for outgoing attacks of this kind. 
# use_template check_outgoing 1324


# Make both src and dst "any" in SID 1326.
# use_template src_dst_any_any 1326


# Disable rule 1323, and also add a comment line above it
# in the rules file.
# use_template disable_with_comment 1323 "I don't like this rule"


# Add 60 seconds tagging to SID 528, and also add this
# information to its msg string.
# use_template tag_src_and_append_msg 528 "60"


# This will delete (not disable) the SIDs 1323, 1324 and 1326.
# use_template delete_rule 1323, 1324, 1326


# This will delete ALL active rules. Not a very useful example :)
# use_template delete_rule *


# Disable SID 1324, but only if the revision (the "rev" keyword) is 3.
# use_template disablesid_rev 1324 "3"