Windows vs *nix security

Status
Not open for further replies.

OVERKILL

$100 Site Donor 2021
Joined
Apr 28, 2008
Messages
63,450
Location
Ontario, Canada
Prompted by Bill in Utah's comments in the Firefox thread, I figure I'd start up this one.

My comments from that thread were:

The difference between *nix and Windows can be summed up in a single sentence:

The experience of Unix is the ability to compute securely, whilst the ability to compute securely has never been part of the Windows experience.

Unix, and the family of *nix variants were designed from the ground up to provide a secure operating platform. Usability for that platform has been steadily improving, but due to how the platform is designed, it will never be as "friendly" as Windows.

Windows was designed from the ground-up to provide a friendly user experience. Security wasn't even a consideration in the beginning. As the computing world advanced, Windows has had security "patched upon it", but it was never part of the fundamental framework. A quick glance back at Windows 98 is a very clear indicator of that. Don't know the password? Click Cancel to login anyways! LOL! With the adoption of the NT kernel into the mainstream OS products and the 9x kernel phased out with the switch to Windows XP (Windows 2000 was not targeted at consumers, though had originally intended to be), moderate security over previous windows products was attained. But you are still dealing with an operating designed around the "experience".

And this explains the user-base, market share, and why the application of these products differ so greatly.





________________________________


I have used both operating systems; both *nix and Windows since the early 90's. Prior to that it was all DOS. My foray into the land of *nix began with FreeBSD. It then quickly spread into HP-UX, DEC Alpha Unix, IRIX, Slackware, Redhat, OpenBSD, NetBSD.... and the list goes on and on. Anyone remember Mandrake? Lindows?

The *nix systems I had the luxury of using during the 90's were all setup for a specific purpose. They were web terminals, input terminals, VAX dummies, graphic workstations, file servers, web servers, libraries...etc. Whatever their configuration, it was always secure. It was always a configuration that entertained ONLY that dedicated purpose. And trying to get the system to perform anything outside that purpose was far from a user-friendly experience and required levels of security clearance not granted to the those operating at the "user" level.

The Windows systems were attractive. The GUI was ground-breaking. The usability was excellent; the interface ridiculously intuitive. The security? Non-existent. But at the time that was not their purpose.... Nor was it a purpose that really needed to be served.

That changed.

With the Internet taking a leap from government and learning institutions to the home.... That changed. And then Microsoft was playing catch-up. Making an OS who's primary focus was NEVER security.... secure. That has been their most difficult task. And trying to coax users, who are comfortable and EXPECT to be able to run everything with root privileges.... to change? Near impossible.

The irony of course is that the system that was the secure foundation of the Internet... has remained just that. Whilst the product that made the Internet what it is today; that allowed it to explode into a generic household item has traditionally been anything but secure. A secure computing Intranet turned into something who's majority of users are anything but secure
wink.gif


Perhaps not truly ironic.... But very close.

In the choice between security and the experience, the latter has always won out in the "user" market. The former has almost always won out in the "server" market. And until the idea that security is more important that the "experience" hits home with the users, we won't see any real change in how this goes. I'm not saying that Windows cannot be a secure computing platform; it can. But the way the system is USED; the method in which it is run by the people around the world needs to change to embrace the ideologies that have been the framework of how *nix systems have operated from the beginning.
 
I've been pondering this, the idea that secure computing ( a relative term I know ) was there at or near the genesis of Unix and it comes to me that indeed that is true.

In Unix (and ultimately, the variants) everything is a file. Files are files, devices are files, directories are files, and eventually even processes are treated as files in the /proc virtual file system.

There is a model for file access that allows one to allow or deny specific types of access. At a basic level, that access is read, write and execute. For directories there is search and the model has been extended with setuid, sticky bits, temp directory flags, etc.

But it comes down to a very basic model that offered security that has been successfully extended into today.
 
Originally Posted By: OVERK1LL
Unix, and the family of *nix variants were designed from the ground up to provide a secure operating platform.
False. The goal was not secure OS at the time. Even OpenBSD repackaging effort is impeded by rather insecure UNIX roots. Microsoft simply is an abomination when it comes to security, and that helps nearly everybody else to look secure.
 
Originally Posted By: javacontour
There is a model for file access that allows one to allow or deny specific types of access. At a basic level, that access is read, write and execute. For directories there is search and the model has been extended with setuid, sticky bits, temp directory flags, etc.


That brings me to one of the old potential security risks with Linux, and it's rather obscure; it can't cause much in the way of real harm without root access, but it can create a mess under certain circumstances. That would be the old fashioned tarbomb. That could, of course, be propagated by email. It's really not a virus or malware. It is one of the cases where someone unwary could open it without examining it and have a mess spring up. It wouldn't do harm to the OS itself, but would be a massive inconvenience.

It's pretty much hypothetical, but it would be another example of where safe habits are good in any operating system. One could not use the logic that, "I'm using Linux so I can open any archive I want with zero consequences." The consequences may not be catastrophic, but there would be a mess to clean up.

Yes, it's all obscure and hypothetical. Most won't even know what a tarbomb is. But, in the absence of many real threats, we need to use hypothetical examples.
 
Actually one CAN do some pretty significant damage to the OS if one has root access.

I can see a tarbomb that has binaries that replace key binaries, they are SUID programs, or they change security settings, replace files in the /etc directory, etc.

Heck, I'm pretty sure I could put together such a tarbomb in about 5 minutes that would enable some services, or start a backdoor program that would give me access to a system.

It's always a good idea to check the TOC for a tarball to make sure it's not a potential tarbomb.
 
