In this article minimum security requirements related to the Database Managers will be established, in terms of the selection, installation, configuration, administration and use of the same.
Source: Pixabay with CCO license
Database Management System (DBMS)
Database managers are a very specific type of software, which is dedicated to serving as an interface between the database, the user and the applications that use it. The general purpose of database management systems is to manage in a clear, simple and orderly manner a set of data that will later become relevant information for an organization. We can say then that it is the most important part of the software of a database system. A DBMS is a collection of numerous interrelated software routines, each of which is responsible for some specific task.
Some aspects that should be considered.
The latest stable version of the Database Management System software must be used.
The Database Management System must provide data encryption mechanisms.
The Database Management System must be installed and configured meticulously, in order to minimize the risk arising from a default configuration. Taking into consideration:
- Do not leave users or databases created by default or by proof.
- Create users with the minimum privileges necessary for their access to the database. Avoid pool accounts The
administrators of Database should not make use of the user account with maximum privileges usually called root or
superuser of the DBMS, for this you must generate a user account for each administrator with administrative
privileges. - Run the database service with the user who owns the privileges strictly required for this and not with the user with
maximum privileges (root or superuser) of the system. - Prevent administrators from tampering with audit logs or visualize sensitive data.
- Configure key encryption and sensitive data options.
- Configure parameters against denial attacks service as maximum number of connections.
- Create access restrictions at the level of the base manager of data in a strict manner, so that it can only be accessed
from the Authorized origin and user and by secure communication channel (encryption). - Enable all the audit logs functionalities that it provides the database manager, both at the level of access, actions
executed, as well as at the level of errors and connections.
Periodic backup of the information contained in the Database Management System must be made.
It must be configured in the Database Management System that only accepts connection with the established Application Servers, to avoid unauthorized connections.
There must be an encrypted communication channel between the Application and the Database Management System.
There must be a Contingency and Continuity Plan, in order to maintain the operation of the system (manually or automatically), in case of any failure.
The Database Management System must have the necessary audit records, among which include: ID of the user making the connection, connection origin, connection port, time, date, failed or successful connection, database and tables that you access, a function that you performed within the database, among others.
Source: Pixabay with CCO license
Regarding the Administration of User Access in the Database Management System (DBMS)
The Database Management System must be protected against unauthorized access, so access must be restricted only to Database Administrators authorized by the owner of the data.
In the Database Management System, the number of simultaneous sessions per user account of the DBMS must be limited to one, avoiding that these can be connected concurrently, minimizing the risks of unauthorized access.
The Database Administrators should not use pool accounts to operate and administer the Database Management System.
The Database Management System must not have user accounts predefined or created by test, so they must be eliminated or failing to be disabled or immediately changed the password you have before it is in production.
The user account must be disabled or the password changed immediately when a Database Administrator ceases its work or transfers to other functions.
The Database Administrators must generate a secure password using as many characters as the Database Management System allows, combining uppercase and lowercase letters, numbers and special characters.
The Database Administrators must periodically change their password, approximately every month and a half.
Source: Pixabay with CCO licenseThe Database Administrators must establish a secure connection to access the Database Management System, using only encrypted connections between the client and the manager.
The super user account of the DBMS must be safeguarded and safeguarded by the custodian of the DBMS, and must only be used in a contingency status.
All user accounts in the DBMS, except the user account with the highest privileges (root or superuser), must be automatically blocked after five failed attempts to enter the password.
The authentication scheme of the database administrators will be with the use of an LDAP, since the only user that can have the DBMS is root.
Regarding the Connection Architecture to the Database Management Systems:
The Responsible for the Technological Platform must have the necessary mechanisms to guarantee the physical separation between the servers that make up the Data Layer, and those that make up the Presentation Layer and the Business Layer.
Regarding the Database of an Application:
The application databases must not contain data of authentication of users.
Must be an administration module in the application, so that application administrators do not have access and interact directly with the administrative duties of the application database.
Based on different application user's profiles, you must define and establish different accounts of users of the database, with the necessary privileges at the database, table, and column level, in order to be used by the application is tablecer the connection with the database as well as such for data management.
It must be configured in the database which only accept to establish connection with the established application server, to prevent unauthorized connections.
The information classified confidential or strictly confidential by the owner of the information should be stored securely in the database, by applying encryption mechanisms. When the database manager system does not provide data encryption mechanisms, then this must be provided by the application.
Source: Pixabay with CCO license
As for the server in which the database management system resides (DBMS)
Servers must be protected against unauthorized access, so their access must be restricted according to a profile.
The server must have the active logs of the operating system, so that they are auditable.
The server boot option must be disabled by CD or other device other than the hard disk.
The server must not have input/output media such as CD's and USB ports, thus avoiding possible leaks of information.
You must protect the SETUP of each server with a secure password, this should be done only by authorized personnel.
The clocks of the servers must be synchronized through a mechanism that provides the time base for the equipment of the technological platform.
In the servers must be closed all ports except those that are necessary for the proper functioning of the database management system, in order to minimize the risks to eventual security attacks.
The server administrator must configure the access privileges to the file systems in a thorough manner.
The server administrator must restrict the permission to the sensitive files and directories on the server to a greater degree.
References:
https://www.iso.org/standard/39612.html
https://technet.microsoft.com/en-us/security/gg483744.aspx
https://en.wikipedia.org/wiki/Database#Security
https://www.oracle.com/database/security/index.html
https://www.checkmarx.com/2016/06/24/20160624the-importance-of-database-security-and-integrity/
I hope this article will be of great help and reference for database administrators.
Thank you @resteemsupport by your appreciation, grateful for taking into account my post, I hope to continue contributing to this great community.