5.5. 보안
FIPS 모드에서 libgcrypt
에서 활성화 된 하드웨어 최적화
이전에는 연방 정보 처리 표준(FIPSRuntimeConfig)에서 하드웨어 최적화를 사용할 수 없었습니다. 따라서 이전 버전의 RHEL에서는 FIPS 모드인 경우 libgcrypt
패키지에서 작업이 비활성화되었습니다. RHEL 9는 FIPS 모드에서 하드웨어 최적화를 가능하게 하고 결과적으로 모든 암호화 작업이 더 빨리 수행됩니다.
이제 crypto-policies
에서 ChaCha20
암호화 사용을 비활성화할 수 있습니다.
이전에는 crypto-policies
패키지에서 잘못된 키워드를 사용하여 OpenSSL에서 ChaCha20
암호를 비활성화했습니다. 결과적으로 OpenSSL에서 crypto-policies
를 통해 TLS 1.2 프로토콜의 ChaCha20
을 비활성화할 수 없었습니다. 이번 업데이트에서는 -CHACHA20-POLY1305
대신 -CHACHA20
키워드가 사용됩니다. 결과적으로 TLS 1.2 및 TLS 1.3에 대해 OpenSSL에서 ChaCha20
암호 사용을 비활성화하는 암호화 정책을 사용할 수 있습니다.
FIPS 모드에서 설치하는 경우 64비트 IBM Z 시스템은 더 이상 부팅할 수 없습니다.
이전에는 --no-bootcfg
옵션이 있는 fips-mode-setup
명령이 zipl
도구를 실행하지 않았습니다. fips-mode-setup
이 초기 RAM 디스크(initrd
)를 다시 생성하므로 결과 시스템에서 부팅을 위해 zipl
내부 상태를 업데이트해야 하므로 FIPS 모드에 설치한 후 64비트 IBM Z 시스템을 부팅할 수 없는 상태가 됩니다. 이번 업데이트를 통해 이제 --no
로 호출되어 새로 설치된 시스템이 성공적으로 부팅되는 경우에도 64비트 IBM Z 시스템에서 -
bootcfgzipl
을 실행합니다.
(BZ#2013195)
GNUTLS_NO_EXPLICIT_INIT
가 더 이상 암시적 라이브러리 초기화를 비활성화하지 않음
이전에는 GNUTLS_NO_EXPLICIT 환경 변수가
암시적 라이브러리 초기화를 비활성화했습니다. RHEL 9에서 GNUTLS_NO_IMPLICIT_INIT
변수는 대신 암시적 라이브러리 초기화를 비활성화합니다.
(BZ#1999639)
이제 OpenSSL 기반 애플리케이션이 터키어 로케일에서 올바르게 작동합니다.
OpenSSL
라이브러리에서는 대소문자를 구분하지 않는 문자열 비교 기능을 사용하므로 OpenSSL 기반 애플리케이션이 Turkish 로케일에서 올바르게 작동하지 않았으며 생략된 검사로 인해 이 로케일을 사용하는 애플리케이션이 충돌했습니다. 이번 업데이트에서는 대소문자를 구분하지 않는 문자열 비교를 위해 이식 가능한 운영 체제 인터페이스(POSIX) 로케일을 사용하는 패치를 제공합니다. 결과적으로 curl과 같은 OpenSSL 기반 애플리케이션은 터키어 로케일을 통해 올바르게 작동합니다.
SELinux 권한으로 인해 kdump
가 더 이상 충돌하지 않음
kdump
충돌 복구 서비스를 사용하려면 추가 SELinux 권한이 올바르게 시작되어야 합니다. 따라서 이전 버전에서 SELinux는 kdump
가 작동하지 않고 kdump
가 작동하지 않음을 보고했으며 AVC(Access Vector Cache) 거부를 감사했습니다. 이 버전에서는 필요한 권한이 selinux-policy
에 추가되어 kdump
가 올바르게 작동하고 AVC 거부를 감사하지 않습니다.
(BZ#1932752)
usbguard-selinux
패키지는 더 이상 usbguard
에 의존하지 않습니다.
이전에는 usbguard-selinux
패키지가 usbguard
패키지에 종속되었습니다. 이는 이러한 패키지의 다른 종속 항목과 함께 usbguard
를 설치할 때 파일 충돌이 발생했습니다. 이로 인해 특정 시스템에서 usbguard
를 설치할 수 없었습니다. 이 버전을 사용하면 usbguard-selinux
가 더 이상 usbguard
에 의존하지 않으므로 dnf
가 usbguard
를 올바르게 설치할 수 있습니다.
DNF 설치
및 dnf 업데이트
는 이제 SELinux에서 fapolicyd
와 함께 작동합니다.
fapolicyd에 대한 SELinux 규칙이 포함된 fapolicyd-selinux
패키지에는 모든 파일 및 디렉터리를 감시할 수 있는 권한이 포함되어 있지 않습니다. 그 결과 fapolicyd-dnf-plugin
이 제대로 작동하지 않아 dnf install
및 dnf update
명령이 시스템에서 무기한 응답을 중지하도록 했습니다. 이 버전에서 모든 파일 유형을 조사할 권한이 fapolicyd-selinux
에 추가되었습니다. 결과적으로 fapolicyd-dnf-plugin
이 올바르게 작동하고 dnf install
및 dnf 업데이트가
작동합니다.
(BZ#1932225)
이제 루트가 아닌 사용자에게 앰비언트 기능이 올바르게 적용됩니다.
안전 조치로 UID(User Identifier)를 root에서 루트가 아닌 사용자로 변경하면 허용된 유효 기능 및 앰비언트 세트의 기능을 알립니다.
그러나 기능이 허용되고 상속 가능한 세트가 앰비언트 세트에 있어야 하므로 pam_cap.so
모듈은 앰비언트 기능을 설정할 수 없습니다. 또한, 허용된 세트는 UID를 변경한 후(예: setuid
유틸리티 사용) nullified이므로 앰비언트 기능을 설정할 수 없습니다.
이 문제를 해결하기 위해 pam_cap.so
모듈에서 keepcaps
옵션을 지원하므로 루트에서 루트가 아닌 사용자로 UID를 변경한 후 프로세스에서 허용된 기능을 유지할 수 있습니다. 이제
모듈에서는 pam_cap.so로 콜백에서 pam_cap.so
pam_end()
에 대한 콜백 내에서 앰비언트 기능을 다시 적용하는 defer
옵션을 지원합니다. 이 콜백은 UID를 변경한 후 다른 애플리케이션에서 사용할 수 있습니다.
따라서 su
및 login
유틸리티가 업데이트되고 PAM을 준수하는 경우, keepcaps
와 함께 pam_cap.so
를 사용하고 루트가 아닌 사용자에 대해 앰비언트 기능을 설정하는 옵션 지연
을 사용할 수 있습니다.
usbguard-notifier
는 더 이상 저널에 너무 많은 오류 메시지를 기록하지 않습니다.
이전에는 usbguard-daemon
IPC 인터페이스에 연결하기 위한 usbguard-notifier
서비스에 프로세스 간 통신(IPC) 권한이 없었습니다. 그 결과 usbguard-notifier
가 인터페이스에 연결하지 못하고 해당 오류 메시지를 저널에 작성했습니다. usbguard-notifier
는 --wait
옵션으로 시작했기 때문에 usbguard-notifier
가 연결 실패 후 각각 IPC 인터페이스에 연결을 시도했기 때문에 기본적으로 로그에 이러한 메시지의 과도한 양이 곧 포함되어 있었습니다.
이번 업데이트를 통해 usbguard-notifier
는 기본적으로 --wait
로 시작하지 않습니다. 서비스는 1초 간격으로 3번 데몬에 연결을 시도합니다. 결과적으로 로그에 최대 세 개의 오류 메시지가 포함됩니다.