On Saturday 23 March 2013 07:14, patrick conveyed the following to
alt.os.linux...
> Well if you guys who are more Linux tech minded than I am
> weren't so lazy minded we could come up with something
> concrete, even an outline of things represented in my previous
> posts, to show them Windows guys, at least, that Linux, even
> at the most basic pictorial level is a convincing secure system.
I align myself with the other posters in their statement that one cannot
pour the concept of security in GNU/Linux into a comprehensible
flowchart - even if only because it's a multidimensional concept - but I
can point out a few major differences between GNU/Linux and - as what
you are referring to below - Microsoft Windows.
> Don't be so adverse to this. Work like I propose gets published in
> professional mags sometimes. It could convince many using this
> pictorial approach, rather than just a bunch of blarney and tech talk,
> which they compare to a Windows virus program with 2 million virus
> definitions which is supposed to work in real-time.
>
> Forget about passwords, everybody has a password, how about a good
> outline, not too deep, and I'll try to put the idea(s) into a 1 page
> block diagram showing how strong Linux OS's are in process.
Some of the differences are that...:
° GNU/Linux is a UNIX-style operating system, and was thus designed
from the ground up as a multi-user platform. This means that
security is an essential component of the design itself.
By contrast, Microsoft Windows was designed as a graphical user
interface, memory extender and (later on) cooperative multi-tasker
for DOS, which itself was a single-user and single-tasking system.
Later on, Windows was ported to the NT kernel - itself based upon
the VMS kernel - but it was in essence a graft, since Windows was
never designed as a multi-user operating system or even with
networking support. Therefore, all of the security and networking
functionality was an ugly bolt-on afterthought, which hooked into
the NT kernel, but all in the form of bypassable layers.
In addition to this, Microsoft embraces the vision that a computer
is used only by one person at the time, and that his one person
would be the computer's administrator. This, together with the
focus on alleged user-friendliness - i.e. "let's not make things
to difficult for the end-user" - means that security is not and
never has been a priority for Microsoft.
----------
° In GNU/Linux (and other UNIX designs) nothing is executable unless
it resides on the filesystem and has execute permission for the user
trying to execute it.
By contrast, in Windows, things are executable if they have a
filename ending in a so-called "filename extension", meaning that
the last four characters of the filename must be something like
".com", ".exe", ".cmd", ".bat", and perhaps a few others. This
in itself means that an executable attachment to an e-mail can
get executed by Windows (and used to be executed by default in
Outlook Express).
----------
° In GNU/Linux and other UNIX-like operating systems, everything is
a stream of bytes to the kernel, and a file to userspace. And
every file is stored in a inode in a filesystem, and must at a
minimum have an owner, a primary group, and POSIX permissions (for
the owning user (u), the group (g) and all others (o)), all of
which are stored in the inode. This is a requirement that all
files must meet. Security and access can then be fine-grained to
a greater degree by way of ACLs ("access control lists").
By contrast, the only access control in Windows is provided for by
ACLs, but not every file necessarily has an ACL entry, because
Windows works equally well [*] with filesystems which do not support
ACLs, such as vfat (FAT32).
GNU/Linux also supports the mounting of vfat - which does not
support POSIX permissions anymore than that it would support ACLs -
but in UNIX systems, a vfat filesystem is mounted with virtual
permissions in the virtual filesystem layer, and these virtual
permissions are set in the VFS at mount time and cannot be changed
on a per-file basis, nor can they be changed for the whole vfat
filesystem without remounting it. (They will also not be saved
to the underlying FAT/vfat filesystem of course, because those
filesystems are not POSIX-compatible and thus have no way of storing
that information.)
----------
° Microsoft Windows allows every user to write to any and all
directories on any and all volumes available to the system with the
exception of those directories which have access restrictions via
ACLs.
In GNU/Linux, an unprivileged user can only write to their home
directory, to /tmp, /var/tmp, and - if applicable on the local
machine - to /var/spool/mail/$USERNAME. Everything else is off
limits to unprivileged user accounts. (Well, with the exception
of removable non-POSIX filesystems mounted with the UID of the
user him-/herself and with virtual permissions which allow
write access to said user.
----------
° Microsoft Windows comes with every conceivable service in the system
listening on TCP/IP ports by default, and some of those services
access the internet without the consent of the user/administrator.
In fact, Windows is itself effectively spyware, because it sends
reports about your computer configuration and the software installed
on it to Microsoft every week. This is documented behavior, albeit
that it took Microsoft a while to admit to it and put a spin on it,
claiming that the data are only used "to improve your user
experience" and that "no personal data will be permanently
collected". All of this is just one of the many reasons why Windows
users need to enable a firewall.
In GNU/Linux, only the services which the system's administrator has
allowed to run at boot time (or has manually started) are actually
listening for network traffic. Every unsolicited network connection
attempt from the outside to a port which no service is listening on
is ignored by the kernel. Firewalling code is also part of the
kernel itself, and the userland firewall software for GNU/Linux is
only there to configure the firewall in the kernel via the iptables
framework.
----------
° Lastly - even though this list is probably not even complete - it
should also be mentioned that the non-NT versions of Windows - i.e.
everything up until and including Windows 95, 98 and ME, but
excluding Windows 2000 as that was NT-based - was running all
protected mode code in ring 0 of the processor, and thus there was
no privilege separation and no memory protection, plus that said
Windows versions did of course all run on top of MS-DOS, and that
as such the processor was constantly switching back and forth
between real mode and protected mode. Real mode has no memory
protection or privilege separation at all, because it's an 8086
emulation mode. This aspect was however less of importance with
regard to security than it was with regard to system stability.
(Note: i386 and later x86 processors do have a "virtual 86" mode,
which emulates the 8086 processor but does it from within protected
mode, which allows for kernel and userspace separation and for the
multitasking of "virtual 86" sessions (but without multitasking of
anything running inside of the virtual 86 session itself). x86-64
also still supports this, but only when the processor runs in legacy
mode, which means that it would be running a 32-bit operating
system. The x86-64-native 64-bit "long mode" does not support V86
anymore, so DOS emulators and the likes running inside a 64-bit OS
on x86-64 must make use of a virtual processor, emulated in
software via e.g. dosemu or Qemu. 64-bit versions of Windows have
completely dropped support for DOS applications.)
[*] For some values of "working well".
--
= Aragorn =
http://www.linuxcounter.net - registrant #223157