Root out rootkit problems

Rootkits have been in the news recently after Sony used rootkit technologies for music-CD copy protection. Rootkit defines a set of techniques and methods for software to hide its presence from the operating system, system administrators, and end users. It's used by viruses, spyware, and trojans—such as keyboard and screen capture programs, but some companies, such as Sony, have also used...

By Dennis Brandl, BR&L Consulting April 1, 2006

Rootkits have been in the news recently after Sony used rootkit technologies for music-CD copy protection. Rootkit defines a set of techniques and methods for software to hide its presence from the operating system, system administrators, and end users. It’s used by viruses, spyware, and trojans—such as keyboard and screen capture programs, but some companies, such as Sony, have also used the same techniques for digital rights management (DRM). Because of the widespread negative publicity associated with the rootkit-like behavior, the Sony example provides a good study of techniques used by kernel level rootkits.

Rootkits use many methods to hide themselves as they:

  • Pretend to be normal programs;

  • Masquerade as existing programs;

  • Use names that appear to be valid existing names; or

  • May be OS programs that the user cannot easily identify.

The latter are called kernel-level rootkits, and they are the most dangerous since detection is difficult and removal may be impossible. A typical kernel-level rootkit will interrupt all MS-Windows API-calls to read directories. It will then remove its own file name from the returned lists. This was done by a modification to the Windows system call-tables. When a program makes a system call, the rootkit code is called instead, and then it calls the true system function returning filtered information. Sony’s rootkit included this function by hiding any file that began with “$sys$.” Kernel-level rootkits use another method to install a device driver that can filter or otherwise change the data. For example, the Sony rootkit inserted itself into the stack of drivers normally used to access the CD. Inserted code checked for a valid copyright and also connected through the Internet to record how often and long the music was playing. Unfortunately, the same techniques employed by Sony have also been used by others to take control of computers.

One of the easiest ways to get infected by a rootkit is through malicious removable storage (CD, DVD, USB Disk). Once so afflicted, the computer can easily infect others in the network. Windows’ AutoRun feature checks for an autorun.inf file on the inserted media. Autorun.inf usually points to an executable program on the disk, and this program is run automatically when the disk is installed. A rootkit will install itself before the user ever gets the opportunity to even read the disk, and this is very dangerous behavior for any manufacturing system. Autorun should be disabled on all manufacturing servers and clients. See the Microsoft website for instructions for disabling Autorun on all removable storage.

Kernel-level rootkits are not detectable by most virus protection systems, however, free tools can detect rootkits. RootKitRevealer ( www.sysinternals.com/Utilities/RootkitRevealer.html ) can be used on Windows systems. RootKitRevealer was written by Bryce Cogswell and Mark Russinovich. Mark discovered the Sony rootkit and his story of discovery ( www.sysinternals.com/blog/ ) is fascinating reading. Root-KitRevealer compares all directories and registry entries using API system calls against data from low-level direct calls to the file system and registry. Any mismatch, except for ones purposefully used by Windows may indicate a compromised system.

Windows systems aren’t the only ones that are vulnerable. Linux and Unix were rootkits’ first targets; as such they may be more vulnerable than Windows servers. The program kern_check ( https://la-samhna.de/library/kern_ check .) can detect kernel-level rootkits on Linux systems.

If you have found that your manufacturing software has been infected with a rootkit, your remedial actions are limited. Manually removing a kernel-level rootkit requires detailed system knowledge of the OS structure and is not recommended for the average system administrator. There are free tools available to remove the most common rootkits, but often the easiest method is to reinstall the OS and applications. For kernel-level rootkit protection, prevention is the best defense.

Author Information
Dennis Brandl, president, BR&L Consulting, a Cary, N.C-based firm focused on manufacturing IT solutions. dbrandl@brlconsulting.com