Evaluating Security Measures in Open Source Projects

Evaluating an Open Source Project's Security

April 10, 2012
By Tim OBrien

Last week, I wrote about how important it is to pay attention to the security of the open source software (OSS) projects you depend on. This isn't just a one-time responsibility when you are trying to choose which component to depend on; this is an ongoing requirement. Even if you use the most secure OSS projects out there, if you don't pay attention to security updates, it's all for nothing. Staying secure requires constant vigilance.

In this post, I'm going to talk about OSS project security. Since we've been paying a lot of attention to OSS security, I wanted to lay out some guidelines for evaluating an OSS project's security. There are many approaches to security from OSS projects: on one end of the spectrum, a one-person OSS project on Github won't have a formal approach to security; on the other end of the spectrum, a project at the center of a billion-dollar commercial ecosystem (like Apache httpd or Tomcat) will have a dedicated security team.

This post focuses on the secure end of the spectrum—projects like Tomcat and Apache httpd with dedicated security teams. Here are some baseline requirements for an OSS security team. If you maintain an open source project and want to let the end-user know you take security seriously, you should consider starting a security team and following the guidelines in this post.

If you are consuming open source, you should look for the following signs that this project has a mature approach to security in place:

Here are a few examples of projects with mature security teams:

These projects have enough developers to have created a critical mass of both end-users and developers. All of these projects also have a strong commercial interest that can sustain continuous investment in a security team. As I've been surveying open source security, I've been impressed at the speed with which most open source projects react to security vulnerabilities. In general, projects attached to a respected forge (like Apache and Eclipse) are associated with a process and procedure to ensure that end-users have an interface to a security team. On the other hand, I see a large list of projects that don't present any interface for security other than a public developer's list.

If we're going to take application security seriously, every open source project should take the time to meet these minimum standards for presenting a secure interface to end-users.

Written by Tim OBrien

Tim is a Software Architect with experience in all aspects of software development from project inception to developing scalable production architectures for large-scale systems during critical, high-risk events such as Black Friday. He has helped many organizations ranging from small startups to Fortune 100 companies take a more strategic approach to adopting and evaluating technology and managing the risks associated with change.