OpenSSL To Undergo Massive Security Audit 69
rjmarvin writes Now that its codebase is finally viewed as stable, OpenSSL is getting a good top-to-bottom once-over in the form of a sweeping audit. As part of the Linux Foundation's Core Infrastructure Initiative, the foundation and the Open Crypto Audit Project are sponsoring and organizing what may arguably be the highest-profile audit of a piece of open-source software in history. The audit itself will be conducted by the information assurance organization NCC Group, and its security research arm, Cryptography Services, will carry out the code review of OpenSSL's 447,247 line codebase over the next several months.
Must be designed secure - not "coded" (Score:5, Informative)
Re: (Score:2)
This paper seems to indicate that the capability of the random number generator varies based on implementation, if this is the case then it seems that the foundation for OpenSSL is suspect. Will rand and prng be part of the audit (they were not mentioned in the linked article)
ABSTRACT OpenSSL is the most widely used library for SSL/TLS on the Android platform. The security of OpenSSL depends greatly on the unpredictability of its Pseudo Random Number Generator (PRNG). In this paper, we reveal the vulnerabil
Re: (Score:1)
I absolutely agree with you on this, but it is a good first step, IMO. We have to start somewhere. Unfortunately, a lot of FOSS is "coded" and not "designed". If anyone asks me to code something, I tell them that is not how I do it - 80-90% design, 10-20% code. That's my rule of thumb!
Re:Must be designed secure - not "coded" (Score:4, Insightful)
Re:Must be designed secure - not "coded" (Score:5, Insightful)
Couldn't the first step be libreSSL? They cleaned out a ton of junk and applied some uniform coding standards. That would be much easier to audit, and a much sounder base. Flag as Inappropriate
Exactly (no mod points left, sorry). Auditing OpenSSL makes about as much sense as auditing Windows 95, we already know it's broken beyond repair, and any further effort expended on it is just throwing good money after bad. Focus on something that's worth going with, like LibreSSL, or something that was never OpenSSL to begin with.
Re: (Score:2, Interesting)
Conversely, your nirvana fallacy does not hold up. OpenBSD was "designed" to be secure, just to become a laughing stock for reasons you outlined. All code without formal proof (ie all of systems code written in C) is potentially vulnerable no matter what. All you can do is throw best auditing talent at i
Re: (Score:2)
Re: (Score:1)
Actually, I disagree. Assurance arguments do not necessarily help. They can make the overall view a lot more complex and a lot harder (or even impossible) to evaluate. An example one of my CS professors gave may illustrate this: A company had a full formal specification for a piece of software. They wanted a security evaluation of it based on that specification. That proved to be impossible: It was 2 meters of regal space printed out and completely beyond the capabilities of any human or automated evaluati
Re: (Score:2)
Re: (Score:1)
I see. That makes a lot more sense.
But usually you cannot leave the code out from the argument, there are just far too many vulnerabilities that result from technical details. Hence I believe this can be done in any number of fashions, but at the end, there is a sound argument _why_ this particular piece of code is secure on algorithmic and on code level and that gets attached to the code.
Re: (Score:1)
Re: (Score:2)
I don't think OpenSSL was even coded. It reads like an OOP nightmare.
Re: (Score:1)
Re: (Score:1)
That sounds like policy-believer nonsense. Security is not a top-down thing, it _always_ needs to be evaluated in a holistic way. That is what it makes security so hard, you cannot just use the right "tool" or "method" or "policy". That does not work at all.
While policies, methods, etc. cannot make you secure, actual code can be secure or not. It is always funny when I explain to clients why all their compliance and adherence to policies, standards and methods does not make them secure, but does quite often
Re: (Score:2)
Re: (Score:1)
Ok, misunderstanding cleared up.
Well, I firmly believe the whole design-pattern movement is a failure, and even more so for security. Sure, incompetent coders can get up to maybe semi-competent with it, but that is basically it. For secure code, you need to understand everything, and pre-made patterns abstract necessary detail away. At the same time, the "vocabulary" that you get and that some people praise may help on simplistic (but large) systems, but generally also suffers from abstracting necessary det
Re: (Score:2)
I'm gonna FREAK! (Score:2, Insightful)
Seems a bit late... Should have started the audit soon after the Heartbleed bug was found, not 11 months later.
Re:I'm gonna FREAK! (Score:5, Informative)
Re: (Score:1)
Yes, some people take an issue with that, fe:
https://blog.hboeck.de/archive... [hboeck.de]
Some naysayers are of the opinion that Theo & his peck are good at writing well designed software from scratch (eg openssh), however their "securing" of existing codebases (eg bsd kernel and libc) ended up in trainwreck. libressl is sadly the case of the latter.
Re:I'm gonna FREAK! (Score:5, Informative)
Oh, really? A trainwreck?
Explain this, then: [Source is here [undeadly.org]]
The following CVEs were fixed in earlier LibreSSL releases:
CVE-2015-0206 - Memory leak handling repeated DLTS records
CVE-2014-3510 - Flaw handling DTLS anonymous EC(DH) ciphersuites.
The following CVEs did not apply to LibreSSL:
CVE-2014-3571 - DTLS segmentation fault in dtls1_get_record
CVE-2014-3569 - no-ssl3 configuration sets method to NULL
CVE-2015-0204 - RSA silently downgrades to EXPORT_RSA
Let's see... 5 CVE were either fixed in LibreSSL or did not apply to it. That's not too bad for a "trainwreck".
And what about that little dig at NetBSD [tedunangst.com]? Hmmmm... You mean some people take stuff from OpenBSD and make it less secure? The plot thickens.
Oh, and by the way, that OpenSSH thingie? Yup, it came from the last "open source" version of SSH [wikipedia.org], the commercial software. In other words, OpenBSD devs took something already existing and made it better. Hmmm... I think you just don't know what you are talking about...
Listen, you can find OpenBSD programmers annoying and even call them "masturbating monkeys [hackerco.de]", but they know their stuff. Period. Calling what they do a "trainwreck" is hyperbole at best and just plain untrue at worst.
This being said, to get back on topic, auditing OpenSSL is not a bad idea. Far from it.
Re: (Score:2)
Re: (Score:1)
Re: (Score:1)
In your face, libressl doesn't have the pile of vulnerabilities just announced with openssl, because in most cases the crap removed, and one because proper design done:
DOES NOT APPLY TO LIBRESSL 2.1.6
* CVE-2015-0291 - OpenSSL 1.0.2 ClientHello sigalgs DoS
Affected code is not present.
* CVE-2015-0290 - Multiblock corrupted pointer
Re: (Score:1)
Re: (Score:3)
Seems a bit late... Should have started the audit soon after the Heartbleed bug was found, not 11 months later.
They were waiting for the NSA to approve the funding.
Re: (Score:1)
The timing is good and adequate: If you know you need to clean things up, then you clean them up _before_ you audit. Everything else just wastes audit resources.
Que 1000 posts fundraising for openbsd (Score:4, Interesting)
Better get ready for 1000 posts Fundraising for OpenBSD with the LibreSSL project.
Just remember, every dollar you donate for LibreSSL is not guaranteed to be spent on it, it goes into the general fund for OpenBSD.
Re:Que 1000 posts fundraising for openbsd (Score:4, Insightful)
Are you claiming the misrepresent where funding goes on the LibreSSL site?
"LibreSSL is supported financially by the OpenBSD Foundation and the OpenBSD Project. Please consider helping our efforts.
OpenBSD team still lightyears ahead getting the bad code out of openssl; this "audit" will not do as well as they have already done
Re: (Score:2)
I'm claiming they are technically telling the truth and don't care if someone misunderstands.
A person not knowledgeable about how the foundation is structured and donations are spent might be misled to believe that a donation made to the foundation for the purposes of LibreSSL would be spent on LibreSSL and they are happy to let that misunderstanding take place. Rather than be completely clear about not just what bank account they stick the money in but how it will be spent is an important detail that they
Not the time... (Score:5, Interesting)
Re: (Score:1, Interesting)
Because your solution presents fewer opportunities for the NSA to get their fingers on the project and insert flaws and backdoors.
Mod me down if you want, but that doesn't mean it's not true.
Re: (Score:1)
I know right!!! Screw OpenSSL. They may be all corporate centric, but they've had years upon years of repeated vulnerabilties.
LibreSSL, OpenBSD, and Theo's crew have always taken a hardcore stance on things and that's valuable.
I'm with LibreSSL. Go Go Go LibreSSL.
Re: (Score:1)
OpenSSL Valhalla Rampage blog (Score:5, Insightful)
.
It's also one of the funniest developer-centric things I've ever read - no holds barred for these guys in their contempt of the code they're ripping to shreds. Win/win.
Re: (Score:2, Informative)
Why bother with a security audit of the whole OpenSSL as-is, right here, right now, when the LibreSSL fork has been doing a lot of work
Presumably the audit was bid fixed-cost. Presumably these guys already built into the cost that they are going to build upon the work the LibreSSL team has done (it would be stupid not to).
LibreSSL is a great project, but they ripped out portability along the way. A fair argument can be made that it's easier to add portability back after all the crap is ripped out, but fi
Re:Not the time... (Score:4, Interesting)
LibreSSL is a great project, but they ripped out portability along the way.
Excuse me??!! Just like OpenSSH, they release a portable version, and the official release note says [undeadly.org]:
This release also includes a binary package for convenience integrating LibreSSL on Windows platforms, and the latest source tarball is signed with GPG and signify for easier integration into existing build systems.
We are talking about Windows, here... Sure, if you are into Windows 3.11 and VMS, LibreSSL is less portable than OpenSSL. But seriously, who even uses these two anymore??!!
OK, I'll grant you that LibreSSL is not a complete replacement for OpenSSL just yet. OpenBSD devs prefer working on their favourite OS, and I can't blame them. This being said, I would not be surprised if, in a couple of years, the rest of the world has switched to LibreSSL and forgotten the older version -- just take a look at OpenSSH... ;-)
Re: (Score:1)
LibreSSL is a great project, but they ripped out portability along the way.
[Citation needed]
In Related News... (Score:5, Funny)
NCC Group, and its security research arm, Cryptography Services, will carry out the code review
In related news, NCC Group today received 37 applications from extraordinary qualified candidates, all of whom -- by some extraordinary coincidence -- live in Langley, VA.
Canaries (Score:2)
Re:It is too much code to secure. (Score:4, Informative)
I don't think it is possible to secure 447,247 lines of code. I thought there was a chance before I saw that number.
Here's the best part: they can audit the security of nearly a half a million lines of code in "several months".
Re: (Score:2)
You don't need to look for kidney stones in bone marrow. Most likely what they are doing is better described by "screening" rather than "auditing" even though the later is the conventional word.
Algorithms (such as ciphers) tend to be fairly easy to cover with test suites, whereas memory management and handling of randomness sources are both fraught with peril and difficult to formally test.
It real
Re: (Score:2)
You don't need to look for kidney stones in bone marrow.
True enough, but which is the best organ in the code corpus to look for buffer overruns?
Your idea of using tools to whittle down the haystack in order to focus the search for needles seems like a good one, but do such security auditing tools already exist? If not, about the only automatic thing I could think of that you could get going in a short time over such a large body of code would be lint or similar static checking tools.
I've worked with a corpus of crypto code which consists of a collection of many
Re: (Score:1)
It very much depends. Often you only need to secure key interfaces and key functionality. Everything that fails securely (e.g. non-functional), for example, does not need to be audited.
For those that don't want to wait a year: (Score:2)
Huh? (Score:2)
Now that its codebase is finally viewed as stable, OpenSSL
Finally? As compared to what? The other 30-50 stable releases since it's creation in 1998, as a replacement / update for SSLeay (which was written by Eric Young and Tim Hudson)?
Re: (Score:2)
Finally in this case refers to the cleanup after the Heartbleed mess. Yeah, those releases were marked stable, but in this context, the auditors expected massive code shifts immediately post-Heartbleed and decided not worth the time to audit code that was possibly being culled anyway. They still had Win95 code for example, do you audit that? VAX code?
Re: (Score:1)
They will break it... (Score:2)
Re: (Score:2)
It's an audit, not a re-write. The results of the audit may drive re-writes, and the re-writes may lead to code breakage or at least loss of compatibility, but that's irrelevant to the audit itself. This is essentially a read-only review. It's definitely not a fork, a la LibreSSL.
Great (Score:2)
I'm a fan of both libressl and this project. Now we will have two dedicated groups working on improving the security of SSL. There will no doubt be sharing of findings, and both products will improve as a result.
SSLeay and OpenSSL have been neglected for too long. It's boring to work on this software, but that doesn't mean the work is not important.
Product of its environment (Score:2)
.
While audits are nice, what are the OpenSSL developers doing to change the development environment so that the new, [hopefully] improved versions don't revert to the security-challenged versions we've all come to know?
It's easy to change code, much less easy to change developer attitudes.