Not too long ago my wife and I decided to try out a Chinese restaurant in our area we had never visited before. I was looking at the menu and my wife gasped, then laughed a bit. I looked up and she pointed out a rat crawling right under the restaurant's buffet table.
I got the waitress's attention and pointed out the rat to her. The waitress, a large Asian woman with a heavy oriental accent replied, "Oh ya' his name is Tock." She giggled a bit then walked off.
My wife and I looked at each other. She tightened her lips, trying to hold back the laughter. She nodded her head to the side and we quickly got up and walked out of the restaurant.
We got a good laugh out of it, but I couldn't help wondering how long the rat had been around before they decided to name it. I guess rats too can be pets once you get used to them around - but they are grossly out of place in a restaurant.
It turned out to be a good lesson because I began to see different kinds of rats around me all the time. The computer industry is especially full of rats. It's amazing how much we have learned to put up with. In the computer world, for example, it's not at all unusual for something to work one day and then suddenly stop working the next. And it wouldn't be that unusual if it suddenly started working again the third day.
We have been well conditioned to recognize and delete the endless stream of spam, phishing attempts, Nigerian scams, and virus attacks we get every day in our inboxes. We have been so far behind for so long in the battle with computer security that we have almost forgotten some of the most basic insecurities that we put up with day after day.
I say it's now time we took a step back and exterminated some of these rats.
The biggest rat is email. How have we put up with our current technology for so many years? Email is by nature completely insecure. There's no guaranteed authentication of either the sender or the recipient. Most -mail traffic is never encrypted as it traverses its way around the Internet. Many email servers still don't encrypt stored messages, and there is no way to ensure that your email isn't bounced, quarantined, rejected, or forwarded on to the wrong person. In fact, there is no guarantee of delivery or notification of failed delivery at all. Furthermore, email client software is vulnerable to a variety of attacks, and of course email is still the best form of social engineering.
Email is the carrier pigeon of the internet, yet so many people rely on it for business critical and sensitive communications that are insecure and often, unreliable.
Fixing email could potentially eliminate many other security problems. And we certainly do have today the technology to make it all happen. So what's the holdup? I say that it's simply because we haven't forced people to change. And that probably won't happen until the problem has grown completely out of control. Let's be smart this time around and fix email before it grows to a bigger problem than it already is.
Many say that such an infrastructure change would take years. But guess what, this is the Internet world. We are used to changing overnight. We can handle it, trust me.
While we're at it, let's just abandon [I]all[/I] insecure network protocols. For every insecure protocol, there is an encrypted version, so why even keep the insecure protocols around? Why even install telnet when there's SSH? Why use FTP instead of SFTP? And what about instant messengers, plus IRC, NNTP, SNMP, and all the other unencrypted protocols? Boycott them all. Sure, you might say that we need to support these protocols for backwards compatibility. While that makes sense for now, we need to set some future date when we will phase these out, otherwise they will never leave us. Who wants to be backwards compatible with insecurity anyway?
While I'm on the subject of encryption, I say it's time everyone stopped coding their own homegrown encryption algorithms and just use well-accepted encryption standards. If you think that your custom triple-rot13-xor-encoded encryption function is unbreakable, think again. Why even bother with your own encryption when there is plenty of freely available code already out there? Why are programmers so compelled to reinvent the wheel? Obviously the public humiliation of endless security advisories isn't enough of a deterrent from people using ROT-13, XOR, or some other lame encryption. What do we have to do, pass a law or something?
Log files. There's so much to say about the chaos we call logging I'm not even going there - I'll leave it for another time, just like people leave their logs to look into at another time, but never do.
How about responsible programming? Sure we have heard a lot about stack overflows and SQL injection, but if you write software, you should let people have a few security options rather than you making all the decisions for them. For example, give people the option to simply not record recently-opened documents, store personal information, or completely shut off unused services such as an embedded web server. When you configure the installer, it would help if you could also set the file permissions automatically so that others don't have to go back later to research and test for the most secure permissions.
While you're at it, make sure there are documents or knowledge base articles to help your users secure your application. Yes, information and documentation is very good.
We have seen so much success with open source software, I'd like to see a new concept take hold: open source data. Open source has worked very well for security software. I'd like to see more open source databases out there for security information. I have long been a fan of the BOGON list, RBL's, and other free data sources. I'd like to see more public blocklists, privacy cleanup lists, spyware prevention lists, security settings, file permissions, and more.
Yes, there are various security lists scattered out there, but we need to bring these projects together to a central location so we can combine our efforts.
And finally, can't we get over the whole which-OS-is-more-secure fervor? When people ask me what OS is the most secure, I tell them it's whichever one they know best. Remember, its not the OS that gets hacked, it's almost always the admin that gets hacked.
Yeah there were good reasons to hate Windows in the past, but Windows 2003 is hardly comparable to NT4. That was almost a decade ago. Maybe some day we can all get together and realize we are also in this together and spend our time making all OSes more secure.
So there they are. Rats. Someone really should do something about these things. I'm just glad it doesn't have to be me.