PCI DSS Compliance
		    
		      The Payment Card Industry (PCI) Data Security Standard (DSS) mandates
		      the use of file integrity monitoring software. Version 1.1 of the PCI DSS
		      includes the following two requirements:
		    
		     Sect. 11.5: "Deploy file integrity monitoring
			software to alert personnel to unauthorized modification of critical system
			or content files; and configure the software to perform critical file 
			comparisons at least weekly."
		    
		     Sect. 10.5.5: "Use file integrity monitoring and change 
			detection software on logs to ensure that existing log data cannot be 
			changed without generating alerts (although new data being added should 
			not cause an alert)."
		    
		    
		      While weekly checks can be done with any open-source file integrity checker,
		      to the best of our knowledge Samhain is the only one that can perform
		      incremental checks on growing logfiles (i.e. verify at each check that
		      the data present at the preceding check have not been modified meanwhile),
		      as required by Sect. 10.5.5 of the PCI DSS.
		    
 		   
		  
		    Centralized Management
		    
		      Samhain can be used standalone on a single host, but its particular
		      strength is centralized monitoring and management. The complete
		      management of a samhain system can be done from one central location.
		      To this end,
		      several components are required.
		    
		    
		    
		      A full samhain client/server system is built of the following components:
		    
		      
		    
		      - The samhain file/host integrity checker
- 
			
			  - This is the client/agent on the monitored host(s).
			    It is designed to run as a daemon.
			    This avoids repetitive warnings,
			    because the daemon keeps a memory of file changes.
			    However, if you prefer, it can also be invoked from cron.
			  
 
- The yule log server
- 
			
			  - Yule collects and logs reports from samhain clients on remote
			    (or the local) hosts. 
- Yule allows samhain clients to download
			    baseline databases and
			    runtime configuration files (if stored on the server)
			    at startup.
- Yule keeps track of the status of clients, and can inform
			    you if a client seems to be dead.
- If you have edited a client's runtime configuration file
			    on the server, yule can advise the client to
			    reload the configuration file.
 
- A relational database
- 
			
			  - 
			    The server will store reports
			    from clients in this database. Oracle, MySql, or PostgreSQL
			    are supported. While a database is in general not required, it is
			    neccessary for the next component.
			  
 
- The Beltane II web-based console
- 
			
			  - Beltane II is a PHP application available as separate
			    package.
- Beltane II will pull reports from the database,
			    and present them for review.
- It then allows the user to update the client's baseline
			    databases stored on the server, to reflect the file system
			    changes reported by the client.
- Additionally, Beltane II gives access to the client status as
			    known by the server, and to the server interface for asking clients
			    to reload their configuration.
 
 
		  
		  
		    Host Integrity Monitoring
		    
		      Samhain is extensible by modules that can be compiled in at 
		      the users' discretion. The following list shows which modules are
		      currently available. The documentation contains a HOWTO for creating
		      additional modules.
		    
		    
		    
		      - Logfile monitoring/analysis
- 
			
			  - 
			    As of version 2.5.0, samhain optionally perform logfile
			    monitoring/analysis. Currently supported formats are UNIX syslog,
			    Apache (and compatible) access and error logs, Samba logfiles,
			    and BSD-style process accounting logs.
			  
- 
			    Both whitelisting and blacklisting policies are supported. Perl-style
			    regular expression can be used to match logfile entries.
			  
- 
			    Samhain supports checking for correlated events, for missing heartbeat
			    messages, and automatic detection of bursts of repeated messages.
			  
 
- Windows registry check
- 
			
			  - 
			    On Windows/Cygwin, it is possible to check the integrity 
			    of individual keys
			    (or hierarchies of keys) in the registry.
			  
 
- SUID/SGID files
- 
			
			  - 
			    Samhain can optionally check the filesystem for new
			    SUID/SGID files.
			  
- 
			    This check can be scheduled independently from the regular
			    file check.
			  
- 
			    Optionally, samhain can strip SUID/SGID permissions from
			    new SUID/SGID files, or quarantine or delete them. By default, it will
			    just report them.
			
 
- Open ports
- 
			
			  - 
			    Samhain can optionally monitor which ports are open on the
			    local host, and compare agains a list of allowed or required 
			    port/services.
			  
- 
			    On Linux and FreeBSD, also the program having the 
			    port open will be reported.
			  
 
- Process check
- 
			
			  - 
			    Samhain can optionally check for processes that are hidden
			      (i.e. not listed in the output from 'ps'), or fake 
			    (i.e. listed by 'ps', but non-existent). Additionally, it is possible
			    to check for the existence of (user-defined) required processes.
			  
 
- Mount check
- 
			
			  - 
			    Samhain can optionally monitor the presence and mount
			    options of mounted filesystems.
			  
 
- Login/logoff events
- 
			
			  - 
			    Samhain can optionally monitor and report
			    login/logoff events.
			  
- 
			    This check uses the system utmp file.
			  
 
 
		  
		    Logging Options
		    
		      The verbosity and on/off status of each log facility can
			be configured individually.
		    
		    
		    
		      - 
			Central log server. Messages are sent via encrypted 
			TCP connections. Clients need to authenticate to the server.
		      
- 
			Syslog.
		      
- 
			Console (if daemon) / stderr.
		      
- 
			Log file. To prevent unauthorized modifications of 
			existing log records, the log file entries are signed.
		      
- 
			E-mail (built-in mailer). E-mail reports are signed to 
			prevent tampering.
		      
-  RDBMS (currently MySQL, PostgreSQL, and Oracle are supported; 
			support for unixODBC is untested).
		      
-  Execute external program — this can be used to implement
			arbitrary additional logging facilities, or to perform active
			response to events.
		      
 
		  
		    Security
		    
		      There is always a trade-off between security and convenience, and thus
		      you may want to keep your file checking executable on disk and hope
		      that an intruder will not tamper with it. 
		      
		      Samhain offers the following
		      features to help protecting its integrity:
		    
		    
		      - signed database and configuration file: Both the
			file signature database and the configuration file can be signed
			with GnuPG.
		      
- embedded password: For successful connection to
			the server, a password is required which is embedded into
			the executable itself (this password can be set exactly once
			after compiling the executable).
		      
- compiled-in key: Every executable built from source 
			contains a unique random 64-bit key (unless this key is defined by
			the user at compile time). Logfile/e-mail messages generated by
			a different executable (with a different key) will not pass the
			verification routine with a 'known good' executable.
		      
- daemon mode: Samhain can run continuously as a daemon
			(background process), and any stop/restart process will 
			leave a recognizable mark.
			Thus it is not possible to "slip in" a rogue executable
			as long as the daemon is running.
- signed reports: eMail reports and messages written to the
			log file are signed. Messages sent to a central log server 
			are additionally encrypted with Rijndael (AES).
		      
- stealth: what an intruder cannot see, s/he will not
			try to subvert. Samhain offers several options to hide itself.
		      
 
		  
		    Documentation
		    
		      The manual in PDF and HTML format
		      is available online
		      on the Samhain development site. It includes
		      explanations
		      and examples for the setup,
		      complete documentation of the format of the
		      configuration file, and 
		      of the interface to external programs.
		      There are also several HOWTOs 
		      for specific issues (e.g. the client/server setup).
		    
		    
		      This documentation is also included in the
		      distribution tarball, along with man pages
		      for the program and the configuration file, and sample 
		      configurations for Linux, FreeBSD, and Solaris.