Database Security
Database Security
Database
An organized collection of data Data is typically organized using a data model
ER model Relational model
DBMS
A software designed to allow definition, creation, querying, update and administration of databases
Functions of a DBMS
Query Processing Transaction Management Storage Management Metadata Management Database Integrity Fault Tolerance Security
Administration Policies
Specify who is to administer the database Administration duties usually performed by the Database Administrator (DBA) include keeping the data current, making sure that the metadata is updated etc. Security related tasks may be performed by a System Security Officer (SSO)
Policy Enforcement
Mechanism to enforce security policies Three aspects to policy enforcement
Policy specification Policy implementation Policy visualization
Query modification
Database queries can be modified based on constraints to enforce security Eg: Consider a query by the user John to retrieve all tuples from EMP. If John only has read access to all the tuples in EMP where salary is less than 30K, and the employee is not in Security department, then the query
Visualization of policies
Visualization tools are used by users to better understand the data in the databases Visualization tools are useful when integrating security policies of different databases Visualizing the effects of dynamically varying security policies are helpful in designing secure databases
Distributed Architecture
Multiple untrusted back-end DBMSs and a single trusted front-end DBMS Communication between the back-end DBMSs occurs through the front-end DBMS Two approaches
Partitioned approach - Each back-end DBMS has data at a particular level and operates at that level Replicated approach - Lower-level data is replicated at the higher levels
With the partitioned approach the trusted front end is responsible for ensuring that the query is directed to the correct back-end DBMS For the replicated approach the trusted front end ensures that the query is directed to a single DBMS, which is has the same security level as the user
Classifying relations
Classifying attributes
Classification of tuples
Classification of Views
Classification of Metadata
Polyinstantiation
A technique used in relational databases to represent the fact that users at different levels have different views of the same entity For example, at the TopSecret level Marys salary would be 40K but at the Secret level it would be 30K, at the Confidential level it would be 20K, and at the Unclassified level it would be 10K
Polyinstantiation violates the properties of the relational model Every entity should have a unique representation in the relational model; in polyinstantiated model an entity has multiple representations Polyinstantiation is required to eliminate covert channels
Eg. John has a salary of 70K, which is the real value and therefore maintained as Top Secret. There is no other value for the salary of John maintained at Secret, Confidential or Unclassified levels. A user at these levels when querying for Johns salary will not get an answer since no value is provided. The lack of answer, therefore, signals to the user about the existence of a salary value for John maintained at a higher security level. This information can be exploited by malicious users or processes to gain access and perform unauthorized modification of higher level data. The absence of data values at the different security level, therefore creates a covert channel for accessing and modifying higher level data
Query modification
With query modification, the query is modified based on the access-control rules The query is modified according to the accesscontrol rules enforced by a distributed database system If the access-control rules are replicated, the query modification can be performed at the site where the query is posed If the access-control rules are distributed, then the query is modified at each site according to the rules enforced at that site and then the pieces are combined to form the final modified query
View mechanism
Views are essentially virtual relations and are computed from the base relations In a distributed database environment, views may be computed from relations and fragments stored at multiple sites Users are then granted access to the resulting views For example, EMP could be stored at site A and DEPT at site B and a view may be formed consisting of employee names and their managers. Access may be granted on this view and access denied on the base relations