Win32/Rustock is a multi-component family of rootkit-enabled backdoor trojans, which were historically developed to aid in the distribution of 'spam' e-mail. First discovered sometime in early 2006, Rustock has evolved to become a prevalent and pervasive threat. Recent variants appear to be associated with the incidence of rogue security programs.
There are no obvious symptoms that indicate the presence of this malware on an affected machine.
Win32/Rustock is a multi-component family of rootkit-enabled backdoor trojans, which were historically developed to aid in the distribution of 'spam' e-mail. First discovered sometime in early 2006, Rustock has evolved to become a prevalent and pervasive threat. Recent variants appear to be associated with the incidence of rogue security programs.
Installation
Normally the trojan consists of 3 components which are embedded within each other - the dropper (which runs in user mode), the driver's installer, and the actual rootkit driver, (both of which run in kernel mode). All of the trojan’s components are encrypted, and the actual driver component is also packed with plib.
When executed the dropper checks if the rootkit is already active. There are a number of global events which Rustock uses to determine whether it is already present. We have observed it setting the following:
{60F9FCD0-8DD4-6453-E394-771298D2A470}
{DC5E72A0-6D41-47e4-C56D-024587F4523B}
{C8453B23-1087-27d9-1394-CDBF03EC72D8}
{5B37FB3B-984D-1E57-FF38-AA681BE5C8D8}.
(Note that this list is not exhaustive.)
The dropper facilitates updates and the deployment of the rootkit’s driver installer. The installer is first decrypted, and then dropped and loaded as a system driver. The rootkit’s dropper might attempt to disguise the driver’s installer as a legitimate, but rarely used, system driver.
For instance: Rustock may stop the “beep” service or “null” driver using Service Control Manager (SCM), overwrite <system folder>\drivers\beep.sys or null.sys with the rootkit loader, and then reload the “beep” or “null” drivers. If unsuccessful, the file name of the dropped installer will normally be either hardcoded or randomly generated (depending on the Rustock variant), as in the examples listed below:
- glaide32.sys - hardcoded
- lzx32.sys - hardcoded
- 7005d59.sys - randomly generated
Some Rustock variants drop the installer using the \\127.0.0.1\admin$\system32\drivers\<drivers name.sys> path, attempting to further complicate real-time rootkit identification and detection. Earlier variants of the Rustock family also used alternative streams to store the installer (for example System32:lzx32.sys) but this technique was dropped in favor of the stealth mechanism provided by system services hooking.
The registry is set to reflect the presence of the rootkit driver installer on the system. For example, if the driver installer is 7005d59.sys, thye following modifications would be made under the following registry entry:
HKLM\SYSTEM\CurrentControlSet\Services\7005d59
the following keys are set:
ImagePath = \SystemRoot\System32\drivers\7005d59.sys
Type = 1
Start = 1
ErrorControl = 1
Payload
Uses Stealth
Once the driver installer is loaded it launches the rootkit driver. The rootkit installer decrypts and then decompresses the actual code of the rootkit driver (the driver’s code is packed with aplib), injects the copy of the driver into itself, and transfers execution to the code of the rootkit driver. Such complexity is aimed at further complicating the detection and analysis of this rootkit.
The rootkit driver hooks system functions to further hide itself and the components of the rootkit from detection. The driver checks for the presence of the global event to check if an instance of the rootkit is running, and creates one if it doesn’t already exist.
The driver patches the System Service Dispatch Table (SSDT), hooking the events ZwCreateEvent, ZwCreateKey, and ZwOpenKey. This makes it possible for the driver to filter requests containing the driver’s name and return STATUS_UNSUCCESSFUL if matched, ultimately avoiding detection by AV and other monitoring software.
In an attempt to further hide the network and disk I/O operations as well as its functional activity, the driver hooks the set of ntoskrnl.exe and ntdll.dll API’s and communicates directly with NTFS and TCP/IP devices such as NTFS, IP, TCP, Udp, RawIP and IPMULTICAST.
Analysis by Oleg Petrovsky and Alexey Polyakov
Take the following steps to help prevent infection on your system:
-
Enable a firewall on your computer.
-
Get the latest computer updates for all your installed software.
-
Use up-to-date antivirus software.
-
Use caution when opening attachments and accepting file transfers.
-
Use caution when clicking on links to web pages.
-
Protect yourself against social engineering attacks.
Enable a firewall on your computer
Use a third-party firewall product or turn on the Microsoft Windows Internet Connection Firewall.
To turn on the Windows Firewall in Windows Vista
-
Click Start, and click Control Panel.
-
Click Security.
-
Click Turn Windows Firewall on or off.
-
Select On.
-
Click OK.
To turn on the Internet Connection Firewall in Windows XP
-
Click Start, and click Control Panel.
-
Click Network and Internet Connections. If you do not see Network and Internet Connections, click Switch to Category View.
-
Click Change Windows Firewall Settings.
-
Select On.
-
Click OK.
Get the latest computer updates
Updates help protect your computer from viruses, worms, and other threats as they are discovered. It is important to install updates for all the software that is installed in your computer. These are usually available from vendor websites.
You can use the Automatic Updates feature in Windows to automatically download future Microsoft security updates while your computer is on and connected to the Internet.
To turn on Automatic Updates in Windows Vista
-
Click Start, and click Control Panel.
-
Click System and Maintainance.
-
Click Windows Updates.
-
Select a setting. Microsoft recommends selecting Install updates automatically and choose a time that is convenient for you. If you do not choose Automatic, but you choose to be notified when updates are ready, a notification balloon appears when new downloads are available to install. Click the notification balloon to review and install the updates.
To turn on Automatic Updates in Windows XP
-
Click Start, and click Control Panel.
-
Click System.
-
Click Automatic Updates.
-
Select a setting. Microsoft recommends selecting Automatic. If you do not choose Automatic, but you choose to be notified when updates are ready, a notification balloon appears when new downloads are available to install. Click the notification balloon to review and install the updates.
Use up-to-date antivirus software
Most antivirus software can detect and prevent infection by known malicious software. To help protect you from infection, you should always run antivirus software that is updated with the latest signature files. Antivirus software is available from several sources. For more information,
see http://www.microsoft.com/protect/computer/viruses/vista.mspx.
Use caution when opening attachments and accepting file transfers
Exercise caution with e-mail and attachments received from unknown sources, or received unexpectedly from known sources. Use extreme caution when accepting file transfers from known or unknown sources.
Use caution when clicking on links to web pages
Exercise caution with links to web pages that you receive from unknown sources, especially if the links are to a web page that you are not familiar with or are suspicious of. Malicious software may be installed in your system simply by visiting a web page with harmful content.
Avoid downloading pirated software
Threats may also be bundled with software and files that are available for download on various torrent sites. Downloading "cracked" or "pirated" software from these sites carries not only the risk of being infected with malware, but is also illegal. For more information. please see our article '
The risks of obtaining and using pirated software'.
Protect yourself from social engineering attacks
While attackers may attempt to exploit vulnerabilities in hardware or software in order to compromise a system, they also attempt to exploit vulnerabilities in human behavior in order to do the same. When an attacker attempts to take advantage of human behavior in order to persuade the affected user to perform an action of the attacker's choice, it is known as 'social engineering'. Essentially, social engineering is an attack against the human interface of the targeted system. For more information, please see our article '
What is social engineering?'.