Hacker News new | past | comments | ask | show | jobs | submit login

That's a fallacy that I'm frankly tired of hearing. Unix was designed from the start to run multi-user environments, whereas Windows grew out of DOS, which was initially built for single-user, non-networked environments. The difference in their initial goals led to wildly different security models.

The average Unix user runs without superuser privileges most of the time. Typically, the less experienced a user is, the less privileges he has in a Unix environment [1].

At least as recently as Windows XP [2], the average Windows user ran his computer with an administrator account on a daily basis, which opens the user to much greater damages from malware. When I used Windows on my own computers, I always setup a non-administrator account for daily use, but I'm experienced enough to know (1) how to do that and (2) that it's a good idea. This suggests that Windows has an inversion of privileges compared to Unix. That is, the most experienced users grant their daily account the fewest privileges, whereas the least experienced users operate with administrator privileges.

[1] http://librenix.com/?inode=21

[2] Windows XP is the latest version of Windows that I've had enough experience with to say what the average user's setup is like. I hear that the situation has improved a bit with Windows 7, but when I was an intern at Microsoft, every one seemed to run as an administrator on their Windows 7 machines, so I'm not convinced that it's any better.




The idea that viruses need "superuser" to perpetuate themselves is itself a fallacy. Why do I want superuser if I can grab all your browser cookies, dump or exploit your address book, persist in ways no normal user can detect, and gain full access to the network you're connected to?

I'm not a Windows user. Since age 13, I have spent a total of one (1) year in Windows, in 2000, when I ran a Solaris to WinAPI ACE_wrappers port for my startup. I cut my teeth on 386bsd, installed from approximately 900,000 3.5 inch floppy disks.

What I am is a security person, and these arguments about Windows being a petri dish for viruses strike this security person as BS. Computers are a petri dish for viruses, and the smug Unix weenie attitude of "we solved that with su" drives me nuts even before we get to analyzing how long any Unix operating system has ever gone without a well-known privilege escalation flaw.


How will you infect an executable without superuser privileges? My executables in /bin and /usr/bin are r-xr-xr-x. If you're not infecting files on the filesystem, then what you have is not a virus [1]. Without a virus, you're left to exploit bugs in userspace software. If you have a way to exploit Chrome to read my cookies, how is that a virus and what does that have to do with the OS? I would expect that exploit to work on any platform that runs Chrome.

In regards to your first post about popularity, do you think that all of those Unix web servers out there are not a juicy target? How valuable do you think it would be to a virus writer to be able to infect Google's datacenter?

The rest of your comment is name-calling and self-congratulatory back-patting, which does nothing to present a cogent argument.

[1] Executables aren't the only files that can be infected. You could infect a user's PDF, JPEG, or other files that are then interpreted by a vulnerable executable.


(a) You don't need to infect executables. .profile works nicely.

(b) How valuable do you think it would be to a virus writer to infect Mastercard's data center? It isn't riddled with viruses.

(c) If you have a population that accounts for 80% of the market which is only 20% saturated and another that accounts for 5% of the market, why would you ever, ever, ever write for the 5% market? We haven't hit "peak oil" for malware yet.

(d) Your footnote makes my point. Thanks.

(ps) the congratulatory back-patting is to head off the inevitable Linux advocacy "you're a shill for Microsoft" BS that comes bundled with these discussions.


To be fair, I don't think the points we're arguing are mutually exclusive. You seem to be arguing that Unix can be infected with viruses. I'm not refuting that claim. I have no illusions of 100% security. I'm claiming that Unix is more secure by design. What I'm refuting is this claim:

> WinAPI is no more hospitable to viruses than Linux is.

I think that implies that all operating systems are created equal (at least as far as security is concerned for this discussion), or that Linux is more hospitable to viruses than Windows. I think the idea that all operating systems are created equal is laughably false. The second idea---that Linux is more hospitable to viruses than Windows---is a much more complex issue. Proving that there is at least one way to infect Linux with a virus does not prove that point. All that proves is that Linux's security is less than 100%, which I agree with (hence the footnote in my previous comment).

In other words, your argument:

    S(Linux) < 100%
and my argument:

    S(Linux) > S(Win32)
