Slashdot Log In
OpenSSL Security Vulnerability
Posted by
michael
on Tue Sep 30, 2003 05:48 PM
from the what-me-worry dept.
from the what-me-worry dept.
SiliconEntity writes "On the heels of multiple OpenSSH vulnerabilities,
the OpenSSL project is now reporting a number of security vulnerabilities of its own. OpenSSL is a standard cryptographic library used in a wide variety of security applications. The new vulnerabilities range from denial-of-service attacks to stack corruption, which imply the possibility of running malicious code. New versions of the software are released today which address the vulnerabilities."
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
already patched (Score:2, Informative)
Re:already patched (Score:2, Informative)
phew (Score:5, Funny)
thank goodness i use windows
Re:phew (Score:5, Funny)
Hell, Microsoft is even kind enough to send the "Latest Internet Patch" right to my inbox. Sometimes 36 times a day, when necessary!!
Now that's what I call service!
Parent
HaHaHa! (Score:2)
Re:phew (Score:3, Insightful)
I like to just sit back, have an espresso, and let everything around me fall into chaos. Life is good; the flashing warning lights keep me company through the long night.
Re:phew (Score:3, Interesting)
If you were, would you even know it?
If an open source program falls in a binary only forrest, does it make a sound?
Which means.... (Score:2, Funny)
the second round of patches come out.
pheeew (Score:3, Funny)
Feeling kinda good about it (Score:3, Informative)
Also, it took me less than a minute to patch my webserver. That's good design.
Re:Feeling kinda good about it (Score:5, Insightful)
As opposed to what? The months before Blaster came out that the patch was available?
Things like this just illustrate that all software has bugs. OSS is not a magic solution, and Microsoft does not hire poor programmers. That won't stop rampant anti-"M$" trolls of course, but the more rational of us can look at this and move on.
Parent
Re:Feeling kinda good about it (Score:2)
Yeah; both of you who are on slashdot.
Re:Feeling kinda good about it (Score:3, Informative)
Actually, it was a couple of weeks. And that was very much the exception to the rule with regards to Microsoft's history with bug reporting/patching.
Case in point is the IE mishandling of SSL which allowed anyone with a valid cert to issue a "valid" cert for any OTHER domain. This went on, denied and downplayed by Microsoft, for HOW long?
Re:Feeling kinda good about it (Score:5, Funny)
A+++++++++++!
Parent
Re:Feeling kinda good about it (Score:5, Insightful)
As opposed to what? The months before Blaster came out that the patch was available?
To be fair; that patch didn't install on a significant portion of machines (any system running w2k sp2), and the work-around Microsoft suggested didn't either, and if it did, it didn't until a reboot, which wasn't mentioned.
Add to that that the first patch appeared to install but did not (and would also not "re"install) on a number of machines. Today microsoft advises you to run a firewall and anti-virus programs all over their webpage. Before the blaster incident they didn't, because they hadn't dropped the ball quite as badly yet.
I also find it (not so..) amusing that the System File Checker doesn't work without the DCOM service running (which isn't running for example, in Safe Mode, a Mode you'd expect sfc to be used in), and that DCOM for some reason listens to any one who will talk to it, rather than, by default, restrict access to 127/8.
Parent
Why is some software more secure than others? (Score:5, Insightful)
I got annoyed at the slashdot comments last time there was security hole in OpenSSH and wrote this page [irccrew.org] (copy pasted below). I count OpenSSL as insecure software - we need a secure replacement. GNUTLS [gnutls.org] looks somewhat better, but I don't trust it too much either.
Why is some software more secure than others?
How do you measure software security?
Here's my definition on what is secure software.
Intro
I get really tired of seeing these kinds of comments every time some widely used software has security holes:
While they may be partially true, I think they're also very misleading and disparages the hard work that some secure software authors have done.
Simplicity Is Security
The difference between secure and insecure software is really the coding techniques being used by it's authors. Authors of secure software do everything they can to prevent accidental mistakes from ever happening. Authors of insecure software just fixes the accidental mistakes. There are very few secure software authors.
Auditing insecure software doesn't make it secure. Sendmail is a good example of this. It's been audited countless times by competent people. The simplest mistakes were catched easily long time ago, but a few very difficult to find vulnerabilities were found only recently.
How do secure software authors then avoid the kind of security holes that are difficult to find? By keeping the code simple. The code doesn't get secure by polluting it with tons of security checks. It gets secure by keeping the security checks in as few places as possible.
Auditing secure software is easy. You can just quickly browse through most of the sources without having to stop and look at it carefully. Everything just looks clean, simple and correct. vsftpd is a good example of this.
Sure, it's still possible that secure software has some security holes occationally. It just happens a lot less often (if ever) and usually the problems are less critical. For example none of the security holes in Postfix have lead to arbitrary code execution or being able to read other peoples mails. Denial of Service attacks are nothing compared to them.
(some examples in the web page not included)
Re:Why is some software more secure than others? (Score:3, Informative)
And if you think auditing "secure software" is easy, you're just setting yourself up to be owned. Auditing sh
Re:Why is some software more secure than others? (Score:2)
Complexity is fine, but it doesn't mean that the implementation has to be full of code that is both difficult to follow and that looks insecure at the first glance. I have looked at both GNUTLS and OpenSSL sources and GNUTLS is significantly easier to follow and it does pretty much the same thing.
Auditing depends on what you're interested in. Auditing sources for buffer overflows and other common security flaws must be easy. Auditing for crashes and more subtle bugs of course requires to be much more care
Re:Why is some software more secure than others? (Score:3, Informative)
Re:Why is some software more secure than others? (Score:4, Insightful)
Perhaps no software is absolutly secure, and without bugs, but we're not anywhere close yet.
Software needs to be designed (engineered is a better word) to be secure, modular and ONLY as functional as needed.
I think in general, OSS and Linux do this better than Windows does, but it's a methodology change every OS level software writer needs to take to heart.
It's critical when Office crashes, or had bugs, but not as critical as in SSL, Apache or something similar.
In short, I think the laissez faire attitude we all have, both from accepting bugs, and about coding them ourselves is a SIGNIFICANT part of the problem. We need to raise the expectations, and hold people/companies accountable when these standards are not met.
Cheers,
Greg
Parent
Re:Why is some software more secure than others? (Score:5, Insightful)
Here lies the problem:
1) Cheap
2) Fast
3) Secure
Pick 2
Parent
Re:Why is some software more secure than others? (Score:2)
Re:Why is some software more secure than others? (Score:5, Informative)
You're way off base in this case. SSL requires the use of X.509 certificates, and it was in the cert parsing code that these new vulnerabilities were found. X.509 means ASN.1 formats, which have at least two different encoding rules, BER and DER that both must be supported; implicit versus explicit tags; several different ways of encoding packet lengths, and a host of other complexities. There's no way to write this kind of code and just keep it simple as you describe. Any implementation of SSL which is going to interoperate with other systems on the net is going to face these complexities.
I've written certificate handling code so I know how complicated it is. Also worth reading is Peter Gutmann's somewhat dated but still insightful X.509 Style Guide [auckland.ac.nz] which describes some of the horrors an X.509 implementation has to deal with.
In this case the failures were mostly in the error handling, and any developer knows that this tends to be the hardest part of your program to get right. Not only are there a lot more ways things can fail than go right, but they can fail in many more places in your code and it is very difficult to make sure your program can recover gracefully from everywhere something might go wrong.
Also, I'm not sure if it's public yet, but a lot of other implementations are affected by this besides OpenSSL. See the CERT advisory when it comes out and you will find some of the biggest names in the security business got burned by this. It's absurd to suppose that your cosmic insights are somehow being overlooked by companies that base their reputations on security.
Parent
Re:Why is some software more secure than others? (Score:3, Interesting)
I think I'll have to change the wording some more. Complex things require complex code, that's fine. If there's a security hole because the behaviour was wrong in some case, it's understandable.
What I especially don't like is that the same old buffer overflow and other memory allocation related problems come up over and over again. The 1. problem in this case was a double-free() bug. Although this is the most difficult C-related problem to solve easily (without garbage collector), with cleaner code it lik
Re:Why is some software more secure than others? (Score:5, Insightful)
The errors which you should expect from a X.509 implementation involve failing to parse obscure certificates correctly or failing to give the right error message about a malformed X.509 certificate. If the code itself is simple in implementation, it should be straightforwardly obvious that, no matter what, the parser will return either an X.509 structure or an error message; the complexity of X.509 merely prevents anyone from determining if the return value is actually correct.
OpenSSL has a lot of spagetti code, wrappers, and unnecessary function pointers, inherited from the SSLeay days. In an ideal world, it would be rewritten to be more straightforward, but that's more effort than anyone is really willing to put in (except the GNUTLS people, but that's license-related anyway).
Parent
Re:Why is some software more secure than others? (Score:3, Interesting)
I always wanted to have better support for error handling in C. Programmers should not be forced to handle errors by nest
Re:Why is some software more secure than others? (Score:4, Informative)
Exceptions would be nice, but I think in most cases the cleanup is just freeing dynamically allocated memory. Solution is to get rid of the free() calls. Garbage collector, memory pools, alloca(), data stack, etc. Data stack [irccrew.org] and memory pools have worked very well with my latest project [dovecot.fi]. Error handling is almost always just a return call and there's hardly any wrapper functions just for handling errors. Too bad I haven't yet had time to test how well they'd work in other kind of software. I'd guess pretty well except maybe for general purpose libraries since they require a bit different way of writing C code.
Parent
Re:Why is some software more secure than others? (Score:3, Interesting)
It seems like a good step forward.
the ole keep it simple stupid... (Score:5, Insightful)
Be advised that complex data dependent protocols are not trivial to code. Not only that, they are even harder to get to interoperate with other implementations of the same protocol. All the nasty little bug-a-boos show up that the protocol designers hadn't thought or even dreamed of.So what's the plan? Toss out all the OpenSSL/GNUtls code and start over...but this time let's try something new... let's make it simple and secure?
What you don't seem to understand, is that people far smarter than you and I have already had these philosophical debates and do you know what they came up with?
No software is completely secure.
Prompt disclosure is important.
More eyes, code review, what have you is a good thing.
Plan for failure/breaches/etc.
Your measure of secure software is juvenile. It doesn't even provide an interesting definition of software security. Pointing at less than complete implementations of smtp and ftp makes your entire argument suspect. Also the "auditing secure software is easy" comment is another dead give away.
Parent
Redhat 6.2 updates? (Score:3, Interesting)
Other than compiling from source, that is. Or upgrading to a supported distro! I'm hoping to put off that day!
RedHat RPMS (Score:3, Informative)
one of life's little ironies (Score:3, Funny)
Well it amused me anyway
OpenSSH not vulnerable (Score:5, Informative)
OpenSSH isn't remotely vulnerable to these attacks. Recent versions don't use the OpenSSL ASN.1 parsing code for signature validation (e.g. signatures coming from the network). The OpenSSL ASN.1 code is only used for parsing private keys.
This was done a little while ago [theaimsgroup.com], as Markus (wisely) decided that we didn't need a whole ASN.1 parser just to verify signatures.
Don't let that slow you down patching the issue - Apache and other SSL/TLS apps (OpenLDAP, the various imapd's, etc.) may be vulnerable.
Understand the scope of the vulnerability (Score:3, Informative)
Vulnerable to denial of service attack
Potentially vulnerable to remote exploits (unknown currently)
For a client (e.g. mail client) using OpenSSL
Re:Got the popcorn (Score:5, Insightful)
Waited for what, perfection?
In a Real World environment, "pretty safe" is a whole hell of a lot better than nothing. So long as flaws are fixed quickly after being identified, I don't see what the problem is.
If you want *real* security, you need an air gap. Otherwise, quit yer bitchin'.
Parent
Re:Minor Bug (Score:3, Informative)
4. Due to an error in the SSL/TLS protocol handling, a server will parse a client certificate when one is not specifically requested. This by itself is not strictly speaking a vulnerability but it does mean that *all* SSL/TLS servers that use OpenSSL can be attacked using vulnerabilities 1, 2 and 3 even if they don't enable client authentication.
so i do think that it affects most users.
Re:first post! (Score:3, Funny)
posted via lynx over openssh! w00t! w00t!
Oh, so that was your box...sorry about that.
Re:at least the OOS community puts out notices (Score:2)
Re:Open Source Code Quality (Score:2)
I think you don't understand the meaning of "firmly refutes".
From the man page:
Re:Open Source Code Quality (Score:4, Insightful)
Linux allocates physical memory pages on the fly, as you use them. Try this code. It allocates 256 megs on each run until you exit. How many times do you have to run it before it says malloc returns 0? How much more memory than you have (including swap) did it allocate?
This kind of thing happens with stacks as well. Memory on your stack is allocated on the fly as you use it. What happens when the kernel can't allocate a memory page when it is first accessed? It kills the process. hard. This means that user processes can steal resources and cause any number of root processes to die, just because they made a function call that required a larger stack.
This does have many security and dependability implications, as the original poster said. Most people do not know this and do not handle this case!
--jeff++
Parent
pronounciation (Score:2)
Re:Lazy admin and Auto-Update (Score:2)
Re:Lazy admin and Auto-Update (Score:3, Informative)
On the other hand, unlike windows update you don't need to reboot every time you update something like this (the only time you ever need to boot is if you update the kernel).
Re:Lazy admin and Auto-Update (Score:3, Informative)
Lazy applies to admins, open-source applications, closed-source applications, make-up applications, partners in relationships, oil changes, bill-paying, laundry, dishes, dogs, eyeballs, and any other situation where not taking action is available as an option, which happens to be most situations. No fix for anything is any good if it goes unused.
> what good is an immediate bugfix if the admin
Re:Lazy admin and Auto-Update (Score:3, Interesting)
For example, the two latest RPC patches (blaster and successor) have been mildly annoying to install. Sure, you just run MS's update tool, but I've found that about 20% of machines still read unpatched according to MS's security auditing tool. This makes it kindof a pain to ensure compliance.
After reapplying the patch six or seven times to some machines, our network is safe. That's kindof lame.
Similarly, the patch that would have pr
Re:Lazy admin and Auto-Update (Score:3, Informative)
RedHat RHN service:
$60 a year gets you two "entitlements" and they are $60 each afterward. You can change your entitlements to any computer as often as you want. I use one entitlement for just updating fresh installs, for instance. You can easily run a cron job by placing a script in
up2date -p
up2date -u
The -p updates their servers with all the supported packages you have installed(not necessary if you don't install anything or haven't since the last -
Obligatory Gentoo Zealotry (Score:3)
Basically every time I log in in the morning I get a message like:
# Current files on iceage.doughtyhouse.net that need a looksie:
#
#
#
It's not windowsupdate, but it gets the job done even when I'm on vacation, and I've never had
Re:Lazy admin and Auto-Update (Score:2)
Nice.. very nice. I'll be interested in seeing some statistics regarding the usage of that tool later on...
(this could also help those being sued by the RIAA should a case ever go to court).
Re:dang! (Score:5, Interesting)
"Just run Windows Update. It's easy!"
"Just run apt-get It's easy!"
I'd like to quit running updates every 15 seconds or so.
I'd prefer it was right the first time. I'm getting really tired of patching machines all over the place. I'm turning into a patch money. Test, patch, test, patch, test, patch - with an occasional sleep and eat thrown in occasionally.
No matter how easy Windows update is, it still has to get done. If MS does it for you, you'll worry about them breaking stuff. If you have to do it yourself, you worry you'll miss something, or break it yourself. Frankly, that sucks.
Cheers,
Greg
Parent
Re:Shh! What's that sound? (Score:2)