Building a Router Botnet
The First Linux Botnet
They're calling it the first botnet designed for broadband equipment and routers, and that it is. But it's also the first of something else: Psyb0t is the first Linux botnet.
And even though it's running on hardware devices and even though it's running on Linux, and an obscure distribution of Linux at that, the basic mechanisms of it aren't that different from "conventional" botnets that run on Windows PCs. There's a lesson here.
Linux seems to be a great platform for these little embedded devices. It's small enough that it can fit in economical hardware, portable enough that you can put it on almost any processor and platform, and it's got great networking tools. This particular bot runs on Linux Mipsel devices ("Mipsel" refers to little-endian implementations on MIPS processors, generally, but not exclusively, on Linux). But it's not hard to see the same thing happening to any sufficiently large population of Internet-facing devices based on Linux or any other platform. I'm especially curious about DVRs now.
We often speak about how malware writers write for Windows because that's where the systems are and because that's where the development tools are, for malware and more generally. The same could be said now of Linux: The fact that a device runs Linux means it's easy to write binaries for it that do networking tasks, including hardening the bot and distributed denials of service.
How does Psyb0t work? The main vulnerability it seems to exploit is simply weak or nonexistent authentication. One involved device is the NetComm NB5 ADSL (asymmetric DSL) modem, earlier versions of which were administrable from the WAN side by default. In fact, some were administrable without any log-in at all. Of course updates were made, but when was the last time you applied an update to your ADSL router? I've seen vaguer reports of other vulnerabilities used.
According to DroneBL, the DNS (Domain Name System) blacklist service that found the botnet, Psyb0t appears to have been shut down just recently.
The bot will not persist if the router is power-cycled, but who does that on purpose? I also wouldn't discount the possibility that such a bot could be built to flash itself into an EPROM (erasable programmable ROM) or some other persistent memory, and then the device would probably be unsalvageable. Such an attack would be highly model-specific.
Building a Router Botnet
The problem with routers is that they're "set and forget" devices. Often they're designed to just work out of the box with no configuration at all. Users won't change the default admin password, they won't check to see if security options are turned on, and the last thing they would ever do is check to see if there's a firmware upgrade that fixes a serious vulnerability in the router. Who even realizes that these things are little computers?
It's also easy to imagine a router botnet being built off a Windows botnet. Once you have control of a system inside the network, it's easy to start probing the device at 192.168.1.1 (or, in fact, whatever the address of the local gateway device is) with the same sort of dictionary attack used by Psyb0t. With some effort you could actually build a cross-platform bot with a standard series of interfaces.
The initial research shows that the Psyb0t botnet has at least 100,000 nodes in it, and this is from devices, according to the reports, that don't have much presence in the West. This paper on the Psyb0t botnet (PDF) discusses the hardware in more detail, including information about the vulnerabilities exploited. According to the paper:
Modems with similar hardware configurations (unknown brands) from Italy, Brazil, Ecuador, Russia, Ukraine, Turkey, Peru, Malaysia, Columbia, India and Egypt (and likely more countries) also seem to be affected, and are spreading the bot.
There are, and have been for many years, Linux-based embedded devices popular in the United States and Europe, and they must have their own vulnerabilities. I'm expecting malware authors to be inspired by this to build similar networks. Consider this list of Linux router or firewall distributions as a starting point.
This makes these devices a mass community of targets for attacks on default configuration errors. And it all just goes to prove there's nothing inherent in Linux that makes it more secure. It's all about how you configure an operating system to function, out of the box and with user intervention. The main thing keeping Linux on the desktop out of botnets is the sophistication of its users. Without that, embedded Linux devices are only as secure as the vendors want to make them. Given that vendors will usually make the security versus ease of use trade-off in favor of ease, I think Psyb0t may just be the tip of the iceberg.
What can you do for your own devices? Apply the latest firmware and make sure they have nontrivial admin passwords. And if there's an option for remote administration, make sure it's turned off.
Security Center Editor Larry Seltzer has worked in and written about the computer industry since 1983.
For insights on security coverage around the Web, take a look at eWEEK.com Security Center Editor Larry Seltzer's blog Cheap Hack.