Zenbleed: 이 AMD 보안 버그에 대해 알아야 할 모든 것

CPU에 대한 일련의 최신 보안 버그인 Zenbleed는 패치가 필요한 또 다른 문제입니다. 당신이 알아야 할 사항은 다음과 같습니다.

2018년 Spectre 및 Meltdown CPU 공격이 공개된 후 컴퓨팅 세계는 상당히 경계심을 갖게 되었습니다. 프로세서의 보안 버그와 허점을 찾는 방법에 대해 연구했으며 지난 5년 동안 연구원들은 수많은 것을 발견했습니다. 5월에 처음 보고된 이후 7월 24일에는 또 다른 익스플로잇이 공개되었습니다. 이번에는 Zen 2 아키텍처를 기반으로 구축된 AMD 프로세서에만 해당되며 "젠블리드". Zenbleed에 대해 알아야 할 모든 것과 Zenbleed가 세상에 어떤 의미인지 알려드립니다.

Zenbleed는 어떻게 작동하나요?

Zenbleed는 CPU의 추측 능력을 활용한다는 점에서 Spectre와 같은 다른 하드웨어 기반 보안 버그와 매우 유사합니다. 성능을 향상시키기 위해 CPU 다음에 해야 할 일을 추측하거나 예측합니다. Spectre가 처음 공개된 이후로 세상은 추측이 실행되면 매우 안전하지 않을 수 있다는 것을 알게 되었습니다. 부적절하게.

출처: Tavis Ormandy

CPU의 레지스터는 소량의 데이터(일반적으로 명령어, 저장 주소 또는 기타 모든 종류의 작은 데이터)를 보유할 수 있습니다. x86_64 아키텍처의 XMM 레지스터(즉, 영향을 받는 모든 Zen 2 프로세서)는 메모리 주소 지정이 아닌 데이터 계산에만 사용할 수 있습니다. 이는 YMM 레지스터의 경우 256비트로 확장되고 ZMM 레지스터의 경우 512비트로 확장됩니다. 이 경우 XMM은 하위 128비트를 나타냅니다. ZMM 레지스터의 512비트.

이 레지스터는 표준 C 함수를 포함하여 다양한 용도로 매우 유용합니다. 이 취약점은 예측 실행 및 분기 예측 오류를 악용하여 본질적으로 메모리에서 임의의 데이터 조각을 뱉어내지만 해당 데이터는 아무것. 문자열 길이를 측정하는 strlen과 같은 표준 C 라이브러리 함수는 데이터 이동을 위해 이러한 레지스터를 사용할 수 있습니다. 우연히 당신이 사용하는 비밀번호가 불행하게도 다음 중 하나에 빠졌을 수도 있습니다. 레지스터.

분기 예측 및 추측 실행은 컴퓨터가 아직 필요하지 않지만 후속 주기에 필요할 가능성이 있는 작업을 수행하는 경우를 광범위하게 나타냅니다. 명령이나 데이터가 아직 CPU에 준비되지 않았을 때 전체 처리 속도를 높이기 때문에 시스템에 여유 리소스가 있을 때 종종 수행됩니다. 수행된 작업이 필요하지 않은 경우 일반적으로 해당 작업은 폐기되고 프로세서는 다음 올바른 명령을 실행하기 위해 필요한 위치로 다시 이동할 수 있습니다. 이를 분기 예측 오류라고 합니다.

문제가 발생하는 곳은 YMM 및 ZMM 레지스터의 위치 128 이상에 있는 비트를 0으로 만드는 vzeroupper 명령입니다. 이는 특히 AVX와 레거시 SSE 코드 간 전환 시 수행됩니다. 성능이 저하되기 때문입니다. 잘못된 종속성으로 인한 페널티를 방지하는 동시에 정수 승격과 유사한 효과를 방지합니다. 씨.

프로세서가 추론적으로 vzeroupper 명령을 실행하는 경우 적절한 롤백이 없습니다. 그러나 영향을 받은 Ryzen 프로세서는 잘못되었더라도 강제로 복구될 수 있습니다. 이 상태가 되면 현재 실행 중인 프로그램은 해당 레지스터를 실시간으로 감시하여 주어진 시간에 시스템 전체에 흐르는 데이터를 볼 수 있습니다.

Zenbleed의 영향을 받는 CPU는 무엇이며, 패치는 언제 제공되나요?

