2.3 Role of This Book
If we can't change Unix and the environment in which
it runs, the next best thing is to learn how to protect the system as
best we can. That's the goal of this book. If we can
provide information to users and administrators in a way that helps
them understand the way things work, and how they can use safeguards
within the Unix environment, then we should be moving in the right
direction. After all, these areas seem to be where many of the
problems originate.
Unfortunately, knowing how things work on the system is not enough.
Because of the Unix design, a single flaw in a Unix system program
can compromise the security of the operating system as a whole. This
is why vigilance and attention are needed to keep a system running
securely: after a hole is discovered, it must be fixed. Furthermore,
in this age of networked computing, that fix must be made widely
available, lest some users who have not updated their software fall
victim to more up-to-date attackers.
|
Although this book includes numerous examples of past security holes
in the Unix operating system, we have intentionally not provided the
reader with an exhaustive list of the means by which a machine can be
penetrated. Not only would such information not necessarily help to
improve the security of your system, but it might place a number of
systems running older versions of Unix at additional risk.
|
|
Be aware that even properly configured Unix systems are still very
susceptible to denial of service attacks, in which one
user can make the system unusable for everyone else by
"hogging" a resource or degrading
system performance. In most circumstances, however, administrators
can track down any local person who is causing the interruption of
service and deal with that person directly. We'll
talk about denial of service attacks in Chapter 24.
In the early chapters of this book, we'll discuss
basic issues of policy and risk. Before you start setting permissions
and changing passwords, make sure you understand what you are
protecting and why. You should also understand what you are
protecting against. Although we can't tell you all
of that, we can outline some of the questions you need to answer
before you design your overall security plan.
Throughout the rest of the book, we'll explain Unix
structures and mechanisms that can affect your overall security. We
concentrate on the fundamentals of the way the system behaves so you
can understand the basic principles and apply them in your own
environment. We have specifically not presented
examples and suggestions of where changes in the source code can fix
problems or add security. Although we know of many such fixes, most
Unix sites do not have access to source code, and most system
administrators do not have the necessary expertise to make the
required changes. Furthermore, source code changes, as do
configurations. A fix that is appropriate in early 2003 may not be
desirable on a version of the operating system shipped the following
September. Instead, we present principles, with the hope that they
will give you better long-term results than one-time custom
modifications.
We suggest that you keep in mind that even if you take everything to
heart that we explain in the following chapters, and even if you keep
a vigilant watch over your systems, you may still not fully protect
your assets. You need to educate every one of your users about good
security and convince them to practice what they learn. Computer
security is a lonely, frustrating occupation if it is practiced as a
case of "us" (information security
personnel) versus "them" (the rest
of the users). If you can practice security as "all
of us" (everyone in the organization) versus
"them" (people who would breach our
security), the process will be much easier. You also need to help
convince vendors and developers to produce safer code. If we all put
our efforts behind our stated concerns, maybe they will finally catch
on.
|