I’m writing this post because I recently overheard a conversation between two friends where one recommended that the friend switch from Windows to Mac or Linux because the latter operating systems are virus-proof and never get malware or rootkits. Uhhh, wrong. Totally wrong. Unfortunately, there are many people who believe this and think buying a Mac or installing Ubuntu will protect them somehow.
There is some truth to the fact that Linux is a bit more secure, but OS X and Linux both have their share of viruses. Also, since a lot of people don’t run anti-virus software on their Macs because it’s deemed not necessary, when a virus starts spreading on OS X, it spreads like wildfire and no one even realizes they have a virus. The Flashback virus in 2012 infected over 600,000 machines and took Apple weeks/months to release a proper fix.
In this article, I wanted to go through the reasons why there are more viruses for Windows and explain whether Linux is really more secure than Windows and why.
Malware Comes From Many Places
The first thing that I explain to people is that all operating systems are prince to malware or viruses from the web and from email attachments. It doesn’t matter which OS you are on, if you visit a malware-infecting site, click on unscrupulous links or download and open unknown attachments, your computer can become easily infected.
Unfortunately, this is how most people end up with malware and viruses on their computer. It’s not as common to get virus or get hacked by someone because of an OS level security flaw. Researchers are always finding security holes in Windows, IE, Office, etc, but the systems normally get patched up before the virus starts to spread or someone can take over your computer.
Since Windows is by far the most prevalent operating system, just the sheer number of devices ensures that Windows users will end up getting more viruses. Now that Macs are selling pretty well, the number of incidents of viruses and malware has gone up too. OS X is inherently not any more secure than Windows. The same is not true for Linux, which is inherently slightly more secure. I’ll explain that further down. When a Linux user does get a virus, though, it’s almost always related to an Internet-facing application like a mail server or web app.
Linux Users are Technically Savvy
In order to run Linux on a daily basis, you need to know a lot more about computers than a Windows or Mac user, plain and simple. Even though Linux in the consumer arena is quite small, Linux is huge on the back-end like web servers, etc. What’s surprising is that a lot of Linux servers don’t run any anti-virus. Why? Because the people who maintain them know what they are doing and the servers are hardened against potential attacks.
People who install Ubuntu also are less likely to get a virus by visiting a shady website (they’ll visit the site in a virtual machine) or downloading an infected attachment from their email. A lot of people in this category install extensions like NoScript, which prevent any scripts from running while browsing the web. Obviously, if you go to those lengths to ensure your security, you’ll be far less likely to be compromised.
Linux vs Windows Permissions
One huge advantage that Linux has over both OS X and Windows is user privileges. There are lots of annoying issues with Windows like the fact that someone can name a file “CuteGirl.jpg.exe” and when you double-click it to open, the file will be executed and your computer will now be infected. This kind of hack cannot be done in Linux. Why?
In order to execute a file in Linux, you have to make it executable. This means you have to specifically set it permissions in order for it to run. Another reason why Linux is more secure is that you need root level access in order to do anything. Most Linux users use a normal account and only log into the root account when they need to make specific changes to the system.
Windows also has Administrator and normal user accounts, but 99% of Windows users just log into their computer using the Administrator account, thereby losing all security advantages that the normal account would provide. Even if something manages to run in Linux, it can’t do anything unless it can gain access to the root account.
The special permissions needed and the use of non-root accounts in Linux make it a lot harder to create a virus that will actually spread like it can in Windows or OS X.
Linux is Open Source and That Matters
Another big advantage to using Linux is that everything is open source. You can see all the code and therefore it’s really hard to hide a virus in Linux software. If someone does create a proprietary software package for Linux, it’ll automatically be considered untrustworthy unless it’s coming from some huge well-known company.
Most people using Linux install software from the official package repositories of their Linux distribution. There is no official Microsoft repository for Windows software, it exists everywhere and anywhere. Even someone like me who works with computers all the time, I’ve downloaded and installed a piece of software that I thought was legit, but ended up with some spyware hidden. In my case, I only install unknown software in a virtual machine first and if everything runs fine in the VM, then I install it on my main machine.
On OS X, Apple has recently added a feature to the OS that will prevent installation of any software that is not in the Mac App store or a set of identified software developers. You can manually change the setting so that you can install any Mac software, but it’s a safeguard that I recommend Mac users enable as it gives you better security than a Windows machine where anything can be installed.
There are a couple of other factors that dictate why you don’t see as many viruses for Linux:
1. Linux is a heterogenous environment. If you have ever thought about using Linux, the first thing you probably had to do was decide which Linux distribution (flavor) to install. There are literally thousands of Linux distributions out there and they are all different. The Linux Kernel is different and they all come with different packages and configurations. This is not the case with Windows. Having so many different forms of the OS makes it hard to write a virus that will spread through everything.
2. Linux has special command and functions for security purposes. When you learn Linux, you learn a lot about commands that let you perform certain security related tasks like sudo or chroot. These commands make performing special tasks in Linux more secure.
3. Linux Kernel is smaller. This one can probably be debated, but overall the Linux kernel is a lot smaller than the Windows kernel, when talking about the areas of the OS where permissions are checked and enforced. A smaller leaner kernel doesn’t necessarily mean more secure, but it definitely helps to keep things to a minimum.
4. Security-enhanced Linux. There are some Linux distributions that have a feature called SELinux or Security-enhanced Linux. It’s basically a set of kernel modifications that make it more secure. It’s part of Red Hat, CentOS, and even Ubuntu.
Hopefully, these article gives you a few more details as to why Linux is considered safer than Windows. It’s definitely not virus-proof and if one day everyone starts downloading and using Linux, the hackers will find new and innovative ways to get viruses there too! Enjoy!