CCI-000068 in U Apple macOS 15 V1R1

ℹ️ The items you can view are limited because you do not have a subscription. Contact us at [email protected] to purchase one.

UNCLASSIFIED
Group Title
SRG-OS-000033-GPOS-00014
Group ID
V-268438
Rule Version
APPL-15-000054
Rule Title
The macOS system must limit SSHD to FIPS-compliant connections.
Rule ID
SV-268438r1034254_rule
Rule Severity
High
Rule Weight
10.0
Vuln Discussion

If SSHD is enabled, it must be configured to limit the Ciphers, HostbasedAcceptedAlgorithms, HostKeyAlgorithms, KexAlgorithms, MACs, PubkeyAcceptedAlgorithms, CASignatureAlgorithms to algorithms that are FIPS-140 validated.

FIPS 140-2/140-3 is the current standard for validating that mechanisms used to access cryptographic modules use authentication that meets federal requirements.

Operating systems using encryption must use FIPS-validated mechanisms for authenticating to cryptographic modules.

NOTE: For more information on FIPS compliance with the version of SSHD included in the macOS, the manual page apple_ssh_and_fips has additional information.

Satisfies: SRG-OS-000033-GPOS-00014, SRG-OS-000120-GPOS-00061, SRG-OS-000250-GPOS-00093, SRG-OS-000393-GPOS-00173, SRG-OS-000394-GPOS-00174, SRG-OS-000396-GPOS-00176, SRG-OS-000424-GPOS-00188, SRG-OS-000478-GPOS-00223

Documentable
False
Check Content

Verify the macOS system is configured to limit SSHD to FIPS-compliant connections with the following command:

fips_sshd_config=("Ciphers [email protected]" "HostbasedAcceptedAlgorithms ecdsa-sha2-nistp256,[email protected]" "HostKeyAlgorithms [email protected],[email protected],ecdsa-sha2-nistp256,[email protected]" "KexAlgorithms ecdh-sha2-nistp256" "MACs [email protected],hmac-sha2-256" "PubkeyAcceptedAlgorithms ecdsa-sha2-nistp256,[email protected],[email protected]" "CASignatureAlgorithms ecdsa-sha2-nistp256,[email protected]")

total=0

for config in $fips_sshd_config; do

total=$(expr $(/usr/sbin/sshd -G | /usr/bin/grep -i -c "$config") + $total)

done

echo $total

If the result is not "7", this is a finding.

Check System
C-72468r1034252_chk
Fix Reference
F-72369r1034253_fix
Fix Text

Configure the macOS system to limit SSHD to FIPS-compliant connections with the following command:

/bin/ln -fs /etc/ssh/crypto/fips.conf /etc/ssh/crypto.conf

Identities
CCI-000068

Implement cryptographic mechanisms to protect the confidentiality of remote access sessions.

  • 800-53 :: AC-17 (2)
  • 800-53 Rev. 4 :: AC-17 (2)
  • 800-53 Rev. 5 :: AC-17 (2)
  • 800-53A :: AC-17 (2).1
CCI-000803

Implement mechanisms for authentication to a cryptographic module that meet the requirements of applicable laws, Executive Orders, directives, policies, regulations, standards, and guidance for such authentication.

  • 800-53 :: IA-7
  • 800-53 Rev. 4 :: IA-7
  • 800-53 Rev. 5 :: IA-7
  • 800-53A :: IA-7.1
CCI-001453

Implement cryptographic mechanisms to protect the integrity of remote access sessions.

  • 800-53 :: AC-17 (2)
  • 800-53 Rev. 4 :: AC-17 (2)
  • 800-53 Rev. 5 :: AC-17 (2)
  • 800-53A :: AC-17 (2).1
CCI-002421

Implement cryptographic mechanisms to prevent unauthorized disclosure of information and/or detect changes to information during transmission.

  • 800-53 Rev. 4 :: SC-8 (1)
  • 800-53 Rev. 5 :: SC-8 (1)
CCI-002450

Implement organization-defined types of cryptography for each specified cryptography use.

  • 800-53 Rev. 4 :: SC-13
  • 800-53 Rev. 5 :: SC-13 b
CCI-002890

Implement organization-defined cryptographic mechanisms to protect the integrity of nonlocal maintenance and diagnostic communications.

  • 800-53 Rev. 4 :: MA-4 (6)
  • 800-53 Rev. 5 :: MA-4 (6)
CCI-003123

Implement organization-defined cryptographic mechanisms to protect the confidentiality of nonlocal maintenance and diagnostic communications.

  • 800-53 Rev. 4 :: MA-4 (6)
  • 800-53 Rev. 5 :: MA-4 (6)
Group Title
SRG-OS-000033-GPOS-00014
Group ID
V-268439
Rule Version
APPL-15-000057
Rule Title
The macOS system must limit SSH to FIPS-compliant connections.
Rule ID
SV-268439r1034803_rule
Rule Severity
High
Rule Weight
10.0
Vuln Discussion

SSH must be configured to limit the Ciphers, HostbasedAcceptedAlgorithms, HostKeyAlgorithms, KexAlgorithms, MACs, PubkeyAcceptedAlgorithms, CASignatureAlgorithms to algorithms that are FIPS-140 validated.

FIPS 140-3 is the current standard for validating that mechanisms used to access cryptographic modules use authentication that meets federal requirements.

Operating systems using encryption must use FIPS-validated mechanisms for authenticating to cryptographic modules.

NOTE: For more information on FIPS compliance with the version of SSH included in the macOS, the manual page apple_ssh_and_fips has additional information.

Satisfies: SRG-OS-000033-GPOS-00014, SRG-OS-000120-GPOS-00061, SRG-OS-000250-GPOS-00093, SRG-OS-000396-GPOS-00176, SRG-OS-000424-GPOS-00188, SRG-OS-000478-GPOS-00223

