Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Stack Smash Protection disabled (was HEADS-UP: Stack Smash Protection enabled by default for amd64 and i386)



On Nov 12, 2009, at 10:49 PM, Quentin Garnier wrote:

> On Thu, Nov 12, 2009 at 10:05:07PM -0500, Steven Bellovin wrote:
>> 
>> On Nov 12, 2009, at 8:45 PM, Elad Efrat wrote:
>> 
>>> On Thu, Nov 12, 2009 at 6:58 PM, David Holland
>>> <dholland-current%netbsd.org@localhost> wrote:
>>>> On Thu, Nov 12, 2009 at 03:30:23PM -0500, Elad Efrat wrote:
>>>>>> After protests from multiple developer because of the performance hit
>>>>>> I've reverted the changes. SSP is now off by default (except for
>>>>>> library and network daemon builds) on all platforms, in particular
>>>>>> for NetBSD/amd64 and NetBSD/i386 kernels.
>>>>> 
>>>>> Unfortunately for rmind@, pooka@, and haad@, until proven otherwise,
>>>>> it seems more developers are interested in having SSP enabled by
>>>>> default. Please put it back. No developers are more equal than others.
>>>> 
>>>> I don't see that there's a convincing rationale for turning it on in
>>>> the kernel.
>>> 
>>> Unfortunately for you that does not change the situation one bit.
>>> 
>>> However, for pure fun, let's look at the "rationale" here. If your
>>> kernel is built without SSP and a vulnerability that it might have
>>> protected against is being exploited, there's a fairly good chance
>>> that it will result in either stack corruption leading sooner or later
>>> to a panic, or to a kernel compromise. (Not root compromise -- there's
>>> a very big difference.)
>> 
>> Before we had plists in the kernel, I wasn't as worried.  We have them now.
> 
> And now the proplib FUD.  That kind of blanket statement from such a
> respected security professional is just sad.  You're worried you have
> plists?  You've had ioctls almost forever!  And yes, I'm just throwing
> that like that.  Go and stop me.


"Stop you"?  I've never tried to stop anyone from disagreeing with me.  I make 
no claims to omniscience or infallibility; I'm always happy to learn.  And I 
would hope we could disagree politely on a technical issue.

However, you're not the only one to ask me for more of an explanation of that 
point.  Ioctls and other, older system calls -- up to and including open() -- 
that take string arguments generally use them relatively simply, with little or 
no parsing required.  

Plists are different.  (And no, I'm not saying they should be removed from the 
system.  At this point, my real complaint about plists is that they're often 
composed of bad XML, by which I mean XML that doesn't really use the expressive 
power properly, thereby complicating some applications.)  By their nature, they 
require many string operations to build or to parse.  They're nested 
structures.  The components are inherently very variable in length.  The 
relative complexity of the string operations for plists is much higher than 
what we had before; therefore -- in my opinion -- the risks of bugs is much 
higher.

Also note that I didn't say I wasn't worried before.  I said -- see above -- 
that I wasn't *as* worried.

Your other point is about hype.  You do have a point, though I'm not convinced 
that 5% is a big enough difference to matter that much.  However, security 
problems can also generate negative publicity.  (I think that Firefox may be in 
trouble soon on those grounds -- have you noticed the relative security hole 
rate of it vs. IE lately?  IE is still hurting from architectural security 
issues, but overall they've had many fewer serious bugs of late, and people are 
starting to notice.)

All that said, here it's a question of balance.  I am, as you note, a security 
guy; I thus tend to attach a greater weight to security issues than to 
performance.  That's my own opinion -- and it's just that, an opinion.  I'd 
like to try to agree on the facts, however.

                --Steve Bellovin, http://www.cs.columbia.edu/~smb







Home | Main Index | Thread Index | Old Index