Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm reading MIT 6.893 lectures on which it says protection in Unix is a mess, no underlying principle, and it also points out that Windows has better alternatives, which can pass privileges from one process to another over IPC.

In my opinion, although it seems that Windows users are more subject to viruses and vulnerabilities, I believe it is mainly due to most Windows users are less experienced computer users and Windows platform attracts more attackers since it has more users.

I'd like to know are there any more detailed articles or paper comparing security mechanisms and designs in Windows and Linux?

share|improve this question

migrated from stackoverflow.com Feb 11 '10 at 8:24

This question came from our site for professional and enthusiast programmers.

1  
Great question. I've been wondering for years how *nix can be more secure since NT has a unifying underlying security principle and a well-established means of extending security from the machine level across the network stack. *nix just has user accounts, file security and a network security subsystem which was an afterthought. –  codekaizen Feb 11 '10 at 7:45
4  
Linux has both DAC and MAC. DAC is the user accounts, MAC is SELinux and AppArmor. –  LiraNuna Feb 11 '10 at 7:51
    
let the fight begin ;) –  Christian Feb 11 '10 at 8:59
3  
Security neither starts nor ends with access control. Whoever wrote what you're quoting is dangerously narrow sighted and/or ignorant. There are literally millions of articles written on the subject, so it shouldn't be too difficult to find some if you just look. –  John Gardeniers Feb 11 '10 at 9:40
1  
It's an interesting question for sure, but unfortunately any Linux vs Windows topic is going to potentially generate fireworks so I'm voting to close. –  Jimmy Shelter Feb 11 '10 at 10:27
show 2 more comments

3 Answers 3

Nobody would dispute that writing buffer overflows on Windows is substantially harder than on linux. As well, The ACL system in Windows is vastly superior to the *nix system in numerous respects (Its still possible to use setpgid() to break outside of chroot()/jail() and transfer the psuedo-root tokens to effective UID 0).

HOWEVER.

Linux, BSD, Solaris, and AIX have the virtue of having user-made patches which implement very impressive security features. I'd name the PaX/GrSEC projects, Which, regardless of security shortcomings in the past few years, Have set the standard for implementing Address Space Layout Randomization, Likewise for StackGuard, W^X and the numerous other utilitiees designed to prevent Heap and Format string attacks from being successful. Strictly from an access point of view, There are many extensions to the admittedly outdated current system.

If process division attacks are a concern for you, Not to be that Crotchety Unix Admin, but Windows has suffered far, far, worse

In short, If you're lazy, You're better off with Windows. If you're dilligent, You're often better off with *Nix (From a security perspective)

share|improve this answer
    
"Nobody would dispute that writing buffer overflows on Windows is substantially harder than on linux"? Are you serious? It's the number one cause of Windows software bugs and is routinely utilised as an attack vector. –  John Gardeniers Feb 11 '10 at 22:23
2  
I'd actually argue that you're better off with what you know best, as it's far easier to misconfigure security on an OS that you're unfamiliar with (it would be interesting to see stats on what percentage of security incidents were actually a result of this). –  Jimmy Shelter Feb 11 '10 at 22:24
2  
@John - I meant procedurally, In Linux, All you have to do is hijack stored EIP, spawn bash with a getuid(setuid()) wrapper and in 99.9% of non-ASLR'd/StackGuarded cases, You're ready to go. If you've ever written B0Fs in Win32/64, You're aware of the token issues which are trivial yet annoying and frequently disrupt stack smashing attempts, Among other protection mechanisms which MS implements. Also, AFAIK, In late, Use-After-Frees have been SUBSTANTIALLY more popular to exploit in Microsoft Applications (Presumably because of the /GS switch). Apologies for the ambiguity. –  zv_ Feb 11 '10 at 22:28
    
I'm glad you explained that, because it's certainly not how I read it. –  John Gardeniers Feb 11 '10 at 22:53
add comment

Here is a detailed article that gets to the heart of the matter - it doesn;t matter how powerful and detailed your access control and security systems are... if its too complicated to set them correctly, you will end up with security holes. In this case its complexity of the systems - the larger the 'surface', the more chance there is of a security bug.

I used to see this with our domain groups - its too easy to give someone access to a secured resource if they are in the wrong group if you have too many groups. The register describes this better.

share|improve this answer
    
The register link has some factual inaccuracies over the allow/deny thing, but otherwise it's an interesting perspective. –  Jimmy Shelter Feb 11 '10 at 22:29
add comment

I'd like to know are there any more detailed articles or paper comparing security mechanisms and designs in Windows and Linux?

This one sounds relatively good to my novice eyes... a bit old and slightly biased, but not so much.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.