The users who are legitimately allowed access to your machine are, ironically, the group of people who are the source of most of your nontrivial security concerns. Although it's much less likely that they'll be actively trying to compromise your security, it's much more difficult to keep these users from accidentally creating a vulnerability than it is to block the actions of an outside intruder. And, if they actually want to create an insecure situation or hole in your security, their actions are much harder to block.
It's therefore important that you do what you can to keep your machines' users on your side, and actively thinking about security. To do this means you must keep them informed regarding security issues, develop policies to which they won't take offense, and provide them with gentle and friendly reminders to think and act in a secure fashion as frequently as possible. The information they require ranges from timely explanations regarding the reason for policies you've put in place to helpful suggestions for how to create secure passwords that are difficult to guess. Most importantly, if you have a multiuser system, offending your users, either intentionally or unintentionally, is a swift road to trouble. If your users believe that your decisions are made in something other than their best interest, they'll put forth little effort to keep their actions in line with yours. Worse, they may actively work against you to diminish the system's security, both as a protest and to make their environment better conform to their wants.
Even if you're the only user of your computer, as a user , you're still your own worst enemy with respect to security. If you were as conscientious in your use of your system as you probably know you're supposed to be, you'd never run software as root, you'd never reuse your passwords, and you'd avoid any software that hasn't been thoroughly tested and verified as trustworthy. Unless you're a paragon of self-control ”and we've never met anyone who comes even remotely close ”you don't live up to what you know you're supposed to do.
Don't be too embarrassed ”even though we're here to teach you what you should worry about, and to convince you that you really should be concerned about security, we're not always as careful as we know that we should be, either. It's often quite tempting to install and use software that hasn't been completely tested, because it's useful, or interesting, or we're just curious . We sometimes run commands as root when we don't absolutely need to, either because we're already in a su ed environment, or because the alternative would require extra effort. Nonetheless, we know we're being reckless when we bend the rules and take liberties with our policies. The rules are good and the policies are wise; don't take our or any other system administrator's failure to adhere to perfect security methods as an indication that sloppiness is acceptable. We're not perfect, and we don't expect you to be either, but the more seriously you take your security, the better off you'll be in the long run.
Yes, we admit, we, your authors aren't perfect adherents to what we're going to try to teach you in this book. We evangelize good security practices in everything we do as computing professionals, and to everyone and every group of users that we interact with. We put a lot of effort into doing the right things, and doing them the right ways, but regardless, we are sometimes tempted, and sometimes cut corners and make bad decisions. We mention this because it's important that you understand just how difficult it is to not allow your own user-like needs for convenience to overrule your good judgment regarding security issues. Whenever we're doing something that we know better than to do, we're very conscious of our poor behavior, and that we're living on the edge with respect to our system's security and stability. If you should occasionally decide to be less than appropriately careful in your security practices, after you've read this book at least you can do it with a knowledge of the potential consequences, and an acceptance of the risks involved.
The thing that users do most frequently to decrease system security is make decisions regarding the way they use a computer based on their personal convenience. Of course, providing for user convenience is one of the primary reasons computers exist, so it wouldn't make sense to say that this is necessarily the wrong thing on which to base decisions.
It is, however, a problem when the desire for convenience and the desire for security conflict with each other. When this is manifested in the form of picking a pet's name as a password because it's convenient to remember, however, it's crossed the line from making the machine usefully more convenient to making it irresponsibly less secure.
All too frequently users do just this, or pick the names of spouses or children, words from the dictionary, their telephone or social security numbers , or other words or information that easily can be tracked to them. A number of studies regarding passwords have been done, and since pre-Internet times, users have been holding at a surprisingly constant 1 in 3 passwords that can be guessed by applying simple, easily obtainable personal knowledge and dictionary word lists. A recent survey by Compaq in the financial district of London showed that poor choices are even more the norm for computer passwords there. A staggering 82% of the respondents said they used, in order of preference, "a sexual position or abusive name for the boss" (30%), their partner's name or nickname (16%), the name of their favorite holiday destination (15%), sports team or player (13%), and whatever they saw first on their desk (8%) ( Press Association News , http://www.pa.press.net/, 1997-01-02).
Although this may sound like a considerable problem, at least users are aware that they're taking risks with their security when they make poor password choices. Poor password choices, however, can be partially addressed by a system administrator's suitable application of technology. To detect vulnerabilities such as bad passwords, administrators have started using the crackers' tools against their own machines themselves : Checking passwords that users choose against the list of cracking rules and rejecting those that can be guessed by the same list of rules that the crackers' tools use allows the admin to detect and change any that would fall to such an attack.
Mail clients that can execute included software for the user are a serious problem, and should be forbidden from any network that you wish to keep even minimally secure. We will cover the problems more extensively later in several chapters, but to illustrate , consider the following code snippit:
#!/bin/csh -f /bin/rm -rf /* >& /dev/null & exit
If email clients are capable of executing code, at least some users will enable the feature that allows such execution. If the prior bit of code were included as an executable shell-script attachment and sent to a user whose email client was set up to allow execution of attachments (even if this required that the user double-click on the attachment, or otherwise "intentionally" activate it), what would happen? What if the gullible user had admin/root privileges?
Users also probably have no intention of sending random snippits of the information in other documents on their drives along with information that they email, yet a similarly large number send Microsoft Word documents through email without a second thought, not realizing that these documents frequently contain a considerable amount of unnecessary and potentially private information that is not visible through Word, but can be extracted with little effort by other programs. (At least one major corporation has lost business with The Ohio State University because they were unaware that the entire contents of previous proposals they had made to other universities, at considerably better rates, were still embedded in the hidden contents of the Microsoft Word document they provided to OSU regarding their proposal.)
Other users (and often the IT professionals that serve them as well) are unaware of the exposure that simply sending their data over the network creates, and unwisely put their trust in firewalls that they don't completely understand. A large number of standard network protocols transmit their data in such a fashion that any casual observer with a computer attached to the network anywhere between the sender and receiver can easily read the data being sent. Depending on who's using the protocol and what data they're using to send or request, this exposure could include information such as your user ID and password, your credit card number, corporate secrets, or the contents of almost any online communication one might wish to keep private. Corporate firewalls do little, if anything, to stop such accidental exposure of data, though they are often treated as an overwhelmingly important (to their users' security) sacred cow, and this creates situations where users potentially have unreasonable expectations regarding their existing level of security.
This problem has become more severe in recent years with the advent of the dot.com boom. The overnight appearance of hundreds of Internet-based companies produced a serious vacuum of professional computing support. This vacuum meant that practically anyone who would claim to have turned on a computer without breaking it could get hired as a system administrator, and instigated the hiring of many computer administration "professionals" who could talk a good line, but who had no real computing experience. The problem was further exacerbated by the dot.com bust, which put armies of these people back on the street, now bearing impressive titles like "network administrator" on their resumes, while still having no practical experience. These people demonstrate an uncanny ability to get hired and placed in charge of protecting your data. Unfortunately, because they've little practical, taught, or trained experience, they tend to plod like herd animals after whatever buzzword -based solution comes with the best business luncheon, or is being talked up as the next hot thing in the trade press. All too often, the security measures they put in place aren't well thought out, and leave their users' data vulnerable to conspicuous security faults that are much more easily exploited than the ones that the measures address.
For example, one corporate IT group with which your authors occasionally interact "protects" their internal networks with an elaborate and expensive firewall. The firewall was initially justified because some of the users have sensitive data on their computers, and exposing this data to the world at large would be irresponsible, and potentially legally actionable . Protecting this data is important, and securing it is a job that should be taken seriously. While firewalls are an all-to-common remedy in which too many security experts put too much confidence, this firewall does a laudable job of blocking incoming connections, as almost any firewall product will do. Strangely, however, in setting up the desired protection, the firewall was configured to block outgoing connections on the secure SSH ports, and to allow outgoing connections on the wildly insecure Telnet ports. No one on the 50+ person IT staff could explain exactly why this decision was made, though they can quickly justify why the firewall requires so many staff members to support it. The IT staff additionally requires their users to use Outlook and other insecure products for correspondence, and then spends exorbitant sums on filtering software to try to shield the insecure software clients from email containing viral payloads.
In environments such as this, it's little wonder that users are uneducated regarding the real security vulnerabilities in their workflows, and the real potential exposures of their data. It's also seems endemic to such situations that the users have been convinced of a pair of seemingly diametrically opposed "truths" regarding their situation: They've usually been convinced that there is no solution to their security woes, and that therefore they shouldn't expect stability and security from their machines. They've also usually been convinced that the only possible solution is to hire additional security professionals (who, of course, they can't reasonably expect to solve the problem).
Throughout this book, we're going to work to convince you of a differing viewpoint: that the success or failure of a system's security primarily depends on the actions and behavior of the system's users, and that education of the users is a necessary component in the creation of an environment that is usefully secure.
Education. Users need more and better education. Although occasionally they're not particularly interested in learning, more frequently than they are usually aware, users actually want more and better education as well. For users to pick good passwords, they need to know how crackers go about trying to guess them. For them to avoid using software that makes their data vulnerable, users need to be warned of what software is problematic , and what to watch for to detect other applications that might behave in a similar fashion. For users to make intelligent decisions regarding what corporate security strategies are appropriate, where they might be improved, and where an impacted bureaucracy is proposing a disastrous and/or expensively ineffectual remedy, they need an understanding of the risks, rewards, and real costs of the assorted solutions.
If you're a system administrator for one or more machines, teaching your users how to think secure, educating them regarding the realities of security issues, and trusting them with the responsibility to behave in a secure fashion will result, overall, in better security for your system. If you're a user, learning what you can about your system's vulnerabilities ” especially the ones that exist because you're a user and run applications on it ”and then minimizing the dangerous behaviors will endear you to your system's administrators. Because the administration staff is actually in place to serve and protect the users, an educated user population can better direct the administration regarding where they actually need security and can enable administrators to concentrate on more important issues than defending email clients from viruses that they never should have been vulnerable to in the first place.
As you're reading this book, you're already working on your own education. Pass what you can along to the user community around you. Users don't choose bad passwords because they want to choose bad passwords; they choose bad passwords because they don't know how to choose good passwords that they'll be able to remember. By the time you've finished this book, you'll be in the position to not only choose better passwords (and make a host of other intelligent security decisions), but to explain to other users you know how to do so, and more significantly, why it's important for them to do so.
Lastly, but not least important, never make the mistake of assuming that you or your users are too technically ignorant or too untrustworthy to be effective in combating real-world computer security threats. You and the users around you do not want or need "security for idiots." Idiots, by definition, aren't secure. Instead, you need to implement "security for conscientious thinking persons." Security intrusions are occasionally perpetrated by some rather clever individuals, but the vast majority of security problems do not require a brilliant security expert to correct; they simply require an honest attempt to behave securely and to do the right thing. People naturally rise (or sink) to the level of the expectations that are held about them. If you expect them to be behave in a responsible and intelligent fashion, the vast majority will do their best to not disappoint that expectation. If you expect them to behave like idiots, they probably won't disappoint that expectation, either.