A host-based IDS analyzes several areas to determine misuse
(malicious or abusive activity inside the network) or intrusion
(breaches from the outside). Host-based IDSes consult several types of
log files (kernel, system, server, network, firewall, and more), and
compare the logs against an internal database of common signatures for
known attacks. UNIX and Linux host-based IDSes make heavy use of
syslog and its ability to separate logged events by
their severity (for example, minor printer messages versus major
kernel warnings). The syslog command is available
when installing the sysklogd package, which is
included with Red Hat Enterprise Linux. This package provides system logging and kernel
message trapping. The host-based IDS filters logs (which, in the case
of some network and kernel event logs, can be quite verbose), analyzes
them, re-tags the anomalous messages with its own system of severity
rating, and collects them in its own specialized log for administrator
analysis.
A host-based IDS can also verify the data integrity of important
files and executables. It checks a database of sensitive files (and
any files added by the administrator) and creates a
checksum of each file with a message-file
digest utility such as md5sum (128-bit algorithm)
or sha1sum (160-bit algorithm). The host-based IDS
then stores the sums in a plain text file and periodically compares
the file checksums against the values in the text file. If any of the
file checksums do not match, the IDS alerts the administrator by email
or cellular pager. This is the process used by Tripwire, which is
discussed in Section 9.2.1 Tripwire.
Tripwire is the most popular host-based IDS for Linux. Tripwire,
Inc., the developers of Tripwire, opened the software source code for
the Linux version and licensed it under the terms of the GNU General
Public License. Tripwire is available from https://www.tripwire.org/.
| Note |
---|
| Tripwire is not included with Red Hat Enterprise Linux and is
not supported. It has been included in this document as a reference to
users who may be interested in using this popular application.
|
The RPM Package Manager (RPM) is another program that can be used as a
host-based IDS. RPM contains various options for querying packages and
their contents. These verification options can be invaluable to an
administrator who suspects that critical system files and executables
have been modified.
The following list details some RPM options that can verify
file integrity on a Red Hat Enterprise Linux system. Refer to the
Red Hat Enterprise Linux System Administration Guide for complete information about using
RPM.
| Important |
---|
| Some of the commands in the following list require the
importation of the Red Hat GPG public key into the system's RPM
keyring. This key verifies that packages installed on the system
contain an Red Hat package signature, which ensures that the packages
originated from Red Hat. The key can be imported by issuing the
following command as root (substituting
<version> with the version of RPM
installed on the system): rpm --import /usr/share/doc/rpm-<version>/RPM-GPG-KEY |
|
- rpm -V
package_name
The -V option verifies the files in the
installed package called
package_name. If
it shows no output and exits, this means that none of the files
have been modified in any way since the last time the RPM database
was updated. If there is an error, such as the following
then the file has been modified in some way and you must
assess whether to keep the file (such as with modified
configuration files in the /etc/ directory)
or delete the file and reinstall the package that contains it. The
following list defines the elements of the 8-character string
(S.5....T in the above example)
that notifies of a verification failure.
. — The test has
passed this phase of verification
? — The test has
found a file that could not be read, which is most likely a
file permission issue
S — The test has
encountered a file that that is smaller or larger than it was
when originally installed on the system
5 — The test has
found a file whose md5 checksum does not match the original
checksum of the file when first installed
M — The test has
detected a file permission or file type error on the file
D — The test has
encountered a device file mismatch in major/minor number
L — The test has
found a symbolic link that has been changed to another file
path
U — The test has
found a file that had its user ownership changed
G — The test has
found a file that had its group ownership changed
T — The test has
encountered mtime verification errors on
the file
- rpm -Va
The -Va option verifies
all installed packages and finds any failure
in its verification tests (much like the -V
option, but more verbose in its output since it is verifying every
installed package).
- rpm -Vf /bin/ls
The -Vf option verifies individual files
in an installed package. This can be useful when performing a
quick verification of a suspect file.
- rpm -K application-1.0.i386.rpm
The -K option is useful for checking the
md5 checksum and the GPG signature of an RPM package file. This
is useful for checking whether a package about to be installed
is signed by Red Hat or any organization for which you have the
GPG public key imported into a GPG keyring. A package that
has not been properly signed triggers an error message similar
to the following:
application-1.0.i386.rpm (SHA1) DSA sha1 md5 (GPG) NOT OK
(MISSING KEYS: GPG#897da07a) |
Exercise caution when installing packages that are unsigned
as they are not approved by Red Hat, Inc. and could contain malicious code.
RPM can be a powerful tool, as evidenced by its many verification
tools for installed packages and RPM package files. It is strongly
recommended that the contents of the RPM database directory
(/var/lib/rpm/) be backed up to read-only media,
such as CD-ROM, after installation of Red Hat Enterprise Linux. Doing so allows
verification of files and packages against the read-only database,
rather than against the database on the system, as malicious users may
corrupt the database and skew the results.
The following list discusses some of the other popular host-based
intrusion detection systems available. Refer to the websites of the
respective utilities for more information regarding installation and
configuration.
| Note |
---|
| These applications are not included with Red Hat Enterprise Linux and are not
supported. They have been included in this document as a reference to
users who may be interested in evaluating such applications.
|
SWATCH https://sourceforge.net/projects/swatch/
— The Simple WATCHer (SWATCH) uses log files generated by
syslog to alert administrators of anomalies based
on user configuration files. SWATCH was designed to log any event
that the user wants to add into the configuration file; however, it
has been adopted widely as a host-based IDS.
LIDS https://www.lids.org/ — The
Linux Intrusion Detection System (LIDS) is a kernel patch and
administration tool that can also control file modification with
access control lists (ACLs), and protect processes and files, even
from the root user.