Vulnerabilities / Threats
1/13/2016
12:30 PM
Mike Pittenger
Mike Pittenger
Commentary
Connect Directly
LinkedIn
RSS
E-Mail
50%
50%

We Are What We Eat: Software Assurance Edition

The fact that open-source code you use is free from vulnerabilities today doesn't mean that it will remain that way in the near future.

Open source is eating the world, or so Marc Andreesen famously once claimed.

This is a good thing overall. Open-source communities are growing in number and popularity.  Organizations of every size are embracing it, including the U.S. Department of Defense, and many are encouraging employees to contribute code to the open-source communities. After all, a well-supported open-source community reduces support costs and risks.

But if we are going to rely on open source so widely (and we are), we have an obligation as security professionals to understand what we’re deploying. 

Code Hygiene

Code hygiene refers to the “cleanliness” of an application – in particular, minimizing vulnerabilities and code complexity. Good code hygiene requires visibility into all the components used to build the application, along with information on characteristics that are important to us for a particular use case. Several activities in the software development lifecycle support good code hygiene, including threat modeling and automated testing (i.e., static and dynamic analysis).

The shortcoming of each of these activities is that they only provide a point-in-time snapshot of code hygiene, and can’t account for a changing threat space.

Think of it this way: you go to the dentist and get a clean bill of health (no cavities, your gums are fine, and even your dog isn’t put off by your halitosis). That’s great news, but it doesn’t mean you should stop brushing or flossing, or start opening beer bottles with your teeth. Ongoing diligence is required. If we learn tomorrow that carrots cause cavities, we need to adjust our dental care strategies.

The same is true with open-source security. Security-conscious organizations will consider third-party components, including open-source ones, as potential risks. Appropriate diligence will include assessing the historical vulnerability density of the projects and community activity. While getting a clean bill of health for your open-source review is good, the threat landscape is dynamic. More than 4,000 new vulnerabilities were disclosed by the National Vulnerability Database in open-source components in 2014 alone. The fact that your open-source code bases are free from vulnerabilities today doesn’t mean you can ignore them for the next year.

Know Your Code

A fundamental rule of security is that you must be aware of the threats you face to defend against those threats. Because open source is so easy to add to a code base, organizations often have little visibility into the components they are using, and the associated risk that comes along for the ride.

Even within organizations with mature policies for open source use, controls that enforce those polices are often missing. In the typical organizations we speak with, security personnel are often in the dark about which open-source projects are used. Most rely on manual processes which are unreliable, inaccurate, and unenforceable.

For example, a large financial services institution I spoke with recently was very specific about their policies for using third-party code. They insisted on a listing of licenses, alternative libraries, code complexity, and vulnerability history before approving any open source for internal use. All good, right?

They also acknowledged, however, that their policies were “unenforceable”; no controls existed to ensure that only the specific versions of approved projects were used, or even that unapproved components could not enter the code base. Much more common is the defense contractor who asks each development lead “what did you use?” so they can update their end-user license agreements. In both cases, the results of the queries end up in spreadsheets, often never to be opened again.

Christmas for attackers…

The announcement of open-source vulnerabilities like Heartbleed, Shellshock, and Poodle are like Christmas to attackers. They combine the characteristics of a target-rich environment, publicly disclosed vulnerabilities, and a “pull” support model (you, as the user, are responsible for knowing about and updating the open source you use). We’re even polite enough to publish exploits for most of these, and YouTube videos to show how to use them. To avoid being the latest victim, talk to your head of application development and find out:

  • What policies exist for open source?
  • Can they produce a list of components in your applications, and how did they create that list?
  • What controls do they have to ensure nothing gets through?
  • How are they tracking vulnerabilities for all components over time?

We all know that security is ephemeral. An important part of maintaining security is understanding what open source code you’re consuming, and how that is affecting the health of your applications over time.

Mike Pittenger has 30 years of experience in technology and business, more than 25 years of management experience, and 15 years in security. At Black Duck, he is responsible for strategic leadership of security solutions, including product direction. Pittenger's extensive ... View Full Bio
Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
Register for Dark Reading Newsletters
White Papers
Video
Cartoon Contest
Write a Caption, Win a Starbucks Card! Click Here
Latest Comment: I decided to treat the kiddos to a TV dinner tonight.
Current Issue
Five Emerging Security Threats - And What You Can Learn From Them
At Black Hat USA, researchers unveiled some nasty vulnerabilities. Is your organization ready?
Flash Poll
Slideshows
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2013-7445
Published: 2015-10-15
The Direct Rendering Manager (DRM) subsystem in the Linux kernel through 4.x mishandles requests for Graphics Execution Manager (GEM) objects, which allows context-dependent attackers to cause a denial of service (memory consumption) via an application that processes graphics data, as demonstrated b...

CVE-2015-4948
Published: 2015-10-15
netstat in IBM AIX 5.3, 6.1, and 7.1 and VIOS 2.2.x, when a fibre channel adapter is used, allows local users to gain privileges via unspecified vectors.

CVE-2015-5660
Published: 2015-10-15
Cross-site request forgery (CSRF) vulnerability in eXtplorer before 2.1.8 allows remote attackers to hijack the authentication of arbitrary users for requests that execute PHP code.

CVE-2015-6003
Published: 2015-10-15
Directory traversal vulnerability in QNAP QTS before 4.1.4 build 0910 and 4.2.x before 4.2.0 RC2 build 0910, when AFP is enabled, allows remote attackers to read or write to arbitrary files by leveraging access to an OS X (1) user or (2) guest account.

CVE-2015-6333
Published: 2015-10-15
Cisco Application Policy Infrastructure Controller (APIC) 1.1j allows local users to gain privileges via vectors involving addition of an SSH key, aka Bug ID CSCuw46076.

Dark Reading Radio
Archived Dark Reading Radio
Cybercrime has become a well-organized business, complete with job specialization, funding, and online customer service. Dark Reading editors speak to cybercrime experts on the evolution of the cybercrime economy and the nature of today's attackers.