MDS - 마이크로아키텍처 데이터 샘플링 - CVE-2018-12130, CVE-2018-12126, CVE-2018-12127, CVE-2019-11091

Public Date: May 13, 2019, 10:20
갱신됨 May 22, 2019, 14:57 - Chinese, Simplified 영어 (English) French Japanese
Resolved 상태
Important Impact

Insights vulnerability analysis

View exposed systems

요약

네 가지 새로운 마이크로프로세서 취약점이 발견되었으며 Red Hat 제품 보안팀은 이러한 취약점을 심각한 보안 문제를 일으키는 "중요" 등급으로 분류하고 있습니다. 시스템에 대한 로컬 쉘 액세스 권한이 있는 공격자가 이러한 보안 취약점을 악용할 경우 CPU 캐시의 데이터를 승인되지 않은 프로세스에 노출할 수 있습니다. 이러한 취약점을 악용하여 시스템에 보안 공격을 구현하는 것이 어렵기는 하지만 숙련된 공격자는 이를 악용하여 가상 또는 컨테이너 인스턴스나 기본 호스트 시스템에서 메모리 데이터를 읽을 수 있습니다. Red Hat은 영향을 받은 시스템에 대응할 수 있는 완화 방법을 마련하고 사용자에게 이러한 보안 취약점을 평가하고 대처하기 위해 필요한 세부 단계를 제공합니다.

문제 세부 정보 및 배경 정보

Red Hat은 권한이 없는 로컬 공격자가 일반 메모리 보안 제한을 우회하여 권한이 필요한 메모리 데이터에 액세스할 수 있게 하는 일련의 마이크로 아키텍처 (하드웨어) 구현 문제를 인지하고 있습니다. 이러한 결함은 컨테이너에서 실행되는 악의적인 코드에 의해서도 악용될 수 있습니다. 이러한 문제는 최신 Intel 마이크로 프로세서에 영향을 미치며 사용자는 Linux 커널, 가상화 스택, CPU 마이크로코드를 업데이트해야합니다. 이러한 문제점은 CVE-2018-12130로 지정되어 있으며 중요(Important) 보안 등급으로 분류되어 있습니다. CVE-2018-12126, CVE-2018-12127, CVE-2019-11091 로 지정된 문제는 중간 (Moderate) 보안 등급으로 분류되어 있습니다.

현재 이러한 취약점은 Intel 기반 프로세서에만 영향을 미치는 것으로 알려져 있지만 Red Hat 제품 보안팀에서는 SMT (Simultaneous Multi Threading) 관련 보안 취약점이 다른 공급 업체의 제품에 미치는 영향을 계속 조사하고 있습니다.

Intel 마이크로프로세서 설계가 여러 성능 미세 최적화를 구현하는 방식에서 결함이 발견되었습니다. 취약점이 악용될 경우 공격자는 사이드 채널 공격을 사용하여 다른 프로세서, 컨테이너, 가상 시스템, 커널에 속한 시스템에서 최근 사용된 데이터에 액세스할 수 있습니다.

이러한 보안 취약점은 내부 CPU 구조에 남아있는 데이터를 얻기 위해 마이크로 프로세서의 추측 실행을 활용하기 때문에 마이크로아키텍처 데이터 샘플링 (MDS: Microarchitectural Data Sampling)이라고 합니다.

CVE-2018-12126 - 마이크로아키텍처 스토어 버퍼 데이터 샘플링 (MSBDS: Microarchitectural Store Buffer Data Sampling)

최근 메모리에 저장 (쓰기)이 포함된 프로세서 스토어 버퍼 구조에 정보 유출 가능성과 관련된 많은 Intel 마이크로프로세서 설계에서 취약점이 발견되었습니다.

