Rule ID
SV-286198r1291888_rule
Version
V1R1
Nonorganizational users include all information system users other than organizational users, which include organizational employees or individuals the organization deems to have equivalent status of employees (e.g., contractors, guest researchers, individuals from allied nations). Nonorganizational users must be uniquely identified and authenticated for all accesses other than those accesses explicitly identified and documented by the organization when related to the use of anonymous access, such as accessing a web server. Accordingly, a risk assessment is used in determining the authentication needs of the organization. Scalability, practicality, and security are simultaneously considered in balancing the need to ensure ease of use for access to federal information and information systems with the need to protect and adequately mitigate risk to organizational operations, organizational assets, individuals, other organizations, and the nation. Satisfies: SRG-APP-000180-DB-000115, SRG-APP-000815-DB-000160
Query all users and determine if any are suspected shared accounts. Document any necessary shared accounts. MariaDB> SELECT user, host FROM mysql.user; Determine if any accounts are shared. A shared account is defined as a username, hostname, and password that are used by multiple individuals to log in to MariaDB. An example of a shared account is the MariaDB root account "root@localhost". If accounts are determined to be shared, determine if individuals are first individually authenticated. If individuals are not individually authenticated before using the shared account (e.g., by the operating system or possibly by an application making calls to the database), this is a finding. If accounts are determined to be shared, determine if they are directly accessible to end users. If so, this is a finding. If shared identifiers are found, and not accompanied by individual identifiers, this is a finding.
Configure MariaDB Enterprise to require individual user authentication and prohibit direct use of shared accounts. Ensure all users are assigned unique database accounts: SELECT User, Host FROM mysql.user; Remove or disable shared or generic accounts: DROP USER '<shared_user>'@'<host>'; Configure authentication to require individual credentials for each user: ALTER USER '<username>'@'<host>' IDENTIFIED BY '<strong_password>'; Ensure anonymous accounts are removed: DELETE FROM mysql.user WHERE User=''; FLUSH PRIVILEGES; Configure access to shared resources through role-based access control rather than shared credentials: CREATE ROLE '<role_name>'; GRANT <privileges> ON <database>.* TO '<role_name>'; GRANT '<role_name>' TO '<username>'@'<host>'; SET DEFAULT ROLE '<role_name>' TO '<username>'@'<host>'; Configure the system to prohibit credential sharing and require users to authenticate with their individually assigned accounts prior to accessing shared databases or resources.