root/fwsnort/tags/fwsnort-1.0.5/ChangeLog

Revision 465, 16.8 kB (checked in by mbr, 11 months ago)

moved 'threshold' to the unsupported list since there will be several signatures that use this feature to detect the Dan Kaminsky DNS attack

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 fwsnort-1.0.5 (01//2008):
2     - Replaced the bleeding-all.rules file with the emerging-all.rules file.
3       This is because Matt Jonkman now releases his rule sets at
4       http://www.emergingthreats.net/
5     - Restructured perl module paths to make it easy to introduce a "nodeps"
6       distribution of fwsnort that does not contain any perl modules.  This
7       allows better integration with systems that already have all necessary
8       modules installed (including the IPTables::ChainMgr and IPTables::Parse
9       modules).  The main driver for this work is to make all cipherdyne.org
10       projects easily integrated with distributions based on Debian, and
11       Franck Joncourt has been instrumental in making this process a reality.
12       All perl modules are now placed within the "deps" directory, and the
13       install.pl script checks to see if this directory exists - a separate
14       fwsnort-nodeps-<ver> tarball will be distributed without this directory.
15       The Debian package for fwsnort can then reference the -nodeps tarball,
16       and a new "fwsnort-nodeps.spec" file has been added to build an RPM from
17       the fwsnort sources that does not install any perl modules.
18     - Updated to import perl modules from /usr/lib/fwsnort, but only if this
19       path actually exists in the filesystem.  This is similar to the strategy
20       implemented by psad.  A new variable FWSNORT_LIBS_DIR was added to the
21       fwsnort.conf to support this.
22     - Added support for multiple Snort rule directories as a comma-separated
23       list for the argument to --snort-rdir.
24     - Moved 'threshold' to the unsupported list since there will be several
25       signatures that use this feature to detect the Dan Kaminsky DNS attack,
26       and fwsnort does not yet support the usage of the iptables --limit
27       match.
28
29 fwsnort-1.0.4 (01/22/2008):
30     - (Grant Ferley) Submitted patch to exclude loopback interfaces from
31       iptables allow rules parsing.  This behavior can be reversed with the
32       existing --no-exclude-loopback command line argument.
33     - (Grant Ferley) Submitted patch to IPTables::Parse to take into account
34       iptables policy output that contains "0" instead of "all" to represent
35       any protocol.
36     - (Grant Ferley) Submitted patch to IPTables::Parse to set sport and dport
37       to '0:0' if the protocol is 'all'.
38     - Bugfix to allow negated networks to be specified within iptables allow
39       rules or within the fwsnort.conf file.
40     - Updated install.pl to set the LC_ALL environmental variable to "C". This
41       should fix potential locale problems (this fix was borrowed from the
42       fwknop project).
43
44 fwsnort-1.0.3 (11/22/2007):
45     - Added --include-re-caseless and --exclude-re-caseless options to have
46       --include-regex and --exclude-regex options match case insensitively.
47     - Major signature update from Bleeding Threats. This update includes a
48       large number of new signatures with PCRE statements, with an emphasis on
49       detecting SQL injection attacks directed at internal webservers from
50       external sources.
51     - Added the ability to interpret PCRE statements that include simple
52       string matches separated by ".*" and ".+" as multiple iptables string
53       matches. The only negative consequence in terms of signature detection
54       is that ordering is not preserved; that is, the PCRE "/UNION.+SELECT/"
55       would only match a packet that contains "UNION" followed by "SELECT",
56       whereas an iptables rule that uses a string match for UNION and a
57       separate string match for SELECT would match a packet that contains both
58       strings but in reverse. Typically this is not a huge concern, and the
59       PCRE translation can be disabled with a new option --no-pcre.
60     - Added asn1 keyword to unsupported list.
61
62 fwsnort-1.0.2 (08/26/2007):
63     - Bugfix to make sure to add in header lengths for depth and offset values
64       since the string match extension compares bytes from the start of the
65       data link header.
66
67 fwsnort-1.0.1 (08/26/2007):
68     - Bugfix for ipt_rule_test() function name.
69     - Added the ability to automatically resolve command paths if any commands
70       cannot be found at the locations specified in the fwsnort.conf file.
71
72 fwsnort-1.0 (04/19/2007):
73     - Major update to include support for the NFQUEUE and QUEUE targets with
74       new command line options --NFQUEUE and --QUEUE.  This changes the
75       default LOG target to the NFQUEUE or QUEUE targets instead, and at the
76       same time builds a parallel Snort rule set in the
77       /etc/fwsnort/snort_rules_queue directory.  Every Snort rule in this
78       directory has at least one "content" keyword, which fwsnort uses in the
79       resulting iptables policy.  This policy only sends those packets to
80       snort_inline via the NFQUEUE or QUEUE target that match a content field
81       within some Snort rule.  The end result is that snort_inline should run
82       faster because the vast majority of packets (which are not malicious)
83       are processed via the Linux kernel without ever having to be sent to
84       userspace for analysis.  There is a tradeoff here in terms of attack
85       detection; snort_inline does not receive all packets associated with a
86       stream, so it cannot detect attacks quite as effectively (snort_inline
87       does not have an opportunity to look at reassembled buffers).  However,
88       this trade off may be acceptable for large sites where performance is
89       more important.
90     - Bug fix to remove any existing jump rules from the built-in INPUT,
91       OUTPUT, and FORWARD chains before creating a new jump rules.  This
92       allows the fwsnort.sh script to be executed multiple times without
93       creating a new jump rule into the fwsnort chains for each execution.
94     - Added the -X command line argument to allow fwsnort to delete all of
95       the fwsnort chains; this emulates the iptables command line argument
96       of the same name.
97     - Minor output enhancements and bugfixes to give more insight into the
98       translation process.  For example, if fwsnort is run in --snort-sid
99       mode but is unable to translate the specified signatures, the user is
100       notified.  Also, any existing /etc/fwsnort/fwsnort.sh script is not
101       archived and erased until fwsnort is actually going to write a new one.
102     - Added sid values to iptables comment match string.
103     - Bugfix for iptables string match --from and --to values to skip past
104       packet headers.  This is an approximation until a new --payload option
105       can be added to the string match extension.
106     - Added a single iptables rule testing API internally within fwsnort;
107       this adds a measure of consistency and removes some duplicate code.
108     - Added fwsnort mailing list at SourceForge.
109
110 fwsnort-0.9.0 (03/22/2007):
111     - Added support for multiple content matches since this is supported by
112       iptables.  This made a 10% increase in the fwsnort translation rate -
113       about 60% of all Snort-2.3.3 rules can be translated now.
114     - Added emulation for distance and within from previous content match
115       based on --from and --to (string match extension) and the length of
116       the previous pattern.
117     - Added the ability to include the Snort "msg", "classtype", "reference",
118       "priority", and "rev" fields in each iptables rule with the comment
119       match.  This can be disabled with a new command line argument
120       --no-ipt-comments.  The fwsnort version is also included within this
121       string.
122     - Added the ability to include the iptables rule number for each rule in
123       the fwsnort chains.  This is useful to easily know which iptables rule
124       is being triggered by network traffic (so it can be disabled if
125       necessary).  This can be disabled with --no-ipt-rule-nums.
126     - Added the --include-regex and --exclude-regex command line arguments.
127       These arguments allow rules to be included/excluded based on a regular
128       expression supplied on the command line.
129     - Updated to include the original Snort rule as a comment within the
130       fwsnort.sh script without having to use --verbose.
131     - Bugfix to force install of IPTables::Parse since it had been updated in
132       the fwsnort-0.8.2 release.
133     - Changed the IGNORE_ADDR variable to WHITELIST since this name better
134       describes the actual function of this var.  Updated to allow multiple
135       WHITELIST lines.
136     - Added the BLACKLIST variable to allow a true blacklist to be
137       instantiated with either the DROP or REJECT targets.  The syntax for the
138       BLACKLIST variable is "BLACKLIST  <ip or network>  <target>", where
139       "target" is either "DROP" or "REJECT".
140     - Added -F and -L command line arguments to flush and list iptables rules.
141       This is similar to the iptables command line args of the same names.
142     - Bugfix to ensure that traffic directed into the INPUT or coming from the
143       OUTPUT chains is treated as going toward or originating from the
144       HOME_NET.  After all the HOME_NET variable may contain an internal
145       network but omit the IP assigned to an external interface on the
146       firewall.
147     - Added "--log-ip-options" and "--log-tcp-options" to fwsnort LOG rules by
148       default (in the generated fwsnort.sh script).  This can be disabled with
149       --no-log-ip-opts and --no-log-tcp-opts arguments on the fwsnort command
150       line.
151     - Added the ability to include --log-tcp-sequence to LOG rules in
152       fwsnort.sh with a new argument --ipt-log-tcp-seq on the fwsnort command
153       line.
154     - Updated to handle negative string matches with "--string ! <string>".
155     - Updated to output all unsupported options of the /var/log/fwsnort.log
156       file to assist in the development of addition keyword emulation.
157
158 fwsnort-0.8.2 (02/17/2007):
159     - Updated to newer IPTables::Parse module that uses the array of hash
160       references method of returning iptables policy data.
161     - Added --Dump-ipt and --Dump-snort rules to allow iptables policy and
162       Snort rules to be dumped to STDOUT.
163     - Added bleeding-all.rules file from http://www.bleedingsnort.com/
164     - Added patches/bm_goodshift_fix.patch patch file that fixes an
165       initialization bug in the Boyer-Moore text search implementation in the
166       kernel (linux-2.6.x/lib/ts_bm.c) which caused slightly repetitive
167       patterns to only match at specific offsets with the string match
168       extension.
169     - Bugfix to ensure that a depth cannot be less that an offset (these
170       translate to the --to and --from command line arguments to iptables).
171     - Bugfix to escape '$' chars in iptables search strings.
172     - Added cd_rpmbuilder to make it easy to automatically build RPM files of
173       fwsnort.
174     - Added support for the iptables OUTPUT chain.
175     - Added the ChangeLog.svn file so that all of the changed files and
176       corresponding svn commit messages can be viewed (this file is built from
177       release to release).
178
179 fwsnort-0.8.1 (11/11/2005):
180     - Updated to use the string match extension "--algo bm" argument if
181       fwsnort is being run on a 2.6.14 (or greater) kernel.
182     - Updated to handle the Snort "offset" and "depth" keywords via the
183       --from and --to options to the string match extension in the 2.6.14
184       kernel.
185     - Created RPM package of fwsnort.
186     - Minor man page updates.
187
188 fwsnort-0.8.0 (07/11/2005):
189     - Completely re-structured fwsnort w.r.t. how it creates Netfilter
190       chains.  There are no longer any per-interface chains (this
191       greatly simplifies the Netfilter chains).
192     - Added three new chains "FWSNORT_INPUT_ESTAB", "FWSNORT_OUTPUT_ESTAB"
193       and "FWSNORT_FORWARD_ESTAB" to which tcp connections in the
194       ESTABLISHED state are jumped.  This allows fwsnort to use the
195       Netfilter tcp connection tracking mechanism to ignore Stick and Snot
196       style attacks (similar to the flow:established Snort rule option).
197     - Added true variable resolution (i.e. HTTP_SERVERS -> HOME_NET -> any)
198       for the Snort rule header.  This directly emulates the behavior of
199       the Snort IDS.
200     - Added IP protocol support in the translation of the Snort rule
201       header.  The Snort rule translation rate is now at about 53% for
202       Snort-2.3.
203     - Bugfix for ipopts Snort option (several arguments are not supported
204       by the ipv4options extension).
205     - Better tests for Netfiler TTL, TOS, and ipv4options matches.
206     - Replaced IGNORE_IP and IGNORE_NET keywords with single IGNORE_ADDR
207       keywork in fwsnort.conf.
208     - Updated to correctly handle ICMP type and code rules (itype and
209       icode Snort options) via the "--icmp-types type/code" convention.
210     - Added support for emulating the dsize Snort option through the use
211       of the Netfilter length match.
212     - Changed --type argument to --include-types and added list support
213       so it accepts things like "chat,ddos".  Also added --exclude-types
214       command line argument.
215     - Added support for multiple sid's (as a comma separated list) in
216       --snort-sids argument.  Also added --exclude-sids argument to remove
217       a list of sids from translation.
218     - Added support for the replace Snort option (originally from the
219       Snort_inline project).  The requires the replace string patch.
220     - Added support for restricting jump rules to a list of interfaces
221       via the --restrict-intf argument.
222     - Added kernel patch to extend the maximum packet length that the
223       string match extension will attempt to search from 1024 bytes to
224       2048 bytes (requires a kernel re-compile of course).
225     - Added DRP and REJ strings to logging prefix if --ipt-drop or
226       --ipt-reject is specified.
227     - Added snortspoof.pl, which is a simple perl script that emulates
228       the Stick and Snot tools.
229
230 fwsnort-0.7.0 (06/05/2005):
231     - Added support for the Snort pass action by using the ACCEPT target.
232     - Added support for the Snort log action by using the ULOG target
233       (which can then log the packet via the pcap writer).
234     - Added support for all fwsnort alerts to be logged via the ULOG
235       target instead of the LOG target.
236     - Added support for the "resp" keyword to allow it to drive the
237       Netfilter argument to the REJECT target.
238     - Added "pcre" to the unsupported list... this knocks the fwsnort
239       translation rate down to about 50% for Snort-2.3 rules (pcre is
240       heavily utilized).
241     - Added "priority" and "rev" to comment lines.
242
243 fwsnort-0.6.5 (03/20/2005):
244     - Updated to not attempt to download Snort rules from snort.org
245       because the rules are no longer available for automatic downloads
246     - Changed the install.pl script and the --update-rules mode for
247       fwsnort to download the latest signature set from
248       http://www.bleedingsnort.com/.
249       (Snort.org is now offering pay-service around their rule sets).
250     - Added signature test for the "flowbits" keyword.
251
252 fwsnort-0.6.4 (12/18/2004):
253     - Updated to Snort-2.3 rules.  FWSnort can convert a total of 1710
254       out of 2559 total Snort-2.3 rules.
255     - Updated to new Snort rules download link for --update-rules mode:
256       http://www.snort.org/dl/rules/snortrules-snapshot-CURRENT.tar.gz
257     - Updated to standard [+], [-], and [*] prefixes for info, warning
258       and die logging messages.
259     - Added --replace-string patches.
260
261 fwsnort-0.6.3 (04/04/2004):
262     - Added ignore functionality for both IPs and networks
263     - Split --ipt-block into --ipt-drop and --ipt-reject to add DROP
264       or REJECT rules respectively.
265     - Added --add-deleted option to allow rules in the "deleted.rules"
266       file to be added.
267
268 fwsnort-0.6.2 (03/19/2004):
269     - Added --internal-net and --dmz-net options so that internal and
270       dmz networks can be manually specified without having to parse
271       the output of ifconfig.  This is most useful for running fwsnort
272       on a linux system that is acting as a bridge where no ip addresses
273       are assigned to the interfaces.
274     - Bugfix for missing icmp-port-unreachable rejects for UDP packets.
275
276 fwsnort-0.6.1 (02/01/2004):
277     - Bugfix for not adding dmz interface rules to INPUT chain.
278     - Bugfix for not getting the DMZ interface network.
279
280 fwsnort-0.6 (01/04/2004):
281     - Speed increase and disk access decrease by writing iptables
282       commands to the iptables script only after all lines have been
283       generated.
284     - Bugfix for DMZ interface.
285     - Bugfix for multiple ip_proto fields.
286     - Removed the ip protocol as an allowed protocol for translation.
287     - Bugfix for negated port numbers.
288     - Removed "<-" rule direction since not even snort supports this.
289     - Fixed snort rule updates from snort.org.
290
291 fwsnort-0.5 (12/21/2003):
292     - Added "-j REJECT --reject-with tcp-reset" for tcp sessions
293       if the --ipt-block option is specified.
294     - Added ability to download latest snort rules from snort.org.
295     - Added --no-ipt-jumps.
296     - Added better checking for iptables build characteristics such
297       as the LOG target and wether or not the ipv4options extension
298       is compiled in.
299     - Added config preservation code from psad in install.pl.
Note: See TracBrowser for help on using the browser.