| 1 |
psad-1.4.0 (11/26/2004): |
|---|
| 2 |
- Added p0f-style passive OS fingerprinting through the use of the OPT |
|---|
| 3 |
field in iptables log messages (which is only logged through the use |
|---|
| 4 |
of the --log-tcp-options command line arg to iptables). |
|---|
| 5 |
- Bugfix for iptables log messages that include tcp sequence numbers |
|---|
| 6 |
(see the iptables --log-tcp-sequence command line argument). |
|---|
| 7 |
- Bugfix for O_RDONLY open flag when kmsgsd receives a HUP signal. |
|---|
| 8 |
|
|---|
| 9 |
psad-1.3.4 (10/17/2004): |
|---|
| 10 |
- Bugfix for init script directory on Slackware systems. |
|---|
| 11 |
- Bugfix for null prefix counters. |
|---|
| 12 |
- Added --whois-analysis argument since whois lookups are now disabled |
|---|
| 13 |
by default when running in analysis (-A) mode. |
|---|
| 14 |
- Updated psad_init() to rework setup() and import orderings vs. |
|---|
| 15 |
--fw-analyze and --Benchmark modes. |
|---|
| 16 |
- Added bidirectional iptables auto-blocking support for all chains |
|---|
| 17 |
except for the INPUT and OUTPUT chains. |
|---|
| 18 |
- Better syslog message support when run in auto-blocking mode. |
|---|
| 19 |
- Added iptables auto-block rules section to --Status output. |
|---|
| 20 |
- Added init script for Fedora systems. |
|---|
| 21 |
- Added default_log() function to IPTables::Parse. This function |
|---|
| 22 |
parses user defined chains in an effort to find default logging |
|---|
| 23 |
rules. |
|---|
| 24 |
- Added EMAIL_LIMIT_STATUS_MSG to control whether or not psad sends a |
|---|
| 25 |
status email when the PSAD_EMAIL_LIMIT threshold has been reached by |
|---|
| 26 |
an IP address. |
|---|
| 27 |
- Added ENABLE_SCAN_ARCHIVE to control whether or not psad archives old |
|---|
| 28 |
scan data within /var/log/psad/scan_archive at start time. |
|---|
| 29 |
|
|---|
| 30 |
psad-1.3.3 (09/09/2004): |
|---|
| 31 |
- Fixed __WARN__ and __DIE__ exception handlers so that they |
|---|
| 32 |
reference global message variables. |
|---|
| 33 |
- Fixed auto danger level assignments. Network auto assignments as |
|---|
| 34 |
well as per-protocol assignments work now. |
|---|
| 35 |
- Added SYSLOG_DAEMON variable to define which syslog daemon is running |
|---|
| 36 |
on the underlying system instead of just guessing. |
|---|
| 37 |
- Added the ability to ignore both ranges and specific ports/protocols |
|---|
| 38 |
with a new variable IGNORE_PORTS in psad.conf. |
|---|
| 39 |
- Bugfix to make sure email addresses are separated by spaces when |
|---|
| 40 |
Psad::sendmail() is called. |
|---|
| 41 |
- Bugfix for ipt_prefix counters not being parsed correct at import |
|---|
| 42 |
time. |
|---|
| 43 |
- Removed exclude_auto_ignore_ip() since this function was made |
|---|
| 44 |
unnecessary by newly rewritten auto-assign code. |
|---|
| 45 |
- Bugfix for Text::Wrap calls in install.pl uninstall() routine. |
|---|
| 46 |
- Bugfix for using --no-fw-search-all even when FW_SEARCH_ALL is |
|---|
| 47 |
set to "Y". |
|---|
| 48 |
- Removed extraneous ".." and "**" chars from syslog messages, and |
|---|
| 49 |
updated to use [+] prefix strings. |
|---|
| 50 |
- Moved init scripts into init-scripts directory within source tree. |
|---|
| 51 |
- Removed dependency on Bit::Vector (psad does not seem to make use |
|---|
| 52 |
of any Date::Calc functions that require it). |
|---|
| 53 |
- Wrapped copy() and move() calls with "or die()" to make them |
|---|
| 54 |
safer in install.pl. |
|---|
| 55 |
- Added check for existing psad process in install.pl. |
|---|
| 56 |
- Updated to a new psad email alert subject format. Prefixes of |
|---|
| 57 |
"[psad-alert]", "[psad-error]", and "[psad-status]" are used now. |
|---|
| 58 |
- Permissions fixes with umask() setting in /var/log/psad, permissions |
|---|
| 59 |
fixes for files in /etc/psad at install time. |
|---|
| 60 |
|
|---|
| 61 |
psad-1.3.2 (06/25/2004): |
|---|
| 62 |
- Removed FW_MSG_SEARCH from psad.conf, and created a new config |
|---|
| 63 |
file "fw_search.conf" that both psad and kmsgsd use to get the |
|---|
| 64 |
FW_MSG_SEARCH definition(s). |
|---|
| 65 |
- Added default mode of parsing all iptables messages instead of |
|---|
| 66 |
just those that contain specific search strings. A new config |
|---|
| 67 |
variable "FW_SEARCH_ALL" was added to fw_search.conf that |
|---|
| 68 |
controls this mode. |
|---|
| 69 |
- Updated psad and kmsgsd so that multiple firewall search strings |
|---|
| 70 |
can be specified through multiple FW_MSG_SEARCH variables in |
|---|
| 71 |
fw_search.conf. |
|---|
| 72 |
- Added iptables chain and logging-prefix tracking for current |
|---|
| 73 |
scan interval in email alerts. |
|---|
| 74 |
- Added protocol-specific auto-danger level assignments. |
|---|
| 75 |
- Added total scan source and destination IP address counters in |
|---|
| 76 |
--Status output. |
|---|
| 77 |
- Added number of email alerts sent and OS guess in default |
|---|
| 78 |
--Status output. The output is getting wide now, so there is |
|---|
| 79 |
also a new option --status-brief that will remove the alerts |
|---|
| 80 |
sent and OS guess columns. |
|---|
| 81 |
- Added getopt() command line arg parsing to kmsgsd with two new |
|---|
| 82 |
options "-c" (for config file path) and "-k" (for fw_search.conf |
|---|
| 83 |
path). |
|---|
| 84 |
- Made iptables parsing code into its own script "fwcheck_psad" |
|---|
| 85 |
that gets called by psad. |
|---|
| 86 |
- Added Dshield stats summary to --Status output. |
|---|
| 87 |
- Bugfix for auto-ignore IP addresses and networks being missed. |
|---|
| 88 |
- Made parsing of ifconfig output language independent (should |
|---|
| 89 |
handle French now for example). |
|---|
| 90 |
- Removed "psad_" prefix on files psad_signatures, psad_auto_ips, |
|---|
| 91 |
psad_posf, and psad_icmp_types in /etc/psad/. |
|---|
| 92 |
- Updated to version 4.6.14 of the whois client. |
|---|
| 93 |
|
|---|
| 94 |
psad-1.3.1 (12/25/2003): |
|---|
| 95 |
- Added the ability to import /var/log/psad/<ip> directories |
|---|
| 96 |
back into memory so scan data remains persistent across |
|---|
| 97 |
psad restarts or system reboots. |
|---|
| 98 |
- Added --Analyze-msgs to run psad in analysis mode against an |
|---|
| 99 |
iptables logfile (/var/log/psad/fwdata by default). The logfile |
|---|
| 100 |
path can be changed with --messages-file. |
|---|
| 101 |
- Added icmp type and code validation against RFC 792. |
|---|
| 102 |
- Bugfix for being too strict with FW_MSG_SEARCH. |
|---|
| 103 |
- Added port ranges for tcp and udp scans in <ip>/<dst>_packet_ctr. |
|---|
| 104 |
- Added <ip>/<dst>_start_time and <ip>/os_guess. |
|---|
| 105 |
- Bugfix for missing --no-signatures code. |
|---|
| 106 |
- Updated to Snort-2.1 signatures. |
|---|
| 107 |
|
|---|
| 108 |
psad-1.3 (11/30/2003): |
|---|
| 109 |
- Replaced all signatures in psad_signatures with updated snort |
|---|
| 110 |
rules. |
|---|
| 111 |
- Added support for source and destination ip addresses in |
|---|
| 112 |
signature matching code. A new variable "HOME_NET" makes this |
|---|
| 113 |
possible. |
|---|
| 114 |
- Added support for the iptables output chain. |
|---|
| 115 |
- Added chain tracking for all signatures. |
|---|
| 116 |
- Replaced match_fastsigs() with two new routines for tcp and |
|---|
| 117 |
udp signature matching that don't autovivify hash keys. |
|---|
| 118 |
- Removed support for ipchains. |
|---|
| 119 |
- Added support for metalog. |
|---|
| 120 |
- Removed all "Undefined Code" signatures from psad_signatures. |
|---|
| 121 |
- Re-worked %auto_blocked_ips hash and corresponding blocking |
|---|
| 122 |
routines. This (hopefully) fixes a restart bug seen on older |
|---|
| 123 |
systems such as those that are still running versions of perl |
|---|
| 124 |
less than 5.6. |
|---|
| 125 |
- Re-worked firewall policy parsing routines. Chains that have |
|---|
| 126 |
a default policy of DROP are handled properly now. |
|---|
| 127 |
- Bugfix for missing NULL char in kmsgsd.c. |
|---|
| 128 |
- Updated scan alerting format. Put current interval protocol |
|---|
| 129 |
status before source and destination addresses. |
|---|
| 130 |
- Buffer overflow fix in kmsgsd.c for size of buf[MAX_LINE_BUF] |
|---|
| 131 |
buffer in read() call. |
|---|
| 132 |
- Added --no-kmsgsd option to aid in psad --debug mode. |
|---|
| 133 |
|
|---|
| 134 |
psad-1.2.4 (10/15/2003): |
|---|
| 135 |
- Added danger level to subject line in email alerts. |
|---|
| 136 |
- Removed diskmond altogether since psad now handles disk space |
|---|
| 137 |
thresholds directly. This allows filehandles to be handled |
|---|
| 138 |
properly. |
|---|
| 139 |
- Added auto_block_ignore_ip() to prevent 0.0.0.0, 127.0.0.1, |
|---|
| 140 |
and local interface ips from being included in auto blocking |
|---|
| 141 |
routines. |
|---|
| 142 |
- Added Bit::Vector module to stop installation warnings from |
|---|
| 143 |
Date::Calc. |
|---|
| 144 |
- Made get_local_ips() called periodically since local addresses |
|---|
| 145 |
may change (dhcp, etc.). |
|---|
| 146 |
- Added installation code and init script for Gentoo Linux. |
|---|
| 147 |
- Bugfix for INIT_DIR in uninstall() routine in install.pl. |
|---|
| 148 |
- Bugfix for auto-blocking loop after timeouts are hit. |
|---|
| 149 |
- Added --status-dl [N] to display status information only for |
|---|
| 150 |
those scans that reach at least [N]. |
|---|
| 151 |
|
|---|
| 152 |
psad-1.2.3 (09/12/2003): |
|---|
| 153 |
- Added interface tracking for scans. |
|---|
| 154 |
- Bugfix for not opening /etc/hosts.deny the right way in |
|---|
| 155 |
tcpwr_block(). |
|---|
| 156 |
- Bugfix for psadfifo path in syslog-ng config. |
|---|
| 157 |
- Better format for summary stats section in email alerts. |
|---|
| 158 |
- Bugfix for INIT_DIR path on non-RedHat systems. |
|---|
| 159 |
- Bugfix for gzip path. |
|---|
| 160 |
- Make Psad.pm installed last of all perl modules installed |
|---|
| 161 |
by psad. |
|---|
| 162 |
- Added additional call to incr_syscall_ctr() in psadwatchd.c |
|---|
| 163 |
|
|---|
| 164 |
psad-1.2.2 (08/24/2003): |
|---|
| 165 |
- psad is finally available as an RPM package. |
|---|
| 166 |
- Added chain tracking for iptables. |
|---|
| 167 |
- Added chain counts to --Status output. |
|---|
| 168 |
- Bugfix for psad not taking into account multiple scan |
|---|
| 169 |
destinations. |
|---|
| 170 |
- Reworked auto-blocking code for both tcpwrappers and |
|---|
| 171 |
iptables. Lines added to /etc/hosts.deny will no longer be |
|---|
| 172 |
duplicated. Added IPTABLES_AUTO_RULENUM and |
|---|
| 173 |
IPCHAINS_AUTO_RULENUM so auto rules can be inserted at a |
|---|
| 174 |
configurable point within iptables and ipchains policies. |
|---|
| 175 |
- Psad now installs all perl modules within /usr/lib/psad. |
|---|
| 176 |
- Removed /var/log/psad/<ip>/scanlog file since it was wasting |
|---|
| 177 |
too much disk. |
|---|
| 178 |
- Made psad, psadwatchd, and diskmond take the machine hostname |
|---|
| 179 |
from their respective config files. This makes installation |
|---|
| 180 |
via the rpm easier, and is generally cleaner. |
|---|
| 181 |
- Added scan destination in --Status output. |
|---|
| 182 |
- Added --status-sort-dl (the default status output is now |
|---|
| 183 |
sorted by ip address by default). |
|---|
| 184 |
|
|---|
| 185 |
psad-1.2.1 (07/11/2003): |
|---|
| 186 |
- Bugfix for multiple processes being spawned by psadwatchd |
|---|
| 187 |
due to lack of proper config variables in the new split |
|---|
| 188 |
daemon config files. |
|---|
| 189 |
- Bugfix for old scan messages being regenerated if a HUP |
|---|
| 190 |
signal is received. |
|---|
| 191 |
- Bugfix for incorrectly calculating disk utilization in |
|---|
| 192 |
diskmond.c. |
|---|
| 193 |
- Extended install.pl to include compression for archived |
|---|
| 194 |
files in /etc/psad. |
|---|
| 195 |
- Added preserve questions in install.pl for the psad |
|---|
| 196 |
signature and auto ips files. |
|---|
| 197 |
- Bugfix for --USR1 command line switch not mapping to the |
|---|
| 198 |
correct subroutine. |
|---|
| 199 |
- Bugfix for psad man page missing the pipe character in |
|---|
| 200 |
psadfifo line for syslog.conf. |
|---|
| 201 |
|
|---|
| 202 |
psad-1.2 (06/18/2003): |
|---|
| 203 |
- Added passive OS fingerprinting based on packet ttl, length, |
|---|
| 204 |
tos, and id fields. |
|---|
| 205 |
- Added dshield.org alerting capability. |
|---|
| 206 |
- Added exec_external_script() for external script execution. |
|---|
| 207 |
- Added auto blocked timeouts. |
|---|
| 208 |
- Implemented config re-imports via HUP signals in a manner |
|---|
| 209 |
similar to various other system daemons (sysylog, apache |
|---|
| 210 |
etc.) |
|---|
| 211 |
- Better --Status output that shows packet counts per protocol |
|---|
| 212 |
for each ip. |
|---|
| 213 |
- Added --ip-status for more verbose status output for a |
|---|
| 214 |
particular ip address. |
|---|
| 215 |
- Added config preservation code to install.pl. |
|---|
| 216 |
- Added Psad::psyslog(). |
|---|
| 217 |
- Split psad.conf into a separate config file for each of the |
|---|
| 218 |
four psad daemons. |
|---|
| 219 |
- Completely re-worked the auto blocking code (made dedicated |
|---|
| 220 |
files for iptables and ipchains block methods). |
|---|
| 221 |
- Added danger level hash. |
|---|
| 222 |
- Minor code cleanups (shorter hash keys, etc.). |
|---|
| 223 |
|
|---|
| 224 |
psad-1.1.1 (04/26/2003): |
|---|
| 225 |
- Bugfix for incorrect usage of %scan hash keys associated |
|---|
| 226 |
with tcp/udp when the current protocol is icmp. |
|---|
| 227 |
- Bugfix for being too strict on iptable default log string. |
|---|
| 228 |
- Reworked USR1 signal handler so the Data::Dumper function |
|---|
| 229 |
call is made in the main part of the psad code. |
|---|
| 230 |
- Added a startup message for psad. |
|---|
| 231 |
- Minor bugfix for leading whitespace in auto_ips. |
|---|
| 232 |
|
|---|
| 233 |
psad-1.1 (04/20/2003): |
|---|
| 234 |
- Added the IPTables::Parse module for better processing of |
|---|
| 235 |
the iptables ruleset. |
|---|
| 236 |
- Added --snort-sids so that iptables messages generated by |
|---|
| 237 |
fwsnort can be included in alerts. Such alerts now include |
|---|
| 238 |
the content fields of packets (fwsnort uses the iptables |
|---|
| 239 |
string match module). |
|---|
| 240 |
- Added the ability to specify entire networks in the auto |
|---|
| 241 |
ips file through the use of the Net::IPv4Addr module. |
|---|
| 242 |
- Better logging format that reinstates the current interval, |
|---|
| 243 |
and adds an "overall stats" section that includes packet |
|---|
| 244 |
counters per protocol. |
|---|
| 245 |
- Removed the PROTO hash key since it was unnecesssary. |
|---|
| 246 |
- Better benchmarking code. |
|---|
| 247 |
- Bug fix for incorrectly looking for the "MAC" string in |
|---|
| 248 |
iptables messages that could have been generated by the |
|---|
| 249 |
FORWARD chain. |
|---|
| 250 |
|
|---|
| 251 |
psad-1.0 (02/27/2003): |
|---|
| 252 |
- Added --Benchmark and --packets command line options to support |
|---|
| 253 |
psad benchmarking. |
|---|
| 254 |
- Bugfix for improperly detecting NULL scans. |
|---|
| 255 |
- Completely redesigned website. |
|---|
| 256 |
|
|---|
| 257 |
psad-1.0.0-pre4 (11/26/2002): |
|---|
| 258 |
- Rewrote kmsgsd and psadwatchd in C. |
|---|