From: Gregory Weston on
In article <megadethguy-5BE652.20460202072008(a)newsgroups.comcast.net>,
Megadave <megadethguy(a)invalidgmail.domaincom> wrote:

> When 10.5 came out there was a great deal of controversy and problems
> with the firewall (mostly because it was a black box). What is the
> current level of confidence in it...? I'm thinking about moving back to
> it and turning IPFW back off...

Confidence in the firewall was never a problem. The controversy was over
the fact that when the firewall was activated in a certain mode,
software that exhibited either of two particular unsupported behaviors
stopped working. One of those behaviors has been essentially off the
table for serious application developers since the advent of the Mac and
the other has been unreliable since the release of Mac OS X.

For reference the two behaviors in question are:

1. An application that attempts to write back to itself. There are so
many circumstances under which this fails outright in the last 24+ years
it's downright pathetic that any vendor was shipping software that did
this last October. This has problems with the firewall because Apple's
security subsystem detects that the application has "changed" in some
way and assumes that there's a reasonable chance it has been tampered
with for nefarious purposes. One could argue that statistically the
likelihood is low, but again: the reality is that this behavior was
*never* considered legitimate or reliable in the history of the platform.

2. An application attempts to protect the user from running copies of
itself which have been tampered with by performing some sort of checksum
calculation on itself and refusing to run if the result doesn't match an
expected value. Essentially it's trying to do what the firewall does in
case 1, but it does so badly. This fails if the programmer is lazy about
checksumming and includes in the sum elements over which they have
neither control nor a guarantee of constancy. All versions of Mac OS X
have had the potential to silently edit certain segments of executable
files, so this hasn't been a safe course of action in nearly a decade.

Software that fails in the presence of the Leopard firewall because it
exhibits one of those behaviors is broken and should be reported to the
developer.

--
"Harry?" Ron's voice was a mere whisper. "Do you smell something ... burning?"
- Harry Potter and the Odor of the Phoenix
From: Barry Margolin on
In article <uce-2BF835.00281903072008(a)newsclstr03.news.prodigy.net>,
Gregory Weston <uce(a)splook.com> wrote:

> In article <megadethguy-5BE652.20460202072008(a)newsgroups.comcast.net>,
> Megadave <megadethguy(a)invalidgmail.domaincom> wrote:
>
> > When 10.5 came out there was a great deal of controversy and problems
> > with the firewall (mostly because it was a black box). What is the
> > current level of confidence in it...? I'm thinking about moving back to
> > it and turning IPFW back off...
>
> Confidence in the firewall was never a problem. The controversy was over
> the fact that when the firewall was activated in a certain mode,
> software that exhibited either of two particular unsupported behaviors
> stopped working. One of those behaviors has been essentially off the
> table for serious application developers since the advent of the Mac and
> the other has been unreliable since the release of Mac OS X.
>
> For reference the two behaviors in question are:
>
> 1. An application that attempts to write back to itself. There are so
> many circumstances under which this fails outright in the last 24+ years
> it's downright pathetic that any vendor was shipping software that did
> this last October. This has problems with the firewall because Apple's
> security subsystem detects that the application has "changed" in some
> way and assumes that there's a reasonable chance it has been tampered
> with for nefarious purposes. One could argue that statistically the
> likelihood is low, but again: the reality is that this behavior was
> *never* considered legitimate or reliable in the history of the platform.
>
> 2. An application attempts to protect the user from running copies of
> itself which have been tampered with by performing some sort of checksum
> calculation on itself and refusing to run if the result doesn't match an
> expected value. Essentially it's trying to do what the firewall does in
> case 1, but it does so badly. This fails if the programmer is lazy about
> checksumming and includes in the sum elements over which they have
> neither control nor a guarantee of constancy. All versions of Mac OS X
> have had the potential to silently edit certain segments of executable
> files, so this hasn't been a safe course of action in nearly a decade.
>
> Software that fails in the presence of the Leopard firewall because it
> exhibits one of those behaviors is broken and should be reported to the
> developer.

