The first line of technical defense against any computer intrusion is the architecture of the network infrastructure that the computer is connected to. The fact that worms like Conficker are so successful in their metastasis is “in your face” proof of just how insecure today’s IT Infrastructures are. If they weren’t so insecure then these worms would have a minimal impact. What’s even more interesting is that worms are “dumb” and people can’t seem to keep them out of their networks, so what are people going to do when hackers come knocking?
In simple terms a worm is little more than a dumb, self replicating, repeating computer program that uses some mechanism (network, usb sticks, etc) to send copies of its self to other computer systems. A worms survival hinges on its ability to communicate with other computer systems and on its ability to gain entry into new uninfected computer systems. If it can’t do one or the other then it can’t spread and it will eventually die. If it can do both with relative success then it will likely survive for some time. The more hosts that a worm infects, the more potential hosts it can infect assuming that its method of gaining access isn’t patched before the host is infected.
With that said, the not so obvious but highly effective way of defending against worms is to undergo an Advanced Penetration Test. The reality is that worms and hackers use the same techniques for gaining access to networked infrastructures. The primary difference is that a worm only has one method of attack and is restricted by its programming while a hacker is unrestricted and has many methods of attack. Therefore it is reasonably safe to say that if your network can stand up to an Advanced Penetration Test, then it can also resist a worm.
Lets use the Conficker C worm as an example of what I am talking about. On April 1st the Conficker C worm will enter its Domain Generation Algorithm. It will go out and download a new command and control file over HTTP, install that file, and then do god knows what. Conficker C is dependent on most networks allowing unrestricted outbound HTTP access.
In the last penetration test we (Netragard) did my team used a PDF document infected with a payload that was designed to establish an outbound connection back to our office over HTTP. Specifically, the PDF docment contained an exploit for a vulnerability in Adobe Acrobat. When the document was opened it injected connect back shellcode into memory of the victim’s computer system. That computer system then established a connection back to us over HTTP and we were able to tunnel back in over that connection to gain control over the victim’s system and eventually the network.
As a step toward remedation we recommended to our customer that they only allow authenticated and authorized outbound HTTP and HTTPS connections. They took that recommendation to heart and implimented controls to prevent those unauthorized connections. An unforseen result of our services is that our customer’s network disrupts Conficker’s communications channel. (Conficker relies on unrestricted oubound HTTP). Now, even if they have infected nodes on their network, those nodes will not be able to establish outbound HTTP connections to the command and control servers. Conficker on their network is mostly disarmed.