Patch management is the structured process of planning, testing, deploying, and validating software updates to keep systems secure and minimize vulnerabilities. A well-defined patching workflow reduces downtime, protects critical infrastructure, and ensures no devices are left unpatched.
Patch Management
Typically when we find a vulnerability on a network, there's already a solution on how to fix it, and a lot of times it's a patch that already exists and all that you need to do is apply the patch. But hopefully, if you have a good patching system and good patching procedures, you've already patched things and never find the vulnerability to begin with, because it doesn't exist.
Here's a fairly generic patching process that you can go through, and I've got it down to four stages. Every environment is a little different, but essentially we're going to go through a planning phase, a testing phase, deployment, and validation.
Let me just remind you that the more we can document and refine a process, the easier it's going to be for us and all the rest of the employees. Let me give you a great example. I took over a department, and the whole team scheduled to do the patching of the system on a Saturday. Well, they only got through a quarter of the machines and it was miserable, and I said, this has got to change. We're going to change the documentation of this, we're going to make this inconsistent, we're going to start improving things. Within a short period of time we went from taking eight hours out of our day on a Saturday to actually doing most of the work during the daytime, having no downtime and having to stay a little bit on Tuesday, just an hour and a half on Tuesday, to finish things up. We got everything completed all within this short period of time, and so we drastically improved this whole process just by focusing on continuous improvement with it.
During the planning phase we're going to start out with doing some sort of research, maybe on the machines or on the patches, and do some scheduling, so we'll schedule when this is going to occur. Once we've got the time frame in which this is going to happen, we're going to have to send out some notifications to notify our users of this patching window. Then we would probably perform some sort of machine audit to make sure we understand what machines are going to be patched, what software is going to be patched, and just make sure that we're patching the right things. Then we'll probably want to create some sort of rollback plan.
During the research phase we're going to get a good understanding of what assets, systems, and software we're updating, and the patches for those different assets, systems, software and devices that we have out there, and also figuring out the right timing for all of this.
When it comes to scheduling, we need to schedule some sort of maintenance window, a window that we are going to notify our users that systems could be down during this time. One of the research things that we might want to do is research whether there is going to be downtime involved with whatever patches we're applying, so that we can schedule that. Usually we have some sort of maintenance schedules that are already booked on a monthly basis, because we know we need to patch things probably at least on a monthly basis, maybe a little bit more often depending on what kind of systems we have and if there are any critical patches that come out that are urgent.
What I found throughout this patching process is that one of the most critical components is communication and notification, letting your users know that there is going to be patching. Typically I'll send out emails days or maybe even a week before, and also the day of, and also post it on instant messaging if your work has some sort of instant messaging or any kind of communication platforms you have for your business. I find that the more the better in this case. Not only does it help show value to what the IT department is doing by patching all these systems and making sure that you're keeping the system safe, but also it really helps prepare them in case there is any kind of downtime. We especially want to notify them when we know that there's going to be some downtime involved with patching.
Doing machine audits can be a simple part of this process. For instance, if you have patching software, a lot of times the audit is just done right through that software. They all check in, they get their updates, you can see what's happened, and so it's real simple to do this machine audit. But a lot of times I have a team of people that are working on patching, we're using maybe some other system, maybe it's even just as simple as a spreadsheet, and I want to make sure the spreadsheet is updated with whatever our machine inventory is, so we make sure that we hit all of the machines and they are all patched and updated.
Don't forget the other equipment. I find a lot of times regular machines and servers are patched and it's not a problem with them, but what often gets overlooked is this other equipment like switches, or maybe servers, or maybe some sort of software on the servers, or software on the end devices themselves. So there are some other components that you need to make sure get patched on a regular basis.
Having a rollback plan for any kind of changes you make on your network can be a lifesaver, and it also is true for patching as well. If we're patching a machine, we're making a change to that machine, and more so in the past, but certainly it could happen now, rolling out a patch that brings that server down can be really problematic and a real headache. So maybe having an extra backup copy, or having some sort of rollback plan for certain patches, especially the more critical patches on the more critical machines, can really help you in the event that something goes awry.
Once we've done our planning, we're going to move into the testing phase and make sure that patches get tested before we roll them out. From a testing perspective, I don't always test the patches; there are times when I do and times when I don't. For instance, if I'm working for a smaller company and I have a lot of end-user devices, I might roll out just a patch to my machine, make sure it works, and then roll it out to everyone else, and it's not going to be that critical. If I am working with thousands and thousands of users within these end-user devices and I force out a patch that's not a good patch, it could be devastating. It could cause a lot of headache and pain, and so I probably want to have a test environment where I test things out and give it a little bit before I roll it out to the rest of the company or the rest of the organization.
Especially, I take testing seriously when it comes to production systems. When I worked for a SaaS company that had millions of users use the system, I didn't want to roll out a patch that was going to really be a high risk for the whole company. So what we would do is we'd roll it out in stages. First we'd roll it out to develop, make sure it works and functions correctly, then we'd roll it out to the test environment and make sure it works correctly, then roll it out to stage and do the same thing. Not only was this testing the actual patch itself, but it was testing our rollout plan of how we roll out patches, and making sure that when we roll out patches to production we've emulated that rollout plan, that whatever we did for stage we do the same thing for production.
Once we've tested and confirmed that the patches are good and we want to roll it out to the rest of the environment, we're going to go through the deployment phase of deploying it out to the rest of the environment and making sure all the machines are patched. Then we're going to do that validation step just to verify that.
There is a lot of software out there that can really help you out with this process. At the very basic level we have Windows WSUS services that can help deploy software and also do our audits and really streamline this whole process. So implementing something like this can really save you a lot of time and energy and help you do those audits.
There is better software out there that can help you roll it out even faster. It does cost some money, and I do find that some deployment services actually take a lot of time to manage. So you're going to have to balance out the pros and cons of managing these extra services and these extra servers, and the time that you're actually going to save by faster rollout times.
TechKnowSurge builds IT and cybersecurity professionals through hands-on, concept-first training built around real understanding — not memorization. Free interactive tools, structured programs, and 25+ years of real-world experience, all in one place.
Explore free tools and programs →