Many developers are enamored with how easy it is to build new applications using NoSQL databases. But are you building your dream application or creating a database security nightmare? There are no excuses for not following security best practices.
As a developer advocate, I spend most of my days helping developers turn their giant ideas into dream apps using MongoDB. Unfortunately, database security is a critical topic that is frequently overlooked.
Prioritizing Security in NoSQL Databases
For those new to NoSQL databases, MongoDB is a document-style NoSQL database that enables a variety of application use cases, especially cloud and Web apps in which high performance and developer agility are required. But it’s important to keep your dream application from turning into a nightmare by preventing easily avoidable security mistakes — don’t forget to secure your deployment!
In cases where the application development teams work in isolation from the operations team, security may not be top of mind when in the middle of a project. While developers try to be fastidious in the use of best practices from a coding perspective, it’s equally important to catch configuration issues that could otherwise lead to hugely embarrassing and potentially serious mistakes, such as exposing all the data to the Internet.
Good Security Is No Mystery
Whether using MongoDB, another NoSQL system or even relational databases, ensuring your deployment is properly hardened shouldn’t be a mystery. It only requires a step-by-step adherence to a fundamental set of best practices. Let’s take a look at some of these, working our way from the outside in.
- Make sure that each node in your cluster is protected by a firewall, allowing connections to the database nodes from trusted clients.
- Each client should use x.509 certificates to authenticate themselves to the servers.
- Network traffic between clients and the database, including traffic between database nodes, should be encrypted with SSL/TLS encryption.
- Enable role-based access control, assigning appropriate roles such that each user has only the minimal set of privileges required.
Make It Easier to Be Successful
Assuring that each node is properly hardened and configured can be difficult for larger deployments, so good automation tools will be an essential component of your operations toolkit. As the size of your cluster grows, your management overhead must not increase as well. Mistakes creep in when a cluster becomes hard to manage. I always advise users to make it easy for themselves to be successful rather than making it too easy to make a mistake.
In addition to our standard monitoring and automation tools, I recommend automated activities for database security and compliance activities such as real-time database activity monitoring and, just recently, the first automated database vulnerability assessment for MongoDB databases. Both of these solutions are MongoDB-certified.
Harden Your Databases
This automated test suite was developed in conjunction with security SMEs to incorporate our security best practices, such as making sure your database is patched with the latest CVE updates and other security patches, role and privilege testing, configuration file permissions and more. Based on the pass/fail of each of the tests, the database will get a score. You will see that with proper configuration and privilege management, the score can improve over time.
What’s really nice is that you get detailed remediation steps with any failing tests, making it much easier for security operations and the database teams to communicate with each other. Nothing needs to be installed on the database server, the tests can run on a schedule and they have no impact on database performance. What could be easier?
There really is no excuse for mistakes like exposing data to the Internet or for giving users elevated privileges they don’t need. Keep your database properly secured and up to date with patches. Automate the testing to ensure it stays that way — and sleep better as a result.
Watch the replay of “Tech Talk: What’s New in IBM Security Guardium Vulnerability Assessment V10,” which includes a demo of Guardium Vulnerability Assessment on MongoDB. You can also download the comprehensive guide titled “MongoDB Security Architecture” to learn more about achieving secure deployments.