But the centralized architecture causes problems for the bad guys: it creates a single point of failure. If diligent investigators shut down the IRC channel or even remove the server(s) associated with that channel, the botnet becomes headless. An attacker might have spent a lot of time and effort setting up a botnet of 500,000 machines, possibly earning thousands of dollars per day, too, from the malware being propagated. If the IRC channel disappears, however, the whole criminal enterprise is blown out of the water.
To remedy this situation, attackers are turning to peer-to-peer (P2P) communication. In such an approach, an active bot on a machine can scan for other close machines that might have the same bot, one that's controlled by the same attacker. The bot can then join a botnet cloud of encrypted P2P communications. The bots can find each other nearby, making the collective unit self-aware, multi-connected and self-healing. If a given bot notices that its communicating peers have disappeared, it looks for more. So, in this arrangement, there is no single point of failure. The attacker can inject commands into any part of the botnet cloud, using crypto-algorithms to implement authentication. The bots will then dutifully distribute the commands amongst themselves, as the message cascades through the P2P botnet.
P2P botnets are persistent and difficult to remove in their entirety. It's important to carefully analyze a bot specimen and how it authenticates itself to nearby bot peers. It's also useful to investigate how commands from the attacker are formulated and authenticated. This required level of examination demonstrates just how insidious the average bot specimen has become.
This was first published in July 2007