A Textbook Case For Monitoring
Vodafone's customer database leak demonstrates dangers of not properly monitoring database activity
A common problem with protecting sensitive database is limiting what data users see. An employee might be allowed to see any record in a database, but he is not allowed to see every record at the same point in time. For example, it's perfectly acceptable for customer service or a salesperson to view a customer record in service of that relationship. It's not OK that he be able to select the entire freakin' customer database.
But if the quotes from the management team are accurate, that's exactly what happened with the Vodafone data breach. And like many breaches, the company found out only when it was informed from someone outside the company.
More Security Insights
- Forrester Study: The Total Economic Impact of VMware View
- Securing Executives and Highly Sensitive Documents of Corporations Globally
- Innovations in Integration: Achieving Holistic Rapid Detection and Response
- Optimize Your SQL Environment for Performance & Flexibility
The Vodafone case is a textbook example of why database activity monitoring (DAM) exists. One of the principle drivers behind monitoring software is to verify usage of systems or applications -- or conversely detect misuse. While this category of problem is commonly referred to as "the insider threat," that's really only a hyped subset of the specific operational problems being addressed. It's about protecting data while still performing the tasks the application was designed to perform. And this is most problematic with databases because the SQL query language is designed to return lots of information quickly and easily. Providing every row in the database except those filtered out by the "WHERE" clause is a core database feature. Validation of business and security rules is not.
Technologies like labeling can limit the rows within a table a single user is allowed to see, but it does not help limit the quantity of data extracted. Similarly, using an application or stored procedure to limit the amount of information a user can access at any one time can help, but most applications don't have this capability built in. Worse, they are expensive to retrofit and don't have the capabilities to track users over time. Perhaps most important, queries sent directly to the database bypass these controls. The point is there are several (kludgy) ways to accomplish the goal, but none is as easy or effective as DAM.
Every single DAM product on the market has policies to detect when a user selects "too many rows," or selects entire columns of sensitive information instead of a single row. Most have the capacity to track usage over time, so they build a profile of user activity and results and compare this with proper use models, alerting when there is a significant deviation from what is considered normal. At a minimum, someone runs "select * from customers" and security gets alerted. Some products will even block the query before the data is leaked. At the very minimum, even if you don't have a specific policy to protect data from the attack, you have an activity trail for forensic audits. This problem keeps popping up because most companies don't monitor or validate database usage.
Adrian Lane is an analyst/CTO with Securosis LLC, an independent security consulting practice. Special to Dark Reading.