Documentable
False
Check Content

Verify the macOS system is configured to limit SSH to FIPS-compliant connections with the following command:

fips_ssh_config=("Ciphers [email protected]" "HostbasedAcceptedAlgorithms ecdsa-sha2-nistp256,[email protected]" "HostKeyAlgorithms [email protected],[email protected],ecdsa-sha2-nistp256,[email protected]" "KexAlgorithms ecdh-sha2-nistp256" "MACs [email protected],hmac-sha2-256" "PubkeyAcceptedAlgorithms ecdsa-sha2-nistp256,[email protected],[email protected]" "CASignatureAlgorithms ecdsa-sha2-nistp256,[email protected]")

total=0

ret="pass"

for config in $fips_ssh_config; do

if [[ "$ret" == "fail" ]]; then

break

fi

for u in $(/usr/bin/dscl . list /users shell | /usr/bin/egrep -v '(^_)|(root)|(/usr/bin/false)' | /usr/bin/awk '{print $1}'); do

sshCheck=$(/usr/bin/sudo -u $u /usr/bin/ssh -G . | /usr/bin/grep -ci "$config")

if [[ "$sshCheck" == "0" ]]; then

ret="fail"

break

fi

done

done

echo $ret

If the result is not "pass", this is a finding.

Check System
C-72469r1034801_chk
Fix Reference
F-72370r1034802_fix
Fix Text

Configure the macOS system to limit SSH to FIPS-compliant connections with the following command:

if [ -f /etc/ssh/crypto.conf ] && /usr/bin/grep -q "Include /etc/ssh/crypto.conf" /etc/ssh/ssh_config.d/100-macos.conf 2>/dev/null; then

/bin/ln -fs /etc/ssh/crypto/fips.conf /etc/ssh/crypto.conf

fi

include_dir=$(/usr/bin/awk '/^Include/ {print $2}' /etc/ssh/ssh_config | /usr/bin/tr -d '*')

fips_ssh_config=("Ciphers [email protected]" "HostbasedAcceptedAlgorithms ecdsa-sha2-nistp256,[email protected]" "HostKeyAlgorithms [email protected],[email protected],ecdsa-sha2-nistp256,[email protected]" "KexAlgorithms ecdh-sha2-nistp256" "MACs [email protected],hmac-sha2-256" "PubkeyAcceptedAlgorithms ecdsa-sha2-nistp256,[email protected],[email protected]" "CASignatureAlgorithms ecdsa-sha2-nistp256,[email protected]")

for ssh_config in $fips_ssh_config; do

ssh_setting=$(echo $ssh_config | /usr/bin/cut -d " " -f1)

/usr/bin/grep -qEi "^$ssh_setting" "${include_dir}01-mscp-ssh.conf" && /usr/bin/sed -i "" "s/^$ssh_setting.*/${ssh_config}/" "${include_dir}01-mscp-ssh.conf" || echo "$ssh_config" >> "${include_dir}01-mscp-ssh.conf"

for u in $(/usr/bin/dscl . list /users shell | /usr/bin/egrep -v '(^_)|(root)|(/usr/bin/false)' | /usr/bin/awk '{print $1}'); do

config=$(/usr/bin/sudo -u $u /usr/bin/ssh -Gv . 2>&1)

configfiles=$(echo "$config" | /usr/bin/awk '/Reading configuration data/ {print $NF}'| /usr/bin/tr -d '\r')

configarray=( ${(f)configfiles} )

if ! echo $config | /usr/bin/grep -q -i "$ssh_config" ; then

for c in $configarray; do

if [[ "$c" == "/etc/ssh/crypto.conf" ]]; then

continue

fi

/usr/bin/sudo -u $u /usr/bin/grep -qEi "^$ssh_setting" "$c" && /usr/bin/sed -i "" "s/^$ssh_setting.*/${ssh_config}/I" "$c"

if [[ "$c" =~ ".ssh/config" ]]; then

if /usr/bin/grep -qEi "$ssh_setting" "$c" 2> /dev/null; then

old_file=$(cat ~$u/.ssh/config)

echo "$ssh_config" > ~$u/.ssh/config

echo "$old_file" >> ~$u/.ssh/config

fi

fi

done

fi

done

done

Identities
CCI-000068

Implement cryptographic mechanisms to protect the confidentiality of remote access sessions.

  • 800-53 :: AC-17 (2)
  • 800-53 Rev. 4 :: AC-17 (2)
  • 800-53 Rev. 5 :: AC-17 (2)
  • 800-53A :: AC-17 (2).1
CCI-000803

Implement mechanisms for authentication to a cryptographic module that meet the requirements of applicable laws, Executive Orders, directives, policies, regulations, standards, and guidance for such authentication.

  • 800-53 :: IA-7
  • 800-53 Rev. 4 :: IA-7
  • 800-53 Rev. 5 :: IA-7
  • 800-53A :: IA-7.1
CCI-001453

Implement cryptographic mechanisms to protect the integrity of remote access sessions.

  • 800-53 :: AC-17 (2)
  • 800-53 Rev. 4 :: AC-17 (2)
  • 800-53 Rev. 5 :: AC-17 (2)
  • 800-53A :: AC-17 (2).1
CCI-002421

Implement cryptographic mechanisms to prevent unauthorized disclosure of information and/or detect changes to information during transmission.

  • 800-53 Rev. 4 :: SC-8 (1)
  • 800-53 Rev. 5 :: SC-8 (1)
CCI-002450

Implement organization-defined types of cryptography for each specified cryptography use.

  • 800-53 Rev. 4 :: SC-13
  • 800-53 Rev. 5 :: SC-13 b
UNCLASSIFIED