TOP 10
Return to the Top Ten Corporate IS Gotchas List
1. PATCHES
Install Security Patches to Correct Software Vulnerabilities
2. DRIVES
Set up Mirroring or RAID 5 to Protect Your Data
3. VIRUSES
Install a Managed Virus Protection Solution to Prevent an Epidemic
4. BACKUPS
Make sure your Backup and Disaster Recovery Solution Do Their Job
5. SPAM
Close your Open Relays to Prevent Spammers Abusing Them
6. FIREWALL
Implement a Firewall to Tighten Your Security
7. POLICIES
Make sure your Security Policies keep Intruders Out
8. NETWORK
Make sure your Network Design Won't Give You Problems
9. CABLING
Make sure your cabling and physical plant are up to your demands
10. DOCUMENTATION
Make sure all critical information is documented, especially software licensing information
7. Security Policies

Why Security?
It may seem like I'm placing a lot of emphasis in these items on security -- and it's no accident. Security threats from both inside and outside your network present some of the strongest -- and most commonly overlooked -- ways that a network that seems to be running fine can be brought to its knees. This particular gotcha is a grab bag of things every organization should be doing to protect their network's security -- things that in some ways are obvious, but often get overlooked in haste.

Who Hacks?
Who are these 'hackers', anyway? Like any other group classified primarily by what they do, rather than who they are, they run the gamut in background, motivations, and intentions.
  • Former employees. Of all the 'targeted' attacks that are truly aimed at your company, former employees are probably the single most common source. While some attacks take skill to execute, others hardly take any at all, and instructions for performing them can be found on the web. Don't take, "Oh, he/she doesn't know anything about the system" as a reason not to take precautions. Former employees are also one of the worst threats because they know significant inside information about the company itself.
  • Competitors. Most of the time, your competitors won't think to try to hack your computer systems. If they were to get caught, the potential repercussions would be sufficient to deter most of them. Still, if one of your competitors holds a grudge, or is unethical, it's a potential (though unlikely) source of hacking attempts.
  • Current Employees. Is there information on your systems that you'd prefer an existing employee not access, such as HR records, salary figures, profit-and-loss statements? Employees can sometimes be interested in this information, and might try at least casual hacking attempts to get it.
  • Random Individuals. This a catch-all category. Disgruntled customers, people offended by your web page, people who dislike your corporate stance on certain issues, people who want to make a statement.
  • Script Kiddies. The above perpetrators are all targeting your network specifically. Script Kiddies are a different sort of attacker. They don't care that much about who they attack, usually; they just want to control a large number of machines for various reasons. They range from bored teenagers who know little to those with more technical sophistication, but they use scripts to attempt to locate security holes or vulnerabilities you have left open. When they find one, they exploit it and use it to gain access to your machine. On the up-side, most of them don't actively destroy your data or system configuration, and they usually don't care about the data stored there, but they can significantly disrupt network operations.
  • Experts. A truly expert hacker may find vulnerabilities that a script kiddie might overlook. The only benefit is that most people with the knowledge to fall into this category have too much to lose by hacking, and too little to gain. Frankly, the concept of playing IRC games bores them. For this reason, they're actually less of a threat.
  • Viruses and Worms. Pieces of self-replicating code have begun appearing that scan the Internet, looking for improperly secured systems. When found, they infect the system, causing it to begin scanning. Once one of these gets inside your network, it can spread like crazy internally. It's best not to let them get in.
Use Good Passwords
This particular item can't be overemphasized. While password-cracking attempts other than trying really obvious ones are rare for those scanning your network at random for vulnerabilities, if somebody's interested in targeting you in particular, one of the ways you can leave the barn door standing wide open for them is using obvious passwords. I can't count the number of passwords I've seen that are the word 'password', the name of the company, the same as the username, the initials of the user, or just plain blank. It's one thing to do that on a test server you're playing with, but quite another to do that on a corporate network.

The movie 'Hackers' got it partly right. The most commonly used passwords, that I've seen in use in the real world are:

  • The username.
  • Names of significant others, children, or pets.
  • The user's birthdate.
  • The name of the company or organization or its date of founding.
  • The word 'password' or a blank password.
