
	Linux Security for Programmers, Crackers and Managers

For quite some time, the sendmail mail transport system was the epitome
of bad security -- every couple of months, somebody would find a bug or
misfeature what allowed local and occasionally even remote attackers to
obtain root privilege. Then, Java came along and Eric Allman was off the
hook for a while.  Currently, the spotlight is on Microsoft because they're
new to the multiuser/network game, and their large installed base make
them an interesting target.

Tomorrow, it might be Linux.

I have been actively involved in Linux security for at least four years
now; both in the role of blundering programmer, as someone catching other
people's blunders, and on various mailing lists. Linux' track record is
no better or worse than most of the other operating systems, but there's
definitely room for improvement.

The amazing news is that many programming mistakes that can lead
to security problems seem to be impossible to eradicate. For instance,
it has been a fairly well known fact for quite some time that special care
needs to be taken when executing another program from a setuid context.
However, there are still programs being written today that do not
take the proper precautions. The last case I came across was in May 1999,
and I'm sure it won't be the last.

There are probably many reasons why things are like this.  Speaking
from my own experience as a blundering programmer, we tend to develop a
partial blindness when it comes to spotting trouble areas in our own code.
We're so much in love with our elegant design that we're reluctant to
anticipate all the ways in which an attacker might try to break it.
In addition, most security pitfalls -- the notable exception being buffer
overflows -- look harmless enough until you \emph{know} how an attacker
might exploit them. Finally, many people underestimate the cleverness
of the cracker community. To most people, a cracker is a freaked-out 16
year old kid running scrounged up exploit programs they don't even half
understand.  However, there's a non-negligible proportion of creative
hacker crackers who are well-educated in Unix (in many cases thanks
to Linux), and quite clever when it comes to finding the weak spots in
your software.

The focus of my talk will be on traps we tend to fall into, and how to
avoid them.

Author info:
Olaf Kirch has been a member of Linux community since the 0.97 days.
He wrote the Linux Network Administrator's Guide, maintained the
NFS code for quite some time, and is currently employed by Caldera.