What do either of these behaviors have to do with the firewall? The
firewall blocks certain network packets, and has nothing to do with how
applications deal with the local filesystem.

--
Barry Margolin, barmar(a)alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
From: Gregory Weston on
In article <barmar-D8F7ED.00340903072008(a)newsgroups.comcast.net>,
Barry Margolin <barmar(a)alum.mit.edu> wrote:

> In article <uce-2BF835.00281903072008(a)newsclstr03.news.prodigy.net>,
> Gregory Weston <uce(a)splook.com> wrote:
>
> > In article <megadethguy-5BE652.20460202072008(a)newsgroups.comcast.net>,
> > Megadave <megadethguy(a)invalidgmail.domaincom> wrote:
> >
> > > When 10.5 came out there was a great deal of controversy and problems
> > > with the firewall (mostly because it was a black box). What is the
> > > current level of confidence in it...? I'm thinking about moving back to
> > > it and turning IPFW back off...
> >
> > Confidence in the firewall was never a problem. The controversy was over
> > the fact that when the firewall was activated in a certain mode,
> > software that exhibited either of two particular unsupported behaviors
> > stopped working. One of those behaviors has been essentially off the
> > table for serious application developers since the advent of the Mac and
> > the other has been unreliable since the release of Mac OS X.
> >
> > For reference the two behaviors in question are:
> >
> > 1. An application that attempts to write back to itself. There are so
> > many circumstances under which this fails outright in the last 24+ years
> > it's downright pathetic that any vendor was shipping software that did
> > this last October. This has problems with the firewall because Apple's
> > security subsystem detects that the application has "changed" in some
> > way and assumes that there's a reasonable chance it has been tampered
> > with for nefarious purposes. One could argue that statistically the
> > likelihood is low, but again: the reality is that this behavior was
> > *never* considered legitimate or reliable in the history of the platform.
> >
> > 2. An application attempts to protect the user from running copies of
> > itself which have been tampered with by performing some sort of checksum
> > calculation on itself and refusing to run if the result doesn't match an
> > expected value. Essentially it's trying to do what the firewall does in
> > case 1, but it does so badly. This fails if the programmer is lazy about
> > checksumming and includes in the sum elements over which they have
> > neither control nor a guarantee of constancy. All versions of Mac OS X
> > have had the potential to silently edit certain segments of executable
> > files, so this hasn't been a safe course of action in nearly a decade.
> >
> > Software that fails in the presence of the Leopard firewall because it
> > exhibits one of those behaviors is broken and should be reported to the
> > developer.
>
> What do either of these behaviors have to do with the firewall? The
> firewall blocks certain network packets, and has nothing to do with how
> applications deal with the local filesystem.

The Leopard firewall has a mode of operation that allows or denies
connections based on the application that is attempting to communicate.
The firewall (along with other security-related components of Leopard)
identifies the apps based on a fairly large and complex byte sequence
that can't trivially be faked or edited (unlike names, creator codes,
process signatures, etc) but *can* be carried forward from one version
to the next of a given program. With the release of Leopard, Apple
recommended that developers include these signature blocks in their
shipping products but they will generate them on the fly if necessary
(for legacy software as well as developers who haven't come up to speed
on new practices yet). The failures occur when Apple generates the
signature block.

In the first case above, when the application changes itself the
Apple-generated signature block to no longer match the app as it exists,
so Apple's security code rejects it as tainted.

In the second case, the app's built-in checksum validator gets tripped
up by the data that it didn't know about but really shouldn't be looking
at any way.

--
"Harry?" Ron's voice was a mere whisper. "Do you smell something ... burning?"
- Harry Potter and the Odor of the Phoenix
 | 
Pages: 1
Prev: Compressing huge files
Next: Can't delete files