Database and DBMS: Security, consistency and reliability of data
When we talk about IT projects concerning the processing of important data, as in the case of our project, we cannot and must not for any reason omit the detailed analysis of the problems concerning data security.
This security article will therefore focus on security issues in databases.
Database threats can be divided into three categories:
- loss of integrity: if unauthorized changes are made to the Database
- loss of availability: if the data is not available (to services or users)
- loss of confidentiality: if data protection is lost
These threats can be caused by attacks:
- on a physical level: theft, damage
- at a logical level (of interception, deduction, intrusion, disturbance)
- natural or accidental disasters
- software / hardware errors or bugs
- human errors
Let’s look in more detail at the solutions to these delicate problems:
- redundancy: replicate data in different places (or media)
- access control (allow only authorized persons to access data giving different privileges)
With redundancy we mean the replication of the entire Database on different supports (servers located in different places for example) in order to avoid irreparable damage in case of failure, theft of the original Database.
However, replication involves data consistency problems: it is not permissible for non-updated data to exist in replicas; this involves the implementation of updating policies (for example to be carried out during the night) between the master database and the copies. This can be done trivially with a passage (obviously through secure channels) of SQL scripts (the Database database) concerning the changes of the past day.
To avoid further problems, it is advisable to implement prevention policies, ie to implement procedures to safeguard the data:
log policies: it is necessary to keep track of the modifications made to the Database so as to be able to reconstruct the changes in case of failures
backup policies: saving the contents of the Database (or a subset) on diversified media reduces the risk of data loss
Another fundamental aspect of data security concerns the management of database operations; imagine that during a writing on the database there is a network failure. What can happen in the Database? Have all or only a part of the changes been made?
If this were the case we would be faced with a non-coherent state because it would not represent reality: the use (for example of services) of transactions, or of atomic operations, thus allowing to pass from a coherent state to the ‘other.
The properties enjoyed by the transactions, the so-called ACID properties, are:
- Atomicity: it is the property of all or nothing, that is either the changes are made in full or are not performed at all
- Consistency: the execution of a transaction preserves the consistency of the database
- Isolation: each transaction is isolated from the rest of the world and must not be influenced by other changes to other competing transactions
- Durability: the changes made by a transaction remain even after damage to the database
To guarantee therefore that all the operations (that in other words manage the life cycle) on the Database respect these four properties, combined with a set of preventive security policies (backup and logging), the greater security given by the updated copies (redundancy) and a secure access control ensures that the database is secure, or at least prepared in the best way for accidental damage or not.