CVE-2019-11135-TSX (Transactional Synchronization Extensions) 비동기 중단 취약점

업데이트됨 -

개요

TSX (Transactional Synchronization Extensions) 비동기 중단은 이전 MDS 관련 취약점의 영향을 받는 것과 동일한 버퍼에 영향을 주는 MDS 관련 취약점입니다. 사용자 지정 코드를 사용하는 로컬 공격자는 이 취약점을 악용하여 SMT(동시 멀티 스레딩) 및 TSX를 지원하는 프로세서와 형제 논리 프로세서의 캐시 컨텐츠에서 정보를 수집할 수 있습니다.

이는 TSX 영역의 실행 시간을 모니터링할 수 있는 인증된 로컬 공격자가 중단된 실행 시간을 비교하여 메모리 상태를 추측할 수있는 Intel TSX 중단에서 발견된 취약점입니다.

공격자가 트랜잭션 중단 타이밍을 모니터링하는 동안 모니터링된 사이드 채널을 통해 정보를 공개할 수 있습니다.

이 문제는 CVE-2019-11135로 지정되어 있으며 중요 보안 영향 등급으로 분류되어 있습니다

배경

TSX는 트랜잭션 실행 코드 영역을 지정하기 위해 소프트웨어 인터페이스를 제공하는 CPU 기능입니다. 이 기능을 통해 프로세서는 동시에 실행중인 스레드를 직렬화해야 하는지 여부를 판단하고 잠금 충돌을 방지할 수 있습니다.

TSX는 실행중인 모든 스레드에서 메모리 액세스 충돌을 모니터링하고 충돌이 발견되면 트랜잭션을 중단함으로써 표시된 트랜잭션 코드 영역의 성능을 향상시키도록 설계되었습니다.
트랜잭션이 중단되면 실행된 코드는 기존의 잠금 메커니즘으로 대체되어 소프트웨어가 정의한 방법으로 트랜잭션을 완료합니다.

이는 TSX 영역의 실행 시간을 모니터링할 수 있는 인증된 로컬 공격자가 중단된 실행 시간을 비교하여 메모리 상태를 추측할 수있는 Intel TSX 중단에서 발견된 취약점입니다.

공격자가 트랜잭션 중단 타이밍을 모니터링하는 동안 모니터링된 사이드 채널을 통해 정보를 공개할 수 있습니다.

MDS의 영향을 받는 커널 업데이트된 시스템에서 커널에 적용된 이전 MDS 패치가 활성화되어 있으면 이 취약점을 완화할 수 있습니다.

MDS에 영향을 받지 않는 최신 CPU는 MDS의 완화 기능이 활성화되어 있지않기 때문에 커널을 업데이트하여 이 문제를 완전히 완화할 수 있습니다.

TSX 비동기 중단 (TAA) 문제를 완화하는 한 가지 방법은 CPU의 TSX 기능을 비활성화하여 TAA가 발생하지 않도록 함으로써 사이드 채널을 통한 정보 유출이 발생하지 않도록하는 것입니다. 커널을 업데이트하면 CPU의 TSX (Transactional Synchronization Extensions) 기능을 활성화 또는 비활성화하는 새로운 커널 부트 매개 변수 ‘tsx=on/off/auto’가 도입됩니다. 여기에는 마이크로 코드 업데이트를 설치해야 합니다.

tsx=on      Enable the TSX feature  <= **RHEL Default**
tsx=off     Disable the TSX feature
tsx=auto    Disable TSX if CPU is affected, else enable TSX

TAA 문제를 완화하는 두 번째 방법은 컨텍스트 전환시 CPU 버퍼를 제거하는 것입니다. 저장 버퍼(Store Buffer), 채우기 버퍼(Fill Buffer) 등과 같은 버퍼는 명령 실행 중에 데이터를 유지합니다. 커널을 업데이트하면 또 다른 매개 변수 ‘tsx_async_abort=off/full/full,nosmt’가 도입됩니다. 이는 커널이 CPU 버퍼를 지우는 방법을 제어하여 TAA 문제를 완화할 수 있습니다.

