When look at customers’ computers and find malware, I am constantly asked “Why is there malware when I have antivirus on the computer?”
It is used to be because the user’s antivirus had expired or wasn’t updated. In the last couple of years, however, I have found dozens of infected machines with up to date antivirus.
The truth is, the nature of malware has changed. They used to be in the form of executable files, which had signatures that antivirus could pick up. Now, in the typical mode of infection, malware usually runs scripts on websites that find vulnerabilities in legitimate programmes, causing those programmes to be weakened or malfunction. Java is one of those programmes, and is a legitimate programme, so antivirus is happy with it. However, Java is a programme that has full system access on a pc, although in theory this is restricted. The exploits remove this restriction. This allows network connections to be opened internally to contact malicious sites, which bypasses most firewalls, because “outbound” connections are allowed. The exploits can also modify Windows (and Macs) settings, further weakening, just like the wooden horse of Troy, when the soldiers smuggled inside opened the gates of the city. This can also disable antivirus or prevent antivirus from loading on start up. Because this is done via a legitimate programme, the antivirus is none the wiser. Opening network connections to malicious sites also allows the malware to update itself, similar to Windows Update.
By turning off antivirus and auto-updating, less subtle malware can be downloaded which can have free reign. All that is needed is a single vulnerability. Many of these vulnerabilities are discovered long before patches are released to fix them.
My conclusion is that antivirus is not an effective protection against malware. The most effective protection is users being educated in safe behaviour. The status quo is like a flock of lambs wandering into a wilderness occupied by starving wolves.