Alternative to ClamAV?

lal309@lemmy.world to Selfhosted@lemmy.world – 81 points –

TL;DR - What are you running as a means of “antivirus” on Linux servers?

I have a few small Debian 12 servers running my services and would like to enhance my security posture. Some services are exposed to the internet and I’ve done quite a few things to protect the services and the hosts. When it comes to “antivirus”, I was looking at ClamAV as it seemed to be the most recommended. However, when I read the documentation, it stated that the recommended RAM was at least 2-4 gigs. Some of my servers have more power than other but some do not meet this requirement. The lower powered hosts are rpi3s and some Lenovo tinys.

When I searched for alternatives, I came across rkhunter and chrootkit, but they seem to no longer be maintained as their latest release was several years ago.

If possible, I’d like to run the same software across all my servers for simplicity and uniformity.

If you have a similar setup, what are you running? Any other recommendations?

P.S. if you are of the mindset that Linux doesn’t need this kind of protection then fine, that’s your belief, not mine. So please just skip this post.

99

You are viewing a single comment

I think you’re about to find out that the “belief” that Linux doesn’t need antivirus isn’t just held by everyone in this community, it’s held by the whole Linux community. Hence there being no active projects in the space.

Heck you almost don’t need any antivirus in windows anymore. Just windows defender and half a brain when it comes to what you download.

Many security experts I know consider AV software to be snake oil. I do so too. They are so complex and need so far reaching permissions to be somewhat effective, that they become the attack vector and/or a large risk factor for faulty behavior.

Add in lots of false positives and it just numbs the users to the alerts.

Nothing beats educating users and making sure the software in use isn't braindead. For example Microsoft programs that hide file extensions by default is a far bigger security problem than a missing AV tool. Or word processors that allow embedded scripts that can perform shit outside the application. The list goes on ...

Well that's just not fair. Snake oil doesn't get auto updated by the vendor, and then lock my production processes and cause an outage. I'd take a bottle of snake oil any day over Symantec.

I don't really understand that belief. There is plenty of Linux malware especially targeting servers, you just need to have an unsecure service running to find that out

I have been using linux for almost 2 decades, never seen a virus. And I never heard of a colleague or friend who got one on Linux. That's why no one has ever installed an antivirus, because, till now, the risk has been practically zero.

On windows, on the other hand, I saw so many viruses on friends and relatives computers...

People install antiviruses depending on the experience.

To be fair, we all know on Linux viruses exist, but is objectively pretty difficult to get one. It is not worth installing an antivirus if one doesn't actively install garbage from untrusted sources

It's not any more difficult to get a virus on Linux than Windows. It comes down to experience as you said. I've been using Windows for my entire life and haven't gotten a virus since I was 8. But all it takes is one mistake on both Windows and Linux, you accidentally leave a docker endpoint or ssh server exposed and insufficiently protected on Linux and you're going to get a virus the same as if you accidentally opened a .pdf.exe on Windows.

Not at all. You leave a ssh port open, you don't necessarily get a virus. Try it. Set up a raspberry pi, install ssh and leave the port open in your firewall. It is much less risky than exposing rdp (the most comparable windows protocol) on windows for instance.

It is a security risk, but absolutely not comparable of installing pdf.exe. Not even in the same league of risk.

As said, try it now and tell me how it goes.

There is a lot of misinformation around security on Linux

Glad you asked, I run a ssh honeypot and get multiple connections adding ssh keys, trying to run lockr, downloading shit every day.

2023-09-16T09:09:48+0000 [SSHChannel session (1) on SSHService b'ssh-connection' on HoneyPotSSHTransport,14737,61.222.241.108] Command found: echo ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr >> .ssh/authorized_keys

Does the attack succeed? Never happened to me. You see bot trying, but really never seen succeeding irl. How is it configured?

Do you have also a rdp honeypot by chance? Do you see different rates of attack? Honestly curious.

I don't have any windows licenses around, otherwise, it would have been an interesting test

Also, antivirus is the wrong idea there. What you'd want is an intrusion detection and/or integrity checking system.

And disable password authentication as first step

It's configured to allow requests from connections using common default passwords. If it wasn't a honeypot the requests would succeed. I don't currently run an rdp honeypot but I did a few years back, iirc the rates were about the same with rdp being a little bit less. Which as I say, comes down to configuration and usage. If you misconfigure Linux you will get malware, same as Windows.

Ok, than the experiment you are doing is just to check how many attacks you can get over a certain time... It is not really representative of a common use case. And again, this is not a virus. It is a successful attack from a bot on a purposely misconfigured service exposed to the internet. An antivirus is not needed. What is needed is basic configuration. An antivirus cannot help there

Okay if we are taking the definition of a virus to be something that a person must download and execute, what about malicious javascript/python packages? They often target production systems running Linux and infection is caused by user error rather than misconfiguration.

I use python professionaly. Never seen a real successful supply chain attack on libraries used by "normal" people. There was recently a supply chain attack to pytorch, that I remember, but it was solved within few hours.

It is not a real risk for non developers. It is a risk, but veeery low, miles lower than pdf.exe.

Just check this stat for ransomwares taken as an example of viruses: https://www.statista.com/statistics/701020/major-operating-systems-targeted-by-ransomware/

Windows server is ~20% of server market. Still it is there second, with in practice no GNU/linux (80% of server market). This is why people do not really worry much, the risk exists, but it is minimal for well configured system compared to competition, even where competitors are a niche and Linux machines are the main target.

On windows, an antivirus is not a bad idea... On Linux, a firewall and basic care are usually sufficient

Running a honey pot for SSH and sharing logs only proves that people try to attack you, it does not really tell if SSH as such is vulnerable or not. It is a honey pot, people gaining access if the whole point.

Having a locked down but exposed SSH access is something else.

You're missing my point, a virus doesn't have to infiltrate a completely secure system. It can come through you accidentally leaving your ssh insecure or any other service.

I get that a malware can get inside the worlds most secure system, if for example a user lets it in. What I am saying is that showing a honey pot in response to "ssh is more secure than a software that runs code without you giving consent and without your knowledge" not say anything, except what happens if someone gets in.

What happens in the Windows world: Microsoft is not capable of creating and distributing a patch timely. Or they wait for "patch day", the made up nonsense reason to delay patches for nothing. Also since Windows has no sensible means of keeping software up to date, the user itself has to constantly update every single thing, with varying diligence. Hence Antivirus: there is so much time between a virus becoming known and actual patches landing on windows, that antivirus vendors can easily implement and distribute code that recognizes that virus in the meantime.

What happens in the linux world: a patch is delivered often in a matter of hours, usually even before news outlets get to report about the vulnerability.

Zero days aren't the only way you get viruses. Misconfiguration and social engineering are both vectors that are OS agnostic.

But do antivirus really help with that? Is it going to check for open ports and see if the service listening has a strong password?

You can’t program against social engineering or missconfiguration, and because those are the only real vulnerabilities in Linux there’s no need for antivirus.

No but it can't do that on Windows either, all it can do is detect an infection and attempt to remove it. Same process would be applicable on Linux.