Vendors are finding increasingly more effective ways to battle malware such as viruses, Trojans, and bots. Unfortunately, malicious programmers continue to concoct newer, nastier code, and companies need to update their security arsenal and defense plan accordingly.
Viruses, which normally modify legitimate host code to spread, are not very popular anymore. They're harder to write than worms and Trojans because the virus coder must take great pains to ensure the newly modified file doesn't crash.
With Microsoft Windows, Windows File Protection (first introduced as System File Protection in Windows Me) protects about 99 percent of the default installed system files against unauthorized modification. If a virus modifies a covered file, Windows replaces the modified copy with a known good copy a few seconds later.
Windows Vista's forthcoming Windows Resource Protection is an even better defender, protecting more files and preventing modifications in the first place. Because of these issues and a few others, most of today's malware programs create new files to do their mischief.
Removing viruses requires cleaning the virus from the infected files, which is often harder than detecting the virus. Just ask your anti-virus vendor.
Worms, bots, spyware, and Trojans, on the other hand, simply require identifying and removing the new malicious stand-alone files. I frequently use Sysinternals' Autoruns or SilentRunner.vbs to locate and identify unauthorized programs. For the past half decade, with viruses almost gone, removing malware has been a snap unless the computer has been infected with a root kit program.
But now a new series of companion worms -- referred to as Downloader.Agent.awf by some AV products -- are complicating the identification process. Also known also known as spawners or twins, these companion worms (and viruses) modify the infected computer's environment in such a way that when the system attempts to execute a legitimate file, the malicious file is run first.
After executing, the Download.Agent.awf malware program reads the infected computer's HKLM (or HKCU) \Run registry keys to identify the previously installed auto-running programs. Then the worm copies the original executable to a new location, and replaces the original file with a copy of the worm renamed to the original file's name. When the computer executes the \Run registry keys, it runs the companion program instead, which then launches the original program.
This complicates detection and removal process, because the worm will appear as a previously known or commonly recognized installed executable. So, when looking for malicious code, you cannot simply trust file names and locations. You must verify each file's integrity hash against a known good copy or value.
With the re-appearance of companion malware and the growing threat of root kit Trojans, however, forensic investigators need to inspect suspected infected computer disks with out-of-band (e.g., external boot) methods and verify the integrity of all installed programs.
To be honest, any good computer security person really should have been taking the extra precautions all along. But when most of the malware hasn't been doing this, it's easy (and I'm guilty of this) to become lazy and take shortcuts.
But Linux Live distros can't run the Windows 32-bit software I want to use to forensically examine a Windows computer. Also, although they can usually read NTFS partitions, most can't write to them (e.g., to remove a malware program, to disable a service or autorun entry, etc.), and they don't understand many of Windows extended features (e.g., EFS, Compression, etc.). In many cases, I want to boot quickly to an out-of-band 32-bit Windows shell to do the dirty work.
Microsoft enterprise customers with software reassurance have had a Microsoft's Windows Preinstallation Environment (WinPE) available since XP. Initially intended for fast OS installs, WinPE and its command-line interface became an insider favorite for out-of-band inspection of maliciously infected systems. Windows Vista, with WinPE 2.0, extends the WinPE family with a relatively nice 32-bit Windows GUI environment, supporting most Windows APIs, NTFS reads and writes, network log-ons, device drivers, and is able to run most Windows programs. Unfortunately, it only comes with Windows Vista.
My friend (and tech editor of one of my most recent books) Chris Quirke has been promoting an even better product called BartPE. The BartPE Builder helps you create an entire out-of-band Windows boot image. When installed, it searches your hard drive for the Windows installation files, and once found uses them to build a new boot image. The BartPE Builder can create an ISO image or directly burn the image to a CD or DVD disc.
It's an entire "thin" version of Windows. Although it only comes pre-installed with a handful of investigative programs (called plug-ins), you can add nearly any forensic or malware investigation program you like. Chris's BartPE image has thirteen antivirus products installed, six anti-spyware programs, 20 integrity checkers, both RootkitRevealer and Blacklight rootkit inspection programs, ten data recovery programs, and nearly 100 other programs. When he needs to inspect a system forensically, he boots up his customized BartPE CD and has everything he needs available from one GUI menu. You can make your own customized BartPE image with the tools you find most useful.
However you do it, realize that simple auto-run file inspection is getting less reliable again. Consider using BartPE to make your own ultimate Windows inspection toolkit.