This quarter's "Oracle patch Tuesday" has arrived again which means that there's no better time to share (yet again) my POV on patching as a security best practice. Or should I say "worst" practice.
I'll be using Oracle as an example not because their patching cycles are worse than other vendors. On the contrary, they have shown tremendous progress over the past 3 years with their latest improvement being the use of CVE codes to identify the individual vulnerabilities.
One of the vulnerabilities fixed in this latest CPU (CVE-2008-2625) was discovered by me and reported to Oracle in December 2005. That's almost three years ago!
Now, Oracle had their reason for not rushing into releasing a patch. First of all, it scores relatively low on the CVSS (4.0 out of 10.0) mainly because of its high complexity. Additionally, it only affects a limited set of deployment scenarios (those who use proxy accounts). Now that the patch is out, administrators need to make a decision regarding whether or not they want to apply the patch. Applying a patch is not only time consuming, it's also risky. Therefore we would expect an administrator to be able to answer the following questions in order to make an intelligeble decision:
- Is the vulnerability affecting my database server?
- Is there a work around for my specific environment?
- Is there an external measure I can take to mitigate the vulnerability until a patch is applied?
Unfortunately, in the Oracle CPU advisory it is very hard to find answers to these questions. In the case of CVE-2008-2625, there is no mention of the fact that only deployments who use PROXY accounts are affected. In the case of other vulnerabilities such as CVE-2008-3989 or CVE-2008-3992, there is no mention of a work-around (i.e. remove the vulnerable packages, restrict access to administrative users, etc.).
The amount of information supplied is so scarce that while I know that there is a PeopleSoft vulnerabiliy that I've reported to Oracle that is fixed in this patch, I cannot identify which of the five it is! Only on one occasion did Oracle provide work-around information; this was earlier this this year when a vulnerability was disclosed on the Internet before a patch was available from Oracle.
Oracle, as I mentioned earlier, is not the only guilty vendor; in fact, IBM is even worse. Microsoft is somewhat better at providing the necessary work-around information. One of the arguments used by vendors for delaying disclosure is that too many details would allow hackers to create code that can exploit systems before they are protected. Let me tell you a secret: THEY ALREADY ARE!
Hacking is a growing business. Money is invested in creating new efficient tools. Some of these tools are aimed at reverse engineering patches (I've been told that this is illegal, but so is hacking...). Any respectable hacker (notice the irony) owns such tools. For a savvy person using the appropriate tools, it takes days to create an exploit once the patch is out. Applying patches accross an enterprise takes (at least) much, much longer than that.
Bottom line, vendors must provide more information allowing administrators to make better decisions as well as permitting independent security vendors to provide external mitigation solutions within a short time frame. Only in this way can enterprises achieve effective security for their databases.
- Amichai