Similarities Between Shellshock and Heartbleed
With the fog of the Bash Shellshock exploit still clouding our eyeglasses, it is easy to lose sight of the Heartbleed OpenSSL vulnerability, which isn’t that long past and not entirely behind us. At IBM’s Insight conference in Las Vegas, I will be diving into the latest IBM’s X-Force Threat Intelligence Quarterly, in which we analyzed Heartbleed and tracked exploitations by cybercriminals.
The following are some of the striking similarities between Shellshock and Heartbleed:
- Both bugs have been around for years. Heartbleed has been around for over two years, while Shellshock has been on the scene for 20.
- Both are relatively easy to exploit. Neither require return-oriented programming or subverting memory protection schemes such as data execution prevention or address space layout randomization. In the case of Heartbleed, all an attacker has to do is send a heartbeat request asking for a larger response packet than is sent in the original request. The devil’s in the details, and fully functional exploits can’t use the OpenSSL library. This requires attackers to write their own SSL negotiation routines, but there was plenty of source material to draw from on GitHub. Shellshock is even easier to exploit, only requiring wget, curl, Tamper Data or similar utilities, or basic expertise with scripting languages such as Perl, Python and Ruby.
- Both were weaponized almost as soon as they were disclosed. IBM X-Force was tracking full exploit attempts on Day 1 and prototype exploits on the day of the vulnerability announcement.
- Both can exploit a broad threat surface but are mainly targeting Web services. Heartbleed can exploit any application that uses transport layer security and has been used to compromise at least one virtual private network gateway in a major attack and can even compromise client devices. However, the majority of attacks seek to scrape account credentials from the memory of Web services, and even the website’s certificate’s private key. Shellshock exploits a bug in the bash shell, included with most Linux distributions. However, in order to exploit the vulnerability, attackers must have a way of launching or accessing a shell instance. For a remote attacker, the low-hanging fruit is the HTTP request. The headers may be converted to environment variables by calling a bash subshell, where anything goes — albeit under the (hopefully restricted) permissions granted to the Web service — including remote interactive shell access. By no means are either Heartbleed or Shellshock restricted to exploiting Web servers, though.
IBM’s X-Force is seeing continued activity trying to exploit both vulnerabilities. Even months after the disclosure of Heartbleed, and after the initial exploitation frenzy, we still see a continued campaign against vulnerable systems. There is always a long tail after a vulnerability is disclosed, and organizations with more mature patching programs identify vulnerable systems and take remedial action, but there are always stragglers who are either slow to patch or don’t have an accurate asset inventory to identify systems that may be vulnerable. We expect to see the same long tail with Shellshock.
However, what keeps me up at night is the distraction of headline-grabbing vulnerabilities such as Heartbleed and Shellshock. They distract from fixing the easy vulnerabilities that have been around for years. I’m talking about SQL injection, cross-site scripting (XSS) and cross-site request forgery (XSRF). To avoid SQL injection, just use parameterized database queries such as stored procedures; XSS/XSRF is a matter of input sanitization. We also continue to fall victim to vulnerabilities in content management systems, especially their third-party plug-ins.
We’ve known about SQL infections and their solution for well over a decade. That’s a really long tail, and yet it is still in the top exploited vulnerabilities. Given that we can’t seem to eradicate simple vulnerabilities like SQL infections, how long will it take before we can close the case file on Heartbleed and Shellshock?