Security researcher Dino Dai Zovi has had his hands in the Mac OS X security dirt for a long time. In fact, he says he has been using OS X since it was referred to as “the next step.”
It should come as no surprise then that his July 29 talk at the upcoming Black Hat security conference will be centered on the Mac. This time, he is bringing with him a proof-of-concept for a new type of Mac rootkit.
The Mac OS X kernel is a hybrid BSD and Mach kernel, he explained. It is the second half of this dual personality that he is interested in with his research, as his rootkit works by silently abusing traditional Mach remote procedure call facilities and inter-process communication.
“Historical Mach operating systems also have allowed these messages to be sent over the network, and they used this for distributed computing,” he said. “However, this functionality has been removed from Mac OS X…Essentially what my rootkit does is re-introduce this capability into OS X to sort of allow a remote host to send and receive Mach messages to the compromised host.”
The remote Mach messages can be injected into the kernel or into a user line process, he continued. This allows full remote control, and can be used to create new processes, new paths and to inject new code into a given process.
“I have an example agent that you can inject into [Apple] Safari that will log all SSL traffic and…intercept all SSL traffic,” Dai Zovi said. “This is just an example of one thing that can be done.”
He has not seen any incidence of a rootkit like this in the wild, a fact which may ironically reinforce feelings that Mac OS X is leaps and bounds ahead of Microsoft Windows. But time and time again researchers have proven Mac OS X is not immune. In fact, there is evidence that attackers are starting to pay more attention to Mac computers.
“Mac users would love to believe that it’s something intrinsic in the system that prevents these attacks,” he said. “The advancements that prevent attacks are largely being done by Microsoft, and Apple is playing catch-up to this. The main advancements are things such as address space layout randomization (ASLR) and non-executable memory, and to be fair Windows was [playing] catch-up to a variety of projects on Linux at first…such as PAX…these are the things that actually do a good job of stopping memory corruption or making it more difficult to exploit.”
He noted that Apple has added what it calls “library randomization” to Mac OS X, which is similar to ASLR. But that, Dai Zovi contends, is actually little more than a marketing catch phrase.
“I presented on this at a number of conferences over the last year and showed how in reality it doesn’t stop any exploits at all, because key parts of the address space are kept constant,” he said. “So it is more of a marketing bulletin point than an actual impediment to exploitation.”
Still, the overall number of threats for Mac users is relatively minimal, giving Mac users every right to feel confident, he said.
“We are not seeing the same level of attacks against OS X systems that Windows users are, so it is very valid to argue that they do not need to implement these defenses, because you only implement the defenses that are appropriate for the threats that you are seeing,” he said. “But I think that the goal of security research, and any research, is to be forward looking, and to point and investigate issues that may become problems in the future.”