Massive Indestructible Botnet(computerworld.com) |
Massive Indestructible Botnet(computerworld.com) |
Two comments about this
-- I give it maybe a week or two against a good cryptographer. You never, ever invent your own encryption algorithm.
-- Even if the encryption algorithm happens to be secure against differential/linear/slide/boomerang attacks, I bet there will be an implementation flaw. It's really hard to get implementation right on those things, even if you have an almost perfect algorithm.
Not that that all really matters -- anything that it's encrypted can be decrypted since they key lives on the computer -- but the fact that they created their own encryption algorithm gives some insight in to their minds. Namely, that they they they are smarter than they really are, and that despite all of that, they don't know enough about security to stick with AES.
> and the botnet uses the domain names of the C&C servers as the encryption keys.
... what? That kind of defeats the entire purpose of encryption when they key is something like that. Besides, what are they using this encryption for. It seems more likely they want a check on the integrity of messages. And even still, a MAC is equally worthless since it's not public/private key.
Either (1) this botnet is really weak or (2) the writers of this article have distorted the truth.
from http://www.securelist.com/en/analysis/204792157/TDSS_TDL_4
So it is mainly there to fool anti-virus programs that look for a particular fingerpring, and not necessarily to pass secret info back and forth.
Don't rule out the possibility that the botnet code was written by a good cryptographer. It may be that they're using a well-designed algorithm that these researchers didn't happen to recognize.
Even if the encryption algorithm happens to be secure against differential/linear/slide/boomerang attacks, I bet there will be an implementation flaw. It's really hard to get implementation right on those things, even if you have an almost perfect algorithm.
Sometimes something that would be bad as a standard building block can hold up in a specific use case. Maybe this thing really only needs to obfuscate the communications.
Not that that all really matters -- anything that it's encrypted can be decrypted since they key lives on the computer -- but the fact that they created their own encryption algorithm gives some insight in to their minds. Namely, that they they they are smarter than they really are, and that despite all of that, they don't know enough about security to stick with AES.
I wouldn't underestimate the Russians and Eastern Europeans like that.
[...] Either (1) this botnet is really weak or (2) the writers of this article have distorted the truth.
Probably both, at least (2).
It's really really hard to write technically accurate descriptions of these things that are also accessible to a wide enough audience that you reach the people you need to reach.
Well, they could simply be using more than one algorithm. They could use AES as the main one and then re-encrypt everything with their own algorithm. If cryptographers break through their own created algorithm (probably just a variation of 3DES or AES) then they still have to break through the standard AES. I would be surprised if they were not doing something like this. As you say, everybody knows that you do not create your own algorithm. However, layering it with different algorithms, would probably be a good idea and it would make cryptographers work a lot harder (maybe?)
Although if the keys are as easily accessible as they say then I agree with you, what is the point?
Seems like it would be better to spend time on the implementation of other parts of their botnet (like ... public key cryptography instead of using domain names as a key?).
Maybe it is public/private key, and they use (derive?) the public key from the name of the server?
Either (1) this botnet is really weak or (2) the writers of this article have distorted the truth.
I suspect (2), but I don't think they did it deliberately. I suspect it was an attempt at simplification, but they went too far.
How would that work though? Maybe I just don't know enough, but I can't think of a way to generate a public key from some known source, and then somehow derive a private key from that source such that no one else can derive that same private key.
I guess you could generate an RSA key pair using the domain name as a seed for your random number generator, but that seems like a terrible idea. As soon as they introduce some real randomness in to it, then you're no longer deriving the key from the domain name.
I also suspect (2), but I wouldn't be surprised if they added some extra distortion to make the article read more like "Look how impressive these guys are! They made their own encryption algorithm!".
Who are these people that read the front pages of both Hacker News and computerworld.com?
EDIT: This is more like it: http://www.securelist.com/en/analysis/204792157/TDSS_TDL_4
EDIT2: That link was just an initial analysis of the infection vectors, here's a more full analysis of the payload and suchlike http://www.securelist.com/en/analysis/204792180/TDL4_Top_Bot
1. estimated 4.5 million infected machines
2. it infects the Master Boot Record
3. it uses the Kad Network (http://en.wikipedia.org/wiki/Kad_network) to issue commands to the clients (No idea how, the article did not explain this)
4. it disables competing malicious software
5. it acts as a malicious software manager; they install software for their "customers" to temporarily use
If TDL-4 keeps your machine free of other malware at the cost of engaging in the occasional DDoS....
Actually, wouldn't TDL-4's owners possibly earn more money by doing remote management and tuning of 4.5 million PCs than they could by selling malware connectivity?
I suspect you aren't the type of person who gets infected by a botnet.
Whoa, it's the evil app store!
Could this be used to take the botnet down? Pay them to install something and sneak in an antidote?
Although that may have been down to my relative inexperience at the time.
EDIT: I have more memories of using the plain ol 'fixmbr' command that you ran from that weird 'recovery console' shell on the windows install CD. Didn't realise fdisk had a /fixmbr switch. Guess it does the same thing.
-There's a lot of software with no equivalent in other OSs (including computer games, which are a selling point for a lot of people, and Visual Studio)
-Many companies are reluctant to change software they've been using for any length of time. Changing the OS is specially unlikely.
-It's really not that bad an OS...
My misadventures with linux include forgetting to set up a netbook to connect to unencrypted wireless networks and the latest kernel update breaking wifi after suspending or hibernating; I've never had to deal with any of that on Windows. The most time that I've spent on system administration has been switching to an SSD, which became extremely easy after I found the right software to mirror my disk.
The fact that the malware has to bury itself so deep into the boot sector actually says some pretty positive things about Windows security. Nothing like those heroics would be needed to target Linux for example (I don't know about Mac).
Also because Windows is a good operating system in it's own right.
From [1]:
> The cybercriminals replaced RC4 with their own encryption algorithm using XOR swaps and operations. The domain names to which connections are made and the bsh parameter from the cfg.ini file are used as encryption keys.
A bit later:
> The new protocol encryption algorithm for communications between the botnet control center and infected machines ensures that the botnet will run smoothly, while protecting infected computers from network traffic analysis, and blocking attempts of other cybercriminals to take control of the botnet.
So we have authentication of the C&C through encryption ("block other cybercriminals"), and obfuscation of the payload through encryption ("protect from network traffic analysis"). I suppose the bsh parameter is used for auth, and the domain name just to scramble the payload.
[1] http://www.securelist.com/en/analysis/204792180/TDL4_Top_Bot
The client is given the new servername via the P2P network, then derives the public key from the hostname, encrypts using it and communicates with the server which can decode using the private key.
I'm not sure what the max length of a hostname is, which might be a problem.
Another possibility is to put the public key in a TEXT DNS for the server hostname. That could be what they meant maybe?
I don't know about its cryptography specifically, but Stuxnet, for example, is a botnet regarded as a game-changer precisely because it was such a professional hit.
BTW, I'm trying to see if there's any interest in a collaboration on the cryptanalysis of this custom encryption system. Anyone with an interest please ping me. It may turn out to be nothing.
(2) Do you have the source of it? Do you have a non-obfuscated version?
(3) Even if the answer to both questions in (2) is "yes", I still doubt any serious cryptographers would take a look at it. They (mostly) do things to write papers, and you don't get a paper out of "we broke a really weak encryption algorithm in a botnet". The chances that the paper is instead "this botnet has a reasonable encryption algorithm" are so slim, they won't consider it.
(4) That said, there are a number of non-serious cryptographers who would find it an interesting challenge, but if they can't break it, it still doesn't mean it's any good.
(2) No, I haven't heard of anyone getting the source. There are 4.5M PCs with an obfuscated binary, so that should be obtainable. We can de-obfuscate it ourselves (it obviously has to load into memory at some point), or we can also ask other researchers who have already done this. The latter is likely to be successful according to 'who' and 'how serious' we have interested.
(3) You never know and it never hurts to ask. Don't forget, they also often have students looking for projects. Anti-botnet ops is an active research topic in data security.
(4) Yep. I doubt anyone would consider using it for anything else.
There's nothing preventing a scenario where someone with nefarious intent and a large pile of money convinces a skillful cryptographer into building a cipher robust enough be resistant to cryptanalysis.
(I'm not your downvoter by the way)
Still you could easily end up with something much less secure than any of them used independently. For example, read about the "meet-in-the-middle" attack.
If you somehow convince yourself that the NSA can break many well-known encryption algorithms and that it's willing to risk exposing this ability to shut down your botnet (which is the counterfactual I'm working off in this thread), this may give you some peace of mind: Blowfish and AES are well-tested designs by separate teams and SALSA is a very simple, very different design that you can easily implement yourself and that's pretty resistant to side-channel attacks. It seems likely that any agency that can break all three can break anything you can come up with.
We obviously use three independent keys. The security of the composition is then at least as good as the security of the best of these algorithms.
That's not obvious at all to an implementer. For example, there are NIST standards for 1-, 2-, and 3-key variations on triple-DES. http://en.wikipedia.org/wiki/Triple_DES#Keying_options