SMBGhost: Strange SMB Vulnerability Disclosures and Wannacry 2.0?
A new critical vulnerability affecting Windows systems came to light on Tuesday, affecting SMB services used by the latest versions of Windows 10 and Windows Server 2019. Due to the strange circumstances under which the weakness was disclosed, which we’ll go into below, the security community has dubbed the vulnerability: ‘SMBGhost’.
Unusually, the vulnerability was not included in this week’s Patch Tuesday. The circumstances of the disclosure didn’t exactly follow normal proceedings, and Microsoft only publicly disclosed the vulnerability after two of its partners (Cisco Talos, Fortinet) published information about it. This slip-up gives an intriguing insight into vulnerability discovery and disclosure and does leave one wondering how many Patch Tuesdays it would have been before the wider community was made aware, had this mistake not been made.
To SMB, or not to SMB
The flaw (CVE-2020-0796) affects the latest versions of the Server Message Block (SMB) protocol, which is a Windows service used for remote file and printer sharing. The weakness, which results from the way the protocol incorrectly handles data compression, could allow an attacker to remotely execute code on a vulnerable system, or cause the server to crash. The flaw affects both SMB servers and SMB clients, which means attackers could either attack vulnerable SMB services, or they could set up their own malicious service and try to convince unsuspecting users to connect to it and attempt to compromise their machines.
The most notable and recent example of an SMB vulnerability like this one was ETERNALBLUE (CVE-2017-0144), which led to the 2017 ‘WannaCry’ outbreak. ‘WannaCry’ caused the compromise of over 200,000 systems worldwide, impacted over 150 countries and cost approximately $4 billion in financial losses. These two vulnerabilities are similar, and it’s likely that attackers will attempt to leverage SMBGhost in the same way. The vulnerability is ‘wormable’, meaning malware can be designed to make compromised systems attack other systems in order to spread deeper within networks.
So, should we expect an imminent outbreak of malware which is comparable to the WannaCry attacks? The TL;DR on this is: yes, but probably not quite so bad.
Compared with ETERNALBLUE, SMBGhost has far fewer affected SMB services exposed to the internet, compared with vulnerable services at the time of WannaCry. That said, a large number of affected services are still exposed:
Both weaknesses affect a single version of SMB, and in both cases exploitation can be carried out by an unauthenticated attacker. Unlike WannaCry though, SMBGhost can also affect SMB clients, potentially opening up some different and interesting avenues of exploitation. SMBGhost only affects much newer versions of Windows than ETERNALBLUE did, so it might be fair to assume that organisations deploying more recent technologies have a better handle on patching and vulnerability management, but you never know!
There are currently no publicly available exploits for SMBGhost, but it will surely only be a matter of time. The WannaCry attacks were carried out within 60 days of Microsoft’s initial vulnerability disclosure, but the circumstances under which the ETERNALBLUE exploit was released were unusual, because these exploits were in use by the NSA for years before Microsoft even knew about the weakness. However, it wouldn’t be too surprising if a working exploit is developed for SMBGhost to a similar timeline, so it’s certainly time to think about putting mitigations before it’s too late.
What can I do?
Check whether your versions of Windows are vulnerable by taking a look at Microsoft's Security Advisory. A patch has now been released for vulnerable servers, and servers which expose SMB to the internet or within a private network should be looked at as a priority.
It may not be time to give up the ghost on SMB entirely, though this service was never intended to be internet-exposed, and exposing it publicly greatly increases the risk of zero-days like this one cropping up. Services like SMB are best secured by exposing them within a private network and using a VPN where remote access is required. Reducing your attack surface in this way is the best strategy for protecting against zero-day exploitation against a wide range of services, though it’s worth noting that this would not prevent exploitation from within the internal network, and internal services should still be patched.
Intruder’s continuous vulnerability monitoring service includes scanning for services like SMB which should not be exposed to the internet. Our cloud-based scanning platform can be used to check for known vulnerabilities in software on your perimeter and reduce your attack surface to minimise your risk of exposure to zero-day threats like SMBGhost. For a free trial for up to 30 days, click here.
- Raw CVE Coverage
- Risk Rating Coverage
- Remote Check Types
- Check Publication Lead Time
- Local/Authenticated vs Remote Check Prioritisation
- Software Vendor & Package Coverage
- Headline Vulnerabilities of 2021 Coverage
- Analysis Decisions
Red teamers, security researchers, detection engineers, threat actors have to actively research type of vulnerability, location in vulnerable software and build an associated exploit.
Tenable release checks for 47.43% of the CVEs they cover in this window, and Greenbone release 32.96%.
Red teamers, security researchers, detection engineers and threat actors now have access to some of the information they were previously having to hunt themselves, speeding up potential exploit creation.
Tenable release checks for 17.12% of the CVEs they cover in this window, and Greenbone release 17.69%.
The likelihood that exploitation in the wild is going to be happening is steadily increasing.
Tenable release checks for 10.9% of the CVEs they cover in this window, and Greenbone release 20.69%.
We’re starting to lose some of the benefit of rapid, automated vulnerability detection.
Tenable release checks for 9.58% of the CVEs they cover in this window, and Greenbone release 12.43%.
Any detection released a month after the details are publicly available is decreasing in value for me.
Tenable release checks for 14.97% of the CVEs they cover over a month after the CVE details have been published, and Greenbone release 16.23%.
With this information in mind, I wanted to check what is the delay for both Tenable and Greenbone to release a detection for their scanners. The following section will focus on vulnerabilities which:
- Have CVSSv2 rating of 10
- Are exploitable over the network
- Require no user interaction
These are the ones where an attacker can point their exploit code at your vulnerable system and gain unauthorised access.
We’ve seen previously that Tenable have remote checks for 643 critical vulnerabilities, and OpenVAS have remote checks for 450 critical vulnerabilities. Tenable release remote checks for critical vulnerabilities within 1 month of the details being made public 58.4% of the time, but Greenbone release their checks within 1 month 76.8% of the time. So, even though OpenVAS has fewer checks for those critical vulnerabilities, you are more likely to get them within 1 month of the details being made public. Let’s break that down further.
In Figure 10 we can see the absolute number of remote checks released on a given day after a CVE for a critical vulnerability has been published. What you can immediately see is that both Tenable and OpenVAS release the majority of their checks on or before the CVE details are made public; Tenable have released checks for 247 CVEs, and OpenVAS have released checks for 144 CVEs. Then since 2010 Tenable have remote released checks for 147 critical CVEs and OpenVAS 79 critical CVEs on the same day as the vulnerability details were published. The number of vulnerabilities then drops off across the first week and drops further after 1 week, as we would hope for in an efficient time-to-release scenario.
While raw numbers are good, Tenable have a larger number of checks available so it could be unfair to go on raw numbers alone. It’s potentially more important to understand the likelihood that OpenVAS or Tenable will release a check of a vulnerability on any given day after a CVE for a critical vulnerability is released. In Figure 11 we can see that Tenable release 61% their checks on or before the date that a CVE is published, and OpenVAS release a shade under 50% of their checks on or before the day that a CVE is published.
So, since 2010 Tenable has more frequently released their checks before or on the same day as the CVE details have been published for critical vulnerabilities. While Tenable is leading at this point, Greenbone’s community feed still gets a considerable percentage of their checks out on or before day 0.
I thought I’d go another step further and try and see if I could identify any trend in each organisations release delay, are they getting better year-on-year or are their releases getting later? In Figure 12 I’ve taken the mean delay for critical vulnerabilities per year and plotted them. The mean as a metric is particularly influenced by outliers in a data set, so I expected some wackiness and limited the mean to only checks released 180 days prior to a CVE being published and 31 days after a CVE being published. These seem to me like reasonable limits, as anything greater than 6 months prior to CVE details being released is potentially a quirk of the check details and anything after a 1-month delay is less important for us.
What can we take away from Figure 12?
- We can see that between 2011 and 2014 Greenbone’s release delay was better than that of Tenable, by between 5 and 10 days.
- In 2015 things reverse and for 3 years Tenable is considerably ahead of Greenbone by a matter of weeks.
- But, then in 2019 things get much closer and Greenbone seem to be releasing on average about a day earlier than Tenable.
- For both the trendline over an 11-year period is very close, with Tenable marginally beating Greenbone.
- We have yet to have any data for 2021 for OpenVAS checks for critical show-stopper CVEs.
With the larger number of checks, and still being able to release a greater percentage of their remote checks for critical vulnerabilities Tenable could win this category. However, the delay time from 2019 and 2020 going to OpenVAS, and the trend lines being so close, I am going to declare this one a tie. It’s a tie.
The takeaway from this is that both vendors are getting their checks out the majority of the time either before the CVE details are published or on the day the details are published. This is overwhelmingly positive for both scanning solutions. Over time both also appear to be releasing remote checks for critical vulnerabilities more quickly.