Rule ID
SV-286171r1292225_rule
Version
V1R1
CCIs
Database management includes the ability to control the number of users and user sessions using MariaDB. Unlimited concurrent connections to MariaDB could allow a successful denial-of-service (DoS) attack by exhausting connection resources; and a system can also fail or be degraded by an overload of legitimate users. Limiting the number of concurrent sessions per user is helpful in reducing these risks. This requirement addresses concurrent session control for a single account. It does not address concurrent sessions by a single user via multiple system accounts; and it does not deal with the total number of sessions across all accounts. The capability to limit the number of concurrent sessions per user must be configured in or added to MariaDB (for example, by use of a logon trigger). Note that it is not sufficient to limit sessions via a web server or application server alone because legitimate users and adversaries can potentially connect to MariaDB by other means. The organization must define the maximum number of concurrent sessions by account type, by account, or a combination thereof. In deciding on the appropriate number, it is important to consider the work requirements of the various types of users. For example, two might be an acceptable limit for general users accessing the database via an application; but 10 might be too few for a DBA using a database management GUI tool, where each query tab and navigation pane may count as a separate session. Sessions may also be referred to as connections or logons.
Check the number of connections allowed for each user. As the DBA (root), log in to the database (mariadb -u root -p) and run: SELECT user, max_user_connections from mysql.user; If any users have more connections configured than documented, this is a finding. A value of "0" indicates Unlimited and is a finding.
Limit the number of connections allowed by a specific user. As the DBA (root), log in to the database (mariadb -u root -p) and run: GRANT USAGE ON *.* TO 'username'@'server' WITH MAX_USER_CONNECTIONS number of connections;