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