Attackers spread backdoor via eScan antivirus software update process
decoded.avast.io
decoded.avast.io
https://ia801200.us.archive.org/1/items/SyScanArchiveInfocon...
https://robert.ocallahan.org/2017/01/disable-your-antivirus-...
That in mind, there's no reason to use anything but Windows defender on Windows (unless youre a high value target)
Even an antivirus without the flaws isn't much useful. It's in essence solving the halting problem. Only worse because instead of determining whether a program halts, antiviruses seek to determine whether a program is "bad." A vague criteria that even human beings have trouble defining let alone come up with an algorithm for it.
Many of these issues are inherent to antiviruses. Windows Defender, coming from an OS vendor, may perhaps be better in terms of implementation. However, even good implementations can’t overcome fundamental problems that stem from the very idea of the software itself.
And before you say "well duh, but signature updates", I will respond with the fact that nearly malware is designed to auto-update... And will obviously make sure that the windows defender signatures fail to auto-update...
Yes.
> You would think any virus designer would design their stuff in a way that the default antivirus built into the product they are attacking wouldn't be able to find it...
You would think that Microsoft would build mechanisms to prevent this. And they do. Avoiding detection is a key goal, to be fair.
> And before you say "well duh, but signature updates", I will respond with the fact that nearly malware is designed to auto-update...
That's actually very noisy, and an important part of modern malware is avoiding detection - internal and external. Auto-updaters are pretty easy to detect. Even large ISPs will look for auto-update traffic and alert their customers (or in some cases, disable their accounts temporarily!). And once detected, these companies are very well practiced in taking down the hosts of the updates.
So that is a "fact" but it's not so black and white :)
> And will obviously make sure that the windows defender signatures fail to auto-update...
Sounds easy in theory, very hard in practice.
On modern systems, requires kernel mode/system/specific elevated privileges. Using a kernel exploit is rare because they're hard to come by and very valuable - limits scope of who an attacker will bother wasting one on. UAC will complain that an unsigned binary is trying to elevate, and such functionality may even be disabled. In fleet machines, the user often cannot escalate their privileges in such a way that allows defender to be disabled.
Anti-virus is still relevant and useful, although slowly fading into irrelevance - although there will always be a need by vendors to remove malicious software.
Relative to what?
The question is: are the competitors more efective in 2024 for the money you pay VS the built-in solution, while also using less resources to boot that Defender?
That's the question people and bean-counters ask before pulling out their wallets.
AV software will only detect known viruses for which a signature exists, or poorly coded/tested ones that are caught by AV heuristics.
relative to what?
> You would think any virus designer would design their stuff in a way that the default antivirus built into the product they are attacking wouldn't be able to find it...
Why can't that also be true for any antivirus? I would be shocked if that anyone who still makes viruses wouldn't check virus total first
> relative to what?
Compared to F-Prot for DOS, Windows defender is a parody.
Even if it's just 50 lines that were compiled 2 seconds ago by you in the same folder.
Then again, developing anything on Windows seems to be an up-hill battle from the get go
I believe that is an issue with using reputation based protection rather than an issue with antivirus heuristics, unsigned/unknown binaries get flagged.
You should sign binaries and verify and consider the network/distribution method compromised by default.
If a malicious root certificate is installed, then the user’s system is already compromised and signature validation won’t help.
But also in the other case, not all is lost: Not every malware can (or even tries to) defend itself against any antivirus software in existence. The machine might be compromised, but being able to retrieve the correct upadate for the hypothetically unaffected malware scanner can still give you the signal that your machine is infected and you should reinstall it.
EDIT: I see what you mean. radicaldreamer stated that a malicious root certificate is installed, but signature validation wont help there. But, it will help when downloading from mirrors or HTTP.
The currently running (trusted) executable downloads and verifies the signature of the binary. Then after verification you execute it. If your trusted binary is validating invalid data then you've already messed up somewhere.
The starting point was: an attacker has control over the system so that “the end user could be MITM'd already with a root certificate maliciously installed on their device”.
In that case, there's nothing “trusted” on your machine anymore and all bets are off. Doing signature verification in app instead of relying on HTTPS is security theater[1].
[1] or it could be “defense in depth” but that's an argument I'd only accept from someone who really understands what they're talking about, and only in a context where everything else being being done properly. Most of the time “defense in depth” is just an argument for the security theater.
HTTPS is providing confidentiality, and authentication.
The confidentiality doesn’t really matter here. You’re distributing a software installer. There’s a good chance you’ll give a copy to anyone that visits your website and wants to use your software. And you’re not hiding what you’re downloading in any meaningful way.
The authentication is important. That prevents someone from, say, sending the user a completely different binary and having your software run it.
The authentication could just as easily be solved by signing the files you distribute and validating the signature of the downloaded update before running it.
(Hell, if you’re signing your installers (likely) it could be as simple as deferring to Windows’ WinVerifyTrust method and a check that the certificate used is actually your own.)
Debian still distributes packages primarily over HTTP (https://www.debian.org/mirror/list) without issue.
I maintain a (somewhat) popular mirror server at a university, and we actually ran into this issue with one of our mirrors. The Tier 1 we were using as an upstream for a distro closed up shop suddenly, leaving our mirror with stale packages for some time before users told us they never got any updates.
However, you shouldn't blindly trust in this in "linux" either. The implementation varies between package managers. Eg. DNF in Fedora has signature checks not enabled for local package installations, by default. There is no warning, nothing. If you want to infect new Fedora users, you MITM RPMFusion repo (codecs etc) installation, because that's a package almost everyone installs locally and the official install instructions don't show how to import the relevant keys beforehand. Arch was also very late to the validation party.
Those signatures are also checked for local installs unless you explicitly disable them.
The main reason to want to use HTTPS for fetching OCSP Responses has to do with privacy rather than security relative to active attacks.
It's probably time to revisit this.
I mean, I understand HTTPS is industry best practice but the criminals in this story are the actual criminals.
At this point a lot of antivirus software is just useless or actively harmful.
https://www.ftc.gov/news-events/news/press-releases/2024/02/...
Right. Unlike your McDonalds example, there is already an industry standard solution to this problem. The software ""engineers"" who neglected to implement it should be found criminally negligent for the harm they caused to their users. I know this is an unpopular suggestion on HN because code monkeys want all the glory of the "engineer" job title without any of the responsibility.
Software goes across borders. Perhaps you also think negligent software "engineers" should be extradited or rendered across jurisdictions?
Apart from the fact that Engineer does not have to imply either certified or licenced (the words you should be using if you know anything).
Such an oversight from a “security” company is frankly unforgivable.
I've spent literally hours explaining to my users that no, my software was not distributed with a virus; one popular anti virus program had a false positive flagging it as such.