MADB-10-004700 - MariaDB must invalidate session identifiers upon user logout or other session termination. - tcp_nodelay

Warning! Audit Deprecated

This audit has been deprecated and will be removed in a future update.

View Next Audit Version

Information

Captured sessions can be reused in replay attacks. This requirement limits the ability of adversaries to capture and continue to employ previously valid session IDs.

This requirement focuses on communications protection for the MariaDB session rather than for the network packet. The intent of this control is to establish grounds for confidence at each end of a communications session in the ongoing identity of the other party and in the validity of the information being transmitted.

Session IDs are tokens generated by MariaDB to uniquely identify a user's (or process's) session. MariaDB will make access decisions and execute logic based on the session ID.

Unique session IDs help to reduce predictability of said identifiers. Unique session IDs address man-in-the-middle attacks, including session hijacking or insertion of false information into a session. If the attacker is unable to identify or guess the session information related to pending application traffic, they will have more difficulty in hijacking the session or otherwise manipulating valid sessions.

When a user logs out, or when any other session termination event occurs, the DBMS must terminate the user's session(s) to minimize the potential for sessions to be hijacked.

NOTE: Nessus has provided the target output to assist in reviewing the benchmark to ensure target compliance.

Solution

As the administrator locate the my.cnf file to change. For Centos, RedHat, and similar distributions this will be in /etc/my.cnf.d/.

In the [mariadb] section add the lines:

tcp_keepalive_interval == seconds
https://mariadb.com/docs/reference/mdb/system-variables/tcp_keepalive_interval/

tcp_keepalive_probes == number of probes
https://mariadb.com/docs/reference/mdb/system-variables/tcp_keepalive_probes/

tcp_keepalive_time == seconds
https://mariadb.com/docs/reference/mdb/system-variables/tcp_keepalive_time/

tcp_nodelay == boolean (off or on)
https://mariadb.com/docs/reference/mdb/system-variables/tcp_nodelay/

max_statement_time == seconds
https://mariadb.com/docs/reference/mdb/system-variables/max_statement_time/

See Also

https://dl.dod.cyber.mil/wp-content/uploads/stigs/zip/U_MariaDB_Enterprise_10-x_V1R2_STIG.zip

Item Details

References: CAT|II, CCI|CCI-001185, Rule-ID|SV-253706r841643_rule, STIG-ID|MADB-10-004700, Vuln-ID|V-253706

Plugin: MySQLDB

Control ID: 33fb748b32260208bb99c97473d2bd426e68d6d28fae565d407fa2cc92b84c0f