| 1 | psad-2.0.6 (03/24/2007): |
|---|
| 2 | - Better integration with fwsnort; psad signature match syslog messages |
|---|
| 3 | and email alerts now include the fwsnort rule number (for fwsnort |
|---|
| 4 | version 0.9.0 and greater) and chain information. |
|---|
| 5 | - Added the Snort bleeding-all.rules signature file from the Bleeding |
|---|
| 6 | Snort project (see http://www.bleedingsnort.com). |
|---|
| 7 | - Bugfix to allow interfaces that have IP aliases. |
|---|
| 8 | - Added uname, ifconfig, and syslog process information to --Dump-conf |
|---|
| 9 | output (this can help diagnose various runtime issues). |
|---|
| 10 | - Changed the --Lib-dir command line argument to --lib-dir, and added |
|---|
| 11 | --List (similar to iptables) to list the psad auto-blocking chain rules. |
|---|
| 12 | - Added psad.SlackBuild script contributed by pyllyukko for building psad |
|---|
| 13 | on Slackware systems. It uses the Cipherdyne cd_rpmbuilder script to |
|---|
| 14 | first build and RPM, and then uses it to build a Slackware package. |
|---|
| 15 | |
|---|
| 16 | psad-2.0.5 (03/01/2007): |
|---|
| 17 | - Consolidated all configuration variables into the /etc/psad/psad.conf |
|---|
| 18 | file. The kmsgsd.conf, psadwatchd.conf, alert.conf, and fw_search.conf |
|---|
| 19 | files were all removed since the daemons just reference the psad.conf |
|---|
| 20 | now. Updated install.pl to archive and remove these files if they |
|---|
| 21 | exist from a previous psad installation. |
|---|
| 22 | - Bugfix to account for iptables -nL output where the protocol may be |
|---|
| 23 | reported as "0" instead of "all". |
|---|
| 24 | - Added a function safe_malloc() for kmsgsd.c and psadwatchd.c to ensure |
|---|
| 25 | that a single API is used to perform a NULL check on heap-allocated |
|---|
| 26 | memory. |
|---|
| 27 | - Bugfix to ensure that the psad_ip_len signature matching keyword is |
|---|
| 28 | checked withing match_snort_ip_keywords() so that it applies to all |
|---|
| 29 | protocol packets. This fixes a bug that would cause the "PSAD-CUSTOM |
|---|
| 30 | Nachi worm reconnaisannce" signature to fire on normal ICMP packet log |
|---|
| 31 | messages. |
|---|
| 32 | - Added version and Subversion file revision numbers to die and warn |
|---|
| 33 | messages that are written to /var/log/psad/errs/. This helps when |
|---|
| 34 | trying to track these messages down to a specific file revisions when |
|---|
| 35 | psad is being upgraded on the local system. |
|---|
| 36 | - Added version and Subversion file revision numbers to --Dump-conf |
|---|
| 37 | output. |
|---|
| 38 | - Minor update to allow --fw-dump to be used on the command line without |
|---|
| 39 | also having to use the -D argument. |
|---|
| 40 | - Updated the default_log() function in the IPTables::Parse module to |
|---|
| 41 | handle iptables policies that were dumped with -v, such as when |
|---|
| 42 | --Dump-conf is used. |
|---|
| 43 | |
|---|
| 44 | psad-2.0.4 (01/27/2007): |
|---|
| 45 | - Added Snort rule matches to syslog alerts. Multiple matches can be |
|---|
| 46 | controlled with new configuration variables in psad.conf: |
|---|
| 47 | ENABLE_SIG_MSG_SYSLOG, SIG_MSG_SYSLOG_THRESHOLD, and |
|---|
| 48 | SIG_SID_SYSLOG_THRESHOLD. |
|---|
| 49 | - Bugfix to include scanned UDP port ranges in syslog alerts. |
|---|
| 50 | - Bugfix to parse SEQ and ACK iptables log message fields (requires |
|---|
| 51 | --log-tcp-sequence on the iptables command line). This allows the ipEye |
|---|
| 52 | signature to work. |
|---|
| 53 | - Added --debug-sid to allow a specific Snort rule to be debugged while |
|---|
| 54 | psad runs it through its detection engine. A consequence of this is |
|---|
| 55 | that the -d command line argument must be spelled out, i.e. "psad |
|---|
| 56 | --debug". |
|---|
| 57 | - Bugfix to allow logging prefixes to omit trailing spaces. This is a bug |
|---|
| 58 | in the iptables logging format to allow this in the first place, but |
|---|
| 59 | before this gets fixed psad needs to compensate. |
|---|
| 60 | - Bugfix for syslog-ng init script path in install.pl. |
|---|
| 61 | - Bugfix to include a "source" definition for /proc/kmsg if not already |
|---|
| 62 | defined for syslog-ng daemons. |
|---|
| 63 | - Minor memory handling bugfixes discovered by valgrind the excellent |
|---|
| 64 | Valgrind project: http://www.valgrind.org |
|---|
| 65 | |
|---|
| 66 | psad-2.0.3 (12/31/2006): |
|---|
| 67 | - Removed Psad.pm perl module and kmsgsd.pl and psadwatchd.pl scripts. |
|---|
| 68 | This is a major change that allows psad to be more flexible and |
|---|
| 69 | completely derive its config from the psad.conf file and from the |
|---|
| 70 | command line. In the previous scheme, psad imported its config with a |
|---|
| 71 | function within Psad.pm, and this required that psad imported the Psad |
|---|
| 72 | perl module before reading its config. A consequence was that the |
|---|
| 73 | PSAD_LIBS_DIR var could not be specified usefully within the config |
|---|
| 74 | file. |
|---|
| 75 | - Added the ability to recursively resolve embedded variables from *.conf |
|---|
| 76 | files (with a limit of 20 resolution attempts). |
|---|
| 77 | - Added IGNORE_KERNEL_TIMESTAMP so that Linux distros that add a timestamp |
|---|
| 78 | to all kernel messages (Ubuntu for example) can be ignored. |
|---|
| 79 | - Consolidated code to import data out of /var/log/psad/<ip> directories |
|---|
| 80 | with code to display status and analysis output (-S and -A). |
|---|
| 81 | Essentially the %scan hash is built by the filesystem data import |
|---|
| 82 | routine and the remainder of the code references this single data |
|---|
| 83 | structure. |
|---|
| 84 | |
|---|
| 85 | psad-2.0.2 (12/23/2006): |
|---|
| 86 | - Added the ability to download the latest signatures from cipherdyne.org |
|---|
| 87 | in install.pl. |
|---|
| 88 | - Added the cd_rpmbuilder script to make it easy to build RPM's out of |
|---|
| 89 | CipherDyne projects by automatically downloading the project .tar.gz and |
|---|
| 90 | .spec files from http://www.cipherdyne.org/. |
|---|
| 91 | - Added print statements for @INC array in debug mode so that the user can |
|---|
| 92 | see the additional /usr/lib/psad/* directories added by |
|---|
| 93 | import_psad_perl_modules(). |
|---|
| 94 | - Changed Unix::Syslog import strategy from "use" to "require" since the |
|---|
| 95 | path is not known until import_psad_perl_modules() gets a chance to |
|---|
| 96 | run (psad ran fine without this, but it is more consistent this way). |
|---|
| 97 | - Bugfix for not properly including elements of the |
|---|
| 98 | @connected_subnets_cidr array. |
|---|
| 99 | - IP subnet bugfix to make sure to get the entire subnet in signature |
|---|
| 100 | import routine if it is not in CIDR format |
|---|
| 101 | - Bugfix to not print an IP addresses in the "top attackers" section that |
|---|
| 102 | do not have at least one packet or signature match (for any reason). |
|---|
| 103 | - Bugfix to not print more than TOP_IP_LOG_THRESHOLD IP addresses in thet |
|---|
| 104 | top attackers section. |
|---|
| 105 | - Updated install.pl to reference configuration paths directly from |
|---|
| 106 | psad.conf instead of defining them separately. This should fix Debian |
|---|
| 107 | bug #403566. |
|---|
| 108 | - Added -c argument to install.pl so that the path to a psad.conf file |
|---|
| 109 | can be altered from the command line. |
|---|
| 110 | - Bugfix to not import any IP from the top_attackers file from a previous |
|---|
| 111 | psad run that does not have a /var/log/psad/<ip> directory. |
|---|
| 112 | - Added MIN_DANGER_LEVEL to allow all alerts and /var/log/psad/<ip> |
|---|
| 113 | tracking to be disabled unless an attacker reaches at least this |
|---|
| 114 | danger level. |
|---|
| 115 | - Added text in install.pl to mention ifconfig parsing for HOME_NET |
|---|
| 116 | derivation. |
|---|
| 117 | |
|---|
| 118 | psad-2.0.1 (12/12/2006): |
|---|
| 119 | - Added Nachi worm reconnaisannce icmp signature |
|---|
| 120 | - Added the psad_ip_len signature keyword to allow the length field in the |
|---|
| 121 | IP header to be explicitly tested. |
|---|
| 122 | - Bugfix for inappropriately removing some directories in @INC when |
|---|
| 123 | splicing in psad perl module paths. |
|---|
| 124 | - Switched nf2csv installation path in install.pl to /usr/bin/. |
|---|
| 125 | |
|---|
| 126 | psad-2.0 (12/10/2006): |
|---|
| 127 | - Completely refactored the Snort rule matching support in psad. Added |
|---|
| 128 | many header field tests with full range matching support. These tests |
|---|
| 129 | include the following keywords from Snort: ttl, id, seq, ack, window, |
|---|
| 130 | icmp_id, icmp_seq, itype, icode, ip_proto, ipopts, and sameip. |
|---|
| 131 | - Refactored all signatures in /etc/psad/signatures to conform to new |
|---|
| 132 | signature matching support in this release. There are now about 190 |
|---|
| 133 | signatures that psad can run directly against Netfilter logging |
|---|
| 134 | messages (i.e. without the help of fwsnort). |
|---|
| 135 | - Added the ability to download the latest signatures file from |
|---|
| 136 | http://www.cipherdyne.org/psad/signatures with the --sig-update command |
|---|
| 137 | line argument to psad. |
|---|
| 138 | - Added "MISC Windows popup spam" signature. This allows psad to detect |
|---|
| 139 | when attempts are made to send spam via the Windows Messenger service. |
|---|
| 140 | - Completely reworked --Status and --Analyze output, signature matches |
|---|
| 141 | are included now, along with a listing of top sig matches, top scanned |
|---|
| 142 | ports, and top attackers. Also, scan data is not written to |
|---|
| 143 | /var/log/psad/ipt_analysis/ before display analysis output in -A mode; |
|---|
| 144 | analysis results are displayed much faster this way. |
|---|
| 145 | - Added ipEye, Subversion, Kuang2, Microsoft SQL, Radmin, and Ghostsurf |
|---|
| 146 | signatures. |
|---|
| 147 | - Added 'data in TCP SYN packet' signature. |
|---|
| 148 | - Added --CSV mode so that psad can be used to generate comma-separated |
|---|
| 149 | value output suitable for the AfterGlow project (see |
|---|
| 150 | http://afterglow.sourceforge.net/index.html) for graphical |
|---|
| 151 | representations of Netfilter logs and associated scan data. Also added |
|---|
| 152 | nf2csv so that normal users can take advantage of this feature. |
|---|
| 153 | - Added emulation of the Snort "dsize" test through the use of the IP |
|---|
| 154 | length field for TCP/ICMP signatures, and the UDP length field for UDP |
|---|
| 155 | signatures. For SYN packets, TCP options are included so psad |
|---|
| 156 | automatically adds 44 bytes (the maximum length for TCP options) so the |
|---|
| 157 | dsize test corresponds to the estimated payload length. |
|---|
| 158 | - Added the psad_id, psad_dsize, and psad_derived_sids fields for the new |
|---|
| 159 | Snort rule support. |
|---|
| 160 | - Added the ability to decode IP options, which are included within Snort |
|---|
| 161 | rules as the "ipopts" keyword. This functionality requires that the |
|---|
| 162 | --log-ip-options command line argument is given to iptables when |
|---|
| 163 | building a rule that uses the LOG target. |
|---|
| 164 | - Added Snort rules (sids 475, 500, 501, and 502) that detect IP options |
|---|
| 165 | usage such as source routing and the traceroute IP option with the new |
|---|
| 166 | IP options decoder. |
|---|
| 167 | - Enhanced psad email alert output to include sid values that have been |
|---|
| 168 | derived from existing Snort rules. |
|---|
| 169 | - Added the ability to expand embedded variables within the psad |
|---|
| 170 | configuration files. For example, the path to the FW_DATA_FILE is |
|---|
| 171 | defined in psad.conf as "$PSAD_DIR/fwdata", which resolves to |
|---|
| 172 | /var/log/psad/fwdata when the PSAD_DIR variable is expanded. This |
|---|
| 173 | feature allows a consistent set of file paths to easily be defined |
|---|
| 174 | instead of using the full path for each file path. |
|---|
| 175 | - Better validation of IPT_AUTO_CHAIN{n} variables so that the from_chain |
|---|
| 176 | cannot be identical to the to_chain. |
|---|
| 177 | - Added dump_config() to psadwatchd.c and kmsgsd.c when compiled with |
|---|
| 178 | debugging support. |
|---|
| 179 | - Added ENABLE_INTF_LOCAL_NETS to have psad automatically treat all IP |
|---|
| 180 | addresses that are part of the local system as belonging to the HOME_NET |
|---|
| 181 | for signature matching. |
|---|
| 182 | - Added ENABLE_SNORT_SIG_STRICT to have psad exit if there are any |
|---|
| 183 | problems found with Snort rules in the /etc/psad/signatures file. If |
|---|
| 184 | this feature is disabled (this is the default), then psad generates |
|---|
| 185 | syslog warnings for improperly formatted signatures). |
|---|
| 186 | - Update to print the number of IP addresses at each danger level in -A |
|---|
| 187 | analysis mode. This is useful to get a sense for how long the disk IO |
|---|
| 188 | might take to write out all of the /var/log/psad/ipt_analysis/<IP> |
|---|
| 189 | directories. |
|---|
| 190 | - Added code to restart kmsgsd at psad start up if a previous kmsgsd |
|---|
| 191 | process is still running and TRUNCATE_FWDATA is set to 'Y' (this is the |
|---|
| 192 | default). This probably isn't strictly necessary because kmsgsd is |
|---|
| 193 | capable of writing to the fwdata file even if another process truncates |
|---|
| 194 | it. |
|---|
| 195 | - Added code to recreate the AUTO_IPT_SOCK (/var/run/psad/auto_ipt.sock) |
|---|
| 196 | file if some other process happens to delete it out of /var/run/psad/ |
|---|
| 197 | - Bugfix to allow backwards compatibility with old NOT_USED value |
|---|
| 198 | for the HOME_NET variable. |
|---|
| 199 | - Bugfix to cleanup any lost blocking rules from the running psad |
|---|
| 200 | timeouts (a separate process might have deleted rules from the psad |
|---|
| 201 | chains). |
|---|
| 202 | - Bugfix to allow Netfilter log messages to include the PHYSDEV (i.e. |
|---|
| 203 | PHYSIN and PHYSOUT) interfaces. |
|---|
| 204 | - Updated to read architecture-dependent perl module installation |
|---|
| 205 | directory out of /usr/lib/psad (e.g. "/usr/lib/psad/x86_64-linux") |
|---|
| 206 | before importing psad perl modules such as IPTables::Parse, etc. These |
|---|
| 207 | modules are now imported via "require" after the appropriate |
|---|
| 208 | directories have been added to @INC. This allows the RPM files to be |
|---|
| 209 | built on one system that builds @INC differently than the system where |
|---|
| 210 | psad is actually installed since psad can now compensate for this. |
|---|
| 211 | - Added new code to populate the <dst>_signature file in each of the |
|---|
| 212 | /var/log/psad/<ip> directories with verbose information including the |
|---|
| 213 | signature time, sid, protocol, dst port, and packet count. |
|---|
| 214 | - Changed --interval to --Interval, and added --interface to allow |
|---|
| 215 | psad's detection to be limited to a specific IN interface for the INPUT |
|---|
| 216 | and FORWARD chains (or OUT interface for the OUTPUT chain). |
|---|
| 217 | - Replaced --status-brief with --status-summary, but changed it so that |
|---|
| 218 | only the detailed IP status information is omitted. |
|---|
| 219 | - Removed unnecessary --status-sort-dl option. |
|---|
| 220 | - Added STATUS_OUTPUT_FILE so the --Status and --Analyze output is |
|---|
| 221 | captured instead of just being lost if the output was not piped to |
|---|
| 222 | 'less' or another similar program. |
|---|
| 223 | - Added --restrict-ip so that psad will restrict its attack detection |
|---|
| 224 | operations to a specific IP or network. |
|---|
| 225 | - Updated psadwatchd.c to parse EMAIL_ADDRESSES out of |
|---|
| 226 | /etc/psad/psad.conf to avoid duplication of variables. |
|---|
| 227 | - Bugfix to clear old @ipt_config array after receiving a HUP signal. |
|---|
| 228 | This bug broke the auto-blocking mode. |
|---|
| 229 | - Bugfix for syslog-ng config so that any custom source for /proc/kmsg is |
|---|
| 230 | used for the psadfifo path. |
|---|
| 231 | |
|---|
| 232 | psad-1.4.8 (10/15/2006): |
|---|
| 233 | - Added the ability to get the auto-blocking status for a specific IP |
|---|
| 234 | address in --status-ip mode. |
|---|
| 235 | - Bugfix to use the IPT_OUTPUT_FILE and IPT_ERROR_FILE configuration |
|---|
| 236 | variables. |
|---|
| 237 | - Bugfix to restore "start" functionality in Gentoo init script. |
|---|
| 238 | - Added the ability to selectively disable psad auto-blocking emails. |
|---|
| 239 | - Added more rigorous IP matching regex from Sebastien J. (contributed |
|---|
| 240 | originally for fwknop). |
|---|
| 241 | |
|---|
| 242 | psad-1.4.7 (09/10/2006): |
|---|
| 243 | - Completely re-worked IPTables::ChainMgr to support the return of |
|---|
| 244 | iptables error messages that are collected via stderr. This is critical |
|---|
| 245 | to fixing a bug where psad would sometimes die on an iptables command |
|---|
| 246 | but no information would be returned to the user. |
|---|
| 247 | - Added the ability to specify the position for both the jump rule into |
|---|
| 248 | the psad chains as well as the position for new rules within the psad |
|---|
| 249 | chains via the -I argument to iptables. This fixes a bug where the user |
|---|
| 250 | was given the impression that the IPTABLES_AUTO_RULENUM would accomplish |
|---|
| 251 | this. |
|---|
| 252 | - Populated the _debug option in the IPTables::ChainMgr module, and also |
|---|
| 253 | added a _verbose option so that the specific iptables commands can |
|---|
| 254 | actually be seen as IPTables::ChainMgr functions are called. |
|---|
| 255 | - Added code to install.pl to ask the user if a manual restart of syslog |
|---|
| 256 | is ok upon an unsuccessful test of the syslog reconfiguration. This |
|---|
| 257 | fixes a bug where some syslog daemons might not re-import their |
|---|
| 258 | configurations after receiving a HUP signal. |
|---|
| 259 | - Bugfix for incorrect config variable name that gated Netfilter |
|---|
| 260 | prerequisite checks. |
|---|
| 261 | - Added code to install.pl to update command paths in psad.conf and |
|---|
| 262 | psadwatchd.conf if any of the paths are broken (i.e. the local system |
|---|
| 263 | does not conform to the default paths). By default this only happens if |
|---|
| 264 | the user does not want old configs to be merged, but to override this |
|---|
| 265 | use the new --path-update command line argument to install.pl. |
|---|
| 266 | - Added the --Skip-mod-install command line argument to install.pl to |
|---|
| 267 | allow all perl module installs to be skipped. |
|---|
| 268 | - Added the --force-mod-regex command line argument to install.pl to allow |
|---|
| 269 | a regex match on perl module names to force matching modules to be |
|---|
| 270 | installed. |
|---|
| 271 | - Added the logrotate.psad file (contributed by Albert Whale). |
|---|
| 272 | |
|---|
| 273 | psad-1.4.6 (06/13/2006): |
|---|
| 274 | - Added ENABLE_AUTO_IDS_REGEX and AUTO_BLOCK_REGEX to allow filtering on |
|---|
| 275 | logging prefixes. |
|---|
| 276 | - Added code to save DShield email to a file. |
|---|
| 277 | - Added IPTABLES_PREREQ_CHECK to allow the administrator to control the |
|---|
| 278 | frequency of Netfilter checks (for auto-block compatibility). |
|---|
| 279 | - Added IGNORE_LOG_PREFIXES to allow certain log prefixes to be completely |
|---|
| 280 | ignored by psad. |
|---|
| 281 | - Added classification.config file from Snort-2.3.3 so that psad can |
|---|
| 282 | assign danger levels based upon Snort rule class type. This is useful |
|---|
| 283 | when also running fwsnort. |
|---|
| 284 | - Added snort_rule_dl to allow specific psad to assign specific danger |
|---|
| 285 | level values to particular signatures. This is useful if you want to |
|---|
| 286 | do define certain Snort rules as being particularly evil (or not). |
|---|
| 287 | Running fwsnort is also necessary to take advantage of this feature. |
|---|
| 288 | - Added reference.config so that psad can include reference information in |
|---|
| 289 | email alerts that are derived from attacks detected by fwsnort. |
|---|
| 290 | - Updated to Snort-2.3.3 signatures. |
|---|
| 291 | - Updated to whois-4.7.13. |
|---|
| 292 | |
|---|
| 293 | psad-1.4.5 (01/13/2006): |
|---|
| 294 | - Bugfix in IPTables::Parse to allow the limit target to apply to |
|---|
| 295 | logging rules. |
|---|
| 296 | - Made calls to chain creation and jump rule functions for only every |
|---|
| 297 | 100 block calls in auto-IDS mode. |
|---|
| 298 | - Bugfix to make sure /var/run/psad directory exists at startup since |
|---|
| 299 | this directory is removed by some Linux distributions at boot time. |
|---|
| 300 | - Bugfix for zero masks in auto_dl; this allows a network of "0.0.0.0/0" |
|---|
| 301 | to be specified. |
|---|
| 302 | - Added ENABLE_FW_LOGGING_CHECK so that the Netfilter policy check can be |
|---|
| 303 | enabled/disabled easily via psad.conf. |
|---|
| 304 | - Enhanced -D output to include "uname -a" and "perl -V" output. |
|---|
| 305 | - Added ENABLE_RENEW_BLOCK_EMAILS to allow whether renew emails are sent |
|---|
| 306 | for auto-blocked addresses. |
|---|
| 307 | |
|---|
| 308 | psad-1.4.4 (11/27/2005): |
|---|
| 309 | - Added MAC address reporting in psad email alerts. This feature is |
|---|
| 310 | enabled via a new config keyword "ENABLE_MAC_ADDR_REPORTING". |
|---|
| 311 | - Added --fw-rm-block-ip <ip> option to allow IP addresses to be removed |
|---|
| 312 | from the auto-blocking chains from the command line. |
|---|
| 313 | - Updated command line firewall arguments to write commands to the |
|---|
| 314 | AUTO_IPT_SOCK domain socket. |
|---|
| 315 | - Added the ability to specify ports and port ranges to auto_dl file. |
|---|
| 316 | - Added --force-mod-install command line argument to installer to force |
|---|
| 317 | perl modules used by psad to be installed within /usr/lib/psad |
|---|
| 318 | regardless of whether they already exist in the system perl tree. |
|---|
| 319 | - Bugfix in the installer to seek() to the end of the fwdata file |
|---|
| 320 | - Bugfix for psad repeatedly trying to remove the same IP address(es) |
|---|
| 321 | from the auto-blocking chains. |
|---|
| 322 | instead of reading the entire thing into memory. |
|---|
| 323 | - Added the ability to truncate the fwdata file via a new configuration |
|---|
| 324 | keyword "TRUNCATE_FWDATA" (this is enabled by default). |
|---|
| 325 | - Bugfix in auto-blocking mode for deleting AUTO_IPT_SOCK when a HUP |
|---|
| 326 | signal is received. |
|---|
| 327 | - Bugfix for parsing Netfilter policies that contain ULOG logging rules |
|---|
| 328 | instead of the standard LOG target. |
|---|
| 329 | - Removed the smtpdaemon requirement in the RPM because psad might be |
|---|
| 330 | configured to not send email alerts. |
|---|
| 331 | |
|---|
| 332 | psad-1.4.3 (09/27/2005): |
|---|
| 333 | - Bugfixes for auto-blocking code. Timeouts should be handled |
|---|
| 334 | properly, including cached IP addresses in the auto_blocked_iptables |
|---|
| 335 | file that are referenced upon psad startup. Communication with the |
|---|
| 336 | running psad is performed over a Unix domain socket in --fw-block |
|---|
| 337 | mode. |
|---|
| 338 | - Bugfix to seek to the end of the fwdata file instead of reading the |
|---|
| 339 | entire thing into memory and then looking for newly written logging |
|---|
| 340 | messages. This drastically reduces the amount of memory required |
|---|
| 341 | by psad. |
|---|
| 342 | - Updated to only display psad chains if --verbose is set |
|---|
| 343 | - Updated to automatically flush the psad auto-response Netfilter chains |
|---|
| 344 | at start time (subject to a new config keyword "FLUSH_IPT_AT_INIT"). |
|---|
| 345 | |
|---|
| 346 | psad-1.4.2 (07/15/2005): |
|---|
| 347 | - Dependency bugfixes for mail binary. |
|---|
| 348 | - Bugfix for various IGNORE_* keywords not being honored. |
|---|
| 349 | - Bugfix for not timing out blocked IP addresses from a previous run. |
|---|
| 350 | - Updated to version 0.2 of the IPTables::ChainMgr module. |
|---|
| 351 | - Updated to not truncate the fwdata file upon psad startup. |
|---|
| 352 | - Added --fw-dump which produces a sanitized (i.e. no IP addresses) |
|---|
| 353 | version of the local Netfilter policy. Also added --fw-include-ips |
|---|
| 354 | to (optionally) not sanitize IPs/nets. Note that the 0.0.0.0 and |
|---|
| 355 | 0.0.0.0/0 IPs/nets are not sanitized since they give no useful |
|---|
| 356 | information about specific IPs/nets. |
|---|
| 357 | - Added ulogd data collection mode. |
|---|
| 358 | - Bugfix for FW_MSG_SEARCH default (at least "DROP" is included now |
|---|
| 359 | even if FW_SEARCH_ALL is set to "N"). |
|---|
| 360 | - Bugfix for non-network address for subnet specified with --fw-block. |
|---|
| 361 | - Bugfix for multiple --fw-block IPs/nets. |
|---|
| 362 | - Added README.SYSLOG (Francois Marier contributed the content). |
|---|
| 363 | - Made email alert prefixes (such as "[psad-alert]") customizable via |
|---|
| 364 | psad.conf. |
|---|
| 365 | |
|---|
| 366 | psad-1.4.1 (03/12/2005): |
|---|
| 367 | - Updated to Snort-2.3 rules in the snort_rules directory. |
|---|
| 368 | - Re-worked syslog installation portion of install.pl. The user will |
|---|
| 369 | always be prompted to enter the syslog daemon now, and also added |
|---|
| 370 | the --syslog-conf arg to allow the config file path to be specified |
|---|
| 371 | on the install.pl command line. |
|---|
| 372 | - Bugfix in install.pl for using IP address instead of network address |
|---|
| 373 | of directly connected subnets. |
|---|
| 374 | - Updated to version 4.6.23 of the whois client. |
|---|
| 375 | - Bugfix for distinguishing OPT field associated with --log-tcp-options |
|---|
| 376 | vs. --log-ip-options. |
|---|
| 377 | - Bugfix for syslog format that may not include the "kernel:" tag. |
|---|
| 378 | - Applied patch to only install perl modules that are not already |
|---|
| 379 | installed (Blair Zajac). |
|---|
| 380 | - Bugfix for the psad version number that is sent in DShield alerts. |
|---|
| 381 | - Updated Psad module directory structure to be consistent with current |
|---|
| 382 | versions of perl (5.8.x). |
|---|
| 383 | - Added IPTables::ChainMgr module. |
|---|
| 384 | - Completely re-worked the Netfilter auto-blocking code to use |
|---|
| 385 | IPTables::ChainMgr functions so that auto-generated rules are placed |
|---|
| 386 | in chains created by psad. |
|---|
| 387 | - Added IPT_AUTO_CHAIN keyword in psad.conf which is used to define the |
|---|
| 388 | set of chains to which auto-generated Netfilter rules are added. |
|---|
| 389 | - Added --fw-list-auto to display the contents of psad Netfilter |
|---|
| 390 | chains. |
|---|
| 391 | - Added the ability to import an IP into the Netfilter auto-blocking |
|---|
| 392 | chains from the command line with --fw-block-ip. This allows psad to |
|---|
| 393 | apply its timeout mechanism against such IPs/nets. |
|---|
| 394 | - Added the ability to ignore packets based on input interface with |
|---|
| 395 | IGNORE_INTERFACES in psad.conf. |
|---|
| 396 | - Re-worked auto_dl code, better hash design and searching function. |
|---|
| 397 | - Removed dependency on sendmail command unless DShield alerting is |
|---|
| 398 | enabled and a DShield user id is specified. |
|---|
| 399 | - Added ALERTING_METHODS keyword in the file alert.conf to allow either |
|---|
| 400 | syslog or email alerts (or both) to be disabled. Psad and psadwatchd |
|---|
| 401 | reference this file. |
|---|
| 402 | |
|---|
| 403 | psad-1.4.0 (11/26/2004): |
|---|
| 404 | - Added p0f-style passive OS fingerprinting through the use of the OPT |
|---|
| 405 | field in iptables log messages (which is only logged through the use |
|---|
| 406 | of the --log-tcp-options command line arg to iptables). |
|---|
| 407 | - Bugfix for iptables log messages that include tcp sequence numbers |
|---|
| 408 | (see the iptables --log-tcp-sequence command line argument). |
|---|
| 409 | - Bugfix for O_RDONLY open flag when kmsgsd receives a HUP signal. |
|---|
| 410 | |
|---|
| 411 | psad-1.3.4 (10/17/2004): |
|---|
| 412 | - Bugfix for init script directory on Slackware systems. |
|---|
| 413 | - Bugfix for null prefix counters. |
|---|
| 414 | - Added --whois-analysis argument since whois lookups are now disabled |
|---|
| 415 | by default when running in analysis (-A) mode. |
|---|
| 416 | - Updated psad_init() to rework setup() and import orderings vs. |
|---|
| 417 | --fw-analyze and --Benchmark modes. |
|---|
| 418 | - Added bidirectional iptables auto-blocking support for all chains |
|---|
| 419 | except for the INPUT and OUTPUT chains. |
|---|
| 420 | - Better syslog message support when run in auto-blocking mode. |
|---|
| 421 | - Added iptables auto-block rules section to --Status output. |
|---|
| 422 | - Added init script for Fedora systems. |
|---|
| 423 | - Added default_log() function to IPTables::Parse. This function |
|---|
| 424 | parses user defined chains in an effort to find default logging |
|---|
| 425 | rules. |
|---|
| 426 | - Added EMAIL_LIMIT_STATUS_MSG to control whether or not psad sends a |
|---|
| 427 | status email when the PSAD_EMAIL_LIMIT threshold has been reached by |
|---|
| 428 | an IP address. |
|---|
| 429 | - Added ENABLE_SCAN_ARCHIVE to control whether or not psad archives old |
|---|
| 430 | scan data within /var/log/psad/scan_archive at start time. |
|---|
| 431 | |
|---|
| 432 | psad-1.3.3 (09/09/2004): |
|---|
| 433 | - Fixed __WARN__ and __DIE__ exception handlers so that they |
|---|
| 434 | reference global message variables. |
|---|
| 435 | - Fixed auto danger level assignments. Network auto assignments as |
|---|
| 436 | well as per-protocol assignments work now. |
|---|
| 437 | - Added SYSLOG_DAEMON variable to define which syslog daemon is running |
|---|
| 438 | on the underlying system instead of just guessing. |
|---|
| 439 | - Added the ability to ignore both ranges and specific ports/protocols |
|---|
| 440 | with a new variable IGNORE_PORTS in psad.conf. |
|---|
| 441 | - Bugfix to make sure email addresses are separated by spaces when |
|---|
| 442 | Psad::sendmail() is called. |
|---|
| 443 | - Bugfix for ipt_prefix counters not being parsed correct at import |
|---|
| 444 | time. |
|---|
| 445 | - Removed exclude_auto_ignore_ip() since this function was made |
|---|
| 446 | unnecessary by newly rewritten auto-assign code. |
|---|
| 447 | - Bugfix for Text::Wrap calls in install.pl uninstall() routine. |
|---|
| 448 | - Bugfix for using --no-fw-search-all even when FW_SEARCH_ALL is |
|---|
| 449 | set to "Y". |
|---|
| 450 | - Removed extraneous ".." and "**" chars from syslog messages, and |
|---|
| 451 | updated to use [+] prefix strings. |
|---|
| 452 | - Moved init scripts into init-scripts directory within source tree. |
|---|
| 453 | - Removed dependency on Bit::Vector (psad does not seem to make use |
|---|
| 454 | of any Date::Calc functions that require it). |
|---|
| 455 | - Wrapped copy() and move() calls with "or die()" to make them |
|---|
| 456 | safer in install.pl. |
|---|
| 457 | - Added check for existing psad process in install.pl. |
|---|
| 458 | - Updated to a new psad email alert subject format. Prefixes of |
|---|
| 459 | "[psad-alert]", "[psad-error]", and "[psad-status]" are used now. |
|---|
| 460 | - Permissions fixes with umask() setting in /var/log/psad, permissions |
|---|
| 461 | fixes for files in /etc/psad at install time. |
|---|
| 462 | |
|---|
| 463 | psad-1.3.2 (06/25/2004): |
|---|
| 464 | - Removed FW_MSG_SEARCH from psad.conf, and created a new config |
|---|
| 465 | file "fw_search.conf" that both psad and kmsgsd use to get the |
|---|
| 466 | FW_MSG_SEARCH definition(s). |
|---|
| 467 | - Added default mode of parsing all iptables messages instead of |
|---|
| 468 | just those that contain specific search strings. A new config |
|---|
| 469 | variable "FW_SEARCH_ALL" was added to fw_search.conf that |
|---|
| 470 | controls this mode. |
|---|
| 471 | - Updated psad and kmsgsd so that multiple firewall search strings |
|---|
| 472 | can be specified through multiple FW_MSG_SEARCH variables in |
|---|
| 473 | fw_search.conf. |
|---|
| 474 | - Added iptables chain and logging-prefix tracking for current |
|---|
| 475 | scan interval in email alerts. |
|---|
| 476 | - Added protocol-specific auto-danger level assignments. |
|---|
| 477 | - Added total scan source and destination IP address counters in |
|---|
| 478 | --Status output. |
|---|
| 479 | - Added number of email alerts sent and OS guess in default |
|---|
| 480 | --Status output. The output is getting wide now, so there is |
|---|
| 481 | also a new option --status-brief that will remove the alerts |
|---|
| 482 | sent and OS guess columns. |
|---|
| 483 | - Added getopt() command line arg parsing to kmsgsd with two new |
|---|
| 484 | options "-c" (for config file path) and "-k" (for fw_search.conf |
|---|
| 485 | path). |
|---|
| 486 | - Made iptables parsing code into its own script "fwcheck_psad" |
|---|
| 487 | that gets called by psad. |
|---|
| 488 | - Added Dshield stats summary to --Status output. |
|---|
| 489 | - Bugfix for auto-ignore IP addresses and networks being missed. |
|---|
| 490 | - Made parsing of ifconfig output language independent (should |
|---|
| 491 | handle French now for example). |
|---|
| 492 | - Removed "psad_" prefix on files psad_signatures, psad_auto_ips, |
|---|
| 493 | psad_posf, and psad_icmp_types in /etc/psad/. |
|---|
| 494 | - Updated to version 4.6.14 of the whois client. |
|---|
| 495 | |
|---|
| 496 | psad-1.3.1 (12/25/2003): |
|---|
| 497 | - Added the ability to import /var/log/psad/<ip> directories |
|---|
| 498 | back into memory so scan data remains persistent across |
|---|
| 499 | psad restarts or system reboots. |
|---|
| 500 | - Added --Analyze-msgs to run psad in analysis mode against an |
|---|
| 501 | iptables logfile (/var/log/psad/fwdata by default). The logfile |
|---|
| 502 | path can be changed with --messages-file. |
|---|
| 503 | - Added icmp type and code validation against RFC 792. |
|---|
| 504 | - Bugfix for being too strict with FW_MSG_SEARCH. |
|---|
| 505 | - Added port ranges for tcp and udp scans in <ip>/<dst>_packet_ctr. |
|---|
| 506 | - Added <ip>/<dst>_start_time and <ip>/os_guess. |
|---|
| 507 | - Bugfix for missing --no-signatures code. |
|---|
| 508 | - Updated to Snort-2.1 signatures. |
|---|
| 509 | |
|---|
| 510 | psad-1.3 (11/30/2003): |
|---|
| 511 | - Replaced all signatures in psad_signatures with updated snort |
|---|
| 512 | rules. |
|---|
| 513 | - Added support for source and destination ip addresses in |
|---|
| 514 | signature matching code. A new variable "HOME_NET" makes this |
|---|
| 515 | possible. |
|---|
| 516 | - Added support for the iptables output chain. |
|---|
| 517 | - Added chain tracking for all signatures. |
|---|
| 518 | - Replaced match_fastsigs() with two new routines for tcp and |
|---|
| 519 | udp signature matching that don't autovivify hash keys. |
|---|
| 520 | - Removed support for ipchains. |
|---|
| 521 | - Added support for metalog. |
|---|
| 522 | - Removed all "Undefined Code" signatures from psad_signatures. |
|---|
| 523 | - Re-worked %auto_blocked_ips hash and corresponding blocking |
|---|
| 524 | routines. This (hopefully) fixes a restart bug seen on older |
|---|
| 525 | systems such as those that are still running versions of perl |
|---|
| 526 | less than 5.6. |
|---|
| 527 | - Re-worked firewall policy parsing routines. Chains that have |
|---|
| 528 | a default policy of DROP are handled properly now. |
|---|
| 529 | - Bugfix for missing NULL char in kmsgsd.c. |
|---|
| 530 | - Updated scan alerting format. Put current interval protocol |
|---|
| 531 | status before source and destination addresses. |
|---|
| 532 | - Buffer overflow fix in kmsgsd.c for size of buf[MAX_LINE_BUF] |
|---|
| 533 | buffer in read() call. |
|---|
| 534 | - Added --no-kmsgsd option to aid in psad --debug mode. |
|---|
| 535 | |
|---|
| 536 | psad-1.2.4 (10/15/2003): |
|---|
| 537 | - Added danger level to subject line in email alerts. |
|---|
| 538 | - Removed diskmond altogether since psad now handles disk space |
|---|
| 539 | thresholds directly. This allows filehandles to be handled |
|---|
| 540 | properly. |
|---|
| 541 | - Added auto_block_ignore_ip() to prevent 0.0.0.0, 127.0.0.1, |
|---|
| 542 | and local interface ips from being included in auto blocking |
|---|
| 543 | routines. |
|---|
| 544 | - Added Bit::Vector module to stop installation warnings from |
|---|
| 545 | Date::Calc. |
|---|
| 546 | - Made get_local_ips() called periodically since local addresses |
|---|
| 547 | may change (dhcp, etc.). |
|---|
| 548 | - Added installation code and init script for Gentoo Linux. |
|---|
| 549 | - Bugfix for INIT_DIR in uninstall() routine in install.pl. |
|---|
| 550 | - Bugfix for auto-blocking loop after timeouts are hit. |
|---|
| 551 | - Added --status-dl [N] to display status information only for |
|---|
| 552 | those scans that reach at least [N]. |
|---|
| 553 | |
|---|
| 554 | psad-1.2.3 (09/12/2003): |
|---|
| 555 | - Added interface tracking for scans. |
|---|
| 556 | - Bugfix for not opening /etc/hosts.deny the right way in |
|---|
| 557 | tcpwr_block(). |
|---|
| 558 | - Bugfix for psadfifo path in syslog-ng config. |
|---|
| 559 | - Better format for summary stats section in email alerts. |
|---|
| 560 | - Bugfix for INIT_DIR path on non-RedHat systems. |
|---|
| 561 | - Bugfix for gzip path. |
|---|
| 562 | - Make Psad.pm installed last of all perl modules installed |
|---|
| 563 | by psad. |
|---|
| 564 | - Added additional call to incr_syscall_ctr() in psadwatchd.c |
|---|
| 565 | |
|---|
| 566 | psad-1.2.2 (08/24/2003): |
|---|
| 567 | - psad is finally available as an RPM package. |
|---|
| 568 | - Added chain tracking for iptables. |
|---|
| 569 | - Added chain counts to --Status output. |
|---|
| 570 | - Bugfix for psad not taking into account multiple scan |
|---|
| 571 | destinations. |
|---|
| 572 | - Reworked auto-blocking code for both tcpwrappers and |
|---|
| 573 | iptables. Lines added to /etc/hosts.deny will no longer be |
|---|
| 574 | duplicated. Added IPTABLES_AUTO_RULENUM and |
|---|
| 575 | IPCHAINS_AUTO_RULENUM so auto rules can be inserted at a |
|---|
| 576 | configurable point within iptables and ipchains policies. |
|---|
| 577 | - Psad now installs all perl modules within /usr/lib/psad. |
|---|
| 578 | - Removed /var/log/psad/<ip>/scanlog file since it was wasting |
|---|
| 579 | too much disk. |
|---|
| 580 | - Made psad, psadwatchd, and diskmond take the machine hostname |
|---|
| 581 | from their respective config files. This makes installation |
|---|
| 582 | via the rpm easier, and is generally cleaner. |
|---|
| 583 | - Added scan destination in --Status output. |
|---|
| 584 | - Added --status-sort-dl (the default status output is now |
|---|
| 585 | sorted by ip address by default). |
|---|
| 586 | |
|---|
| 587 | psad-1.2.1 (07/11/2003): |
|---|
| 588 | - Bugfix for multiple processes being spawned by psadwatchd |
|---|
| 589 | due to lack of proper config variables in the new split |
|---|
| 590 | daemon config files. |
|---|
| 591 | - Bugfix for old scan messages being regenerated if a HUP |
|---|
| 592 | signal is received. |
|---|
| 593 | - Bugfix for incorrectly calculating disk utilization in |
|---|
| 594 | diskmond.c. |
|---|
| 595 | - Extended install.pl to include compression for archived |
|---|
| 596 | files in /etc/psad. |
|---|
| 597 | - Added preserve questions in install.pl for the psad |
|---|
| 598 | signature and auto ips files. |
|---|
| 599 | - Bugfix for --USR1 command line switch not mapping to the |
|---|
| 600 | correct subroutine. |
|---|
| 601 | - Bugfix for psad man page missing the pipe character in |
|---|
| 602 | psadfifo line for syslog.conf. |
|---|
| 603 | |
|---|
| 604 | psad-1.2 (06/18/2003): |
|---|
| 605 | - Added passive OS fingerprinting based on packet ttl, length, |
|---|
| 606 | tos, and id fields. |
|---|
| 607 | - Added dshield.org alerting capability. |
|---|
| 608 | - Added exec_external_script() for external script execution. |
|---|
| 609 | - Added auto blocked timeouts. |
|---|
| 610 | - Implemented config re-imports via HUP signals in a manner |
|---|
| 611 | similar to various other system daemons (sysylog, apache |
|---|
| 612 | etc.) |
|---|
| 613 | - Better --Status output that shows packet counts per protocol |
|---|
| 614 | for each ip. |
|---|
| 615 | - Added --ip-status for more verbose status output for a |
|---|
| 616 | particular ip address. |
|---|
| 617 | - Added config preservation code to install.pl. |
|---|
| 618 | - Added Psad::psyslog(). |
|---|
| 619 | - Split psad.conf into a separate config file for each of the |
|---|
| 620 | four psad daemons. |
|---|
| 621 | - Completely re-worked the auto blocking code (made dedicated |
|---|
| 622 | files for iptables and ipchains block methods). |
|---|
| 623 | - Added danger level hash. |
|---|
| 624 | - Minor code cleanups (shorter hash keys, etc.). |
|---|
| 625 | |
|---|
| 626 | psad-1.1.1 (04/26/2003): |
|---|
| 627 | - Bugfix for incorrect usage of %scan hash keys associated |
|---|
| 628 | with tcp/udp when the current protocol is icmp. |
|---|
| 629 | - Bugfix for being too strict on iptable default log string. |
|---|
| 630 | - Reworked USR1 signal handler so the Data::Dumper function |
|---|
| 631 | call is made in the main part of the psad code. |
|---|
| 632 | - Added a startup message for psad. |
|---|
| 633 | - Minor bugfix for leading whitespace in auto_ips. |
|---|
| 634 | |
|---|
| 635 | psad-1.1 (04/20/2003): |
|---|
| 636 | - Added the IPTables::Parse module for better processing of |
|---|
| 637 | the iptables ruleset. |
|---|
| 638 | - Added --snort-sids so that iptables messages generated by |
|---|
| 639 | fwsnort can be included in alerts. Such alerts now include |
|---|
| 640 | the content fields of packets (fwsnort uses the iptables |
|---|
| 641 | string match module). |
|---|
| 642 | - Added the ability to specify entire networks in the auto |
|---|
| 643 | ips file through the use of the Net::IPv4Addr module. |
|---|
| 644 | - Better logging format that reinstates the current interval, |
|---|
| 645 | and adds an "overall stats" section that includes packet |
|---|
| 646 | counters per protocol. |
|---|
| 647 | - Removed the PROTO hash key since it was unnecesssary. |
|---|
| 648 | - Better benchmarking code. |
|---|
| 649 | - Bug fix for incorrectly looking for the "MAC" string in |
|---|
| 650 | iptables messages that could have been generated by the |
|---|
| 651 | FORWARD chain. |
|---|
| 652 | |
|---|
| 653 | psad-1.0 (02/27/2003): |
|---|
| 654 | - Added --Benchmark and --packets command line options to support |
|---|
| 655 | psad benchmarking. |
|---|
| 656 | - Bugfix for improperly detecting NULL scans. |
|---|
| 657 | - Completely redesigned website. |
|---|
| 658 | |
|---|
| 659 | psad-1.0.0-pre4 (11/26/2002): |
|---|
| 660 | - Rewrote kmsgsd and psadwatchd in C. |
|---|