In many cases, the passwords will be modified in one of the following ways:
  • Entered backwards.
  • Entered with the number '1' appended to it.
  • Entered with the current year appended to it.
  • With an exclamation mark at the beginning or end.
  • Combined with another common password item.

With a quick call, or a little research, I could in most cases guess a user's password by knowing the above pieces of information -- many of them fairly easy to discover. I could reduce it to under a hundred passwords I would have to try to get into the system. And it would work probably three times out of four. If I can do it, so could a malicious user.

Most network operating systems have the ability to force users to change their passwords every so often, and enforce criteria about password length and compexity. It's usually a good idea to use them. Circulate policies about passwords forbidding the use of any of the above techniques. Add 'dictionary words' to the list, at least if they are used alone or not made more complex in some unusual fashion.

Changing passwords is less a function of time and more a function of events. When an employee leaves, it is good policy to change all the passwords in the organization -- they might easily have found out another user's password. If you enforce password changes too frequently, you encourage users to engage in other unsafe practices, such as writing down their passwords or using passwords that are easy to remember but also easy to guess.

Beware 'Social Hacking'
This has actually worked a surprising number of times. I've never done it myself, but I've heard often about it working. You might even spot check it with your own users, if you work in a larger company. Recruit a friend. Have him call one of your employees at random from outside the company. Have him claim to be a newly hired member of the IS department, working from remote. Or maybe he's an outside web developer. Have him give a fake name. Then have him tell the user that in order to 'perform some maintenance' or 'fix a problem with the system' or 'add something to a web page', he needs their username and password. I will bet that, unless the users have been specially trained, over half of them will respond by cheerfully giving out this information.

Educate your users on the importance of not giving out the password to anyone they don't know. If they're suspicious, have them apologize and offer to call the person back to give that information. Very few hackers will want that to happen. There are times when you may have to know your users' passwords, so you might not want to make a policy of never telling anyone their password. However, instructing them to be cautious and revealing the dangers through a fictional conversation skit might well make it memorable.

Educate Users about File Attachments
A lot of people still don't know not to click on .VBS and .EXE extensions in file attachments. Also, it might be a good idea to globally disable the 'Hide File Extensions for Known File Types' checkbox in Explorer. This was taken advantage of by the Anna Kournikova (VBS.SST@mm) virus, which named itself 'AnnaKournikova.jpg.vbs'. On systems with this checkbox enabled (the default), it would appear as an innocuous '.jpg' file.

Eliminate 'File and Printer Sharing'
Windows 95, 98, and Millenium Edition have a 'File and Printer Sharing' service that can be loaded. When it's loaded, users can then share folders on their hard drive and printers for others to use on the network. It's a useful feature, and a convenient one in many circumstances. It's also very frequently a security hole.

Unless this service is absolutely needed, remove it. If the user doesn't host any printers other users use, and if the user doesn't have a shared folder on their hard drive that needs to be accessed frequently, remove the service entirely. It's just one more way that intrusions can occur. If it must remain, consider switching them from 'Share Level' access to 'User Level' access; at that point, it can access the username/password database on the domain controller and require users to actually have a valid account before they can access the service.

Eliminate unnecessary shares
This is closely linked into the above item. If you don't need it, why are you sharing it? Especially with Windows 95/98/ME computers, the number of shares should be kept to a minimum. Each one presents a potential security vulnerability, especially if there's no password entered.

Even on Windows NT, every share is another set of permissions that has to be checked. Don't close a share used by an application, but if you're sharing the entire hard drive, you've got a security hole open. To begin with, the root directory typically doesn't have any special permissions. This means it's usually set to 'Everyone: Full Control'. This means anyone could drop in a new executable, then simply find a way for it to get executed. Instant server control.

Instead, try to share the least amount possible. Don't worry so much about the 'Administrative' shares like C$, D$, etc. Those require the administrator password or administrative rights. It's the other shares you or somebody else might have created that pose a potential threat.

