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?

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. – Maximus Minimus Feb 11 '10 at 10:27

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).


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)

  • "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). – Maximus Minimus 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. – ŹV - 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
  • The reason writing buffer overflows on windows is harder, is because in later versions of windows so many applications bufferoveran that rather than release tools free of charge to find the overruns like in unix (valgrind) they decided to put memory no-mans land around each allocation to reduce the possibility of it hitting some critical memory. That's why windows 10 + 7 "seems" reliable and "stable". – Owl Dec 13 '17 at 17:47

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.

  • The register link has some factual inaccuracies over the allow/deny thing, but otherwise it's an interesting perspective. – Maximus Minimus Feb 11 '10 at 22:29

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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