Published using Google Docs
Study: privacytools.io best served fresh (2015-04-11 - 2015-04-12)
Updated automatically every 5 minutes

Privacy Tools best served fresh

2015-04-11 - 2015-04-12 by Kasper Kyllönen, @KasperKyll on Twitter

TL;DR

Survey itself

Results

Credits & Thanks

Conclusions

TL;DR

Software based privacy tools rely on the cryptography. Popular crypto software components, such as OpenSSL, are used to build these tools. New versions of crypto software components are often security updates. In safety and privacy critical software it might be safest to expect these components to be up to date. Component versions used in the latest tools mentioned on privacytools.io page were analyzed. Component versions were used to calculate “best before dates” for the tool downloads. I found out that for my taste some of the tools may have gone stale and their safety may have expired.

Survey itself

  1. chose target tools systematically from the https://www.privacytools.io
  2. collected all the tools with simple downloads from there
  3. recorded  tool’s name, platform, download format  and download URL
  4. recorded the reason for skipping some of the tools
  1. downloaded the tools over the weekend of 2015-04-11 - 2015-04-12
  2. uploaded all the downloaded tools to the http://bomtotal.com
  3. recorded the resulting Bill of Materials URLs
  4. recorded the automatic tool version identification
  5. recorded the identified OpenSSL, OpenVPN, NSS, GnuTLS and PolarSSL versions
  6. decided to focus on the OpenSSL versions due to lack of time
  7. collected the OpenSSL version history from the OpenSSL release notes
  8. used the OpenSSL version history to determine best before dates for the old versions
  9. compared identified OpenSSL versions for the tools against the OpenSSL history
  10. calculated a best before date for each tool with an identified OpenSSL component
  11. published the resulting survey spreadsheet
  12. wrote and published this study document

Results

The survey spreadsheet is available with all the details from:

Roughly 1/3rd of tools were identified to contain OpenSSL, roughly 1/3rd didn’t contain OpenSSL and for roughly 1/3rd of the tools the analysis was not applicable. Sometimes the BOMtotal failed to identify any components in the Bill of Materials.

Different tools contained traces of OpenSSL versions 0.9.6c, 0.9.8e, 0.9.8y, 0.9.8za, 1.0.0e, 1.0.0f, 1.0.0k, 1.0.1c, 1.0.1e, 1.0.1g, 1.0.1h, 1.0.1j, 1.0.1k, 1.0.1l, 1.0.1m and 1.0.2a. That is 16 different versions, some of them being seriously out of date or outright dangerous. Versions affected by the Heartbleed vulnerability and a version over 10 years old were found. In some cases the OpenSSL was perfectly up to date.

Some tools contained multiple versions of the OpenSSL, worst one containing three different versions. Same happened with other components as well, e.g. multiple versions of the zlib were found from a single download. One download had three competing SSL/TLS implementations (OpenSSL, GnuTLS and PolarSSL)  in its list of ingredients.

The best before date was calculated based on the oldest version of the OpenSSL used in the tool binary in question. In the case of multiple versions of the OpenSSL this calculation could have been done based on the latest version included but better to be safe than sorry?

Even if the software contains traces of vulnerable OpenSSL, it may not be exploitable due to how it is used, but again better to be safe than sorry?

Browsers stood out as a category of tools with most up to date components.

Credits & Thanks

Conclusions