Secure Code: You Are the Solution to Open Source’s Biggest Problem Seventy-eight percent of open source codebases examined in a recent study contain at least one unpatched vulnerability, with an average of 64 known vulnerabilities per codebase.
"Unpatched Vulnerabilities Will Likely Cause Your Next Breach."
"Unpatched Applications Are #1 Cyber Security Risk."
"Unpatched Software Vulnerabilities a Growing Problem."
"Outdated, Unpatched Software Rampant in Businesses."
If those headlines seem familiar, it's because you've read them all over the past decade, dating from March 2018 all the way back to 2008. But the story remains the same: Unpatched software vulnerabilities are the biggest cyberthreat organizations face. The problem is that no one is listening, or, worse, they don't know what software they have and how to patch it.
According to Black Duck by Synopsys' recently released annual report, "Open Source Security and Risk Analysis (OSSRA)," unpatched, vulnerable open source components are the leading security risk across multiple industries. Business sectors represented in the report include automotive, big data, cyber security, enterprise software, financial services, health care, Internet of things (IoT), manufacturing, and mobile apps.
In all, open source components were found in 96% of the codebases scanned last year, with an average of 257 open source components per codebase, the report states. That's no surprise: Open source components and libraries form the backbone of nearly every application in every industry. And use of open source lowers costs and speeds development – both critical in today's agile software world.
But the vulnerabilities found in the over 1,100 codebases scanned for the report are as pervasive as open source itself. Seventy-eight percent of the codebases examined contained at least one unpatched vulnerability, with an average of 64 known vulnerabilities per codebase. Seventeen percent of the audited codebases contained a named vulnerability, such as Heartbleed, Freak, Drown, or Poodle. Poodle was found in 8% of the codebases scanned, Freak and Drown were found in 5%, and Heartbleed was found in 4% of the scanned codebases – a full four years after its disclosure and several well-publicized exploits.
In addition, 8% of the codebases audited for the 2018 OSSRA report were found to contain Apache Struts. Of those, a third contained the Struts vulnerability that resulted in the 2017 Equifax breach, which compromised the personal information of over 148 million consumers. Clearly, neither the vulnerability disclosure nor the resulting breach was enough to prompt these organizations to investigate their applications for this critical vulnerability.
'Houston, We Have a Problem'
Yes, we do, but it's not just about open source. The National Vulnerability Database (NVD) alone listed a record-setting 14,700 vulnerabilities in 2017 versus only 6,400 in 2016. Other reports placed 2017 vulnerability disclosure counts at over 20,000, with nearly 5,000 of those flying under the NVD radar. More than 4,800 of those disclosures were related to open source components.
The open source community does an exemplary job of issuing patches, often at a much faster pace than their proprietary counterparts. But whether it's for proprietary or open source software, an alarming number of companies simply aren’t applying them.
Following are three steps you can take to help you get better at patching:
Step 1. Take inventory: Can you say with confidence that the open source components used in your public and internal applications are up-to-date with all crucial patches applied? If you can't answer that question and can’t produce a full and accurate inventory (bill of materials) of the open source used in your applications, it's time to inventory your open source software. After all, you can’t patch when you don't know what you have.
Step 2. Monitor for threats: Unlike commercial software, where fixes, patches, and updates are (or at least should be) automatically pushed to users, open source has a pull support model – you are responsible for keeping track of both vulnerabilities and fixes for what you use. Mind you, that's a task far beyond spreadsheets and manual tracking. An automated solution for identifying and patching known vulnerabilities in open source components can help you manage vulnerability risks much more effectively.
Step 3. Focus on what is most likely to be exploited: Nearly 5,000 open source vulnerabilities were reported last year, but only a handful – such as Apache Struts or OpenSSL vulnerabilities – are likely to be widely exploited. Further, if a vulnerability isn't present in a dependency you have, it can't be exploited. Triaging prioritization of remediation and mitigation activity based on CVSS (Common Vulnerability Scoring System) scores is essential and also must incorporate information covering the availability of exploits. Exploits might not exist on day zero of a vulnerability disclosure, but they could appear days later. Patch priorities should effectively be dictated by business importance of the system, criticality of the asset, and risk of exploitation.
I can guarantee we'll see more headlines about unpatched software vulnerabilities in the days ahead. Just don't let your organization be part of one of them.
Why Cybercriminals Attack: A DARK READING VIRTUAL EVENT Wednesday, June 27. Industry experts will offer a range of information and insight on who the bad guys are – and why they might be targeting your enterprise. Go here for more information on this free event.
Tim Mackey is Principal Security Strategist, CyRC, at Synopsys. Within this role, he engages with various technical communities to understand how to best solve application security problems. He specializes in container security, virtualization, cloud technologies, distributed ... View Full Bio