최신 Intel 마이크로프로세서는 하드웨어 수준의 마이크로 최적화를 구현하여 CPU 캐시 작업에 대한 데이터 쓰기 성능을 개선했습니다. 쓰기 동작은 STA (STore Address) 및 STD (STore Data) 하위 작업으로 분할되어 있습니다. 이러한 하위 작업을 통해 프로세서는 주소 생성 논리를 하위 작업으로 전달하여 쓰기 작업의 성능을 최적화할 수 있습니다. 두 하위 작업 모두 '프로세서 스토어 버퍼'라는 공유 분산 프로세서 구조에 데이터를 기록합니다.

프로세서 스토어 버퍼는 주소, 값, '유효' 항목으로된 테이블입니다. 하위 작업은 서로 독립적으로 실행할 수 있으므로 테이블의 주소 및 값 항목에 있는 데이터를 각각 독립적으로 업데이트할 수 있습니다. 이는 다른 시점에서는 주소 또는 값이 유효하지 않을 수 있음을 의미합니다.


프로세서는 스토어 버퍼로부터 엔트리를 추측하여 전송할 수 있습니다. 위의 분할 설계를 사용하면 이러한 잘못 전송된 주소와 같은 이전 값과 관련이 없는 저장소에서 반환된 데이터와 같은 확인되지 않은 데이터의 사용을 추측할 수 있습니다. 이러한 오류는 오류/지원 해결에 따라 다시 실행되는 로드에만 발생하므로 프로그램의 아키텍처에 영향을 주지는 않지만 사이드 채널 분석을 통해 데이터를 검색하기 위한 악성 코드에 스토어 버퍼 상태가 유출될 수 있습니다.

프로세서 스토어 버퍼 항목은 활성 하이퍼 스레드 수 간에 동일하게 분배됩니다. 전원 상태 변경과 같은 조건은 항목이 제거되었는지 확인하지 않고 프로세서 스토어 버퍼 항목을 부분적으로 업데이트된 상태의 프로세서로 다른 스레드에 재할당할 수 있습니다.

이러한 문제는 Fallout이라고 합니다.


CVE-2018-12127 - 마이크로아키텍처 로드 포트 데이터 샘플링 (MLPDS: Microarchitectural Load Port Data Sampling)

마이크로프로세서는 '로드 포트'를 사용하여 메모리 또는 IO에서 로드 연산을 수행합니다. 로드 작업 중 로드 포트는 메모리 또는 IO 서브시스템에서 데이터를 수신한 후 데이터를 CPU 파이프 라인에 있는 CPU 레지스터 및 처리 대기열 작업에 제공합니다.

일부 구현에서 각 로드 포트 내의 라이트백(writeback) 데이터 버스는 새로운 로드 연산이 해당 데이터를 덮어쓰기할 때 까지 이전 로드 연산으로 부터의 데이터 값을 저장할 수 있습니다.

MLPDS는 다음과 같은 경우 악의적인 사용자에게 기존 로드 포트 데이터를 제공할 수 있습니다:

  • 오류 발생/보조 SSE/AVX/AVX-512 로드가 64 비트 크기 이상으로 로드된 경우
  • 오류 발생/보조 로드가 64 바이트의 경계를 초과한 경우

위의 경우 로드 오퍼레이션은 내부 데이터 구조에서 부적절한 데이터 값을 추측하여 종속 오퍼레이션에 제공합니다. 이러한 데이터를 추측하여 전달하면 프로그램 실행이 변경되지는 않지만 이를 위젯으로 사용하면 로드 포트에 액세스하는 시점에 따라 공격자가 다른 프로세스의 데이터 값을 추측할 수 있습니다.


CVE-2018-12130 - 마이크로아키텍처 필 버퍼 데이터 샘플링 (MFBDS: Microarchitectural Fill Buffer Data Sampling)

이는 Red Hat에서 '중요'한 보안 영향을 미치는 것으로 분류된 위험이 높은 취약점입니다. 이는 Intel 마이크로프로세서에 의해 사용되는 필 버퍼 (fill buffers) 구현에서 발견되었습니다.

