The Top 25 Most Dangerous Programming Errors
Open Source No Comments »Jim Berets
Vice President of Product Management
jberets@blackducksoftware.com
Definitively knowing what encryption is in use lowers security risk
On February 16, Version 2.0 of the CWE/SANS Top 25 Most Dangerous Programming Errors was released. The Top 25, developed collaboratively by more than 30 cyber security organizations, are the most widespread and critical errors that lead to serious software security vulnerabilities and attacks.
“Use of a Broken or Risky Cryptographic Algorithm” (CWE-327) made the list, coming in at #24. Many companies unwittingly and unnecessarily expose themselves to this risk, which could result in the disclosure of sensitive information.
To avoid such a risk, the CWE/SANS report authors recommend the following:
• “Use a well-vetted algorithm that is currently considered to be strong by experts in the field, and select well-tested implementations.”
• “Periodically ensure that you aren’t using obsolete cryptography.”
• “Automated methods may be useful for recognizing commonly-used [cryptography] libraries or features that have become obsolete.”
For those of you familiar with us, one of the key capabilities in Black Duck Export is scanning for and detecting cryptography in code. While one use of Export is ensuring compliance with government export controls surrounding encryption, a key part of this is to detect which crypto is in use. Using our technology, Black Duck conducted a study of its own revealing encryption algorithms widely embedded in open source software.
The CWE/SANS recommendations do work. On multiple occasions we have heard from Black Duck customers who have discovered, to their surprise, that the encryption algorithms they were actually using was much weaker than they intended.
According to the Ponemon Institute’s most recent U.S. Cost of a Data Breach Study, the cost of data breach incidents to U.S. companies is on the rise. The average total per-incident costs in 2009 were $6.75 million, compared to an average per-incident cost of $6.65 million in 2008.
Another good reason to make sure you know your code so that your software development teams and your organization can have the peace of mind to focus on your top business objectives.
In a recent Back Duck survey, we found that companies doing software development are using significant amounts of open source software; about 22% of code was identified as originating from an OSS project.
I was recently talking to prospect who was digging very deeply into how hard it would be for his developers to “game” Protex, i.e. get some open source code and modify it to the point that it would not be found in a scan. In the end, he was convinced that the analysis performed by Protex is sufficiently sophisticated that gaming the system isn’t worth it. Fooling the tool requires as much work as writing the code from scratch. However to me, the bigger issue is a fundamental belief that given the chance people will generally try to do the right thing.
Everybody knows open source software is free, and many know it has other significant benefits for developers in productivity and enabling innovation, but there is no free lunch, as open source components are not free of obligations. Obligations around making enhancements available, attribution, use, the list goes on and your free lunch starts giving you indigestion.
Twitter
LinkedIn
Facebook