Security Handbook/Intrusion detection

This section is on detecting intruders. == Intrusion detection ==

AIDE
AIDE is a Host-Based Intrusion Detection System (HIDS), a free alternative to Tripwire (if you already know Tripwire you should have no difficulties learning the configuration file for AIDE). HIDS are used to detect changes to important system configuration files and binaries, generally by making a unique cryptographic hash for the files to be checked and storing it in a secure place. On a regular basis (such as once a day), the stored "known-good" hash is compared to the one generated from the current copy of each file, to determine if that file has changed. HIDS are a great way to detect disallowed changes to your system, but they take a little work to implement properly and make good use of.

The configuration file is based on regular expressions, macros and rules for files and directories. We have the following macros:

These macros become very handy if you have more than one Gentoo box and want to use AIDE on all of them. But not all machines run the same services or even have the same users.

Next we have sets of flags to check for on files and directories. These are a combination of permissions, file properties and cryptographic hashes (i.e. checksums).

And if AIDE is compiled with mhash support it supports a few other features:

Now you can create your own rules based on the above flags by combining them like this:

The last thing we need to create our own configuration file is to see how to add a rule to a file or directory. To enter a rule, combine the file or directory name and the rule. AIDE will add all files recursively unless you specify an alternate rule.

So lets watch a full blown example:

In the above example we specify with some macros where the topdir starts and where the AIDE directory is. AIDE checks the /etc/aide/aide.db file when checking for file integrity. But when updating or creating a new file it stores the information in /etc/aide/aide.db.new. This is done so it won't automatically overwrite the old db file. The option report_URL is not yet implemented, but the author's intention was that it should be able to e-mail or maybe even execute scripts.

The AIDE ebuild now comes with a working default configuration file, a helper script and a crontab script. The helper script does a number of tasks for you and provides an interface that is a little more script friendly. To see all available options, try. To get started, all that needs to be done is and the crontab script should detect the database and send mails as appropriate every day. We recommend that you review the file and ensure that the configuration accurately reflects what is in place on the machine.

Now there is some risk inherent with storing the db files locally, since the attacker will (if they know that AIDE is installed) most certainly try to alter the db file, update the db file or modify. So you should create a CD or other media and put on it a copy of the file and the AIDE binaries.

One can find information at the AIDE project page.

Snort
Snort is a Network Intrusion Detection System (NIDS). To install and configure it use the following examples.

Copy to.

You might need to comment out the blacklist and whitelist entries if no lists are created.

More information is at the Snort website.

Detecting malware with chkrootkit
HIDS like AIDE are a great way to detect changes to your system, but it never hurts to have another line of defense. is a utility that scans common system files for the presence of rootkits-software designed to hide an intruder's actions and allow him to retain his access-and scans your system for likely traces of key loggers and other "malware". While (and alternatives like rkhunter) are useful tools, both for system maintenance and for tracking an intruder after an attack has occurred, they cannot guarantee your system is secure.

The best way to use to detect an intrusion is to run it routinely from. To start, emerge :

can be run from the command line by the command of the same name, or from with an entry such as this: