Mac OS X LaunchServices Vulnerability And The Need For Paranoid AndroidA whitepaper by Jason HarrisParanoid Android is now an open source project for those interested. Update - May 23, 2004When I originally wrote this whitepaper, I was using an app called MisFox to change protocol helpers. MisFox didn't allow me to change the URI helper for the 'disk' or 'disks' protocols, so I was under the impression that they couldn't be changed. Hence, I believed that Paranoid Android was the only way to prevent being exploited by the vulnerability described below. My current understanding is that there are five infection vectors that can be used with Safari (more and fewer with various other web browsers). If "Open Safe Files After Downloading" is enabled, a 'zip' file can be used. If not, 'disk', 'disks', 'ftp' and 'afp' can be used. There's anecdotal evidence that these don't work in Jaguar or in some other web browsers, but they do work in Safari on Panther. This means that for those who do not wish to use Paranoid Android, there are other methods of protection - use RCDefaults to disable the 'disk', 'disks', 'ftp', and 'afp' protocols, and turn off "Open Safe Files After Downloading". Paranoid Android is not the only solution. However, I still recommend using Paranoid Android instead of remapping protocol helpers. It's possible that there are other infection vectors I'm not aware of, and also, once Apple resolves this issue, it'll be easier to turn Paranoid Android off than it will be to remap the protocol handlers. Paranoid Android can be installed for all users, and is significantly easier to use than remapping protocols for every user on the system. On a different note, the FTP sample exploit below had a problem (the executable bit wasn't set on the executable). This is now resolved, and the sample exploit should work properly. My apologies for any confusion that either of these issues may have caused. I'm going to leave the original text intact below for posterity. Executive SummaryThis is a nasty security vulnerability and you'd better install Paranoid Android until Apple fixes it. Background InformationApple’s OS X has seen its first major security vulnerability. Apple hasn’t yet released a fix (although they are purportedly working on one), and there’s been lots of rumor, speculation, and flat-out incorrect fixes coming from the user community in the meantime. This paper is an attempt to explain the issue, explain why other fixes are incomplete, and present the rationale for Paranoid Android, my solution to the issue. My current understanding of this vulnerability is that there are two “infection vectors” and two “exploitation vectors”. Infection Vectors
Now that the malware executable is present on the target’s machine, lets look at ways that the attacker can launch the malware executable and deliver its payload. The payload can be anything that the target user has permissions to do, which includes wiping the target user’s home directory, asking the target user to authorize the malware to gain super-user privs, and including emailing innocous infection vectors to everyone in the target user’s address book. Exploitation Vectors
The point of all of the above is that this is a rather large problem without an easy solution. There’s lots of overlap between useful applications of this functionality and malicious ones, meaning that Apple can’t easily fix this without removing useful features from its operating system and from existing apps. Sample ExploitI’ve written a sample exploit that delivers and executes its payload without user intervention and operates by registering its own URL scheme handler. Until Paranoid Android, there was no way of protecting against this attack, which freaked me out enough to write Paranoid Android. :) If you click the sample exploit link below, here’s what will happen:
Because this sample exploit registers its own URL scheme, none of the methods people had been using involving disabling certain scripts, moving Help.app or changing the 'help' URL scheme would protect against it. At this time, only Paranoid Android provides protection from it. benign sample exploit --> innocousPage.html <-- benign sample exploit benign sample exploit 2 (FTP)--> innocousPage.html <-- benign sample exploit 2 (FTP) Portions of this sample exploit are based heavily on a prior sample exploit at insecure.wsConclusionsUntil Apple fixes this vulnerability, you should install Paranoid Android and surf safely. Copyright Jason Harris, 2004, All Rights Reserved | |
|
|
|