Originally Posted By: Shuttler
Originally Posted By: OVERK1LL
Unix, and the family of *nix variants were designed from the ground up to provide a secure operating platform.
False. The goal was not secure OS at the time. Even OpenBSD repackaging effort is impeded by rather insecure UNIX roots. Microsoft simply is an abomination when it comes to security, and that helps nearly everybody else to look secure.


I was referring more to the ideology that "root" was a level of access used only when changes were going to be made to the system. Everything else was "user". That to me, is a ground-up security approach. Windows took the OPPOSITE approach. Everything was "root" from the ground-up, with the focus put on the GUI and user experience; making things EASY for a user, which included installing applications. The easiest method of doing that was giving the user full control over the system. Something that has never, as far as my experience goes, been a part of the *nix deployment model.
 
Originally Posted By: javacontour
Actually one CAN do some pretty significant damage to the OS if one has root access.


Certainly, but anyone who routinely opens a tarball while using root access is asking for trouble. The only time I would even conceivably use root access to open a tarball would be to restore my system off my backup tarball.

Even when one wishes to compile from source, one doesn't have to use root access to open the tarball. But, the way Windows works, if one opens a tarball, a rar, a zip, or whatever, one tends to have root access already and had better pray that the front end they use asks for permission before overwriting (as I recall, that is the case).
 
Originally Posted By: Garak
Originally Posted By: javacontour
Actually one CAN do some pretty significant damage to the OS if one has root access.

Certainly, but anyone who routinely opens a tarball while using root access is asking for trouble.

This is probably a huge part of the relative security of Unices. They are largely used by people who know what they are doing!

OS X is a huge exception.
 
There are thousands ways to get root access in UNIX. Both locally and remotely. Well documented. It just takes more brains than most script kiddies have. Remember Mac OS pre-X? it was more intuitive than Windows, it was as crash prone due to multitasking and memory management limitations, it was also as insecure. But... it was a $itch to program for and it was loved. So, it was spared for the most part.
System security is largely the function of sys admin's acumen. Like with car maintenance :)
 
Originally Posted By: Shuttler
There are thousands ways to get root access in UNIX. Both locally and remotely. Well documented. It just takes more brains than most script kiddies have. Remember Mac OS pre-X? it was more intuitive than Windows, it was as crash prone due to multitasking and memory management limitations, it was also as insecure. But... it was a $itch to program for and it was loved. So, it was spared for the most part.
System security is largely the function of sys admin's acumen. Like with car maintenance :)


Very well put!

I would just like to add to your last point that this is one of the fundamental differences between *nix and Windows: Most *nix systems have an admin. Most Windows systems simply have a "user". LOL
 
Originally Posted By: Stu_Rock
This is probably a huge part of the relative security of Unices. They are largely used by people who know what they are doing!


What also enhances the security for me is the very easy (and free) way to do complete system backups and restores. It's definitely not a big chore. If someone were to conceivably create some malware that would trash my OS, I could have it up and running again in the previous state in literally minutes.
 
Lots of great points. I think the greatest is the notion of users vs admins. That makes a HUGE difference.

Also, I concur about backups. Reference my thread about my VPN box earlier this week. While nothing I couldn't rebuild, it was far less time consuming to rebuild from a Flash Archive.
 
Originally Posted By: SrDriver
+1 on frequent complete system backups! It is not a question of if but rather when!


Well, with Linux, at least in my experience, I end up doing a restore because of something I did. I'll be modifying and messing around and find I don't like what I did. A quick tar command to restore everything is easier than undoing the modifications I did.

It's also good if the hard drive ever decides to take early retirement. That saved me when I had a wonky SATA cable. For whatever reason, it wouldn't seat correctly, and maybe with temperature differences causing expansion, or me bumping the case, it would dislodge slightly and then write corrupted data to the drive, causing no end of fun. After that happened a few times, a new cable and restore from backup did the trick.

That's the nice thing with a good backup. I can mess around all I like, and no matter what kind of a disaster I create, I can always fix it.
wink.gif
 
Originally Posted By: javacontour
Lots of great points. I think the greatest is the notion of users vs admins. That makes a HUGE difference.


Absolutely. A friend of mine a few years ago bought a Windows box. He started randomly deleting things from C: because he wanted to free up space. You can imagine how that went. Linux wouldn't have allowed that.
 
The one thing linux lacks is granular privileges; it tends to be all or nothing. Role based access control (RBAC) one way to handle this, but probably not as trustworthy as VMS's privileges.
 
Originally Posted By: simple_gifts
The one thing linux lacks is granular privileges; it tends to be all or nothing. Role based access control (RBAC) one way to handle this, but probably not as trustworthy as VMS's privileges.


Some of it is changing, but I don't know how robust it is, as you just pointed out, since I haven't experimented with it. I know in the current version I'm using, you can set different directories and files with varying permission for each user, through the GUI even. You can also set certain applications, functions, and even networking off limits to users (or allow others to access them), also through the GUI.

So, the convenience factor has improved for dealing with that security issue. How effective is it? I couldn't answer that.
 
Originally Posted By: Garak
Originally Posted By: javacontour
Lots of great points. I think the greatest is the notion of users vs admins. That makes a HUGE difference.


Absolutely. A friend of mine a few years ago bought a Windows box. He started randomly deleting things from C: because he wanted to free up space. You can imagine how that went. Linux wouldn't have allowed that.


In 1998 a video production facility I was working in took possession of some very early SGI boxen with some of their first forays into Windows NT. I, too, was trying to open up some room for the very, very large video files that the system's hard drives would soon be receiving by removing PAGEFILE.SYS.
 
Originally Posted By: simple_gifts
The one thing linux lacks is granular privileges; it tends to be all or nothing. Role based access control (RBAC) one way to handle this, but probably not as trustworthy as VMS's privileges.



SELinux? Or am I reading something wrong?
 
Status
Not open for further replies.
Back
Top Bottom