Using RPM as an intrusion detection system

to use the Red hat package manager as an intrusion detection system

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 with the version of RPM installed on the system):

rpm –import /usr/share/doc/rpm-/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 anyway since the last time the RPM database was updated. If there is an error, such as the following

S.5….T c /bin/ps

then the file has been modified in some way and you need to 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.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.