Set share permissions
By default, the permissions on shares are -- you guessed it -- Everyone: Full Control. As I've stated elsewhere, 'Everyone' means Everyone. Administrators. Users. That kid in his bedroom in North Dakota. Everyone. It means, in other words, that no password is required for the resource. For most non-system-created shares, it's safe to at least set it to 'Domain Users' or just 'Users'. The only time it's safe to leave the share permissions at 'Everyone: Full Control' is when the item being shared is fully protected by NTFS permissions. And even then it's a good idea.

Set NTFS permissions
If you aren't using NTFS on your file servers, you should be. Only NTFS offers any form of 'real' file system security. Share permissions, while useful, don't offer the granularity of control that file system permissions let you exercise.

If you are using NTFS, use those permissions. Anything you're sharing should have some sort of permissions associated with it, with the possible exception of the CD-ROM drive. While it's sometimes not possible, under NT 4.0, to set NTFS permissions because of the lack of inheritance (setting permissions on any system directory, with subdirectories and files, overwrites anything that was there already and can break some systems), any non-system and non-program directories are usually safe to modify. Only let those who need access to it have access to it, and remove the Everyone: Full Control group.

Disable Unused Accounts
When an employee leaves the company for whatever reason, disable their account or change the password. You can even delete the account if you're sure you won't need it (or any resources it and only it has) again. Even if the parting is friendly, it's best to clean up this rat's nest. Look at it another way. Do you want any fingers to get pointed back at that user if something were to happen?

Anytime I've left a company, I've made sure to remind them to change my passwords and any passwords I knew. I want to make certain that I can't be blamed for abusing the passwords I have. I wouldn't, but I want to shield myself from any possible suspicion. Do the same for those leaving your company.

Change Passwords after a Staff Change
Any passwords the user was likely to know should be changed after a staff change. For information services staff, this may well include administrative passwords to the servers. Don't forget the router or print-server passwords as well.

Don't Give Out the Administrator Password
Or the root password. Or the Admin password. Or the supervisor password. These passwords should be in the hands of the IS staff and highly trusted employees. Changing this password is usually difficult and time consuming because installed applications may depend on it. It's inadvisable to change it too frequently, so you want to minimize how often you change it.

In addition, it's usually a bad idea for too many users to have administrative access. There's a lot of power and a lot of responsibility associated with those accounts. There's a lot of rope available, and you don't want people with inadequate training or experience to hang themselves with it -- or your servers.

Don't Forget the Local Administrator Account
When a Windows NT machine is part of a domain, there are actually two administrator accounts. The only exception to this rule are the domain controllers.

This requires some explanation. Every Windows NT machine, both server and professional, contains its own username and password database (called a 'SAM Database', or an Account database under Windows 2000). Each machine's database is completely separate, and they do not replicate back and forth (exception: Domain Controllers do replicate their SAM database with each other).

Under Windows NT 4.0, the SAM database can be viewed using the User Manager or User Manager for Domains utility. Using the 'Select Domain' option under the 'File' pull-down menu. Typing the name of the domain shows you the domain SAM, while typing two backslashes and the name of a workstation or server shows you that workstation's SAM. Under Windows 2000 and XP, the domain account database is viewed using 'Active Directory Users and Computers', while the local account database is viewed under 'Computer Management' and then 'Local Users and Groups'.

When a computer joins a domain as a member server or as a workstation, two things happen. First, the computer is added to a list on the server of computers that are authorized to retrieve SAM information. Second, the computer has the global 'Domain Admins' group on the domain added to its local 'Administrators' group, and the global 'Domain users' group on the domain added to its local 'Users' group. Several other groups are updated in this fashion. It's this second step that causes the domain Administrator account to have administrative rights on the local machine, and for users of the domain to be able to use their domain account locally on the workstation.

It's important to remember, though, that the domain 'Administrator' account and the local 'Administrator' account are different accounts. They have the same name. They might even have the same password (though there's no reason they have to). But they are different accounts, since they are part of different SAM databases. This distinction is important to remember.

