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