필 버퍼는 존재하지 않는 데이터 값을 사용 시도하고 그 결과 프로세서 L1 데이터 캐시에서 누락된 데이터를 저장하게 됩니다. Intel 코어에서 L1 데이터 캐시 누락이 발생하면 필 버퍼는 프로세서가 상위 레벨 캐시의 액세스 데이터를 로드하는 동안 다른 작업을 계속 처리할 수 있도록 설계되었습니다. 또한 L1 데이터 캐시에 데이터를 기록하지 않고 실행 유닛(Execution Unit)으로 직접 데이터를 전달할 수 있습니다.

로드 오퍼레이션의 분리 조작은 스토어에서와 같이 분리되지 않지만 주소 생성 장치 (AGU: Address Generation Unit) 작업이 필요합니다. AGU가 오류 (#PF 등) 또는 보조 (A/D 비트)를 생성하면 기존 Intel 설계로 인해 로드 작업의 실행이 차단되고 나중에 로드 작업을 다시 실행합니다. 현재의 설계에서는 로드가 실제로 실행되기 전에 후속 추측 작업이 필 버퍼 슬롯에서 전달된 데이터에 일시적으로 액세스할 수 있습니다. 따라서 필 버퍼 항목을 덮어쓰지 않으면 다른 스레드가 최근에 액세스한 데이터를 읽을 수 있습니다.

이러한 문제는 RIDL 또는 ZombieLoad라고 합니다.

CVE-2019-11091 - 마이크로아키텍처 데이터 샘플링에서 캐시 불가능한 메모리 (MDSUM: Microarchitectural Data Sampling Uncacheable Memory)

L1 CPU 캐시에서 캐시-누락이 발생했을 때 최신 CPU가 사용하는 메커니즘인 '필 버퍼' 구현에서 취약점이 발견되었습니다. 공격자가 페이지 오류를 발생시키는 로드 작업을 생성할 때 상위 레벨 캐시에서 데이터를 가져오는 동안 프로세서는 잘못된 필 버퍼의 데이터를 사용하여 실행을 예측합니다. 이러한 응답 시간를 측정하여 필 버퍼에서 데이터를 추측할 수 있습니다.

감사 인사

Red Hat은 이 문제에 대해 보고하고 완화 조치에 대해 협력해 주신 Intel 및 업계 파트너에게 감사드립니다.

또한 처음으로 문제에 대해 보고해 주신 분들에게도 감사드립니다.
Microarchitectural Store Buffer Data Sampling (MSBDS) - CVE-2018-12126
이 취약점은 Intel 직원에 의해 발견되었습니다. Intel은 Ke Sun, Henrique Kawakami, Kekai Hu, Rodrigo Branco님에게 감사드립니다. 개별적으로 문제에 대해 보고해 주신 Lei Shi - Qihoo - 360 CERT 및 Marina Minkin, Daniel Moghimi, Moritz Lipp, Michael Schwarz, Jo Van Bulck, Daniel Genkin, Daniel Gruss, Berk Sunar, Frank Piessens님에게 감사드리며, Yuval Yarom (1University of Michigan, Worcester Polytechnic Institute, Graz University of Technology, imec-DistriNet, KU Leuven, University of Adelaide)님에게도 감사드립니다.

Microarchitectural Load Port Data Sampling (MLPDS) - CVE-2018-12127
이 취약점은 Intel 직원 및 Microsoft에 의해 발견되었습니다. Intel은 Brandon Falk – Microsoft Windows Platform Security Team, Ke Sun, Henrique Kawakami, Kekai Hu, Rodrigo Branco - Intel 님에게 감사드립니다. 문제에 대해 개별적으로 보고해 주신 Matt Miller – Microsoft, Stephan van Schaik, Alyssa Milburn, Sebastian Österlund, Pietro Frigo, Kaveh Razavi, Herbert Bos, Cristiano Giuffrida - VUSec group at VU Amsterdam 님에게도 감사드립니다.

Microarchitectural Fill Buffer Data Sampling (MFBDS) - CVE-2018-12130

이 취약점은 Intel 직원에 의해 발견되었습니다. Intel은 Ke Sun, Henrique Kawakami, Kekai Hu, Rodrigo Branco님에게 감사드립니다. 개별적으로 보고해 주신 Giorgi Maisuradze – Microsoft Research, Dan Horea Lutas 및 Andrei Lutas - Bitdefender, Volodymyr Pikhur, Stephan van Schaik, Alyssa Milburn, Sebastian Österlund, Pietro Frigo, Kaveh Razavi, Herbert Bos, Cristiano Giuffrida - VUSec group at VU Amsterdam, Moritz Lipp, Michael Schwarz, Daniel Gruss - Graz University of Technology 님에게도 감사드립니다.

Microarchitectural Data Sampling Uncacheable Memory (MDSUM) - CVE-2019-11091

이 취약점은 Intel 직원이 내부적으로 발견했습니다. Intel은 Ke Sun, Henrique Kawakami, Kekai Hu, Rodrigo Branco님에게 감사드립니다. 문제에 대해 개별적으로 보고해 주신 Volodrmyr Pikhur, Moritz Lipp, Michael Schwarz, Daniel Gruss - Graz University of Technology, Stephan van Schaik, Alyssa Milburn, Sebastian Österlund, Pietro Frigo, Kaveh Razavi, Herbert Bos, Cristiano Giuffrida - VUSec group at VU Amsterdam님에게도 감사드립니다.

참고 자료

이 문제에 대한 자세한 내용은 Intel 웹사이트에서 참조하십시오.

KCS: Simultaneous Multithreading in Red Hat Enterprise Linux

KCS: Disabling Hyper-Threading

KCS: CPU Side Channel Attack Index Page

KCS: Microcode availability for Pre-Haswell CPUs

KCS: Availability of Updated Intel CPU Microcode Addressing Microarchitectural Data Sampling (MDS) Vulnerability 

KCS:   Applying MDS CVE's patches on RHV hosts and manager node 

Video:  All about MDS in about 3 minutes

Video:  Longform MDS Technical Explanation

Blog: Deeper Look at the MDS Vulnerability

Blog: Modern IT security: Sometimes caring is NOT sharing 


영향을 받는 제품

Red Hat 제품 보안팀은 본 취약점이 중요한 보안 영향을 미치는 것으로 평가하고 있습니다.

영향을 받는 Red Hat 제품은 다음과 같습니다.

  • Red Hat Enterprise Linux 5

  • Red Hat Enterprise Linux 6

  • Red Hat Enterprise Linux 7

  • Red Hat Enterprise Linux 8

  • Red Hat Atomic Host

  • Red Hat Enterprise MRG 2

  • Red Hat OpenShift Online v3

  • Red Hat Virtualization (RHV/RHV-H)

  • Red Hat OpenStack Platform 


    Red Hat의 Linux Container는 타사의 하드웨어 취약점의 영향을 직접적으로 받지 않지만 보안 문제는 호스트 커널 환경의 보안에 따라 다릅니다. Red Hat은 최신 버전의 컨테이너 이미지를 사용할 것을 권장합니다. Red Hat Container Catalog의 일부인 Container Health Index를 사용하여 Red Hat 컨테이터의 보안 상태를 확인할 수 있습니다. 사용 중인 모든 컨테이너의 개인 정보를 보호하려면 이러한 공격에 대해 컨테이너 호스트 (예: Red Hat Enterprise Linux 또는 Atomic Host)를 업데이트해야 합니다. Red Hat은 이러한 문제에 대해 업데이트된 Atomic Host를 출시하고 있습니다.


    공격 벡터 매트릭스
    공격 벡터 취약성 여부 취약한 이유 완화 방법
    로컬 사용자 프로세스가 호스트 시스템 공격 취약 보안 데이터를 읽을 수 있음 커널 MDS 패치 + 마이크로코드 + HT 비활성화
    로컬 사용자 프로세스가 다른 사용자 프로세스를 공격 취약 보안 데이터를 읽을 수 있음 커널 MDS 패치 + 마이크로코드 + HT 비활성화
    게스트가 다른 게스트를 공격 취약 보안 데이터를 읽을 수 있음 커널 MDS 패치 + 마이크로코드 + HT 비활성화
    게스트가 호스트를 공격 취약 보안 데이터를 읽을 수 있음 커널 MDS 패치 + 마이크로코드 + HT 비활성화
    호스트 사용자가 게스트 공격 취약 보안 데이터를 읽을 수 있음 커널 MDS 패치 + 마이크로코드 + HT 비활성화
    컨테이너가 호스트 공격 취약 보안 데이터를 읽을 수 있음 커널 MDS 패치 + 마이크로코드 + HT 비활성화
    컨테이너가 다른 컨테이너 공격 취약 보안 데이터를 읽을 수 있음 커널 MDS 패치 + 마이크로코드 + HT 비활성화

    호스트에서 HT가 비활성화된 멀티 테넌트(multi-tenant) 시스템에서 다른 게스트가 동일한 코어의 다른 스레드에 액세스할 수 없어야 하며 취약성이 없어야 합니다. 호스트 성능과 리소스의 전체 가용성이 영향을 받습니다.

    호스트에서 HT가 활성화된 멀티 테넌트 시스템에서 하이버파이저에 보안 취약점이 존재합니다. 멀티 테넌트 시스템의 HT 비활성화 여부와 관계 없이 게스트에 취약점이 존재합니다.

    호스트에서 HT가 활성화된 멀티 테넌트 시스템에서 하이퍼바이저에 보안 취약점이 존재하지 않습니다. 보안 취약점의 영향을 받지 않도록 게스트 시스템에서 HT를 비활성화해야 합니다.


    취약점 진단

    시스템에 보안 취약점이 존재하는지 확인하십시오. 다음의 진단 스크립트를 사용하여 시스템이 현재 이러한 결함에 대해 취약한 상태인지 확인하십시오. 정규 스크립트임을 확인하려면 GPG 분리 서명을 다운로드할 수 있습니다.

    시스템의 취약성 여부 확인

    현재 버전: 1.0

    Red Hat Virtualization 제품을 실행하는 서브스크립션 사용자의 경우 지식베이스 문서를 참조하여OEM 제공 마이크로코드/펌웨어가 적용되었는지 확인할 수 있습니다.

    관련 업데이트를 적용한 후 사용자는 다음 명령 중 하나를 실행하여 해당 패치의 적용 여부를 확인할 수 있습니다.

    # dmesg | grep "MDS:"
    [    0.162571] MDS: Vulnerable: Clear CPU buffers attempted, no microcode
    [  181.862076] MDS: Mitigation: Clear CPU buffers

    # cat /sys/devices/system/cpu/vulnerabilities/mds
    Mitigation: Clear CPU buffers; SMT vulnerable

    해결 방법

    영향을 받는 Red Hat 제품 버전을 실행 중인 모든 Red Hat 고객은 에라타가 제공되는 데로 즉시 업데이트할 것을 권장합니다. Red Hat 고객은 해당 업데이트가 제공되는 즉시 시스템을 업데이트해야 하며 상황에 따라 완화계획을 적절하게 구현합니다.

    패치 적용 순서는 중요하지 않지만 펌웨어 및 하이퍼 바이저를 업데이트한 후 새 하드웨어 유형을 인식하려면 모든 시스템/가상 머신의 전원을 끄고 다시 시작해야 합니다.

    영향을 받는 제품 업데이트

    제품 패키지권고/업데이트
    Red Hat Enterprise Linux 8 (z-stream)kernelRHSA-2019:1167
    Red Hat Enterprise Linux 8kernel-rtRHSA-2019:1174
    Red Hat Enterprise Linux 8virt:rhelRHSA-2019:1175
    Red Hat Enterprise Linux 8microcode_ctlRHEA-2019:1211
    Red Hat Enterprise Linux 7 (z-stream)kernelRHSA-2019:1168
    Red Hat Enterprise Linux 7kernel-rtRHSA-2019:1176
    Red Hat Enterprise Linux 7qemu-kvmRHSA-2019:1178
    Red Hat Enterprise Linux 7qemu-kvm-rhevRHSA-2019:1179
    Red Hat Enterprise Linux 7libvirtRHSA-2019:1177
    Red Hat Enterprise Linux 7microcode_ctlRHEA-2019:1210
    Red Hat Enterprise Linux 7.5 Extended Update Support [1]kernelRHSA-2019:1155
    Red Hat Enterprise Linux 7.5 Extended Update Support [1]qemu-kvmRHSA-2019:1183
    Red Hat Enterprise Linux 7.5 Extended Update Support [1]libvirtRHSA-2019:1182
    Red Hat Enterprise Linux 7.5 Extended Update Support [1]microcode_ctlRHEA-2019:1213
    Red Hat Enterprise Linux 7.4 Extended Update Support [1]kernelRHSA-2019:1170
    Red Hat Enterprise Linux 7.4 Extended Update Support [1]qemu-kvmRHSA-2019:1185
    Red Hat Enterprise Linux 7.4 Extended Update Support [1]libvirtRHSA-2019:1184
    Red Hat Enterprise Linux 7.4 Extended Update Support [1]microcode_ctlRHEA-2019:1214
    Red Hat Enterprise Linux 7.3 Update Services for SAP Solutions, & Advanced Update Support [2][3]kernelRHSA-2019:1171
    Red Hat Enterprise Linux 7.3 Update Services for SAP Solutions, & Advanced Update Support [2][3]qemu-kvmRHSA-2019:1189
    Red Hat Enterprise Linux 7.3 Update Services for SAP Solutions, & Advanced Update Support [2][3]libvirtRHSA-2019:1187
    Red Hat Enterprise Linux 7.3 Update Services for SAP Solutions, & Advanced Update Support [2][3]microcode_ctlRHEA-2019:1215
    Red Hat Enterprise Linux 7.2 Update Services for SAP Solutions, & Advanced Update Support [2][3]kernelRHSA-2019:1172
    Red Hat Enterprise Linux 7.2 Update Services for SAP Solutions, & Advanced Update Support [2][3]qemu-kvmRHSA-2019:1188
    Red Hat Enterprise Linux 7.2 Update Services for SAP Solutions, & Advanced Update Support [2][3]libvirtRHSA-2019:1186
    Red Hat Enterprise Linux 7.2 Update Services for SAP Solutions, & Advanced Update Support [2][3]microcode_ctlRHEA-2019:1216
    Red Hat Enterprise Linux 6 (z-stream)kernelRHSA-2019:1169
    Red Hat Enterprise Linux 6  qemu-kvmRHSA-2019:1181
    Red Hat Enterprise Linux 6  libvirtRHSA-2019:1180
    Red Hat Enterprise Linux 6microcode_ctlRHEA-2019:1212
    Red Hat Enterprise Linux 6.6 Advanced Update Support [2]kernelRHSA-2019:1193
    Red Hat Enterprise Linux 6.6 Advanced Update Support [2]qemu-kvmRHSA-2019:1195
    Red Hat Enterprise Linux 6.6 Advanced Update Support [2]libvirtRHSA-2019:1194
    Red Hat Enterprise Linux 6.6 Advanced Update Support [2]microcode_ctlRHEA-2019:1218
    Red Hat Enterprise Linux 6.5 Advanced Update Support [2]kernelRHSA-2019:1196
    Red Hat Enterprise Linux 6.5 Advanced Update Support [2]qemu-kvmRHSA-2019:1198
    Red Hat Enterprise Linux 6.5 Advanced Update Support [2]libvirtRHSA-2019:1197
    Red Hat Enterprise Linux 6.5 Advanced Update Support [2]microcode_ctlRHEA-2019:1219
    Red Hat Enterprise Linux 5 Extended Lifecycle Support [5]kernel아래 참조
    RHEL Atomic Host [4]kernel보류 중
    Red Hat Enterprise MRG 2kernel-rtRHSA-2019:1190
    Red Hat Virtualization 4vdsmRHSA-2019:1203
    Red Hat Virtualization 4.2vdsmRHSA-2019:1204
    Red Hat Virtualization 4.3rhvm-setup-pluginsRHSA-2019:1205
    Red Hat Virtualization 4.2rhvm-setup-pluginsRHSA-2019:1206
    Red Hat Virtualization 4virtualization hostRHSA-2019:1207
    Red Hat Virtualization 4rhvm-applianceRHSA-2019:1208
    Red Hat Virtualization 4.2virtualization hostRHSA-2019:1209
    Red Hat OpenStack Platform 14 (Rocky)qemu-kvm-rhevRHSA-2019:1202
    Red Hat OpenStack Platform 14 (Rocky)container imageRHBA-2019:1242
    Red Hat OpenStack Platform 13 (Queens)qemu-kvm-rhevRHSA-2019:1201
    Red Hat OpenStack Platform 13 (Queens)container imageRHBA-2019:1241
    Red Hat OpenStack Platform 10 (Newton)qemu-kvm-rhevRHSA-2019:1200
    Red Hat OpenStack Platform 9 (Mitaka)qemu-kvm-rhevRHSA-2019:1199


    [1] 이러한 패치에 액세스하려면활성 EUS 서브스크립션이 필요합니다. 사용 계정에 활성 EUS 서브스크립션이 없을 경우 Red Hat 영업팀 또는 해당 영업 담당자에게문의하시기 바랍니다.

    Red Hat Enterprise Linux Extended Update Support 서브스크립션은 무엇입니까?

    [2] RHEL AUS에서 이러한 패치에 액세스하려면 활성 AUS 서브스크립션이 필요합니다.

    AUS (Advanced mission critical Update Support)는 무엇입니까?

    [3] RHEL E4S / TUS에서 패치에 액세스하려면 활성 Update Services for SAP Solutions Add-on 또는 TUS 서브스크립션이 필요합니다.

    [4] Red Hat Enterprise Atomic Host 업데이트 방법에 대한 자세한 내용은 Deploying a specific version fo Red Hat Enterprise Atomic Host에서 참조하십시오.

    FAQ: Red Hat Enterprise Linux 5 Extended Life Cycle Support (ELS) 애드온 기능 관련

    [5] 현재 Red Hat Enterprise Linux 5가 지원 라이프 사이클 기간내에 있지만 이러한 완화 조치에 필요한 마이크로코드를 사용할 수 있는 CPU 유형이 적은 것 등을 고려할 때 RHEL5는 완화 대상에서 제외되어 있습니다. 사용 가능한 업그레이드 옵션에 대해서는 Red Hat 지원에 문의하십시오.

    참고: 서브스크립션 사용자는 하드웨어 OEM에 문의하여 CPU 마이크로코드/펌웨어 최신 버전을 구해야 합니다.

    완화 방법

    하드웨어 OEM에서 제공되는 CPU 마이크로 코드/펌웨어와 함께 공급 업체의 소프트웨어 업데이트를 적용하거나 취약하지 않은 마이크로 프로세서를 사용하는 것 외에 알려진 완화 조치는 없습니다. 모든 Red Hat 고객은 벤더 솔루션을 CPU에 적용하여 패치를 사용할 수 있게 되는 대로 커널을 업데이트해야 합니다. 지원되는 플랫폼의 사용 가능한 마이크로 코드에 대한 자세한 내용은 시스템 OEM 업체 또는 CPU 제조 업체에 문의하십시오.

    영향을 받는 시스템의 SMT를 비활성화하면 공격 가능성을 어느 정도 줄일 수 있지만 이러한 취약점으로 인해 악용되는 모든 공격을 완전히 배제할 수는 없습니다. 이러한 취약점으로 인한 위험을 완화하기 위해 시스템에 업데이트된 마이크로 코드와 커널을 업데이트하고 가상화 패치를 적용해야 하며 관리자는 자신의 환경에서 SMT/HT 비활성화 조치 여부의 적합성을 평가해야 합니다. 또한 애플리케이션의 성능에 영향을 미칠 수 있습니다. SMT 비활성화에 대한 자세한 내용은 Disabling Hyper-Threading에서 참조하십시오.

    고객은 이 문제를 완화하기 위해 위험 기반 접근 방식을 사용하는 것이 좋습니다. 높은 수준의 보안 및 신뢰가 필요한 시스템 먼저 처리되어야 하며 악용 위험을 줄이기 위해 대처법이 해당 시스템에 적용될 때 까지 신뢰할 수 없는 시스템과 격리되어야 합니다.

    Ansible 플레이북

    다음에서 Ansible 플레이북 (disable_mds_smt_mitigate.yml)이 제공됩니다. 이 플레이북은 실행중인 시스템에서 SMT를 비활성화하고 향후 시스템 재부팅에 관련 업데이트를 적용합니다. 이 플레이북을 사용하려면 HOSTS 추가 변수를 사용하여 SMT를 비활성화해야하는 호스트를 지정합니다.

    ansible-playbook -e HOSTS=web,mail,ldap04 disable_mds_smt_mitigate.yml

    또한 런타임에서 SMT를 다시 활성화되는 것을 방지하려면 다음과 같이 명령행 인수를 추가하고 FORCEOFF 변수를 true로 설정하십시오.

    ansible-playbook -e HOSTS=hypervisors -e FORCEOFF=true disable_mds_smt_mitigate.yml

    정규 스크립트인지를 확인하기 위해 GPG 분리 서명을 다운로드할 수 있습니다.

    완화 방법 자동화

    현재 버전: 1.1

    성능에 미치는 영향 및 MDS 비활성화

    MDS CVE 완화 조치는 성능에 영향을 미치는 것으로 나타났습니다. 사용자 커널 및 사용자 공간 변환 (예 : 시스템 호출, NMI, 인터럽트)이 필요한 애플리케이션의 성능에 큰 영향을 미칩니다.

    특정 애플리케이션의 성능에 미치는 영향을 정확하게 알 수는 없지만 테스트에서 얻은 결과는 다음과 같습니다.

    • 사용자 모드에서 많은 시간을 소비하는 애플리케이션은 속도의 저하가 가장 적고 일반적으로 속도 저하 비율은 0-5 % 범위였습니다.
    • 작은 블록이나 작은 패킷 네트워크 I/O를 많이 처리하는 애플리케이션의 속도 저하 비율은 10-25 % 범위였습니다.
    • 사용자 공간과 커널 공간을 왕래하는 것 외에 다른 작업을 수행하지 않는 일부 마이크로 벤치마트 프로그램에서의 속도 저하가 가장 크게 나타났습니다.

    MDS 완화 솔루션에서 성능에 미치는 영향은 MDS를 활성화한 상태에서 애플리케이션을 실행 한 다음 MDS를 비활성화하여 측정할 수 있습니다. MDS 완화 기능은 기본적으로 활성화되어 있습니다. SMT를 비활성화한 상태에서 MDS 완화 기능을 완전히 활성화하려면 "mds=full,nosmt" 플래그를 커널 부팅 커맨드라인에 추가합니다. 커널 부팅 커맨드라인에서 "mds=off" 플래그를 사용하여 MDS 완화를 완전히 비활성화할 수 있습니다. 런타임 중에는 비활성화할 수 없습니다.

    하이퍼 스레드 기능을 비활성화로 인한 성능 영향에 대해서는 https://access.redhat.com/security/vulnerabilities/L1TF-perf의 “Disabling Hyper-Threading”에서 참조하십시오.

    Comments