For those in enterprise IT, there is something to learn from these breaches. While it's not entirely clear exactly which method was used, the databases were compromised by either SQL injection (SQLi) or administrative credential compromise. Running unpatched Apache servers gave the attackers additional tools to work with. During the past decade, SQLi, buffer overflows, and password compromises have been the principle ways an attacker compromises a database, so there is nothing new here.
How should you respond? Make sure you fix your stuff!
1) Assessment: Run a vulnerability assessment scan. That will identify missing patches and, depending on the tool you use, quickly identify default password settings. This will detect the critical and high-priority stuff you need to address.
2) Passwords: Change all database administration passwords and generic application account passwords using complex passwords. Even if they are not at the default settings, change them anyway. This is easy to do. Also, change the password your Web application uses to connect to the database. It makes it nearly impossible for an attacker to guess, or even "brute force" your database passwords. If you are worried about remembering the passwords -- or even coming up with good random passwords -- then use a tool like 1Password to generate them, and then store them on your phone or iPad so you have them handy. That way are not worried about remembering 30-character random strings.
3) Patch: This is achieved with medium difficulty. The vulnerability scan will identify what patches are missing, or check with your database vendor. This closes the known code-injection attacks against the database and renders most off-the-shelf malware useless.
4) Validate Input: Verify input parameter validation. This involves a high degree of difficulty if your development teams don't already do this. You'll need to either perform white box code analysis or a Web application vulnerability scan to detect unfiltered input values, and then get the application development team to fix them. Optionally, you can use stored procedures instead of SQL statements -- which will take a very long time to implement depending on the size of your application -- or look into Web application firewalls as a quick fix to block known attacks. But the best course of action is to ensure you filter all input values prior to passing them to the database.
Close these three gaps and you cover 98 percent of the avenues attackers use to gain access to databases, greatly reducing your overall risk.
Adrian Lane is an analyst/CTO with Securosis LLC, an independent security consulting practice. Special to Dark Reading.