can coexist:

    S(Win32) < S(Linux) < 100%
Your economic argument about OS market share is more relevant to your other claim:

> What it is is popular enough to be worth targeting.

Your economic argument proves that claim. I agree. However, being less popular doesn't preclude Linux from being less hospitable to viruses.

> (ps) the congratulatory back-patting is to head off the inevitable Linux advocacy "you're a shill for Microsoft" BS that comes bundled with these discussions.

Fair enough. Those "you're a shill for Microsoft" type comments do have a tendency to show up in discussions like this. I like a high signal-to-noise ratio in conversations, which is why I called you out on that, but now I see you were trying to keep the content-less comments out as well.


You just restated the previous threads and added some notation, but provided no new evidence to support the argument that Linux is more secure than WinAPI by design. What do you want me to do with that, restate all my arguments again? That seems like a waste of time.

We're talking about the security of single-user machines --- of which most servers are a special case thereof. The perceived significant difference between the two platforms simply isn't there.


I was pointing out that we don't disagree. But I guess I misunderstood what you're trying to argue. Let's just agree to disagree and be done with it.


>(a) You don't need to infect executables. .profile works nicely.

Yep, low privileges only isolate viruses. A virus running as superuser can infect the entire system. A virus running as a low-privilege user can only infect what the user has access to. And all this applies equally to Windows as to Linux.

>(b) How valuable do you think it would be to a virus writer to infect Mastercard's data center? It isn't riddled with viruses.

Have you heard of Stuxnet and how it infected nuclear reactors?


What is the point of escalating privileges past "user" on a single-user machine? You're thinking like a Unix geek.


Superuser used to matter for viruses that needed to escape detection (i.e. install themselves in the MBR, boot sector, kernel, and/or "embedding area" as grub calls it). Modern viruses are more likely to be targeting the data of users not experienced enough to know what a boot sector is, or why that fluffy_bunnies.doc is dangerous. Correct me if I'm wrong, but I believe a modern "virus" would've been traditionally referred to as a worm, as was the Sasser worm, since they're usually not infecting existing executable code.


No idea why this comment has so many upvotes. This is an awful comment because literally every single point in it is factually incorrect.

> Unix was designed from the start to run multi-user environments, whereas Windows grew out of DOS, which was initially built for single-user, non-networked environments. The difference in their initial goals led to wildly different security models.

No. [1, Section 2.2]

> The average Unix user runs without superuser privileges most of the time. Typically, the less experienced a user is, the less privileges he has in a Unix environment.

No. The most popular Linux distribution lets you run any command as any user by default. [2, Default Sudoers File]

> Windows has an inversion of privileges compared to Unix. That is, the most experienced users grant their daily account the fewest privileges, whereas the least experienced users operate with administrator privileges.

No. This isn't the case with the Windows that is shipping today.

--

One final thing to consider. Who cares about separation of privileges if your OS is full of privilege escalation exploits? Hint: one of these operating systems spent billions of dollars hardening their OS and the other is full of holes.

[1] http://www.cs.purdue.edu/research/technical_reports/1991/TR%...

[2] https://help.ubuntu.com/community/Sudoers


>No. [1, Section 2.2]

NT was designed from ground up to be multi-user too.


I too was a Microsoft intern and you're completely wrong. They ran as user level accounts with administrator escalation privileges. This is equivalent to running as a normal user account with sudo access in Linux.


I do in theory agree that a user (wrt Windows) shouldn't be running their machine with admin privileges-it's certainly how I do my day-to-day work in Unix environments. I tried running Windows with a watered-down user account, but I found that all it did was cripple my capabilities while hardly affecting those of the malware that would infect my machine.


About Windows and administrator privileges: it wasn't even the user' fault! I tried to run Windows XP as an ordinary user and it was really annoying: things would fail without error messages (let alone asking for admin privileges) all the time. Windows 7 is fine though: it feels like Ubuntu to me: I can run it as an ordinary user and it prompts for an admin password when necessary (and the occasions when it is needed make more sense: in the XP era I often wasn't convinced programs really needed the privileges they asked for).


Yep, I know. The frustrating thing about it is that NT with it's security existed even before Win95.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: