The Internet security industry has seen every type of security solution fail. While there are exceptions, one can learn some general principles as to why things fail. Below are some observations. The weakest link"Security is only as good as its weakest link." This is probably the most well-known adage. Surprisingly however, many security solutions fail because of it, as the weakest link is often not obvious. This is best demonstrated with a couple of examples from the encryption world.
Take the best encryption algorithm you can find with the largest key length possible. Let's assume it is totally secure. Did you use the same level of sophistication when choosing the encryption key? If your encryption key is based on a password, for example, it is likely based on just a small number of bits and is expanded into the larger key size by the encryption software. However, it is still dependent on this small number of bits and is much weaker than you think.
Then there's the question of how you communicate that key to another party. Often times, communicating is the weakest link. A classic example is the use of One Time Pad (OTP), which has been in use since World War II. The OTP "key" is basically as long as the plain text is being encrypted, and theoretically it can be proven that OTP provides perfect security. Is that so? The weakness lies in how you communicate that OTP to the other party, and how you use it afterwards. Even if you send a messenger carrying that key to the other party and you're sure it hasn't been breached, common problems in operating such a system can render it extremely weak. If for some reason, you use some of the OTP more than once, there are simple cryptographical methods that would enable a third party to intercept and read your communications easily. The US was able to intercept communication of a Soviet spy ring by leveraging this principle.
As you can see, the weakness is often peripheral to the main part of the solution that you know or believe is solid.
Industry standard vs. proprietaryResorting to proprietary solutions may give a small advantage due to "security by obscurity," however, it is dangerous to use solutions that are not widely scrutinized. Encryption is again a great example.
Using industry standards like AES means numerous experts have reviewed the algorithm and did not find serious issues. And if they do find them, you will know about it. Take first generation WiFi encryption (WEP). This method was very quickly shown to have serious vulnerabilities. Since it was a standard, the word quickly got out and it was replaced by stronger methods.
Be especially wary of vendors who do not expose their algorithms and make strong claims as to their strength without backing up those statements.
The right solution to the wrong problemThe problem needs to be clearly defined if security is to be effective. Otherwise, you can find yourself with a good solution that does not address your real issues.
Take the firewall, for example. While it may be a good solution for some issues, if you have a database running behind the firewall it will not block application-level attacks such as SQL injection. These are common and dangerous attacks, but most firewalls do not address them, and dedicated solutions are required.
The human factor"If you leave it to the human factor, it will break." If you rely on the end user, and the end user is not knowledgeable enough or cannot be bothered, security is seriously lacking. A couple of examples can make this clear.
First, I find most personal firewalls useless. What good is a firewall that asks a novice user, "Do you want to allow Microsoft MAPI protocol?" What should the user say? Yes? No? If you answer wrong, either you block a vital service, or you open up for attack.
A more serious issue is that of phishing scams. These are probably the hardest to defend against. Basically, if someone can fool you into entering the password for your bank account into some fake form on the Web, or even over the phone, that's a sure recipe for identity theft. Why is this so difficult to prevent? Because it comes to the human factor. Today you have no control or knowledge of such a scam being perpetrated, and if you only have your password for authentication that's too bad. Even if you put two-factor authentication into the bank's Web site, you still may have given valuable information such as your social security number to the wrong person.
UsabilitySecurity must be usable in order to succeed. The best security is to cut off all connectivity, however this is extreme and not workable. So, ease of deployment and use is what makes it secure. After all, if you can't or won't use it, there's no security in place.
One example that springs to mind immediately is intrusion detection systems (IDS). While obviously important, many have forsaken them because they generate so much output and logs. So, unless you have enough bandwidth (i.e., personnel) to go over all these logs, the solution is not really effective. Similarly, many intrusion prevention (IDP) and data loss prevention (DLP) solutions generate false positives, thereby blocking authorized traffic. This is why many companies don't use them "in-line." Typically, just the basic, most obvious traffic is actually controlled "in-line," and most of the traffic is just logged to be reviewed later by an administrator. Obviously, again this is not an ideal solution.
SummaryThe above are all easier said than done. Security is elusive and constantly changing. However, it is worth keeping these principles in mind when making security decisions. Define your problem well, find the weakest links, go with industry standards, minimize user involvement and keep it simple.
Adi Ruppin is vice president of marketing for Confidela.