Here's the problem. When most people say they changed the Administrator password, what they mean is that they changed the Domain Administrator password. However, each client also has an Administrator account. You can't delete it. You could, potentially, set it to gibberish -- but this leaves a potential problem waiting to happen. Let's say the domain is inaccessible for some reason, such as a failed network card driver. You won't be able to log into the workstation with the domain administrator account to fix the driver because the failed driver won't let you connect to the network. So you can't fix the driver to get back into the network. Where's that Windows NT CD again?

Setting it to the same as the domain Administrator password causes another pair of problems. First, most of the time, you don't keep each workstation's Administrator account updated with the latest Administrator password, so you're left trying to historically guess all the Administrator passwords that might have been used. If it's a three-year-old workstation, this might be a pretty significant number.

But let's suppose you do keep it updated. There are various password-cracking programs out there, and in some cases, local users can access the SAM database. If nothing else, they can boot to DOS and use a program called NTFSDos (freely downloadable) to read this database. Then, there are some nice programs out on the net that can be used to crack the SAM database's encryption and cheerfully extract any and all of the passwords in it. Including -- you guessed it -- your domain Administrator password. This is a bad thing.

While you may think this is a lot of work to go through, consider this. Windows XP is based on the same technology as Windows 2000, which uses a very similar scheme to Windows NT 4.0. I will give good odds we will soon see a virus that, upon breaking into a system, sends the SAM database somewhere, such as an E-mail address or an IRC channel. This is just a guess, but it would not surprise me in the slightest. So far, only Windows 95/98/ME have been targeted by most viruses, but as Windows 2000 starts to gain market share we are seeing viruses specifically targeted for it.

The best approach is to set the local Administrator password on all non-domain controllers to be a randomly generated sequence that is stored someplace secure. A sheet of paper in a fireproof safe, perhaps. That way, if it's needed, you can get at it, but you don't have to worry about somebody guessing it and thus compromising your network security. All they can do is compromise the machine they're on -- which they've already done to get as far as they have.

Shut Down Unneeded Services
This is a general security tip for all operating systems. If you don't need it, and it's running all the time, shut it down. Sometimes it's hard to tell with packages which services within them are unneeded, but there are some general services that might provide exploitable holes that can be used for intrusion. This is especially true on Linux or Unix machines, which often come pre-installed with a myriad of services, each of which, if it contains a code bug or is misconfigured, could cause a breach of security.

One important service to be aware of is IIS. It's often installed on systems, even those that don't need it. Unless you're actively serving web pages, whether internet or intranet, from the server, or plan to in the near future, uninstall IIS. It closes one major security hole that might be exploited.

Don't Forget Physical Security
An important component of your network security is your physical security. I've seen companies spent tens of thousands of dollars to protect them from an intrusion from the Internet, only to leave their servers in an unprotected room with a flimsy lock and with no building security system. Remember, once somebody has physical access to a computer, there is no way to defend it. If someone can get at your server, physically, there is almost no way to stop them from doing whatever they wish to it, if they have sufficient time. If someone wants your data badly enough, they could potentially break in and take the server, then crack its security at their leisure.

Another set of items to be careful with include backup tapes and emergency recovery diskettes. Your backup tapes contain a full copy of your system, including the SAM database. It also contains all your files, as well; if someone wants to take your data, then your backup tapes provide them everything they need. An emergency recovery diskette also contains a copy of the SAM database. Store it in a secure location.

Paranoia
Some of the network security experts will tell you to go to great lengths to maintain security, including making sure to wipe all drives for crashed systems and demagnetize diskettes and so forth. While this is important if your company contains highly critical information -- and is a good general practice if systems are re-sold -- some of these techniques are really only applicable if the information contained is highly confidential or highly useful. The techniques I described above apply to nearly all network systems. Your organization might, of course, have special security needs, but most small companies should evaluate 'professional' security recommendations with a grain of salt, taking their own needs and facilities into account.
Additional Resources
Security Toolkit Online http://www.microsoft.com/technet/security/tools/stkintro.asp
Linux Security http://www.linuxsecurity.com/
This page Copyright ©2003 by Enter-Networks.Net. All Rights Reserved. All trademarks referenced herein are trademarks of their respective vendors. Prices and features listed subject to change without notice. All prices are in US Dollars.