I’ve written a couple of times before about patching, and in one article (“The Curious Incident of the Patch in the Night-Time“), I said that I’d return to the question of how patches and vaccinations are similar. Given the recent flurry of patching news since Meltdown and Spectre, I thought that now would be a good time to do that.
Now, one difference that I should point out up front is that nobody believes that applying security patches to your systems will give them autism[1]. Let’s counter that with the first obvious similarity, though: patching your systems makes them resistant to attacks based on particular vulnerabilities. Equally, a particular patch may provide resistance to multiple types of attack of the same family, as do some vaccinations. Also similarly, as new attacks emerge – or bacteria or viruses change and evolve – new patches are likely to be required to deal with the problem.
We shouldn’t overplay the similarities, of course. Just because some types of malware are referred to as “viruses” doesn’t mean that their method of attack, or the mechanisms by which computer systems defend against them, are even vaguely alike[2]. Computer systems don’t have complex immune systems which adapt and learn how to deal with malware[3]. On the other hand, there are also lots of different types of vulnerability for which patches are efficacious which are very different to bacterial or virus attacks: a buffer overflow attack or SQL injection, for instance. So, it’s clearly possible to over-egg this pudding[4]. But there is another similarity that I do think is worth drawing, though it’s not perfect.
There are some systems which, for whatever reason, it is actually quite risky to patch. This is because of the business risk associated with patching them, and might be down to a number of factors, including:
- projected downtime as the patch is applied and system rebooted is unacceptable;
- side effects of the patch (e.g. performance impact) are too severe;
- risk of the system not rebooting after patch application is too high;
- other components of the system (e.g. hardware or other software) may be incompatible with the patch.
In these cases, a decision may be made that the business risk of patching the system outweighs the business risk of leaving it unpatched. Alternatively, it may be that you are running some systems which are old and outdated, and for which there is no patch available.
Here’s where there’s another surprising similarity with vaccinations. There are, in any human population, individuals for whom the dangers of receiving a vaccination may outweigh the benefits. The reasons for this are different from the computer case, and are generally down to weakened immune systems and/or poor health. However, it turns out that as the percentage of a human population[6] that is vaccinated rises, the threat to the unvaccinated individuals reduces, as there are fewer infection vectors from whom those individuals can receive the infection.
We need to be careful with how closely we draw the analogy here, because we’re on shaky ground if we go too far, but there are types of system vulnerability – particularly malware – for which this is true for computer systems. If you patch all the systems that you can, then the number of possible “jump-off” points for malware will reduce, meaning that the unpatched systems are less likely to be affected. To a lesser degree, it’s probably true that as unsophisticated attackers notice that a particular attack vector is diminishing, they’ll ignore it and move to something else. Over-stretching this thread, however, is particularly dangerous: a standard approach for any motivated attacker is to attempt attack vectors which are “old”, but to which unpatched systems are likely to be vulnerable.
Another difference is that in the computing world, attacks never die off. Though there are stockpiles of viruses and bacteria which are extinct in the general population which are maintained for various reasons[7], some will die out over time. In the world of IT, pretty much every vulnerability ever discovered will have been documented somewhere, whether there still exists an “infected” system or not, and so is still available for re-use or re-purposing.
What is the moral of this article? Well, it’s this: even if you are unable to patch all of your systems, it’s still worth patching as many of them as you can. It’s also worth considering whether there are some low-risk systems that you can patch immediately, and which require less business analysis before deciding whether they can be patched in a second or third round of patching. It’s probably worth keeping a list of these somewhere. Even better, you can maintain lists of high-, medium- and low-risk systems – both in terms of business risk and infection vulnerability – and use this to inform your patching, both automatic and manual. But, dear reader: do patch.
1 – if you believe that – or, in fact, if you believe that vaccinations give children autism – then you’re reading the wrong blog. I seriously suggest that you go elsewhere (and read some proper science on the subject).
2 – pace the attempts of Hollywood CGI departments to make us believe that they’re exactly the same.
3 – though this is obviously an interesting research area.
4 – “overextend this analogy”. The pudding metaphor is a good one though, right?[5]
5 – and I like puddings, as my wife (and my waistline) will testify.
6 – or, come to think of it, animal (I’m unclear on flora).
7 – generally, one hopes, philanthropic.