인텔 CPU의 몰락(데이터 샘플링 수집) 취약점(CVE-2022-40982)
이 블로그 게시물에 나와 있는 일부 정보는 레드햇 자문, 인텔의 데이터 샘플링 수집 기술 문서 및 인텔 보안 권고 INTEL-SA-00828.
"다운폴"이라고도 알려진 데이터 샘플링 수집(GDS)이라는 취약점으로 인해 오래된 데이터가 노출될 수 있으며, 특히 인텔 고급 벡터 확장 2(Intel AVX2) 및 인텔 고급 벡터 확장 512(Intel AVX-512)를 사용하는 특정 인텔 CPU를 사용하는 고객에게 영향을 미칠 수 있습니다. 이 블로그 게시물을 읽고 이 보안 결함 및 해결 방법에 대해 알아보고 업데이트가 있는지 다시 확인해 주세요.
데이터 샘플링 수집(GDS) 현황
특정 인텔 CPU의 이 일시적인 실행 사이드 채널 취약점으로 인해 공격자는 데이터 샘플링 공격을 사용하여 이전에 사용된 AVX2 또는 AVX-512 벡터 레지스터에서 오래된 데이터를 검색할 수 있습니다. 최악의 경우 이 공격을 사용하여 암호화 키를 추출할 수 있습니다.
레드햇에 따르면 업데이트된 CPU 마이크로코드를 설치하면 다운폴 취약점을 완화할 수 있다고 합니다. 이 마이크로코드 업데이트는 microcode_ctl 패키지의 추가 릴리스에서 제공될 예정입니다.
인텔은 또한 데이터 샘플링 수집 기술 문서 및 인텔 보안 자문 INTEL-SA-00828.
어떤 위험이 있나요?
CVE-2022-40982로 등록된 GDS 또는 Downfall 취약점은 CPU 하드웨어 최적화로 인해 이전에 벡터 레지스터를 사용한 오래된 데이터가 노출될 수 있습니다. 이 위협은 동일한 물리적 프로세서 코어에 국한되며 AVX 명령어 또는 내부 벡터 레지스터를 사용하는 명령어로 처리되는 데이터에 암시적으로 영향을 미칩니다.
노출은 샘플링 기반으로 제한되며 공격자가 오래된 데이터의 출처를 직접 제어하거나 지정할 수 없습니다.
여러 가상 머신이 동일한 CPU 코어에 할당될 수 있는 가상화 기반 시스템의 공유 리소스 특성으로 인해, 이 취약점을 악용하여 다른 보안 컨텍스트(예: 다른 가상 머신 또는 호스트)에 포함된 정보를 유출할 수 있습니다.
다운폴 취약점이 성능에 미치는 영향
마이크로코드 완화가 성능에 미치는 영향은 AVX2 및 AVX-512에서 제공하는 수집 명령어와 CLWB 명령어를 사용하는 애플리케이션으로 제한됩니다. 실제 성능에 미치는 영향은 애플리케이션이 이러한 명령어를 얼마나 많이 사용하는지에 따라 달라집니다. 레드햇의 테스트 결과 최악의 마이크로벤치마크에서는 상당한 속도 저하가 나타났지만, 보다 현실적인 애플리케이션에서는 한 자릿수 비율의 낮은 속도 저하만 나타났습니다.
현재 솔루션
그렇다면 다운폴 취약점이라고도 알려진 GDS로부터 시스템을 보호하기 위해 지금 당장 무엇을 할 수 있을까요?
마이크로코드 업데이트 설치: CVE 페이지를 모니터링하여 수정 사항의 사용 가능 여부를 확인합니다. 사용 중인 커널 버전에 관계없이 마이크로코드가 설치된 후 영향을 받는 CPU에서 기본적으로 완화 기능이 활성화됩니다.
커널 업데이트: 취약성 및 완화 상태 보고와 완화 비활성화 기능이 추가됩니다. 잠재적인 보안 문제에 대한 실제 수정은 커널 패치가 아닌 마이크로코드 업데이트 자체에 의해 해결됩니다.
완화 비활성화(선택 사항): 사용자는 위험 분석 후 커널 명령줄에 gather_data_sampling=off를 추가하거나 mitigations=off를 사용하여 완화 기능을 비활성화할 수 있습니다.
참고: CLWB 성능 손실은 추후 완화 조치의 제거와 관계없이 Skylake 아키텍처에서 영구적으로 발생합니다.
진단 단계
마이크로코드 및 커널 업데이트를 적용한 후 다음 명령 중 하나를 실행하여 완화 상태를 확인할 수 있습니다:
# dmesg | grep "GDS: "
[ 0.162571] GDS: Mitigation: Microcode
# cat /sys/devices/system/cpu/vulnerabilities/gather_data_sampling
Mitigation: Microcode
이 취약점에 대한 새로운 관련 정보가 발견되는 대로 이 블로그 게시물을 업데이트할 예정입니다. KernelCare Enterprise 사용자라면 사용 중인 Linux 배포판의 마이크로코드를 업데이트하는 방법에 대한 설명서를 참조하세요. 경계를 늦추지 마시고 시스템을 계속 업데이트하여 보호 상태를 유지하세요.