There's been an incredible number of records breached this year, including:The 1.27 million userIDs and email addresses stolen from the Washington Post jobs site;The Epsilon breach; and The massive 77 million user accounts pilfered from Sony Corp. Online Entertainment.All of this begs the question: What can organizations do to better secure their databases? Who better to address that question than noted database security expert David Litchfield?Litchfield is author of "Oracle Forensics: The Oracle Hacker's Handbook", the "Database Hacker's Handbook" and "SQL Server Security", and co-author of the "Shellcoder's Handbook". He is recognized as one of the world's leading authorities on database security, and has uncovered hundreds of vulnerabilities in software from companies such as IBM, Microsoft, and Oracle.Litchfield is currently working on V3rity, his database forensic and breach investigation tool. He says this free tool enables more automated investigation of potential database security breaches. You've seen your share of database deployments. What would you say is one of the most important things organizations can do today to keep their databases secure? Litchfield: The first is to change all default and simple-to-guess passwords. The major database vendors have recently become better at helping with this issue. In the past few years they've stopped shipping database servers with default user IDs and passwords. But for a very, very long time they were shipping all of their databases with default userIDs and passwords. Certainly for older systems, default passwords are still a major issue. Many times, while conducting security assessments, it was -- and still is -- incredibly shocking to see how many organizations run default access credentials. Another simple yet often overlooked area is keeping software patches up to date. While it can be very difficult with production database systems, given that they are in use, there are ways to make sure you keep the software up to date during scheduled maintenance. Beyond patch updates and good password management, what else can organizations be doing that they're not?Use the principle of least privilege within their applications. This is a very important one. People are pressured into getting their applications running as quickly as they can. However, when they try to manage permissions properly, that good practice can delay deployment slightly. So they say, "Oh look, let's just give users all the permissions. The application seems to work with these settings. Let's shove that into production." Not a great approach. If you don't want a breach, it's really worth spending the extra time to design an application that operates on least privilege. Give readers an idea of what you mean. An example could be that a customer service representative may be allowed to look at one customer at a time, but not do a search for all customers. And they can only see things relevant to support. What else would be involved? That's part of it, but it's not just that. Consider the registration side of database management. That requires the ability to manage the database. Whereas the other side, where you're just selecting profile information for yourself, that only requires select privileges. There should be two parts of the application: one account for the registrations that has the ability to insert, but for the other stuff, which only requires select permissions, that should be using a distinct account. You should look at the application and say, "What permissions are required where?" Rather than have one account that has the ability to do everything, each part of the application should only be allowed to perform specific functions. By designing an application and using the principle of least privilege, organizations can mitigate their risk. Does taking these precautions add a burdensome amount of additional effort to an organization, or push out application and database deployment schedules? Only if it is back ported. Trying to do it all later is when it costs extra time. That is when things start breaking down. Then, in the heat of production, you have to investigate why it's breaking. Doing it from the get-go -- having a security guy working with the application developers from the start -- might add an extra week. But it won't add the extra five weeks in terms of back porting security. And it certainly won't add an extra ten weeks in terms of conducting an investigation if you get a breach. And, by not doing it up front, you increase your odds of a breach because you didn't build security into the application. How difficult is all of this, really, when compared to all of the potential benefits to be reaped?Other precautions organizations can take up front is to reduce one's attack surface by stripping out all of the functionality that they don't need. Databases come with all these wonderful extra features, so if you're not using things like indexing or search and stuff like that, strip them out because it's just extra attack surface.On my website I've compiled a list [Oracle Forensics: Preventing Break-Ins (LINK: http:\/\/www.v3rity.com\/OracleForensicsPreventingBreakIns.pdf) ] of the top things an organization can do to make their database servers as secure as possible. Following the advice doesn't solve all risks, but does solve about 90 percent of the issues out there. None of this strikes me as exceptionally difficult for organizations to achieve. It's disheartening. What is really depressing, for me, is we do all this really cool research into exotic vulnerabilities, developing new attack techniques and finding new classes of vulnerabilities. But at the end of the day, this stuff is irrelevant when eight times out of ten people are leaving default user names and passwords in place. Of what importance, really, is all of this research and attention on exotic vulnerabilities when the basics aren't even being given attention. Thanks for your time, David. It's amazing after all these years we are still having this conversation.It's terrifying that we're still having this kind of conversation.