앞서 언급했듯이 Zen 2 아키텍처 기반의 AMD CPU만이 Zenbleed 보안 버그에 취약한 것으로 알려져 있지만, Zen 2 아키텍처는 3개 시리즈의 CPU에 전원을 공급하므로 어떤 CPU가 취약하고 어떤 CPU가 취약한지 파악하기가 어렵습니다. 그렇지 않습니다. 모든 것을 명확하게 해주는 표는 다음과 같습니다.

영향을 받은 CPU

라이젠 3000 시리즈

APU를 제외한 모든 제품(예: Ryzen 3 3200G)

에픽 로마

모두

라이젠 4000 시리즈

모두

라이젠 5000 시리즈

5300U, 5500U, 5700U만 해당

라이젠 7000 시리즈

7020 APU만(예: Ryzen 3 7320U)

이것은 꽤 많은 양의 AMD 프로세서이며 지금까지 확인된 것들일 뿐입니다. Zen 2는 Steam Deck, Xbox 시리즈 S 및 X, PS5에 전원을 공급하는 APU에도 사용됩니다. 이러한 CPU도 영향을 받는지는 들어본 적이 없지만 이 공격이 작동하는 방식으로 판단하면 CPU도 영향을 받지 않는다면 놀랄 것입니다. 새로운 7020 시리즈 칩도 영향을 받기 때문에 AMD가 Xbox와 PS5에 패치를 적용할 가능성은 거의 없어 보입니다.

글을 쓰는 시점에서, 마이크로코드가 Linux 커널에 제출되었습니다. 이 취약점을 패치할 것이며 운영 체제나 BIOS에 이 문제를 해결하는 업데이트가 이미 있을 수 있습니다.

취약한 CPU를 사용하는 컴퓨터에 이는 무엇을 의미합니까?

모든 컴퓨터가 동일하지는 않기 때문에 대답하기가 까다롭습니다. 게이밍 데스크톱과 노트북만 사용하는 일반 사람들이라면 그렇게 걱정할 필요는 없을 것 같습니다. 이는 매우 정교한 공격이며 현재는 대중에게 알려져 있지만 공격자가 Zenbleed를 사용하여 해킹한 사례는 아직 알려진 바가 없습니다.

그러나 데이터 센터와 자신의 컴퓨터에서 민감한 정보를 처리하는 중요한 사람들에게는 위험이 훨씬 더 높습니다. AMD가 취약점이 공개되기 전에 Epyc Rome이 패치되었음을 매우 분명히 밝힌 이유가 있습니다. 정보는 Epyc CPU에 의해 처리되고 있으며 대규모 서버를 구동하는 CPU가 성공적으로 작동한다면 재앙이 될 것입니다. 공격했다. Linux 커널 6.4.6이 이미 출시되었습니다. 그리고 롤링을 통해 이 취약점을 수정합니다. 공식 마이크로코드 패치 AMD에서. Microsoft가 Windows에 유사한 기능을 통합할 가능성이 높습니다.

걱정스럽게도, AMD의 공식 BIOS 패치는 몇 달 동안 출시되지 않을 수 있습니다., 이 경우 '치킨 비트"는 Linux 또는 FreeBSD 시스템을 사용하는 경우 설정할 수 있습니다. Linux 시스템에서는 msr-tools를 사용하고 다음 명령을 실행할 수 있습니다.

wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))

FreeBSD에서는 다음을 사용할 수도 있습니다.

cpucontrol(8)

SMT를 비활성화하는 것만으로는 취약점을 완화하는 데 충분하지 않습니다.

Zenbleed를 특히 나쁘게 만드는 한 가지 점은 Zen 2가 AMD의 가장 인기 있는 CPU 아키텍처 중 하나라는 것입니다. 이는 2019년과 2020년에 AMD의 복귀를 시작했으며 많은 사람, 회사 및 조직은 2023년에도 여전히 Zen 2 프로세서가 탑재된 컴퓨터를 사용하고 있습니다. 특히 Epyc Rome은 더욱 그렇습니다. CPU. 이는 Spectre(거의 모든 2019년 이전 CPU에 영향을 미침) 및 Meltdown(거의 모든 2019년 이전 Intel CPU에 영향을 미침)만큼 나쁘지는 않지만 여전히 상당히 그렇습니다. 펼친.

이와 같은 취약점에 대한 보안 패치도 종종 성능 저하를 초래하지만 AMD는 말했다 톰의 하드웨어 이 페널티는 CPU와 작업 부하에 따라 달라집니다. 추측과 예측은 CPU 성능에 매우 중요하므로 잠재적인 수정으로 인해 성능이 크게 저하될지는 확실하지 않습니다.