| 1 | psad-2.1.7 (07/14/2010): |
|---|
| 2 | - (Dan A. Dickey) Added the ability to use the "ip" command from the |
|---|
| 3 | iproute2 tools to acquire IP addresses from local interfaces. Dan's |
|---|
| 4 | description is as follows: "...A main reason for doing this is in the |
|---|
| 5 | case of multi-homed hosts. ifconfig sets these up on an interface using |
|---|
| 6 | aliases, iproute2 does not. So, for a multi-homed interface (eth0 with |
|---|
| 7 | multiple addresses), ifconfig -a only shows the first one configured and |
|---|
| 8 | not the rest. ip addr shows all of the configured addresses...". |
|---|
| 9 | - Added ENABLE_WHOIS_FORCE_ASCII to replace any non-ascii characters in |
|---|
| 10 | whois data (which is common with whois lookups against Chinese IP |
|---|
| 11 | addresses for example) with the string "NA". This option is disabled by |
|---|
| 12 | default, but can be useful if errors like the following are seen upon |
|---|
| 13 | receiving an email alert from psad: |
|---|
| 14 | |
|---|
| 15 | <<< 554 5.6.1 Eight bit data not allowed |
|---|
| 16 | 554 5.0.0 Service unavailable |
|---|
| 17 | |
|---|
| 18 | - Updated psad to issues whois lookups against IP addresses that are not |
|---|
| 19 | directly connected to the local system. This is useful for example when |
|---|
| 20 | an internal system is scanning an external destination system, and the |
|---|
| 21 | scan is logged in the FORWARD chain. Issuing whois lookups on the |
|---|
| 22 | internal system (frequently on RFC 1918 address space) is not usually |
|---|
| 23 | very useful, but issuing the whois lookup against the destination system |
|---|
| 24 | gives much more interesting data. This feature can be disabled with the |
|---|
| 25 | new ENABLE_WHOIS_FORCE_SRC_IP variable. |
|---|
| 26 | |
|---|
| 27 | psad-2.1.6 (07/09/2010): |
|---|
| 28 | - Bug fix for Decode_Month() calls used to handle date formats and ensure |
|---|
| 29 | proper month handling for iptables log message time stamps. This bug |
|---|
| 30 | caused psad to die in some cases, and the specific error on the console |
|---|
| 31 | in --debug mode was: |
|---|
| 32 | Date::Calc::Decode_Month(): argument is not a string at \ |
|---|
| 33 | /usr/sbin/psad line 1103, <FWDATA> line 2. |
|---|
| 34 | - (Franck Joncourt) Added --Override-config feature so that alternate |
|---|
| 35 | configuration files can be specified on the command line to override |
|---|
| 36 | configuration variables in the standard /etc/psad/psad.conf file. |
|---|
| 37 | - (Franck Joncourt) Submitted patches to fix stderr redirection for the |
|---|
| 38 | usage of the mail binary, and to close stdout, stdin, and stderr when |
|---|
| 39 | running psad as a daemon. |
|---|
| 40 | |
|---|
| 41 | psad-2.1.5 (02/20/2009): |
|---|
| 42 | - (Miroslav Grepl) Contributed policy files to make psad compatible with |
|---|
| 43 | SELinux. The files are located in a new "selinux" directory in the |
|---|
| 44 | psad sources. |
|---|
| 45 | - Bug fix for local server ports not reported correctly under netstat |
|---|
| 46 | parsing (Franck Joncourt). |
|---|
| 47 | - (Steve B) Submitted patch to fix a bug in the start() function in the |
|---|
| 48 | Gentoo init script which caused psad to not be started and the error |
|---|
| 49 | "* ERROR: psad failed to start" to be generated. |
|---|
| 50 | - Bug fix when ENABLE_SYSLOG_FILE is enabled to run a preliminary regex |
|---|
| 51 | match on each syslog message because kmsgsd is not running and therefore |
|---|
| 52 | has not gone through the kmsgsd tests for a properly structured iptables |
|---|
| 53 | message. |
|---|
| 54 | - Updated IPTables::Parse to 0.7. |
|---|
| 55 | - Updated IPTables::ChainMgr to 0.9. |
|---|
| 56 | |
|---|
| 57 | psad-2.1.4 (08/21/2008): |
|---|
| 58 | - Restructured perl module paths to make it easy to introduce a "nodeps" |
|---|
| 59 | distribution of psad that does not contain any perl modules. This |
|---|
| 60 | allows better integration with systems that already have all necessary |
|---|
| 61 | modules installed (including the IPTables::ChainMgr and IPTables::Parse |
|---|
| 62 | modules). The main driver for this work is to make all cipherdyne.org |
|---|
| 63 | projects easily integrated with distributions based on Debian, and |
|---|
| 64 | Franck Joncourt has been instrumental in making this process a reality. |
|---|
| 65 | All perl modules are now placed within the "deps" directory, and the |
|---|
| 66 | install.pl script checks to see if this directory exists - a separate |
|---|
| 67 | psad-<ver>-nodeps tarball will be distributed without this directory. |
|---|
| 68 | The Debian package for psad can then reference the -nodeps tarball, and |
|---|
| 69 | a new "psad-nodeps.spec" file has been added to build an RPM from the |
|---|
| 70 | psad sources that does not install any perl modules. |
|---|
| 71 | - Updated to use the normal system whois client if the /usr/bin/whois_psad |
|---|
| 72 | path does not exist, and moved the whois/ directory into the deps/ |
|---|
| 73 | directory. This removes /usr/bin/whois_psad as a strict dependency. |
|---|
| 74 | - Bugfix to honor the IPT_SYSLOG_FILE variable in --Analyze-msgs mode. |
|---|
| 75 | - Switched from the deprecated bleeding-all.rules file to the new |
|---|
| 76 | emerging-all.rules available from Matt Jonkman at Emerging Threats |
|---|
| 77 | (http://www.emergingthreats.net). |
|---|
| 78 | |
|---|
| 79 | psad-2.1.3 (06/07/2008): |
|---|
| 80 | - Updated to enable IPT_SYSLOG_FILE by default. This is a relatively |
|---|
| 81 | important change since it changes the method of acquiring iptables log |
|---|
| 82 | data from reading it out of named pipe from syslog to just parsing the |
|---|
| 83 | /var/log/messages file. This implies that kmsgsd does not have to run, |
|---|
| 84 | and that it is much easier to ensure that psad actually receives |
|---|
| 85 | iptables log messages. The most complex and error prone aspect of psad |
|---|
| 86 | in the past has been the reconfiguration of the various syslog daemons |
|---|
| 87 | out there (which have very different configuration syntax and features) |
|---|
| 88 | to write kern.info messages to the /var/lib/psad/psadfifo named pipe. |
|---|
| 89 | - Updated to version 4.7.26 of the whois client from Marco d'Itri. This |
|---|
| 90 | allows whois records for some addresses (such as 116.125.35.98, which |
|---|
| 91 | which was scanning a system running psad but could not be identified |
|---|
| 92 | under the older whois client) to be properly queried. |
|---|
| 93 | - Updated to Bit::Vector 6.4 from 6.3. |
|---|
| 94 | - Updated to Date::Calc 5.4 from 5.3. |
|---|
| 95 | - Updated to Storable 2.18 from 2.16. |
|---|
| 96 | |
|---|
| 97 | psad-2.1.2 (04/03/2008): |
|---|
| 98 | - Bugfix to not include kernel timestamps in iptables log prefixes that |
|---|
| 99 | contain spaces like "[ 65.026008] DROP" (bug reported by Erik Heidt). |
|---|
| 100 | - Bugfix to skip non-resolved IP addresses (bug reported by Albert Whale) |
|---|
| 101 | - Better p0f output in --debug mode to display when a passive OS |
|---|
| 102 | fingerprint cannot be calculated based on iptables log messages that |
|---|
| 103 | include tcp options (i.e., with --log-tcp-options when building a LOG |
|---|
| 104 | rule on the iptables command line). |
|---|
| 105 | |
|---|
| 106 | psad-2.1.1 (01/25/2008): |
|---|
| 107 | - Added a new feature whereby psad can acquire iptables log data just by |
|---|
| 108 | parsing an existing file (/var/log/messages by default) that is written |
|---|
| 109 | to by syslog. By default, psad acquires iptables log data from the |
|---|
| 110 | /var/log/psad/fwdata file which is written to by kmsgsd, but on some |
|---|
| 111 | systems, having syslog communicate log data to kmsgsd can be problematic |
|---|
| 112 | since syslog configs and external factors such as Apparmor and SELinux |
|---|
| 113 | can play a role here. This new feature is controled by two new |
|---|
| 114 | configuration variables "ENABLE_SYSLOG_FILE" (to enable/disable the |
|---|
| 115 | feature) and "IPT_SYSLOG_FILE" to specifiy the path to the file to |
|---|
| 116 | parse. |
|---|
| 117 | - Better installation support for various Linux distributions including |
|---|
| 118 | Fedora 8 and Ubuntu. The current runlevel is now acquired via the |
|---|
| 119 | "runlevel" command instead of attempting to read /etc/inittab (which |
|---|
| 120 | does not even exist on Ubuntu 7.10), and there are new command line |
|---|
| 121 | arguments --init-dir, --init-name, and --runlevel to allow the init |
|---|
| 122 | directory, init script name, and the runlevel to be manually specified |
|---|
| 123 | on the install.pl command line. |
|---|
| 124 | - Updated psad to automatically handle situations where the either the |
|---|
| 125 | /var/log/psad/fwdata file or the /var/log/messages file (whichever |
|---|
| 126 | syslog is writing iptables log messages to) gets rotated. The |
|---|
| 127 | filehandle is closed and reopened if the file shrinks or if the inode |
|---|
| 128 | changes. This strategy is borrowed from how the fwknop project deals |
|---|
| 129 | with the filesystem packet capture file. |
|---|
| 130 | - Minor bugfix to generate syslog message when restarting a psad process. |
|---|
| 131 | - Updated install.pl to set the LC_ALL environmental variable to "C" |
|---|
| 132 | This should address some issues with installing psad on non-English |
|---|
| 133 | locale systems. |
|---|
| 134 | - Updated install.pl to be compatible with the rsyslog daemon, which is |
|---|
| 135 | commonly installed on Fedora 8 systems. |
|---|
| 136 | |
|---|
| 137 | psad-2.1 (10/19/2007): |
|---|
| 138 | - Changed EMAIL_LIMIT model to apply to scanning source addresses only |
|---|
| 139 | instead of also factoring in the destination address. The original |
|---|
| 140 | src/dst email limit behavior can be restored by setting a new variable |
|---|
| 141 | "ENABLE_EMAIL_LIMIT_PER_DST" to "Y". |
|---|
| 142 | - Added the patches/iptables-1.3.8_LOG_prefix_space.patch file which can |
|---|
| 143 | be applied to the iptables-1.3.8 code to enforce a trailing space |
|---|
| 144 | character before any log prefix when a LOG rule is added. This ensures |
|---|
| 145 | that the user cannot break the iptables syslog format just by forgetting |
|---|
| 146 | to include a space at the end of a logging prefix. |
|---|
| 147 | - Bugfix to ensure that parsing TCP options does not descend into an |
|---|
| 148 | infinite loop in some some circumstances with obscure or maliciously |
|---|
| 149 | constructed options. Also added syslog reporting for broken options |
|---|
| 150 | lengths of zero or one byte (the minimum option length is two bytes to |
|---|
| 151 | accomodate the TLV encoding). |
|---|
| 152 | - Bugfix to enforce the usage of --CSV-fields in --gnuplot mode. |
|---|
| 153 | - Implemented --get-next-rule-id so that it is easy to assign a new rule |
|---|
| 154 | ID to a new signature in the /etc/psad/signatures file. |
|---|
| 155 | - Updated to just call die() if GetOpt fails; this allows erroneous usage |
|---|
| 156 | of the command line to display informative error messages more clearly. |
|---|
| 157 | |
|---|
| 158 | psad-2.0.8 (07/27/2007): |
|---|
| 159 | - Added --gnuplot mode so that psad can output data that is suitable for |
|---|
| 160 | plotting with gnuplot. All output produced in this mode is integer data |
|---|
| 161 | with the exception of date stamps that are derived from iptables syslog |
|---|
| 162 | messages. |
|---|
| 163 | - Added the ability to negate match conditions on fields specified with |
|---|
| 164 | the --CSV-fields argument by prepending the string "not" (which plays |
|---|
| 165 | more nicely with shells like bash than a character like "!"). For |
|---|
| 166 | example, to graph all packet data in --gnuplot or --CSV modes that |
|---|
| 167 | originates from the 11.11.0.0/16 subnet and is not destined for port |
|---|
| 168 | 80, the following argument does the trick: |
|---|
| 169 | |
|---|
| 170 | --CSV-fields "src:11.11.0.0/16 dp:not80" |
|---|
| 171 | |
|---|
| 172 | - In --gnuplot mode, added the ability to generate the count for a CSV |
|---|
| 173 | field instead of the field itself. Supported modes are an absolute |
|---|
| 174 | count (<field>:count) , and a unique count (<field>:uniqcount). This |
|---|
| 175 | is useful to plot graphs of source IP vs. the number unique ports for |
|---|
| 176 | example. Also added the ability to count iptables log fields over |
|---|
| 177 | various time scales (minutes, hours, and days) with the following |
|---|
| 178 | switches: <field>:countday, <field>:counthour, <field>:countmin. |
|---|
| 179 | - In --gnuplot mode, added the ability to specify the view coordinates |
|---|
| 180 | for 3D graph viewing with --gnuplot-view. |
|---|
| 181 | - Added the Storable-2.16 module along with the --use-store-file argument |
|---|
| 182 | so that in --gnuplot mode the Gnuplot data can be stored on disk and |
|---|
| 183 | retrieve quickly. This eliminates a large performance bottleneck when |
|---|
| 184 | Gnuplot configuration directives are tweaked while the same graph is |
|---|
| 185 | generated multiple times. |
|---|
| 186 | - Added --gnuplot-template so that a template file can be used for all |
|---|
| 187 | Gnuplot directives (usually psad creates the .gnu file based on the |
|---|
| 188 | --gnuplot command line arguments). |
|---|
| 189 | - Added --gnuplot-grayscale to generate graphs without the default red |
|---|
| 190 | color for graph points. |
|---|
| 191 | - Bugfix for regular expressions not being imported correctly from within |
|---|
| 192 | the --CSV-fields argument. |
|---|
| 193 | - Added --analysis-fields so the iptables log messages that are parsed in |
|---|
| 194 | -A mode can be restricted to those that meet certain criteria. For |
|---|
| 195 | example, to restrict the analyze mode to process packets with a source |
|---|
| 196 | address of 192.168.10.1, use this command: |
|---|
| 197 | |
|---|
| 198 | psad -A --analysis-fields "src:192.168.10.1" |
|---|
| 199 | |
|---|
| 200 | - Added --plot-separator to allow the format of plot data (either in |
|---|
| 201 | --gnuplot or --CSV modes) to be influenced by the user. |
|---|
| 202 | - Added the ability to configure the syslog facility and priority via the |
|---|
| 203 | psad.conf file (see the SYSLOG_FACILITY and SYSLOG_PRIORITY variables). |
|---|
| 204 | - Updated psad.spec file to respect the %_initrddir RPM macro. |
|---|
| 205 | |
|---|
| 206 | psad-2.0.7 (05/28/2007): |
|---|
| 207 | - Bugfix to define a custom 'source' definition for syslog-ng daemons - |
|---|
| 208 | this fixes a problem on SuSE systems where the existing syslog-ng |
|---|
| 209 | reconfig caused the daemon to not start. |
|---|
| 210 | - Bugfix to allow specific signatures to be ignored by setting SID values |
|---|
| 211 | of zero in /etc/psad/snort_rule_dl. |
|---|
| 212 | - Added -X command line argument to allow the user to delete any psad |
|---|
| 213 | chains (in auto-response mode). This is a synonym for the iptables -X |
|---|
| 214 | command line argument. |
|---|
| 215 | |
|---|
| 216 | psad-2.0.6 (03/24/2007): |
|---|
| 217 | - Better integration with fwsnort; psad signature match syslog messages |
|---|
| 218 | and email alerts now include the fwsnort rule number (for fwsnort |
|---|
| 219 | version 0.9.0 and greater) and chain information. |
|---|
| 220 | - Added the Snort bleeding-all.rules signature file from the Bleeding |
|---|
| 221 | Snort project (see http://www.bleedingsnort.com). |
|---|
| 222 | - Bugfix to allow interfaces that have IP aliases. |
|---|
| 223 | - Added uname, ifconfig, and syslog process information to --Dump-conf |
|---|
| 224 | output (this can help diagnose various runtime issues). |
|---|
| 225 | - Changed the --Lib-dir command line argument to --lib-dir, and added |
|---|
| 226 | --List (similar to iptables) to list the psad auto-blocking chain rules. |
|---|
| 227 | - Added psad.SlackBuild script contributed by pyllyukko for building psad |
|---|
| 228 | on Slackware systems. It uses the Cipherdyne cd_rpmbuilder script to |
|---|
| 229 | first build and RPM, and then uses it to build a Slackware package. |
|---|
| 230 | |
|---|
| 231 | psad-2.0.5 (03/01/2007): |
|---|
| 232 | - Consolidated all configuration variables into the /etc/psad/psad.conf |
|---|
| 233 | file. The kmsgsd.conf, psadwatchd.conf, alert.conf, and fw_search.conf |
|---|
| 234 | files were all removed since the daemons just reference the psad.conf |
|---|
| 235 | now. Updated install.pl to archive and remove these files if they |
|---|
| 236 | exist from a previous psad installation. |
|---|
| 237 | - Bugfix to account for iptables -nL output where the protocol may be |
|---|
| 238 | reported as "0" instead of "all". |
|---|
| 239 | - Added a function safe_malloc() for kmsgsd.c and psadwatchd.c to ensure |
|---|
| 240 | that a single API is used to perform a NULL check on heap-allocated |
|---|
| 241 | memory. |
|---|
| 242 | - Bugfix to ensure that the psad_ip_len signature matching keyword is |
|---|
| 243 | checked withing match_snort_ip_keywords() so that it applies to all |
|---|
| 244 | protocol packets. This fixes a bug that would cause the "PSAD-CUSTOM |
|---|
| 245 | Nachi worm reconnaisannce" signature to fire on normal ICMP packet log |
|---|
| 246 | messages. |
|---|
| 247 | - Added version and Subversion file revision numbers to die and warn |
|---|
| 248 | messages that are written to /var/log/psad/errs/. This helps when |
|---|
| 249 | trying to track these messages down to a specific file revisions when |
|---|
| 250 | psad is being upgraded on the local system. |
|---|
| 251 | - Added version and Subversion file revision numbers to --Dump-conf |
|---|
| 252 | output. |
|---|
| 253 | - Minor update to allow --fw-dump to be used on the command line without |
|---|
| 254 | also having to use the -D argument. |
|---|
| 255 | - Updated the default_log() function in the IPTables::Parse module to |
|---|
| 256 | handle iptables policies that were dumped with -v, such as when |
|---|
| 257 | --Dump-conf is used. |
|---|
| 258 | |
|---|
| 259 | psad-2.0.4 (01/27/2007): |
|---|
| 260 | - Added Snort rule matches to syslog alerts. Multiple matches can be |
|---|
| 261 | controlled with new configuration variables in psad.conf: |
|---|
| 262 | ENABLE_SIG_MSG_SYSLOG, SIG_MSG_SYSLOG_THRESHOLD, and |
|---|
| 263 | SIG_SID_SYSLOG_THRESHOLD. |
|---|
| 264 | - Bugfix to include scanned UDP port ranges in syslog alerts. |
|---|
| 265 | - Bugfix to parse SEQ and ACK iptables log message fields (requires |
|---|
| 266 | --log-tcp-sequence on the iptables command line). This allows the ipEye |
|---|
| 267 | signature to work. |
|---|
| 268 | - Added --debug-sid to allow a specific Snort rule to be debugged while |
|---|
| 269 | psad runs it through its detection engine. A consequence of this is |
|---|
| 270 | that the -d command line argument must be spelled out, i.e. "psad |
|---|
| 271 | --debug". |
|---|
| 272 | - Bugfix to allow logging prefixes to omit trailing spaces. This is a bug |
|---|
| 273 | in the iptables logging format to allow this in the first place, but |
|---|
| 274 | before this gets fixed psad needs to compensate. |
|---|
| 275 | - Bugfix for syslog-ng init script path in install.pl. |
|---|
| 276 | - Bugfix to include a "source" definition for /proc/kmsg if not already |
|---|
| 277 | defined for syslog-ng daemons. |
|---|
| 278 | - Minor memory handling bugfixes discovered by valgrind the excellent |
|---|
| 279 | Valgrind project: http://www.valgrind.org |
|---|
| 280 | |
|---|
| 281 | psad-2.0.3 (12/31/2006): |
|---|
| 282 | - Removed Psad.pm perl module and kmsgsd.pl and psadwatchd.pl scripts. |
|---|
| 283 | This is a major change that allows psad to be more flexible and |
|---|
| 284 | completely derive its config from the psad.conf file and from the |
|---|
| 285 | command line. In the previous scheme, psad imported its config with a |
|---|
| 286 | function within Psad.pm, and this required that psad imported the Psad |
|---|
| 287 | perl module before reading its config. A consequence was that the |
|---|
| 288 | PSAD_LIBS_DIR var could not be specified usefully within the config |
|---|
| 289 | file. |
|---|
| 290 | - Added the ability to recursively resolve embedded variables from *.conf |
|---|
| 291 | files (with a limit of 20 resolution attempts). |
|---|
| 292 | - Added IGNORE_KERNEL_TIMESTAMP so that Linux distros that add a timestamp |
|---|
| 293 | to all kernel messages (Ubuntu for example) can be ignored. |
|---|
| 294 | - Consolidated code to import data out of /var/log/psad/<ip> directories |
|---|
| 295 | with code to display status and analysis output (-S and -A). |
|---|
| 296 | Essentially the %scan hash is built by the filesystem data import |
|---|
| 297 | routine and the remainder of the code references this single data |
|---|
| 298 | structure. |
|---|
| 299 | |
|---|
| 300 | psad-2.0.2 (12/23/2006): |
|---|
| 301 | - Added the ability to download the latest signatures from cipherdyne.org |
|---|
| 302 | in install.pl. |
|---|
| 303 | - Added the cd_rpmbuilder script to make it easy to build RPM's out of |
|---|
| 304 | CipherDyne projects by automatically downloading the project .tar.gz and |
|---|
| 305 | .spec files from http://www.cipherdyne.org/. |
|---|
| 306 | - Added print statements for @INC array in debug mode so that the user can |
|---|
| 307 | see the additional /usr/lib/psad/* directories added by |
|---|
| 308 | import_psad_perl_modules(). |
|---|
| 309 | - Changed Unix::Syslog import strategy from "use" to "require" since the |
|---|
| 310 | path is not known until import_psad_perl_modules() gets a chance to |
|---|
| 311 | run (psad ran fine without this, but it is more consistent this way). |
|---|
| 312 | - Bugfix for not properly including elements of the |
|---|
| 313 | @connected_subnets_cidr array. |
|---|
| 314 | - IP subnet bugfix to make sure to get the entire subnet in signature |
|---|
| 315 | import routine if it is not in CIDR format |
|---|
| 316 | - Bugfix to not print an IP addresses in the "top attackers" section that |
|---|
| 317 | do not have at least one packet or signature match (for any reason). |
|---|
| 318 | - Bugfix to not print more than TOP_IP_LOG_THRESHOLD IP addresses in thet |
|---|
| 319 | top attackers section. |
|---|
| 320 | - Updated install.pl to reference configuration paths directly from |
|---|
| 321 | psad.conf instead of defining them separately. This should fix Debian |
|---|
| 322 | bug #403566. |
|---|
| 323 | - Added -c argument to install.pl so that the path to a psad.conf file |
|---|
| 324 | can be altered from the command line. |
|---|
| 325 | - Bugfix to not import any IP from the top_attackers file from a previous |
|---|
| 326 | psad run that does not have a /var/log/psad/<ip> directory. |
|---|
| 327 | - Added MIN_DANGER_LEVEL to allow all alerts and /var/log/psad/<ip> |
|---|
| 328 | tracking to be disabled unless an attacker reaches at least this |
|---|
| 329 | danger level. |
|---|
| 330 | - Added text in install.pl to mention ifconfig parsing for HOME_NET |
|---|
| 331 | derivation. |
|---|
| 332 | |
|---|
| 333 | psad-2.0.1 (12/12/2006): |
|---|
| 334 | - Added Nachi worm reconnaisannce icmp signature |
|---|
| 335 | - Added the psad_ip_len signature keyword to allow the length field in the |
|---|
| 336 | IP header to be explicitly tested. |
|---|
| 337 | - Bugfix for inappropriately removing some directories in @INC when |
|---|
| 338 | splicing in psad perl module paths. |
|---|
| 339 | - Switched nf2csv installation path in install.pl to /usr/bin/. |
|---|
| 340 | |
|---|
| 341 | psad-2.0 (12/10/2006): |
|---|
| 342 | - Completely refactored the Snort rule matching support in psad. Added |
|---|
| 343 | many header field tests with full range matching support. These tests |
|---|
| 344 | include the following keywords from Snort: ttl, id, seq, ack, window, |
|---|
| 345 | icmp_id, icmp_seq, itype, icode, ip_proto, ipopts, and sameip. |
|---|
| 346 | - Refactored all signatures in /etc/psad/signatures to conform to new |
|---|
| 347 | signature matching support in this release. There are now about 190 |
|---|
| 348 | signatures that psad can run directly against Netfilter logging |
|---|
| 349 | messages (i.e. without the help of fwsnort). |
|---|
| 350 | - Added the ability to download the latest signatures file from |
|---|
| 351 | http://www.cipherdyne.org/psad/signatures with the --sig-update command |
|---|
| 352 | line argument to psad. |
|---|
| 353 | - Added "MISC Windows popup spam" signature. This allows psad to detect |
|---|
| 354 | when attempts are made to send spam via the Windows Messenger service. |
|---|
| 355 | - Completely reworked --Status and --Analyze output, signature matches |
|---|
| 356 | are included now, along with a listing of top sig matches, top scanned |
|---|
| 357 | ports, and top attackers. Also, scan data is not written to |
|---|
| 358 | /var/log/psad/ipt_analysis/ before display analysis output in -A mode; |
|---|
| 359 | analysis results are displayed much faster this way. |
|---|
| 360 | - Added ipEye, Subversion, Kuang2, Microsoft SQL, Radmin, and Ghostsurf |
|---|
| 361 | signatures. |
|---|
| 362 | - Added 'data in TCP SYN packet' signature. |
|---|
| 363 | - Added --CSV mode so that psad can be used to generate comma-separated |
|---|
| 364 | value output suitable for the AfterGlow project (see |
|---|
| 365 | http://afterglow.sourceforge.net/index.html) for graphical |
|---|
| 366 | representations of Netfilter logs and associated scan data. Also added |
|---|
| 367 | nf2csv so that normal users can take advantage of this feature. |
|---|
| 368 | - Added emulation of the Snort "dsize" test through the use of the IP |
|---|
| 369 | length field for TCP/ICMP signatures, and the UDP length field for UDP |
|---|
| 370 | signatures. For SYN packets, TCP options are included so psad |
|---|
| 371 | automatically adds 44 bytes (the maximum length for TCP options) so the |
|---|
| 372 | dsize test corresponds to the estimated payload length. |
|---|
| 373 | - Added the psad_id, psad_dsize, and psad_derived_sids fields for the new |
|---|
| 374 | Snort rule support. |
|---|
| 375 | - Added the ability to decode IP options, which are included within Snort |
|---|
| 376 | rules as the "ipopts" keyword. This functionality requires that the |
|---|
| 377 | --log-ip-options command line argument is given to iptables when |
|---|
| 378 | building a rule that uses the LOG target. |
|---|
| 379 | - Added Snort rules (sids 475, 500, 501, and 502) that detect IP options |
|---|
| 380 | usage such as source routing and the traceroute IP option with the new |
|---|
| 381 | IP options decoder. |
|---|
| 382 | - Enhanced psad email alert output to include sid values that have been |
|---|
| 383 | derived from existing Snort rules. |
|---|
| 384 | - Added the ability to expand embedded variables within the psad |
|---|
| 385 | configuration files. For example, the path to the FW_DATA_FILE is |
|---|
| 386 | defined in psad.conf as "$PSAD_DIR/fwdata", which resolves to |
|---|
| 387 | /var/log/psad/fwdata when the PSAD_DIR variable is expanded. This |
|---|
| 388 | feature allows a consistent set of file paths to easily be defined |
|---|
| 389 | instead of using the full path for each file path. |
|---|
| 390 | - Better validation of IPT_AUTO_CHAIN{n} variables so that the from_chain |
|---|
| 391 | cannot be identical to the to_chain. |
|---|
| 392 | - Added dump_config() to psadwatchd.c and kmsgsd.c when compiled with |
|---|
| 393 | debugging support. |
|---|
| 394 | - Added ENABLE_INTF_LOCAL_NETS to have psad automatically treat all IP |
|---|
| 395 | addresses that are part of the local system as belonging to the HOME_NET |
|---|
| 396 | for signature matching. |
|---|
| 397 | - Added ENABLE_SNORT_SIG_STRICT to have psad exit if there are any |
|---|
| 398 | problems found with Snort rules in the /etc/psad/signatures file. If |
|---|
| 399 | this feature is disabled (this is the default), then psad generates |
|---|
| 400 | syslog warnings for improperly formatted signatures). |
|---|
| 401 | - Update to print the number of IP addresses at each danger level in -A |
|---|
| 402 | analysis mode. This is useful to get a sense for how long the disk IO |
|---|
| 403 | might take to write out all of the /var/log/psad/ipt_analysis/<IP> |
|---|
| 404 | directories. |
|---|
| 405 | - Added code to restart kmsgsd at psad start up if a previous kmsgsd |
|---|
| 406 | process is still running and TRUNCATE_FWDATA is set to 'Y' (this is the |
|---|
| 407 | default). This probably isn't strictly necessary because kmsgsd is |
|---|
| 408 | capable of writing to the fwdata file even if another process truncates |
|---|
| 409 | it. |
|---|
| 410 | - Added code to recreate the AUTO_IPT_SOCK (/var/run/psad/auto_ipt.sock) |
|---|
| 411 | file if some other process happens to delete it out of /var/run/psad/ |
|---|
| 412 | - Bugfix to allow backwards compatibility with old NOT_USED value |
|---|
| 413 | for the HOME_NET variable. |
|---|
| 414 | - Bugfix to cleanup any lost blocking rules from the running psad |
|---|
| 415 | timeouts (a separate process might have deleted rules from the psad |
|---|
| 416 | chains). |
|---|
| 417 | - Bugfix to allow Netfilter log messages to include the PHYSDEV (i.e. |
|---|
| 418 | PHYSIN and PHYSOUT) interfaces. |
|---|
| 419 | - Updated to read architecture-dependent perl module installation |
|---|
| 420 | directory out of /usr/lib/psad (e.g. "/usr/lib/psad/x86_64-linux") |
|---|
| 421 | before importing psad perl modules such as IPTables::Parse, etc. These |
|---|
| 422 | modules are now imported via "require" after the appropriate |
|---|
| 423 | directories have been added to @INC. This allows the RPM files to be |
|---|
| 424 | built on one system that builds @INC differently than the system where |
|---|
| 425 | psad is actually installed since psad can now compensate for this. |
|---|
| 426 | - Added new code to populate the <dst>_signature file in each of the |
|---|
| 427 | /var/log/psad/<ip> directories with verbose information including the |
|---|
| 428 | signature time, sid, protocol, dst port, and packet count. |
|---|
| 429 | - Changed --interval to --Interval, and added --interface to allow |
|---|
| 430 | psad's detection to be limited to a specific IN interface for the INPUT |
|---|
| 431 | and FORWARD chains (or OUT interface for the OUTPUT chain). |
|---|
| 432 | - Replaced --status-brief with --status-summary, but changed it so that |
|---|
| 433 | only the detailed IP status information is omitted. |
|---|
| 434 | - Removed unnecessary --status-sort-dl option. |
|---|
| 435 | - Added STATUS_OUTPUT_FILE so the --Status and --Analyze output is |
|---|
| 436 | captured instead of just being lost if the output was not piped to |
|---|
| 437 | 'less' or another similar program. |
|---|
| 438 | - Added --restrict-ip so that psad will restrict its attack detection |
|---|
| 439 | operations to a specific IP or network. |
|---|
| 440 | - Updated psadwatchd.c to parse EMAIL_ADDRESSES out of |
|---|
| 441 | /etc/psad/psad.conf to avoid duplication of variables. |
|---|
| 442 | - Bugfix to clear old @ipt_config array after receiving a HUP signal. |
|---|
| 443 | This bug broke the auto-blocking mode. |
|---|
| 444 | - Bugfix for syslog-ng config so that any custom source for /proc/kmsg is |
|---|
| 445 | used for the psadfifo path. |
|---|
| 446 | |
|---|
| 447 | psad-1.4.8 (10/15/2006): |
|---|
| 448 | - Added the ability to get the auto-blocking status for a specific IP |
|---|
| 449 | address in --status-ip mode. |
|---|
| 450 | - Bugfix to use the IPT_OUTPUT_FILE and IPT_ERROR_FILE configuration |
|---|
| 451 | variables. |
|---|
| 452 | - Bugfix to restore "start" functionality in Gentoo init script. |
|---|
| 453 | - Added the ability to selectively disable psad auto-blocking emails. |
|---|
| 454 | - Added more rigorous IP matching regex from Sebastien J. (contributed |
|---|
| 455 | originally for fwknop). |
|---|
| 456 | |
|---|
| 457 | psad-1.4.7 (09/10/2006): |
|---|
| 458 | - Completely re-worked IPTables::ChainMgr to support the return of |
|---|
| 459 | iptables error messages that are collected via stderr. This is critical |
|---|
| 460 | to fixing a bug where psad would sometimes die on an iptables command |
|---|
| 461 | but no information would be returned to the user. |
|---|
| 462 | - Added the ability to specify the position for both the jump rule into |
|---|
| 463 | the psad chains as well as the position for new rules within the psad |
|---|
| 464 | chains via the -I argument to iptables. This fixes a bug where the user |
|---|
| 465 | was given the impression that the IPTABLES_AUTO_RULENUM would accomplish |
|---|
| 466 | this. |
|---|
| 467 | - Populated the _debug option in the IPTables::ChainMgr module, and also |
|---|
| 468 | added a _verbose option so that the specific iptables commands can |
|---|
| 469 | actually be seen as IPTables::ChainMgr functions are called. |
|---|
| 470 | - Added code to install.pl to ask the user if a manual restart of syslog |
|---|
| 471 | is ok upon an unsuccessful test of the syslog reconfiguration. This |
|---|
| 472 | fixes a bug where some syslog daemons might not re-import their |
|---|
| 473 | configurations after receiving a HUP signal. |
|---|
| 474 | - Bugfix for incorrect config variable name that gated Netfilter |
|---|
| 475 | prerequisite checks. |
|---|
| 476 | - Added code to install.pl to update command paths in psad.conf and |
|---|
| 477 | psadwatchd.conf if any of the paths are broken (i.e. the local system |
|---|
| 478 | does not conform to the default paths). By default this only happens if |
|---|
| 479 | the user does not want old configs to be merged, but to override this |
|---|
| 480 | use the new --path-update command line argument to install.pl. |
|---|
| 481 | - Added the --Skip-mod-install command line argument to install.pl to |
|---|
| 482 | allow all perl module installs to be skipped. |
|---|
| 483 | - Added the --force-mod-regex command line argument to install.pl to allow |
|---|
| 484 | a regex match on perl module names to force matching modules to be |
|---|
| 485 | installed. |
|---|
| 486 | - Added the logrotate.psad file (contributed by Albert Whale). |
|---|
| 487 | |
|---|
| 488 | psad-1.4.6 (06/13/2006): |
|---|
| 489 | - Added ENABLE_AUTO_IDS_REGEX and AUTO_BLOCK_REGEX to allow filtering on |
|---|
| 490 | logging prefixes. |
|---|
| 491 | - Added code to save DShield email to a file. |
|---|
| 492 | - Added IPTABLES_PREREQ_CHECK to allow the administrator to control the |
|---|
| 493 | frequency of Netfilter checks (for auto-block compatibility). |
|---|
| 494 | - Added IGNORE_LOG_PREFIXES to allow certain log prefixes to be completely |
|---|
| 495 | ignored by psad. |
|---|
| 496 | - Added classification.config file from Snort-2.3.3 so that psad can |
|---|
| 497 | assign danger levels based upon Snort rule class type. This is useful |
|---|
| 498 | when also running fwsnort. |
|---|
| 499 | - Added snort_rule_dl to allow specific psad to assign specific danger |
|---|
| 500 | level values to particular signatures. This is useful if you want to |
|---|
| 501 | do define certain Snort rules as being particularly evil (or not). |
|---|
| 502 | Running fwsnort is also necessary to take advantage of this feature. |
|---|
| 503 | - Added reference.config so that psad can include reference information in |
|---|
| 504 | email alerts that are derived from attacks detected by fwsnort. |
|---|
| 505 | - Updated to Snort-2.3.3 signatures. |
|---|
| 506 | - Updated to whois-4.7.13. |
|---|
| 507 | |
|---|
| 508 | psad-1.4.5 (01/13/2006): |
|---|
| 509 | - Bugfix in IPTables::Parse to allow the limit target to apply to |
|---|
| 510 | logging rules. |
|---|
| 511 | - Made calls to chain creation and jump rule functions for only every |
|---|
| 512 | 100 block calls in auto-IDS mode. |
|---|
| 513 | - Bugfix to make sure /var/run/psad directory exists at startup since |
|---|
| 514 | this directory is removed by some Linux distributions at boot time. |
|---|
| 515 | - Bugfix for zero masks in auto_dl; this allows a network of "0.0.0.0/0" |
|---|
| 516 | to be specified. |
|---|
| 517 | - Added ENABLE_FW_LOGGING_CHECK so that the Netfilter policy check can be |
|---|
| 518 | enabled/disabled easily via psad.conf. |
|---|
| 519 | - Enhanced -D output to include "uname -a" and "perl -V" output. |
|---|
| 520 | - Added ENABLE_RENEW_BLOCK_EMAILS to allow whether renew emails are sent |
|---|
| 521 | for auto-blocked addresses. |
|---|
| 522 | |
|---|
| 523 | psad-1.4.4 (11/27/2005): |
|---|
| 524 | - Added MAC address reporting in psad email alerts. This feature is |
|---|
| 525 | enabled via a new config keyword "ENABLE_MAC_ADDR_REPORTING". |
|---|
| 526 | - Added --fw-rm-block-ip <ip> option to allow IP addresses to be removed |
|---|
| 527 | from the auto-blocking chains from the command line. |
|---|
| 528 | - Updated command line firewall arguments to write commands to the |
|---|
| 529 | AUTO_IPT_SOCK domain socket. |
|---|
| 530 | - Added the ability to specify ports and port ranges to auto_dl file. |
|---|
| 531 | - Added --force-mod-install command line argument to installer to force |
|---|
| 532 | perl modules used by psad to be installed within /usr/lib/psad |
|---|
| 533 | regardless of whether they already exist in the system perl tree. |
|---|
| 534 | - Bugfix in the installer to seek() to the end of the fwdata file |
|---|
| 535 | - Bugfix for psad repeatedly trying to remove the same IP address(es) |
|---|
| 536 | from the auto-blocking chains. |
|---|
| 537 | instead of reading the entire thing into memory. |
|---|
| 538 | - Added the ability to truncate the fwdata file via a new configuration |
|---|
| 539 | keyword "TRUNCATE_FWDATA" (this is enabled by default). |
|---|
| 540 | - Bugfix in auto-blocking mode for deleting AUTO_IPT_SOCK when a HUP |
|---|
| 541 | signal is received. |
|---|
| 542 | - Bugfix for parsing Netfilter policies that contain ULOG logging rules |
|---|
| 543 | instead of the standard LOG target. |
|---|
| 544 | - Removed the smtpdaemon requirement in the RPM because psad might be |
|---|
| 545 | configured to not send email alerts. |
|---|
| 546 | |
|---|
| 547 | psad-1.4.3 (09/27/2005): |
|---|
| 548 | - Bugfixes for auto-blocking code. Timeouts should be handled |
|---|
| 549 | properly, including cached IP addresses in the auto_blocked_iptables |
|---|
| 550 | file that are referenced upon psad startup. Communication with the |
|---|
| 551 | running psad is performed over a Unix domain socket in --fw-block |
|---|
| 552 | mode. |
|---|
| 553 | - Bugfix to seek to the end of the fwdata file instead of reading the |
|---|
| 554 | entire thing into memory and then looking for newly written logging |
|---|
| 555 | messages. This drastically reduces the amount of memory required |
|---|
| 556 | by psad. |
|---|
| 557 | - Updated to only display psad chains if --verbose is set |
|---|
| 558 | - Updated to automatically flush the psad auto-response Netfilter chains |
|---|
| 559 | at start time (subject to a new config keyword "FLUSH_IPT_AT_INIT"). |
|---|
| 560 | |
|---|
| 561 | psad-1.4.2 (07/15/2005): |
|---|
| 562 | - Dependency bugfixes for mail binary. |
|---|
| 563 | - Bugfix for various IGNORE_* keywords not being honored. |
|---|
| 564 | - Bugfix for not timing out blocked IP addresses from a previous run. |
|---|
| 565 | - Updated to version 0.2 of the IPTables::ChainMgr module. |
|---|
| 566 | - Updated to not truncate the fwdata file upon psad startup. |
|---|
| 567 | - Added --fw-dump which produces a sanitized (i.e. no IP addresses) |
|---|
| 568 | version of the local Netfilter policy. Also added --fw-include-ips |
|---|
| 569 | to (optionally) not sanitize IPs/nets. Note that the 0.0.0.0 and |
|---|
| 570 | 0.0.0.0/0 IPs/nets are not sanitized since they give no useful |
|---|
| 571 | information about specific IPs/nets. |
|---|
| 572 | - Added ulogd data collection mode. |
|---|
| 573 | - Bugfix for FW_MSG_SEARCH default (at least "DROP" is included now |
|---|
| 574 | even if FW_SEARCH_ALL is set to "N"). |
|---|
| 575 | - Bugfix for non-network address for subnet specified with --fw-block. |
|---|
| 576 | - Bugfix for multiple --fw-block IPs/nets. |
|---|
| 577 | - Added README.SYSLOG (Francois Marier contributed the content). |
|---|
| 578 | - Made email alert prefixes (such as "[psad-alert]") customizable via |
|---|
| 579 | psad.conf. |
|---|
| 580 | |
|---|
| 581 | psad-1.4.1 (03/12/2005): |
|---|
| 582 | - Updated to Snort-2.3 rules in the snort_rules directory. |
|---|
| 583 | - Re-worked syslog installation portion of install.pl. The user will |
|---|
| 584 | always be prompted to enter the syslog daemon now, and also added |
|---|
| 585 | the --syslog-conf arg to allow the config file path to be specified |
|---|
| 586 | on the install.pl command line. |
|---|
| 587 | - Bugfix in install.pl for using IP address instead of network address |
|---|
| 588 | of directly connected subnets. |
|---|
| 589 | - Updated to version 4.6.23 of the whois client. |
|---|
| 590 | - Bugfix for distinguishing OPT field associated with --log-tcp-options |
|---|
| 591 | vs. --log-ip-options. |
|---|
| 592 | - Bugfix for syslog format that may not include the "kernel:" tag. |
|---|
| 593 | - Applied patch to only install perl modules that are not already |
|---|
| 594 | installed (Blair Zajac). |
|---|
| 595 | - Bugfix for the psad version number that is sent in DShield alerts. |
|---|
| 596 | - Updated Psad module directory structure to be consistent with current |
|---|
| 597 | versions of perl (5.8.x). |
|---|
| 598 | - Added IPTables::ChainMgr module. |
|---|
| 599 | - Completely re-worked the Netfilter auto-blocking code to use |
|---|
| 600 | IPTables::ChainMgr functions so that auto-generated rules are placed |
|---|
| 601 | in chains created by psad. |
|---|
| 602 | - Added IPT_AUTO_CHAIN keyword in psad.conf which is used to define the |
|---|
| 603 | set of chains to which auto-generated Netfilter rules are added. |
|---|
| 604 | - Added --fw-list-auto to display the contents of psad Netfilter |
|---|
| 605 | chains. |
|---|
| 606 | - Added the ability to import an IP into the Netfilter auto-blocking |
|---|
| 607 | chains from the command line with --fw-block-ip. This allows psad to |
|---|
| 608 | apply its timeout mechanism against such IPs/nets. |
|---|
| 609 | - Added the ability to ignore packets based on input interface with |
|---|
| 610 | IGNORE_INTERFACES in psad.conf. |
|---|
| 611 | - Re-worked auto_dl code, better hash design and searching function. |
|---|
| 612 | - Removed dependency on sendmail command unless DShield alerting is |
|---|
| 613 | enabled and a DShield user id is specified. |
|---|
| 614 | - Added ALERTING_METHODS keyword in the file alert.conf to allow either |
|---|
| 615 | syslog or email alerts (or both) to be disabled. Psad and psadwatchd |
|---|
| 616 | reference this file. |
|---|
| 617 | |
|---|
| 618 | psad-1.4.0 (11/26/2004): |
|---|
| 619 | - Added p0f-style passive OS fingerprinting through the use of the OPT |
|---|
| 620 | field in iptables log messages (which is only logged through the use |
|---|
| 621 | of the --log-tcp-options command line arg to iptables). |
|---|
| 622 | - Bugfix for iptables log messages that include tcp sequence numbers |
|---|
| 623 | (see the iptables --log-tcp-sequence command line argument). |
|---|
| 624 | - Bugfix for O_RDONLY open flag when kmsgsd receives a HUP signal. |
|---|
| 625 | |
|---|
| 626 | psad-1.3.4 (10/17/2004): |
|---|
| 627 | - Bugfix for init script directory on Slackware systems. |
|---|
| 628 | - Bugfix for null prefix counters. |
|---|
| 629 | - Added --whois-analysis argument since whois lookups are now disabled |
|---|
| 630 | by default when running in analysis (-A) mode. |
|---|
| 631 | - Updated psad_init() to rework setup() and import orderings vs. |
|---|
| 632 | --fw-analyze and --Benchmark modes. |
|---|
| 633 | - Added bidirectional iptables auto-blocking support for all chains |
|---|
| 634 | except for the INPUT and OUTPUT chains. |
|---|
| 635 | - Better syslog message support when run in auto-blocking mode. |
|---|
| 636 | - Added iptables auto-block rules section to --Status output. |
|---|
| 637 | - Added init script for Fedora systems. |
|---|
| 638 | - Added default_log() function to IPTables::Parse. This function |
|---|
| 639 | parses user defined chains in an effort to find default logging |
|---|
| 640 | rules. |
|---|
| 641 | - Added EMAIL_LIMIT_STATUS_MSG to control whether or not psad sends a |
|---|
| 642 | status email when the PSAD_EMAIL_LIMIT threshold has been reached by |
|---|
| 643 | an IP address. |
|---|
| 644 | - Added ENABLE_SCAN_ARCHIVE to control whether or not psad archives old |
|---|
| 645 | scan data within /var/log/psad/scan_archive at start time. |
|---|
| 646 | |
|---|
| 647 | psad-1.3.3 (09/09/2004): |
|---|
| 648 | - Fixed __WARN__ and __DIE__ exception handlers so that they |
|---|
| 649 | reference global message variables. |
|---|
| 650 | - Fixed auto danger level assignments. Network auto assignments as |
|---|
| 651 | well as per-protocol assignments work now. |
|---|
| 652 | - Added SYSLOG_DAEMON variable to define which syslog daemon is running |
|---|
| 653 | on the underlying system instead of just guessing. |
|---|
| 654 | - Added the ability to ignore both ranges and specific ports/protocols |
|---|
| 655 | with a new variable IGNORE_PORTS in psad.conf. |
|---|
| 656 | - Bugfix to make sure email addresses are separated by spaces when |
|---|
| 657 | Psad::sendmail() is called. |
|---|
| 658 | - Bugfix for ipt_prefix counters not being parsed correct at import |
|---|
| 659 | time. |
|---|
| 660 | - Removed exclude_auto_ignore_ip() since this function was made |
|---|
| 661 | unnecessary by newly rewritten auto-assign code. |
|---|
| 662 | - Bugfix for Text::Wrap calls in install.pl uninstall() routine. |
|---|
| 663 | - Bugfix for using --no-fw-search-all even when FW_SEARCH_ALL is |
|---|
| 664 | set to "Y". |
|---|
| 665 | - Removed extraneous ".." and "**" chars from syslog messages, and |
|---|
| 666 | updated to use [+] prefix strings. |
|---|
| 667 | - Moved init scripts into init-scripts directory within source tree. |
|---|
| 668 | - Removed dependency on Bit::Vector (psad does not seem to make use |
|---|
| 669 | of any Date::Calc functions that require it). |
|---|
| 670 | - Wrapped copy() and move() calls with "or die()" to make them |
|---|
| 671 | safer in install.pl. |
|---|
| 672 | - Added check for existing psad process in install.pl. |
|---|
| 673 | - Updated to a new psad email alert subject format. Prefixes of |
|---|
| 674 | "[psad-alert]", "[psad-error]", and "[psad-status]" are used now. |
|---|
| 675 | - Permissions fixes with umask() setting in /var/log/psad, permissions |
|---|
| 676 | fixes for files in /etc/psad at install time. |
|---|
| 677 | |
|---|
| 678 | psad-1.3.2 (06/25/2004): |
|---|
| 679 | - Removed FW_MSG_SEARCH from psad.conf, and created a new config |
|---|
| 680 | file "fw_search.conf" that both psad and kmsgsd use to get the |
|---|
| 681 | FW_MSG_SEARCH definition(s). |
|---|
| 682 | - Added default mode of parsing all iptables messages instead of |
|---|
| 683 | just those that contain specific search strings. A new config |
|---|
| 684 | variable "FW_SEARCH_ALL" was added to fw_search.conf that |
|---|
| 685 | controls this mode. |
|---|
| 686 | - Updated psad and kmsgsd so that multiple firewall search strings |
|---|
| 687 | can be specified through multiple FW_MSG_SEARCH variables in |
|---|
| 688 | fw_search.conf. |
|---|
| 689 | - Added iptables chain and logging-prefix tracking for current |
|---|
| 690 | scan interval in email alerts. |
|---|
| 691 | - Added protocol-specific auto-danger level assignments. |
|---|
| 692 | - Added total scan source and destination IP address counters in |
|---|
| 693 | --Status output. |
|---|
| 694 | - Added number of email alerts sent and OS guess in default |
|---|
| 695 | --Status output. The output is getting wide now, so there is |
|---|
| 696 | also a new option --status-brief that will remove the alerts |
|---|
| 697 | sent and OS guess columns. |
|---|
| 698 | - Added getopt() command line arg parsing to kmsgsd with two new |
|---|
| 699 | options "-c" (for config file path) and "-k" (for fw_search.conf |
|---|
| 700 | path). |
|---|
| 701 | - Made iptables parsing code into its own script "fwcheck_psad" |
|---|
| 702 | that gets called by psad. |
|---|
| 703 | - Added Dshield stats summary to --Status output. |
|---|
| 704 | - Bugfix for auto-ignore IP addresses and networks being missed. |
|---|
| 705 | - Made parsing of ifconfig output language independent (should |
|---|
| 706 | handle French now for example). |
|---|
| 707 | - Removed "psad_" prefix on files psad_signatures, psad_auto_ips, |
|---|
| 708 | psad_posf, and psad_icmp_types in /etc/psad/. |
|---|
| 709 | - Updated to version 4.6.14 of the whois client. |
|---|
| 710 | |
|---|
| 711 | psad-1.3.1 (12/25/2003): |
|---|
| 712 | - Added the ability to import /var/log/psad/<ip> directories |
|---|
| 713 | back into memory so scan data remains persistent across |
|---|
| 714 | psad restarts or system reboots. |
|---|
| 715 | - Added --Analyze-msgs to run psad in analysis mode against an |
|---|
| 716 | iptables logfile (/var/log/psad/fwdata by default). The logfile |
|---|
| 717 | path can be changed with --messages-file. |
|---|
| 718 | - Added icmp type and code validation against RFC 792. |
|---|
| 719 | - Bugfix for being too strict with FW_MSG_SEARCH. |
|---|
| 720 | - Added port ranges for tcp and udp scans in <ip>/<dst>_packet_ctr. |
|---|
| 721 | - Added <ip>/<dst>_start_time and <ip>/os_guess. |
|---|
| 722 | - Bugfix for missing --no-signatures code. |
|---|
| 723 | - Updated to Snort-2.1 signatures. |
|---|
| 724 | |
|---|
| 725 | psad-1.3 (11/30/2003): |
|---|
| 726 | - Replaced all signatures in psad_signatures with updated snort |
|---|
| 727 | rules. |
|---|
| 728 | - Added support for source and destination ip addresses in |
|---|
| 729 | signature matching code. A new variable "HOME_NET" makes this |
|---|
| 730 | possible. |
|---|
| 731 | - Added support for the iptables output chain. |
|---|
| 732 | - Added chain tracking for all signatures. |
|---|
| 733 | - Replaced match_fastsigs() with two new routines for tcp and |
|---|
| 734 | udp signature matching that don't autovivify hash keys. |
|---|
| 735 | - Removed support for ipchains. |
|---|
| 736 | - Added support for metalog. |
|---|
| 737 | - Removed all "Undefined Code" signatures from psad_signatures. |
|---|
| 738 | - Re-worked %auto_blocked_ips hash and corresponding blocking |
|---|
| 739 | routines. This (hopefully) fixes a restart bug seen on older |
|---|
| 740 | systems such as those that are still running versions of perl |
|---|
| 741 | less than 5.6. |
|---|
| 742 | - Re-worked firewall policy parsing routines. Chains that have |
|---|
| 743 | a default policy of DROP are handled properly now. |
|---|
| 744 | - Bugfix for missing NULL char in kmsgsd.c. |
|---|
| 745 | - Updated scan alerting format. Put current interval protocol |
|---|
| 746 | status before source and destination addresses. |
|---|
| 747 | - Buffer overflow fix in kmsgsd.c for size of buf[MAX_LINE_BUF] |
|---|
| 748 | buffer in read() call. |
|---|
| 749 | - Added --no-kmsgsd option to aid in psad --debug mode. |
|---|
| 750 | |
|---|
| 751 | psad-1.2.4 (10/15/2003): |
|---|
| 752 | - Added danger level to subject line in email alerts. |
|---|
| 753 | - Removed diskmond altogether since psad now handles disk space |
|---|
| 754 | thresholds directly. This allows filehandles to be handled |
|---|
| 755 | properly. |
|---|
| 756 | - Added auto_block_ignore_ip() to prevent 0.0.0.0, 127.0.0.1, |
|---|
| 757 | and local interface ips from being included in auto blocking |
|---|
| 758 | routines. |
|---|
| 759 | - Added Bit::Vector module to stop installation warnings from |
|---|
| 760 | Date::Calc. |
|---|
| 761 | - Made get_local_ips() called periodically since local addresses |
|---|
| 762 | may change (dhcp, etc.). |
|---|
| 763 | - Added installation code and init script for Gentoo Linux. |
|---|
| 764 | - Bugfix for INIT_DIR in uninstall() routine in install.pl. |
|---|
| 765 | - Bugfix for auto-blocking loop after timeouts are hit. |
|---|
| 766 | - Added --status-dl [N] to display status information only for |
|---|
| 767 | those scans that reach at least [N]. |
|---|
| 768 | |
|---|
| 769 | psad-1.2.3 (09/12/2003): |
|---|
| 770 | - Added interface tracking for scans. |
|---|
| 771 | - Bugfix for not opening /etc/hosts.deny the right way in |
|---|
| 772 | tcpwr_block(). |
|---|
| 773 | - Bugfix for psadfifo path in syslog-ng config. |
|---|
| 774 | - Better format for summary stats section in email alerts. |
|---|
| 775 | - Bugfix for INIT_DIR path on non-RedHat systems. |
|---|
| 776 | - Bugfix for gzip path. |
|---|
| 777 | - Make Psad.pm installed last of all perl modules installed |
|---|
| 778 | by psad. |
|---|
| 779 | - Added additional call to incr_syscall_ctr() in psadwatchd.c |
|---|
| 780 | |
|---|
| 781 | psad-1.2.2 (08/24/2003): |
|---|
| 782 | - psad is finally available as an RPM package. |
|---|
| 783 | - Added chain tracking for iptables. |
|---|
| 784 | - Added chain counts to --Status output. |
|---|
| 785 | - Bugfix for psad not taking into account multiple scan |
|---|
| 786 | destinations. |
|---|
| 787 | - Reworked auto-blocking code for both tcpwrappers and |
|---|
| 788 | iptables. Lines added to /etc/hosts.deny will no longer be |
|---|
| 789 | duplicated. Added IPTABLES_AUTO_RULENUM and |
|---|
| 790 | IPCHAINS_AUTO_RULENUM so auto rules can be inserted at a |
|---|
| 791 | configurable point within iptables and ipchains policies. |
|---|
| 792 | - Psad now installs all perl modules within /usr/lib/psad. |
|---|
| 793 | - Removed /var/log/psad/<ip>/scanlog file since it was wasting |
|---|
| 794 | too much disk. |
|---|
| 795 | - Made psad, psadwatchd, and diskmond take the machine hostname |
|---|
| 796 | from their respective config files. This makes installation |
|---|
| 797 | via the rpm easier, and is generally cleaner. |
|---|
| 798 | - Added scan destination in --Status output. |
|---|
| 799 | - Added --status-sort-dl (the default status output is now |
|---|
| 800 | sorted by ip address by default). |
|---|
| 801 | |
|---|
| 802 | psad-1.2.1 (07/11/2003): |
|---|
| 803 | - Bugfix for multiple processes being spawned by psadwatchd |
|---|
| 804 | due to lack of proper config variables in the new split |
|---|
| 805 | daemon config files. |
|---|
| 806 | - Bugfix for old scan messages being regenerated if a HUP |
|---|
| 807 | signal is received. |
|---|
| 808 | - Bugfix for incorrectly calculating disk utilization in |
|---|
| 809 | diskmond.c. |
|---|
| 810 | - Extended install.pl to include compression for archived |
|---|
| 811 | files in /etc/psad. |
|---|
| 812 | - Added preserve questions in install.pl for the psad |
|---|
| 813 | signature and auto ips files. |
|---|
| 814 | - Bugfix for --USR1 command line switch not mapping to the |
|---|
| 815 | correct subroutine. |
|---|
| 816 | - Bugfix for psad man page missing the pipe character in |
|---|
| 817 | psadfifo line for syslog.conf. |
|---|
| 818 | |
|---|
| 819 | psad-1.2 (06/18/2003): |
|---|
| 820 | - Added passive OS fingerprinting based on packet ttl, length, |
|---|
| 821 | tos, and id fields. |
|---|
| 822 | - Added dshield.org alerting capability. |
|---|
| 823 | - Added exec_external_script() for external script execution. |
|---|
| 824 | - Added auto blocked timeouts. |
|---|
| 825 | - Implemented config re-imports via HUP signals in a manner |
|---|
| 826 | similar to various other system daemons (sysylog, apache |
|---|
| 827 | etc.) |
|---|
| 828 | - Better --Status output that shows packet counts per protocol |
|---|
| 829 | for each ip. |
|---|
| 830 | - Added --ip-status for more verbose status output for a |
|---|
| 831 | particular ip address. |
|---|
| 832 | - Added config preservation code to install.pl. |
|---|
| 833 | - Added Psad::psyslog(). |
|---|
| 834 | - Split psad.conf into a separate config file for each of the |
|---|
| 835 | four psad daemons. |
|---|
| 836 | - Completely re-worked the auto blocking code (made dedicated |
|---|
| 837 | files for iptables and ipchains block methods). |
|---|
| 838 | - Added danger level hash. |
|---|
| 839 | - Minor code cleanups (shorter hash keys, etc.). |
|---|
| 840 | |
|---|
| 841 | psad-1.1.1 (04/26/2003): |
|---|
| 842 | - Bugfix for incorrect usage of %scan hash keys associated |
|---|
| 843 | with tcp/udp when the current protocol is icmp. |
|---|
| 844 | - Bugfix for being too strict on iptable default log string. |
|---|
| 845 | - Reworked USR1 signal handler so the Data::Dumper function |
|---|
| 846 | call is made in the main part of the psad code. |
|---|
| 847 | - Added a startup message for psad. |
|---|
| 848 | - Minor bugfix for leading whitespace in auto_ips. |
|---|
| 849 | |
|---|
| 850 | psad-1.1 (04/20/2003): |
|---|
| 851 | - Added the IPTables::Parse module for better processing of |
|---|
| 852 | the iptables ruleset. |
|---|
| 853 | - Added --snort-sids so that iptables messages generated by |
|---|
| 854 | fwsnort can be included in alerts. Such alerts now include |
|---|
| 855 | the content fields of packets (fwsnort uses the iptables |
|---|
| 856 | string match module). |
|---|
| 857 | - Added the ability to specify entire networks in the auto |
|---|
| 858 | ips file through the use of the Net::IPv4Addr module. |
|---|
| 859 | - Better logging format that reinstates the current interval, |
|---|
| 860 | and adds an "overall stats" section that includes packet |
|---|
| 861 | counters per protocol. |
|---|
| 862 | - Removed the PROTO hash key since it was unnecesssary. |
|---|
| 863 | - Better benchmarking code. |
|---|
| 864 | - Bug fix for incorrectly looking for the "MAC" string in |
|---|
| 865 | iptables messages that could have been generated by the |
|---|
| 866 | FORWARD chain. |
|---|
| 867 | |
|---|
| 868 | psad-1.0 (02/27/2003): |
|---|
| 869 | - Added --Benchmark and --packets command line options to support |
|---|
| 870 | psad benchmarking. |
|---|
| 871 | - Bugfix for improperly detecting NULL scans. |
|---|
| 872 | - Completely redesigned website. |
|---|
| 873 | |
|---|
| 874 | psad-1.0.0-pre4 (11/26/2002): |
|---|
| 875 | - Rewrote kmsgsd and psadwatchd in C. |
|---|