TMA-COS-5.3.1.1
Ensure password expiration is 365 days or less
Description
The PASS_MAX_DAYS parameter in /etc/login.defs allows an administrator to force passwords to expire once they reach a defined age. It is recommended that the PASS_MAX_DAYS parameter be set to less than or equal to 365 days. The window of opportunity for an attacker to leverage compromised credentials or successfully compromise credentials via an online brute force attack is limited by the age of the password. Therefore, reducing the maximum age of a password also reduces an attacker's window of opportunity.
How it is checked
Audit method: Shell command
bad=0; [ -r /etc/shadow ] || exit 1; v=$(awk '/^[[:space:]]*PASS_MAX_DAYS[[:space:]]/{print $2}' /etc/login.defs | tail -1); [ -n "$v" ] && [ "$v" -ge 1 ] && [ "$v" -le 365 ] || bad=1; for x in $(awk -F: '$2 ~ /^[^*!xX]/ && $2 != "" {print ($5==""?"99999":$5)}' /etc/shadow); do [ "$x" -ge 1 ] && [ "$x" -le 365 ] || bad=1; done; [ $bad -eq 0 ] && echo compliant || echo noncompliant- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
Set the PASS_MAX_DAYS parameter to conform to site policy in /etc/login.defs : PASS_MAX_DAYS 365 Modify user parameters for all users with a password set to match: # chage --maxdays 365 <user>
Properties
- Operating systems
- Any
- Tags
- authcontainer-optimized-oscos
- Reference
- CIS Google Container-Optimized OS Benchmark v1.2.0 - 5.3.1.1 Ensure password expiration is 365 days or less
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
tmaegis scan --target cos --level 2