Most companies I’ve worked at where employees had a Microsoft work computers. They were under heavy control, even with admin privileges. I was wondering, for a corporate environment, how employees’Linux desktops could be kept under control in a similar way. What would be an open source or Linux based alternative to the following:
- policy control
- Software Center with software allow lists
- controlled OS updates
- zscaler
- software detection tool to detect what’s been installed and determine if any unallowed software is present
- antivirus
- VPN
I can think of a few things, like a company having it’s own software repos, or using an atomic distribution. There’s already open source VPN solutions if course. But for everything else I don’t really know what could be used or what setup we could have.
In no particular order;
If the user is even slightly knowledgeable, they can’t all protection systems using
sudo
. That’s a big no-no if you want top-notch security. Source - I have broken my corporate’s Linux-specific protection mechanisms.I’m not 100% sure I’m getting what you were trying to say in that first sentence, but you realize that not all users have sudo privileges, and if your company left you with sudo that was a mistake, correct?
I meant that if a company wants to maintain the highest levels of security, the user should never be given access to sudo. If a certain workflow requires sudo, the workflow needs to be changed, or it needs to be done in a sanitized environment, or the user needs to be highly trusted.
This is fine and dandy on a personal pc, but in a work environment you are now being actively targeted by malicious actors if your company is a good target.
Constantly.
So once you are in that zone you do need some fast acting reactive tools that keep watch for viruses.
Didn’t say it was the only way, just the best way. Most effective attacks are still against humans, not computers.
You can restrict what gets installed by running your own repos and locking the machines to only use those (either give employees accounts with no sudo access, or have monitoring that alerts when repo configs are changed).
For anti-malware, I don’t think there are very many agents available to the public that work well on Linux, but they do exist inside big companies that use Linux for their employee environments. For forensics and incident response there is GRR, which has Linux support.
Canonical may have some offering in this space, but I’m not familiar with their products.
The best methods to detect and prevent attacks on your endpoints are EDR software that are linked to your corporate router like FortiEDR, which supports Windows, Mac, Linux, and even some VDI like Citrix.
I don’t think many enterprises are even allowed to use workstations without antivirus. There are a whole bunch of security certifications that many industries need to comply with (or have customers that demand compliancy) requiring the use of some kind of up to date antivirus everywhere.
I think ClamAV in live mode counts, usually, and I don’t think it’s that bad in terms of performance loss (detection rates aren’t great, though).
To get rid of Viruses, simply clean out all executable attachments in mails, mailcow and other solutions support that.
You can also mount /home nonexecutable, which means everything you can run needs to be on the system. Without that, “control over what is installed” is worthless. You could literally download any package, export the binary and run it from anywhere.
To run untrusted software, you can use a server that uses something like KASM. It is image-based, accessed through the browser, suppports uploading files and viewing lots of stuff. You can also run antivirus there, but as shown in this video antivirus is often simply tricked by encoding and re-encoding the scripts into something like Base64.
Antivirus really is flawed. You need to control the origins of code, and run all untrusted code in immutable VMs.
“Just don’t let users download viruses” isn’t a workable solution. Eventually you’ll need to open an Excel spreadsheet, and those are all you need to get infected. It doesn’t really matter what the state of the executable bit is if you call
sh badware.sh
instead of./badware.sh
.Also, you can have a company running entirely on plaintext email without attachments, but if you’re not ISO compliant because you don’t run AV, you’re losing customers. Some insurance companies require AV as well, so you would be taking on risk your competitors don’t need to take by going uninsured. In some industries, not running AV is even illegal.
Antivirus isn’t foolproof, that’s for sure, but it’s also not useless once it’s deployed well. The “well” part is lacking in many companies, unfortunately, and the quality of AV engines on Linux is even worse than on Windows, but that’s no reason not to use it if you are actually competent.
Excel sheets can be used without macros, i.e. executable code. Macros can be disabled in Libreoffice afaik, and this is likely possible via some sort of policy.
These are great things to try out and I want to experiment with it when I have time. For example not sure if policies work with flatpak, as users could be able to change them.
Antivirus is a joke, for sure you could run it, but it just doesnt work. It would be just there for the compliance, while you simply dont run any code, not even trusted code, that doesnt come from trusted repos like Fedora, Ubuntu or flathub-verified
Yes but insurance compliance necessitates AV
If you dont even have a way of running untrusted code on your production environment, how the heck is that worse than badness enumerating AV?
Insurances…
Even if you assume that the software you run will never have exploitable security issues, AV can also keep you from spreading infected files e.g. through forwarded mails.
Use NixOS if you want to use use strictly pre-installed software.