Blame SOURCES/scap-security-guide-0.1.55-add_rules_for_R18-PR_6539.patch

618a7c
From 2df02e3988525eee8360db1e829655a761adb461 Mon Sep 17 00:00:00 2001
618a7c
From: Watson Sato <wsato@redhat.com>
618a7c
Date: Mon, 19 Oct 2020 17:25:05 +0200
618a7c
Subject: [PATCH 1/2] var pam unix remember, add selector
618a7c
618a7c
Add selector "2" to var_password_pam_unix_remember.
618a7c
---
618a7c
 .../accounts/accounts-pam/var_password_pam_unix_remember.var     | 1 +
618a7c
 1 file changed, 1 insertion(+)
618a7c
618a7c
diff --git a/linux_os/guide/system/accounts/accounts-pam/var_password_pam_unix_remember.var b/linux_os/guide/system/accounts/accounts-pam/var_password_pam_unix_remember.var
618a7c
index f533a36963..6e7abb3b78 100644
618a7c
--- a/linux_os/guide/system/accounts/accounts-pam/var_password_pam_unix_remember.var
618a7c
+++ b/linux_os/guide/system/accounts/accounts-pam/var_password_pam_unix_remember.var
618a7c
@@ -18,6 +18,7 @@ options:
618a7c
     "0": "0"
618a7c
     10: 10
618a7c
     24: 24
618a7c
+    2: 2
618a7c
     4: 4
618a7c
     5: 5
618a7c
     default: 5
618a7c
618a7c
From 5503605d2f9e56b07686a9f1f2f3f8418e61b8cb Mon Sep 17 00:00:00 2001
618a7c
From: Watson Sato <wsato@redhat.com>
618a7c
Date: Mon, 19 Oct 2020 17:29:47 +0200
618a7c
Subject: [PATCH 2/2] Select rules for password strenght management
618a7c
618a7c
Rule selection is based on ANSSI DAT-NT-001
618a7c
---
618a7c
 controls/anssi.yml                            | 45 ++++++++++++++++++-
618a7c
 .../var_password_pam_minlen.var               |  2 +
618a7c
 ...ar_accounts_password_minlen_login_defs.var |  2 +
618a7c
 3 files changed, 48 insertions(+), 1 deletion(-)
618a7c
618a7c
diff --git a/controls/anssi.yml b/controls/anssi.yml
618a7c
index 26bc7f4694..3ccd0f8cb3 100644
618a7c
--- a/controls/anssi.yml
618a7c
+++ b/controls/anssi.yml
618a7c
@@ -281,7 +281,50 @@ controls:
618a7c
   - id: R18
618a7c
     level: minimal
618a7c
     title: Administrator password robustness
618a7c
-    # rules: TBD
618a7c
+    notes: >-
618a7c
+      The rules selected below establish a general password strength baseline of 100 bits,
618a7c
+      inspired by DAT-NT-001 and the "Password Strenght Calculator"
618a7c
+      (https://www.ssi.gouv.fr/administration/precautions-elementaires/calculer-la-force-dun-mot-de-passe/).
618a7c
+
618a7c
+      The baseline should be reviewed and tailored to the system's use case and needs.
618a7c
+    automated: partially
618a7c
+    rules:
618a7c
+    # Renew passwords every 90 days
618a7c
+    - var_accounts_maximum_age_login_defs=90
618a7c
+    - accounts_maximum_age_login_defs
618a7c
+
618a7c
+    # Ensure passwords with minimum of 18 characters
618a7c
+    - var_password_pam_minlen=18
618a7c
+    - accounts_password_pam_minlen
618a7c
+    # Enforce password lenght for new accounts
618a7c
+    - var_accounts_password_minlen_login_defs=18
618a7c
+    - accounts_password_minlen_login_defs
618a7c
+    # Require at Least 1 Special Character in Password
618a7c
+    - var_password_pam_ocredit=1
618a7c
+    - accounts_password_pam_ocredit
618a7c
+    # Require at Least 1 Numeric Character in Password
618a7c
+    - var_password_pam_dcredit=1
618a7c
+    - accounts_password_pam_dcredit
618a7c
+    # Require at Least 1 Uppercase Character in Password
618a7c
+    - var_password_pam_ucredit=1
618a7c
+    - accounts_password_pam_ucredit
618a7c
+    # Require at Least 1 Lowercase Character in Password
618a7c
+    - var_password_pam_lcredit=1
618a7c
+    - accounts_password_pam_lcredit
618a7c
+
618a7c
+    # Lock out users after 3 failed authentication attempts within 15 min
618a7c
+    - var_accounts_passwords_pam_faillock_fail_interval=900
618a7c
+    - accounts_passwords_pam_faillock_interval
618a7c
+    - var_accounts_passwords_pam_faillock_deny=3
618a7c
+    - accounts_passwords_pam_faillock_deny
618a7c
+    - accounts_passwords_pam_faillock_deny_root
618a7c
+    # Automatically unlock users after 15 min to prevent DoS
618a7c
+    - var_accounts_passwords_pam_faillock_unlock_time=900
618a7c
+    - accounts_passwords_pam_faillock_unlock_time
618a7c
+
618a7c
+    # Do not reuse last two passwords
618a7c
+    - var_password_pam_unix_remember=2
618a7c
+    - accounts_password_pam_unix_remember
618a7c
 
618a7c
   - id: R19
618a7c
     level: intermediary
618a7c
diff --git a/linux_os/guide/system/accounts/accounts-pam/password_quality/password_quality_pwquality/var_password_pam_minlen.var b/linux_os/guide/system/accounts/accounts-pam/password_quality/password_quality_pwquality/var_password_pam_minlen.var
618a7c
index f506a090bb..873d907ab9 100644
618a7c
--- a/linux_os/guide/system/accounts/accounts-pam/password_quality/password_quality_pwquality/var_password_pam_minlen.var
618a7c
+++ b/linux_os/guide/system/accounts/accounts-pam/password_quality/password_quality_pwquality/var_password_pam_minlen.var
618a7c
@@ -15,6 +15,8 @@ options:
618a7c
     12: 12
618a7c
     14: 14
618a7c
     15: 15
618a7c
+    18: 18
618a7c
+    20: 20
618a7c
     6: 6
618a7c
     7: 7
618a7c
     8: 8
618a7c
diff --git a/linux_os/guide/system/accounts/accounts-restrictions/password_expiration/var_accounts_password_minlen_login_defs.var b/linux_os/guide/system/accounts/accounts-restrictions/password_expiration/var_accounts_password_minlen_login_defs.var
618a7c
index f41ff432ec..662c53b076 100644
618a7c
--- a/linux_os/guide/system/accounts/accounts-restrictions/password_expiration/var_accounts_password_minlen_login_defs.var
618a7c
+++ b/linux_os/guide/system/accounts/accounts-restrictions/password_expiration/var_accounts_password_minlen_login_defs.var
618a7c
@@ -13,6 +13,8 @@ options:
618a7c
     12: 12
618a7c
     14: 14
618a7c
     15: 15
618a7c
+    18: 18
618a7c
+    20: 20
618a7c
     6: 6
618a7c
     8: 8
618a7c
     default: 15