In reality, getting consistency across the company is a big challenge. Each firm has some existing tools to automate the mundane security tasks, but the quality of the tools and resources varies greatly, as does the lever of security and compliance requirements. Fundamentally, they all have the same basic question: "Where do I start?"
To form a plan, let's start with three basic questions:
* What do you have? * What are you accountable for? * What do you not know?
To address the first bullet, take a basic inventory of systems that you are responsible for. You will need this information in order to understand both the scope of work, they types of skills you'll need, and the types of tools you'll need to automate some security tasks. There are tools like NMap to help scan the network and provide an inventory.
Second, understand what these databases are used for and who owns them. That should give you a better idea of the type of data they store, the applications they serve, and who has access rights. This later point is incredibly important because, if you need to secure the database, you're going to need to get someone with admin rights to make the appropriate changes. For smaller firms you may already know all of this, or you think you do; you may be surprised when network scan results show a number of applications that have embedded database systems that are largely insecure. In larger organizations with databases being provisioned outside of IT -- in QA, in development, in cloud environments -- that clouds the picture. Again, find out what databases are in play, and how to get access.
Third, what tools are available to you? Did someone in your organization previously purchase or deploy database security tools? Were some tools bundled with the software that you purchased from your vendor? Do you have scripts? Do some of the generic network or vulnerability scanners work with databases? Do you have a support agreement with the vendor who will answer your questions or provide you with best-practices documentation? You're going to need some tools to help automate tasks and round out your knowledge of database security issues. Tools, documents, access to peer groups, and vendor support are good ways to do this.
For the second bullet, ask yourself if you know what a secure database looks like. Do you have a security specification? Do you have a baseline set of standards for DB security? What compliance controls are you supposed to be following? Understanding what security and compliance issues you are responsible for is key to knowing how to act. For most DBA's and security professionals, you'll have hundreds of databases to manage, so you're going to need to prioritize what controls are most important, which databases are most important, and formulate a plan of action based upon that. You can secure most databases with a couple days' work -- you cannot secure all of your databases with a couple days work. Build a plan based upon _your_ priorities.
Bullet three is simply to stress that the discover process for databases should yield some surprises. Now you need to run assessments of the databases you have to secure and find out what state they are in - don't try to do this by hand but get an open source or commercial scanner. You'll save time and it will have embedded knowledge about hundreds of databases. And these tools cover most areas of concern: patching, IAM, configuration, compliance, up-to-date threat intel, and (in most cases) discovery.
If you can, work with other groups to get an idea of how many databases, and of what type, are being used. This may sound like more work -- and it is -- but when you run purchase requests up the chain-of-command, they'll likely get stalled by purchasing until other groups get their say in the process. Deal with this up front -- and you'll likely get to push the expense across other groups within your company.
Adrian Lane is an analyst/CTO with Securosis LLC, an independent security consulting practice. Special to Dark Reading.