From 5f8f98024f8955a0327b67f873923757a51d082c Mon Sep 17 00:00:00 2001 From: Vojtech Polasek Date: Tue, 19 Jan 2021 12:32:07 +0100 Subject: [PATCH] add rule and remediations --- .../ansible/shared.yml | 13 +++++ .../bash/shared.sh | 7 +++ .../oval/shared.xml | 38 +++++++++++++ .../rule.yml | 57 +++++++++++++++++++ shared/references/cce-redhat-avail.txt | 1 - 5 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/ansible/shared.yml create mode 100644 linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/bash/shared.sh create mode 100644 linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/oval/shared.xml create mode 100644 linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/rule.yml diff --git a/linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/ansible/shared.yml b/linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/ansible/shared.yml new file mode 100644 index 00000000000..cefba7db05c --- /dev/null +++ b/linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/ansible/shared.yml @@ -0,0 +1,13 @@ +# platform = Red Hat Enterprise Linux 7,Oracle Linux 7 +# reboot = false +# strategy = restrict +# complexity = low +# disruption = low + +- name: "Configure sshd to use approved MACs" + lineinfile: + path: /etc/ssh/sshd_config + line: 'MACs hmac-sha2-512,hmac-sha2-256' + state: present + regexp: '^[\s]*MACs[\s]+(hmac-sha2-512(?=[\w,-@]+|$),?)?(hmac-sha2-256(?=[\w,-@]+|$),?)?[\s]*(?:#.*)?$' + create: True diff --git a/linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/bash/shared.sh b/linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/bash/shared.sh new file mode 100644 index 00000000000..c76190fb966 --- /dev/null +++ b/linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/bash/shared.sh @@ -0,0 +1,7 @@ +# platform = multi_platform_wrlinux,Red Hat Enterprise Linux 7,Oracle Linux 7 + +if grep -q -P '^[[:space:]]*MACs[[:space:]]+' /etc/ssh/sshd_config; then + sed -i 's/^\s*MACs.*/MACs hmac-sha2-512,hmac-sha2-256/' /etc/ssh/sshd_config +else + echo "MACs hmac-sha2-512,hmac-sha2-256" >> /etc/ssh/sshd_config +fi diff --git a/linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/oval/shared.xml b/linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/oval/shared.xml new file mode 100644 index 00000000000..d7fbd9f0edb --- /dev/null +++ b/linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/oval/shared.xml @@ -0,0 +1,38 @@ + + + {{{ oval_metadata("Limit the Message Authentication Codes (MACs) to those which are FIPS-approved.") }}} + + + + + + + + + + + + + + + + + + + + + + /etc/ssh/sshd_config + ^[\s]*(?i)MACs(?-i)[\s]+(?=[\w,-@]+)(hmac-sha2-512(?=[\w,-@]+|$),?)?(hmac-sha2-256(?=[\w,-@]+|$),?)?[\s]*(?:#.*)?$ + 1 + + + diff --git a/linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/rule.yml b/linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/rule.yml new file mode 100644 index 00000000000..dc9f7dca7cf --- /dev/null +++ b/linux_os/guide/services/ssh/ssh_server/sshd_use_approved_macs_ordered_stig/rule.yml @@ -0,0 +1,57 @@ +documentation_complete: true + +prodtype: rhel7 + +title: 'Use Only FIPS 140-2 Validated MACs' + +description: |- + Limit the MACs to those hash algorithms which are FIPS-approved. + The following line in /etc/ssh/sshd_config + demonstrates use of FIPS-approved MACs: +
MACs hmac-sha2-512,hmac-sha2-256
+ This rule ensures that there are configured MACs mentioned + above (or their subset), keeping the given order of algorithms. + +rationale: |- + DoD Information Systems are required to use FIPS-approved cryptographic hash + functions. The only SSHv2 hash algorithms meeting this requirement is SHA2. + +severity: medium + +identifiers: + cce@rhel7: CCE-83398-8 + +references: + disa: CCI-000068,CCI-000803,CCI-000877,CCI-001453,CCI-003123 + srg: SRG-OS-000125-GPOS-00065,SRG-OS-000250-GPOS-00093,SRG-OS-000394-GPOS-00174 + stigid@rhel7: RHEL-07-040400 + +ocil_clause: 'MACs option is commented out or not using FIPS-approved hash algorithms' + +ocil: |- + Only FIPS-approved MACs should be used. To verify that only FIPS-approved + MACs are in use, run the following command: +
$ sudo grep -i macs /etc/ssh/sshd_config
+ The output should contain only following MACs (or a subset) in the exact order: +
hmac-sha2-512,hmac-sha2-256
+ +warnings: + - general: |- + The system needs to be rebooted for these changes to take effect. + - regulatory: |- + System Crypto Modules must be provided by a vendor that undergoes + FIPS-140 certifications. + FIPS-140 is applicable to all Federal agencies that use + cryptographic-based security systems to protect sensitive information + in computer and telecommunication systems (including voice systems) as + defined in Section 5131 of the Information Technology Management Reform + Act of 1996, Public Law 104-106. This standard shall be used in + designing and implementing cryptographic modules that Federal + departments and agencies operate or are operated for them under + contract. See {{{ weblink(link="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf") }}} + To meet this, the system has to have cryptographic software provided by + a vendor that has undergone this certification. This means providing + documentation, test results, design information, and independent third + party review by an accredited lab. While open source software is + capable of meeting this, it does not meet FIPS-140 unless the vendor + submits to this process. diff --git a/shared/references/cce-redhat-avail.txt b/shared/references/cce-redhat-avail.txt index 2d36e8681ef..66196f1fa7b 100644 --- a/shared/references/cce-redhat-avail.txt +++ b/shared/references/cce-redhat-avail.txt @@ -1,4 +1,3 @@ -CCE-83398-8 CCE-83399-6 CCE-83405-1 CCE-83406-9