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"
|