Application Security // Database Security
10/11/2012
01:38 AM
Connect Directly
RSS
E-Mail
50%
50%

Dodging 5 Dangerous Database Default Settings

Out-of-the-box settings and weak configuration of databases make it easier for thieves to break into data stores and harder for IT to quickly detect breaches

Even as enterprises spend buckets of cash on data defenses at various layers of IT infrastructure, many of them sabotage their efforts by ultimately storing that information in poorly configured databases. Whether due to legacy application logistics, convenience to administrators, or lack of awareness by DBAs, databases set up with out-of-the-box settings are all-too-common within the enterprise.

These default configurations make easy pickings for the well-informed data thief. Default account credential settings are the first thing attackers try when they get any kind of access to login screens. Extraneous services and stored procedures make for a broader attack surface for hackers. And bad guys drool when they find encryption keys stored right alongside the database on the same server.

"The only place it's safe to use your default configuration is in your TIVO or television," says David Maman, CTO and founder of GreenSQL. "Anywhere in the IT world it's a crime, especially within your database. Database hardening is critical."

[ Forgetting something? Don't get caught with your patch down. See 5 Systems Your Forgetting To Patch. ]

Because database configurations can make all the difference between safeguarding data stores and leaving them dangerously vulnerable to big data breaches, security experts recommend taking a look at all of your database's default settings for weakness. But, in particular, the following defaults pose the biggest risks.

1. Default Passwords And Accounts
"Password insecurity is definitely the most pernicious configuration problem that affects database servers," says David Litchfield, Accuvant LABS principal security architect.

Configuration gaffes around authentication and account credentials are plentiful, but by far the most dangerous and the most prevalent is simply allowing default administrative usernames and passwords to remain operational.

"Attackers and malware intentionally target known credentials," says John Linkous, chief security and compliance officer for eIQnetworks. "Changing the name of common accounts, such as 'sa,' or other administrative default accounts and using complex passwords for those accounts will help to add a layer of security to the database."

Additionally, allowing default configurations that enable anonymous logins is another risky permissions setting.

"Attackers often use analysis tools to probe for databases that allow anonymous logins and then make a connection to determine the database version and other specifics," says Cal Jewell, senior technical trainer at ExtraHop Networks. "They then use this information to formulate an attack that gives them greater access."

Similarly shared service accounts can pose a big risk because they are difficult to monitor and often provide uncommonly expansive permissions within the database.

2. Allowing Direct Table Access
According to Ron Rule, vice president of e-commerce for Infusion Brands and a long-time development expert, the No. 1 database configuration problem that gets organizations into trouble is when permissions allow for direct table access.

"When your application can make its own SELECT/UPDATE/INSERT/DELETE statements and directly access the tables, your data is vulnerable," Rule says.

One of the best measures in this case is to create an access buffer through stored procedures during development.

"Code your application only to execute the stored procedures, and then give the user access to the stored procedures and DENY access to the tables," he says.

3. Keeping Default Stored Procedures
However, stored procedures are not necessarily a good thing. Out-of-the-box stored procedures that perform common tasks, such as adding users, can actually be a big vulnerability in a lot of situations, Linkous says.

Some out-of-box stored procedures can be extremely powerful in the wrong hands," he says. "Microsoft SQL Server's 'xp_cmdshell' is an example of this: a SP that allows any arbitrary command line to be executed, even if that command operates outside the scope of SQL Server."

He recommends that organizations look closely at default stored procedures and either disable them or delete them entirely.

4. Encryption Keys Stored With Database
Database encryption can add an effective layer of security if executed properly. But poor configuration can render schemes like database vendor-provided Transparent Data Encryption (TDE) effectively useless, says Todd Thiemann, senior director of product marketing for Vormetric.

"The default approach of storing the TDE key next to the database is like taping the key to the doorknob of a bolted door or putting your password on a sticky note on your monitor," he says. "Secure and protect encryption keys on a server that does not host the database."

5. Unnecessary Services and Applications
Databases come with a whole host of support services, applications, and other components enabled to offer a broad set of functionality for as many use cases as possible. But each additional component on a database adds just a little bit more attack surface area for potential attackers to take advantage of.

"Most database products provide 'add-on' components, such as reporting or analysis tools," Linkous says. "These components can introduce additional vulnerabilities to the overall database system, and should be disabled or uninstalled of not needed."

The effects of this are exacerbated by the fact that many databases today are behind on patches, Litchfield says. Fortunately, a lot of risk can be reduced by recognizing that the typical enterprise rarely needs more than a fraction of these feature sets enabled to support any one database installation scenario.

"In our security engagements, we often see every component being installed when a database server is set up just in case it might be needed," he says. "With a little bit of forward planning, this can be avoided. Application developers need to be specific about what components they need and no more."

Have a comment on this story? Please click "Add Your Comment" below. If you'd like to contact Dark Reading's editors directly, send us a message.

Comment  | 
Print  | 
More Insights
Register for Dark Reading Newsletters
White Papers
Flash Poll
Current Issue
Cartoon
Video
Slideshows
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2013-6117
Published: 2014-07-11
Dahua DVR 2.608.0000.0 and 2.608.GV00.0 allows remote attackers to bypass authentication and obtain sensitive information including user credentials, change user passwords, clear log files, and perform other actions via a request to TCP port 37777.

CVE-2014-0174
Published: 2014-07-11
Cumin (aka MRG Management Console), as used in Red Hat Enterprise MRG 2.5, does not include the HTTPOnly flag in a Set-Cookie header for the session cookie, which makes it easier for remote attackers to obtain potentially sensitive information via script access to this cookie.

CVE-2014-3485
Published: 2014-07-11
The REST API in the ovirt-engine in oVirt, as used in Red Hat Enterprise Virtualization (rhevm) 3.4, allows remote authenticated users to read arbitrary files and have other unspecified impact via unknown vectors, related to an XML External Entity (XXE) issue.

CVE-2014-3499
Published: 2014-07-11
Docker 1.0.0 uses world-readable and world-writable permissions on the management socket, which allows local users to gain privileges via unspecified vectors.

CVE-2014-3503
Published: 2014-07-11
Apache Syncope 1.1.x before 1.1.8 uses weak random values to generate passwords, which makes it easier for remote attackers to guess the password via a brute force attack.

Best of the Web
Dark Reading Radio
Archived Dark Reading Radio
Marilyn Cohodas and her guests look at the evolving nature of the relationship between CIO and CSO.