The Hand of Thief (HoT) trojan is a commercial form-grabber and backdoor banking trojan released in July (2013) and aimed at Linux distributions. Coding and selling of these type of malware is a big and booming business, supported by the bad guys (the coders) and those worse than they are (individuals, companies and government agencies that patronize them). There are no good guys in that business.
According to an analysis of HoT by Yotam Gottesman, a Senior Security Researcher at RSA’s FraudAction Research Labs, the trojan, like other malware of its type, is designed to do damage while trying to avoid being detected by the infected host’s security system. No surprises there.
The analysis also showed that HoT does not work as advertised, at least not yet. But the interesting part of the result of the analysis that peeked piqued my interest concerns how HoT fared on Ubuntu 12.04 and Fedora 19, two distributions it was tested on.
On Fedora 19, and regarding the trojan’s ability to work as intended, there was no security measure on the distribution that could have stopped it, if not for HoT’s inability to capture meaningful data from Firefox and Google’s Chromium, the two browsers used for the testing and analysis.
However, on Ubuntu 12.04, HoT failed to work. The reason? The researcher found that:
…a protection mechanism named ptrace scope was enabled by default. This protection prevents a process from attaching to a different process even when the user-ID matches (unlike the default Linux behavior). The protection effectively blocked the Trojan from interfering with other processes which rendered the Hand of Thief form-grabber and URL-blocker useless.
There are browser differences in the trojan’s ability to capture meaningful data, but that security mechanism on Ubuntu that rendered HoT’s core function “useless” is the type of security mechanism that should be enabled by default on all distributions.
This is just one trojan, and while it is largely a dud, at least at this stage in its development, there could be more out there, more that we know nothing about. The major distribution developers should take this as a wake-up call. We like to say that Linux is more secure than Windows, but are we prepared for dealing with quality malware like HoT?
One question I wanted to have the researcher answer for me is this: Why did SELinux not stop the trojan from functioning on Fedora 19?
What default value does ubuntu use for ptrace_scope? If it’s only “1” then it looks like it could easily be circumvented by having the tracer get itself into a position where it can be the parent of the tracee (perhaps by changing the executable in the browsers application desktop file under ~/.local/share/applications)
Higher values of ptrace_scope look like they would still protect against this unless root was compromised, but unless you want to disable ptrace completely system-wide then it looks like the only reliable way to prevent a process being traced at all is for it to call prctl(PR_SET_DUMPABLE, 0) to disable any attachment to the process. Perhaps this is something all the web browsers should do unless their built with something like –enable-debug.
Anyway, interesting blog-post and something I wasn’t aware of, so thanks for posting.
it’s piqued, not peeked.
Yikies! Thanks.
Remember the good old days of peek and poke instructions. Anyway back on topic. I’m kind of also wondering why SELinux could not stop the trojan from operating.