Originally Posted by ltcommander.data
A 64-bit kernel is actually an important security feature. For one thing, the few viruses there are for OS X would presumably be written to exploit the 32-bit kernel and would break in a 64-bit OS X kernel. I believe this is certainly one major benefit in running 64-bit Windows over 32-bit Windows. What's more, advanced security features, specifically memory randomization is significantly more effective with a 64-bit kernel since the much larger virtual memory space, regardless of how much RAM you actually have, means addresses are actually random. 10.5 Leopard's current memory randomization implementation is not effective and this has been pointed out by Charlie Miller, famous for his Pwn2Own Mac winnings, as one of the reasons why he's able to hack OS X so quickly. The much maligned Vista by contrast, does have an effective memory randomization implementation, so on the surface is harder to hack although more people try of course. The 32-bit kernel in Snow Leopard will no doubt improve things, but shortchanging older Macs either because they don't want to write more 64-bit drivers or push out 64-bit EFI firmware updates does mean they are shortchanging end user security as well. It is really in Apple's best interest to keep their users as secure as possible since as Microsoft found, once your security reputation is compromised by a major active exploit, it's very difficult to reverse public opinion.
Uh no, K64 has little bearing on security. Very few viruses will exploit the kernel, even on Windows. Literally 100% of the malware on Windows these days targets the userspace application layer, namely, the Web browser; I can't even remember a kernel based attack in the 5+ years I've worked in IT/security. If you just mean it makes it harder to guess an address--well yeah but these types of attacks are on their way out. Any malicious code targeted at the Mac won't need anything sophisticated like a return-to-libc; it'll just attack WebKit, QuickTime or Flash as those technologies routinely have the most remotely exploitable security vulnerabilities in them. Return to libc is a hard attack to pull off for a variety of reasons so buffer overflows on heap data, where the browser is supposed
to be "interpreting" the code--just not the malicious code!!--is more common these days. But even more common are attacks that aren't attacks at all. Social engineering attacks are by far and away the most common, and they require no effort. Phishing attacks and trojan horses make up at least 95% of the security threats on Windows, mainly because of its market share. Apple can't do much about them (I don't count the woeful phishing filter in Safari/Firefox, which is basically just a big blacklist of Web sites that is never up to date).
Anyway, the memory randomization argument is valid except for the fact that Apple doesn't do it that way. The ASLR in Leopard is kind of broken because dyld, the thing that controls the ASLR, is always loaded at the same address, so anybody can just insert some jump instructions into their dyld initialization code and get around the ASLR. Apple acknowledges this, and in Snow Leopard it's fixed, but it has nothing to do with K64; 32-bit kernels will get this feature for free.
Finally, Windows NT-based kernels (basically Vista and Server 2003+) don't have many (any?) security problems with their kernel because they only load signed code, and the code signing certificates are strictly controlled by Microsoft's developer program. Apple is not requiring signed code to load kernel extensions into K64, and I doubt they want the overhead of Microsoft's driver signing program. The 64 bit kernel loads unsigned kernel extensions, and in fact in Snow Leopard you don't need to be root to load kernel extensions if the kernel extension developer so desires (scary!).