Michael Rash, Security Researcher

People who have contributed to psad

Contributor Contribution
Albert E. Whale Discovered bug in 1.1 that made fw_check() too strict with looking for precisely FW_MSG_SEARCH in a logging prefix instead of just looking for FW_MSG_SEARCH _within_ the logging prefix.
Suggested use of CPAN downloads of perl modules in
Bugfix for "-" character missing from Mandrake version of ps.
Bugfix for duplicate lines for tcpwrapper auto block IPs in /etc/hosts.deny.
Lots of great testing and feedback on new versions and -pre releases.
Suggested the ability to re-import scanning IP directories.
Bugfix for zero print_scale_factor in --Analyze-msgs mode.
Bugfix for auto-ignored addresses appearing in DShield alerts.
Bugfix for not timing-out blocked IP addresses from a previous psad execution.
Suggested putting -pre release versions in psad to make troubleshooting easier.
Discovered bug in syslog() message generation and --fw-block arg.
Lots of great testing for auto-blocking code... even contributed root access on some systems to help troubleshoot.
Suggested socket communication in --fw-block mode.
Contributed the logrotate.psad file.
Suggested that the AUTO_IPT_SOCK file get recreated if some other process comes in and deletes it.
Suggested psadwatchd parse EMAIL_ADDRESSES from psad.conf.
Found bug where auto-blocking stops working after receiving a HUP signal.
Found bug for not properly including elements of the @connected_subnets_cidr array.
Found bug for not using thresholds in "top attackers" section of --Status output.
Helped troubleshoot the PL_sv_undef issue for installation on Mandriva systems.
Discovered IP resolution bug in psad-2.1 for auto_dl lines.
(BTW, check out his websites: and
Manual Caphina Greatly assisting in the first version of Bastille-NIDS which eventually became psad.
Tim Schaller Identifying and submitting a patch for a particularly nasty bug for multiple scanned IPs.
Bruce Meyer Psad testing and suggestions.
Peter Watkins (Bastille Linux) psad/iptables interaction.
Sweth Chandramouli (Bastille Linux) Various suggestions for psad and, including help with various Perl vagaries.
Jay Beale (Bastille Linux) Excellent suggestions for psad reporting and enhanced security, and also for integrating psad with Bastille.
Ramiro Morales Developed all pre-1.0 rpm packages of psad (see:
Various suggestions for psad installation (such as FHS compatibility).
Implemented init script patches.
Alexander Hoff Psad stress testing for kmsgsd.
Ryan Delany diskmond testing to help track down the "rdev" bug.
Damien Stuart Suggested the zombie reaper code for whois processes, and uid/gid check.
Excellent suggestions for coding practices and strategies.
Donnie Armstrong Suggested fix for incorrectly parsing ifconfig output (might have previously included ipv6 interfaces).
Ryan Bebeau Suggested fix for AF_INET protocol error.
Cliff Rayman Helped track down a nasty bug in which psad would parse iptables messages that included a dns name instead of just an ip address for the src and dst.
Performed lots of excellent testing and troubleshooting.
Henry Jobst Bugfix in for chomp error.
Ray Curtis Found bug in kmsgsd for undefined $service lines.
Comprehensive testing to help remove bugs including a difficult one in which psad gets periodically restarted.
Manuel Santos Contributed the first bug report to help troublehshoot a potential bug in psad/whois interaction.
Suggested the auto blocking code should include support for tcp wrappers, and that the auto-blocking alerts should be configurable.
L-P Sundqvist Suggested fix for tab vs. space bug in for /etc/syslog.conf.
Contributed design ideas to make psad run on linux distros that use BSD-style init scripts.
Eric Sawler Suggested the ability to retain auto-blocked IPs even after a reboot.
C.Holman Found, reported, and helped troubleshoot a bug in the ipchains protocol number to name mapping.
Mike McCandless Asked whether or not there is documentation for the various psad configuration variables in psad.conf. The "PSAD CONFIGURATION VARIABLES" section of the man page was the result.
Jason Czerak Found and submitted a fix for a bug in which an IP would not be ignored even if it was given a 0 danger level in psad_auto_ips.
Suggested using the PREROUTING iptables chain along with "-t mangle" for the auto-blocking code.
Colin Rose Discovered and helped troubleshoot a bug introduced when psad and bastille are installed on the same machine (bastille installs an older version of psad).
Ugo Viti Discovered bug in auto-blocking code where the subject line would incorrectly identify the action that had been taken.
Discovered bug in subject line for alert emails not including the source IP if reverse dns did not work.
Suggested adding the FORWARD chain to the auto blocking code.
Found bug for email alert being reached prematurely.
Leif Westlye Discovered a bug where psad would not allow commands to be different than the <cmd>Cmd name. The bugfix allows someone to specify "/usr/bin/mailto" for the mailCmd for example.
Daniel Gubser Wrote the diskmond, kmsgsd, and psadwatchd man pages.
Suggested compatibility mods for syslog-ng.
Develops and maintains Debian builds.
Amelia Lewis Provided information on syslog-ng configs.
Nick Temple Suggested sending alerts to
James N. Winner Discovered bug that prevented psad from detecting scans through the iptables FORWARD chain.
David Krider Discovered iptables path bug on SuSE 8.2.
Ciapato Manfredi Reported psadwatchd bug where multiple useless processes were being spawned.
Ben Alcala Helped troubleshoot diskmond utilization bug.
Sebastian Mastropiero Suggested bugfix for missing pipe character in psad man page for psadfifo line in syslog.conf.
Jeff Lunglhofer Suggested bugfix for packet counters and multiple scan destinations, bugfix for duplicate lines in auto-blocking files, and suggested feature by which psad can add auto blocking firewall rules at arbitrary points within a policy.
Ruben Vanhoutte Bugfix for incorrect path to psadfifo in config.
Stefan Divjak Suggested that psad ignore addresses such as,, and local interface ips from auto blocking routines.
Suggested a generic way to (un)block addresses using an external script.
Suggested psad offer analysis capabilities for snort alert files.
Martijn Kruissen Suggested putting danger levels into psad email alert subjects.
Suggested custom logging line that that will trigger psad to auto block an IP.
Jeffrey Sofferin Lots of great testing for conditions that might cause psad to die.
Bugfix in man page for -HUP option.
Suggested the --status-dl option.
Found bug for 24 hour dshield alerting interval.
Found bug for not preserving user modifications in auto_dl file.
Found bug on SuSE systems running syslog-ng where the syslog-ng.conf reconfig added by psad caused the daemon to not start.
Found initialization bug that caused signature danger levels to not be properly assigned by the /etc/psad/snort_rule_dl file.
Kenneth Grande Suggested protocol-specific thresholds for email alerts.
Lenny Cartier Wrote a spec file for Mandrake Linux. An rpm built from this spec file is in the user contribs section of the Mandrake site now.
Bryan Stine Wrote a psad ebuild script for inclusion in Gentoo Linux. As of the 1.2.4 release psad is included in the portage tree.
Wrote a much-improved init script for Gentoo systems.
Zenon Panoussis Submitted patch for rpm spec that replaced the "Requires: sendmail" line with "Requires: smtpdaemon".
Dennis Freise Submitted a patch to add metalog support to psad.
Helped find kmsgsd bug for missing null string in buffer read from psadfifo.
Submitted patch for kmsgsd to open psadfifo in O_RDWR mode to fix a bug where kmsgsd would spike the cpu if the system logger did not keep the psadfifo open.
Found and submitted patch for improper bounds checking in kmsgsd.c.
Richard K. Szabo Discovered and helped test a bug where psad was not honoring IP's/net auto danger level assignments of 0 (ignore).
Stefan Rydberg Discovered a perl internal pp_match bug with psad-1.3.1 on SuSE 8.
Helped troubleshoot -pre releases of psad-1.3.2.
Provided a system on which to troubleshoot psad-1.3.3 (this facilitated the isolation of the pp_match bug to an older version perl on SuSE 8).
Joshua Jensen Found bug with the manner in which was being called from psad (improperly passing --no-fw-search-all option even if FW_SEARCH_ALL was set to "Y").
Mate Wierdl Found bug in EMAIL_ADDRESSES format (psad needed to allow addresses separated by commas).
Submitted patch for new init-scripts directory for psad.spec file.
Contributed patch for building the psad RPM on x86_64 platforms.
Stefan (unknown) Sugggested permissions fix for world readable files in /var/log/psad.
David Jacobs Troubleshooting firewall parsing code, lots of great beta testing (see:
Lucas (unknown) Suggested fix for init script directory for Slackware Linux systems.
Peter Abraham Help testing bugfix for auto_dl code.
Suggested EMAIL_LIMIT_STATUS_MSG variable to make email limit status messages optional.
James Lay Suggested support for OUTPUT chain in auto-blocking mode.
Yuen Boon Jee Found bug in psad init scripts for requiring syslogd config file even if syslog-ng is installed.
Michael S. Zick Bugfix for O_RDONLY open flag when kmsgsd receives a HUP signal.
Bugfix for psad validation routine that did not accept "0" for a PORT_RANGE_SCAN_THRESHOLD value.
Suggested the ability to maintain dedicated chains for the iptables auto-blocking code.
Nerijus Baliuna Suggested ability to ignore entire protocols. The IGNORE_PROTOCOLS keyword was the result.
Suggested adding various psad docs (CREDITS, ChangeLog, INSTALL, etc.) to be installed by the psad rpm
Suggested the ability to have psadwatchd not send emails even if psad dies and has to be restarted.
Michael Hadjimichael Bug report for syslog format that does not necessarily have the "kernel:" tag.
Blair Zajac Submitted patch to not install perl modules in that are already installed in the system perl lib tree (this was originally submitted as a patch for fwknop).
Found bug with perl module file paths and naming convention (this bug resulted in some modules being needlessly installed). This find was originally for fwknop.
Suggested the -O optimization in Makefile (originally suggested for the fwknop project).
Troy Swaine Suggested a command line interface to block IP addresses. The result is the --fw-block-ip argument.
Najib Bakari Pointed out that sendmail is not usually required to run psad. The result is the alert.conf file with the ALERTING_METHODS keyword, which also gets referenced by psadwatchd.
Sam Weiss Suggested that psad default FW_MSG_SEARCH to "DROP" if no strings are defined in fw_search.conf.
Francois Marier Contributed REAME.SYSLOG content to help troubleshoot psad and syslog.
Nathan Colt Suggested customizable email subjects.
Alex Luna Suggested ULOG support.
Torkel Hasle Suggested the ability to assign danger levels based on ports in addition to the protocol in auto_dl. Suggested better sweep detection by calculating scan danger levels over all destinations (i.e. 5 packets to different destinations should trigger danger level 1).
SiO Reported bug with zero masks in auto_dl file.
Jeroen Vermeulen Suggested that psad collect and report errors that are returned by broken iptables commands to the user. This resulted in a redesign of the IPTables::ChaingMgr module to collect both stdout and stderr from all iptables commands.
Found bug where IPTABLES_AUTO_RULENUM misled the user into thinking that it governed where the jump rule into a custom chain is added within the calling chain. This resulted in the IPT_AUTO_CHAIN{n} variables being updated to support the rule position for both the jump rule and any new rules within the chain.
Adam Mottershead Suggested the ability to disable psad email alerts about auto-blocking events.
Richard B\351neyt Suggested syslog-ng enhancement to allow a custom source path for /proc/kmsg to be defined for the psadfifo file.
Philip Lawrence Contributed patch to fix module path import bug. This resulted in the psad-2.0.1 release.
Stefano Harding Reported bug that caused psad to not acquire iptables data on systems running syslog-ng when there is no "source" definition for /proc/kmsg.
Aki Tuomi Reported bug where iptables might report '0' instead of 'all' for the protocol under the -nL output.
pyllyukko Contributed the psad.SlackBuild script for building psad on Slackware systems.
Suggested that the psad.spec file respect the %_initrddir RPM macro.
Suggested configurable syslog facility and priority settings.
Contributed a suspicious iptables log message that contained a broken set of TCP options. This exposed a bug where psad would consume all available memory on the system and would have to be killed. The result is an additional check to ensure that the length fields parsed from TCP options are greater than one byte; otherwise, the TLV encoding doesn't work out properly.
Christian Lyra Found off-by-one error in number of email alerts that are reported under --Status output.
James Neff Provided solution for getting psad to run in Fedora 8 systems by pointing psad at the /etc/rsyslog.conf file.
Franck Joncourt Performed analysis of locale settings for fwknop installer and suggested using the LC_ALL environmental variable instead of the LANG variable (which is superseded by LC_* vars).
Suggested moving dependencies into the deps/ directory to build a common architecture for bundling the projects for Debian.
Submitted patches for documentation fixes in various psad man pages.
Submitted patch to fix missing check against the 'mail' command for the script.
Submitted patch to fix a bug where local server ports were not reported correctly under netstat parsing.
Submitted patch to correct mail binary usage to redirect stderr.
Submitted patch to close stdout, stderr, and stdin when running as a daemon.
Added --Override-config feature so that alternate configuration files can be specified on the command line to override configuration variables in the standard /etc/psad/psad.conf file.
Found psad man page section errors with manpage-alert.
Erik Heidt Submitted patch to fix fwsnort sid reporting w.r.t. ending newline chars.
Reported iptables log prefix bug where timestamps that include spaces where not being excluded even when IGNORE_KERNEL_TIMESTAMP is set to "Y".
Andrew Kaplan Reported the inability of an older version of the bundled whois client to query the whois information associated with certain IP addresses. Updating to whois-4.7.26 solved the problem.
j.bakshi Reported a bug where IPT_SYSLOG_FILE was not being honored in -A (analyze) mode.
Steve B Submitted patch to fix a bug in the start() function in the Gentoo init script which caused psad to not be started and the error "* ERROR: psad failed to start" to be generated.
Miroslav Grepl Contributed policy files to make psad compatible with SELinux. The files are located in a new "selinux" directory in the psad sources.
Stephen Nims Reported 'Date::Calc::Decode_Month(): argument is not a string at /usr/sbin/psad line 1103' bug. This affected DShield processing and a few other areas.
Dan A. Dickey Submitted a patch to allow psad to use the "ip" command from the iproute2 tools to acquire IP addresses from local interfaces. Dan's description is as follows: "...A main reason for doing this is in the case of multi- homed hosts. ifconfig sets these up on an interface using aliases, iproute2 does not. So, for a multi-homed interface (eth0 with multiple addresses), ifconfig -a only shows the first one configured and not the rest. ip addr shows all of the configured addresses...".
Graham Murray Reported a bug where 8-bit data included in some whois output causes mail delivery problems with the following error: <<< 554 5.6.1 Eight bit data not allowed 554 5.0.0 Service unavailable The fix for this problem was the addition of the ENABLE_WHOIS_FORCE_ASCII functionality.
Dean Takemori Reported a condition where whois lookups were being calculated always on the source IP of suspicious traffic even if the source IP's were on internal directly connected networks (frequently on RFC 1918 address space). This report led to a change where whois lookups are now done against non-local IP addresses by default (see the ENABLE_WHOIS_LOCAL variable).
Lukas Baxa Reported bug for ICMP packet handling where psad would incorrectly interpret ICMP port unreachable messages as UDP packets because the UDP specifics are included in the iptables log message.
@pyllyukko Suggested --install-root for the script so that psad can be installed in a directory specified by the user.
Suggested the ability to have read answers to queries from a file in the filesystem in order to support easy automated installs of psad.
Kat Reported 'Could not resolve sub-var: INSTALL_ROOT to a value' error in the legacy kmsgsd daemon for psad-2.2.
Gregorio Narvaez Reported a NetAddr::IP usage bug in "-A --analysis-fields" mode with IP searches.
Pui Edylie Reported a problem where psad could not map an fwsnort log message back to the corresponding Snort 'msg' field. Added the FWSNORT_RULES_DIR variable to have psad read Snort rules from any installed fwsnort instance.
Oscar Marley Suggested configurable auto-blocking timeout values depending on the danger level that a scan or attack achieves. This resulted in the implementation of the AUTO_BLOCK_DL*_TIMEOUT variables.
Naji Mouawad Suggested the ability to throttle email alerts that psad sends. The This resulted in the implementation of the EMAIL_THROTTLE variable.
Nicholas Ritter Reported a bug in psad-2.2.1 where the protocols file is not bundled with the psad RPM's or included in the psad RPM .spec files.