root/fwsnort/tags/fwsnort-1.1/ChangeLog

Revision 521, 20.4 KB (checked in by mbr, 8 months ago)

bumped version to 1.1

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