Most users and managers prefer the
default permit stance. They tend to assume that
everything will be, by default, permitted, and that certain specific,
troublesome actions and services will then be prohibited as
necessary. For example:
- NFS is not permitted across the firewall.
- World Wide Web access is restricted to users who have received
awareness training about its security problems.
- Users are not allowed to set up unauthorized servers.
They want you to tell them what's dangerous; to itemize those
few (they think) things that they can't do; and to let them do
everything else. This is definitely not a fail-safe stance.
First, it assumes that you know ahead of time precisely what the
specific dangers are, how to explain them so users will understand
them, and how to guard against them. Trying to guess what dangers
might be in a system or out there on the Internet is essentially an
impossible task. There are simply too many possible problems, and too
much information (new security holes, new exploitations of old holes,
etc.) to be able to keep up to date. If you don't know that
something is a problem, it won't be on your
"prohibited" list. In that case, it will go right on
being a problem until you notice it, and you'll probably notice
it because somebody takes advantage of it.
Second, the default permit stance tends to degenerate into an
escalating "arms race" between the firewall maintainer
and the users. The maintainer prepares defenses against user action
or inaction (just keeps saying, "Don't do that!");
the users come up with fascinating new and insecure ways of doing
things; and the process repeats, again and again. The maintainer is
forever playing catch up. Inevitably, there are going to be periods
of vulnerability between the time that a system is set up, the time
that a security problem is discovered, and the time that the
maintainer is able to respond to the problem. No matter how vigilant
and cooperative everyone may be, some things are going to fall
through the cracks forever: because the maintainer has never heard
about them, never realized the full security consequences, or just
plain hasn't had time to work on the problem.
About the only people who benefit from the default permit stance are
potential attackers, because the firewall maintainer can't
possibly close all the holes, is forever stuck in "fire
fighting" mode, and is likely to be far too busy to notice an
attacker's activities.