tsx_async_abort=off     Disable TAA mitigation
tsx_async_abort=full        Enable TAA mitigations, clears CPU buffers
tsx_async_abort=full,nosmt  Enable TAA mitigations and disable SMT

이 매개 변수를 지정하지 않으면 ‘tsx_async_abort=full’로 문제를 완화할 수 있습니다.

업데이트된 커널은 사용자에게 시스템에 영향을 미치는지 여부 및 적용된 완화 상태를 확인할 수 있도록 sysfs 인터페이스를 제공합니다.

$ cat /sys/devices/system/cpu/vulnerabilities/tsx_async_abort
Vulnerable
Vulnerable: Clear CPU buffers attempted, no microcode
Mitigation: Clear CPU buffers
Mitigation: TSX disabled
Not affected

TAA Flow Chart

영향을 받는 제품

영향을 받는 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 OpenShift Online
  • Red Hat Virtualization (RHV)
  • Red Hat OpenStack Platform (이미지와 함께 제공되는 커널)

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

취약성 여부 확인

취약점 진단
진단 스크립트를 사용하여 현재 사용 중인 시스템에 보안 취약점이 있는지 확인합니다. 정규 스크립트임을 확인하려면 GPG 분리 서명을 다운로드합니다.
진단 스크립트 다우로드
현재 버전: 1.0

해결 방법

영향을 받는 Red Hat 제품 버전을 실행 중인 모든 Red Hat 고객은 관련 패치가 릴리스되는 즉시 업데이트할 것을 권장합니다. 즉시 적절한 업데이트를 적용하고 시스템을 재부팅하여 이 취약점을 적절히 완화합니다.

자주하는 질문

Q: 게스트와 호스트 모두에 업데이트를 적용해야 합니까?
A : 예. 모두 적용해야 합니다. 이전 spectre v1과 마찬가지로 이 취약점을 악용하여 형제 논리 프로세서를 공유하는 VM에 모든 공격을 할 수 있습니다.
Q: 커널을 업데이트 한 후 재부팅해야합니까?
A: 예. 재부팅해야 합니다.
Q: 이전 Spectre-v1, Spectre-v2, MDS의 수정 사항을 적용했는데 이 사항도 적용해야합니까?
A: 예. 적용해야 합니다. 일부 시스템에서는 MDS의 수정으로 이 문제를 완화할 수 있지만 MDS의 영향을 받지 않는 최신 CPU에는 이 업데이트가 필요합니다. 확실하지 않는 경우 이 업데이트에는 다른 보안 픽스도 포함되어 있으므로 이를 적용하십시오.
Q :이 업데이트에 다른 보안 패치도 포함되어 있습니까?
A: 예, i915 그래픽 카드 CVE는 필요한 플랫폼에 포함되어 있습니다.
Q:이 보안 완화를 비활성화할 수 있습니까?
A: 부팅시 TSX를 비활성화하여 보안 완화를 활성화할 수 있습니다. 이 보안 완화를 비활성화하려면 부팅시 tsx=on 매개 변수를 커널에 전달하여 TSX 기능을 활성화합니다. 이는 런타임시 변경할 수 없습니다.
두 번째 보안 완화 방법은 VERW 메커니즘을 통해 CPU 버퍼를 지우는 방식으로 작동합니다. tsx_async_abort=off.를 설정하여 이 보안 완화를 비활성화할 수 있습니다.

감사 인사

Red Hat은 이 보안 취약점을 보고해 주신 Intel 및 해당 업계 파트너에게 감사의 말씀을 전합니다. 이에 더하여 Intel-SA-00270에 기재된 연구원들에게도 감사의 말씀을 전합니다.

참고 자료

Transactional Synchronization Extensions
Intel-SA-00270