AMD Zen 1 취약점이 제대로 수정되지 않음, 두 번째 패스 발행됨
원래 솔루션은 여전히 공격자가 확보할 수 있는 데이터를 남겼습니다.
Zen 1 " Division by zero " 버그에 대해 AMD가 발표한 패치가 회사가 원했던 전부는 아니었던 것 같습니다 . 회사가 패치를 빠르게 배포했지만 이제 너무 빠르다는 의혹이 있습니다. Phoronix의 Michael Larabel 에 따르면 AMD Linux 엔지니어 Borislav Petkov는 원래 솔루션의 문제를 수정한 새로운 패치를 게시했습니다. (또한 그에 의해 출판됨). 가능한 공격 벡터에 대한 강화의 어려움에 대한 또 다른 데이터 포인트입니다.
Zen 1이 특정 상황에서 0으로 나눈 정수 계산을 처리하는 방법과 관련된 원래 버그: 결과에 따르면 AMD의 CPU가 작업이 완전히 완료된 후에도 레지스터 내에 "부실한 몫 데이터"를 보관할 가능성이 있었습니다. 공격자에게 중요한 정보를 검색할 수 있는 창을 제공합니다. 원래 해결 방법은 최종 "#DE 예외 처리기에서 반환하기 전에 더미 나누기 0/1"을 수행하는 것이었습니다. 아이디어는 간단합니다. 아직 저장되어 있던 이전 데이터는 0/1 나누기가 완료되면 지워집니다(결과는 항상 0임).
Petkov가 설명했듯이 해당 솔루션의 문제는 보안 조항이 시작될 때 추측 실행 공격이 이미 너무 많이 진행되었을 것이라는 것입니다. 공격자가 얻을 수 있는 AMD의 디바이더에는 이미 오래된 데이터가 어느 정도 있을 것입니다. 더미 분할이 시작되기 전에 Petkov가 설명했듯이 그의 새로운 솔루션은 이제 여러 시나리오에서 동일한 분할을 강제합니다
. 디바이더에서 이전 데이터를 가져왔지만 결함이 제기된 시점에는 추측이 이미 너무 많이 진행되었으며 이러한 데이터는 이미 젊은 작업에서 사용되었을 수 있습니다.
따라서 사용자 공간이 커널 공간의 정수 나누기에서 잠재적으로 오래된 데이터를 볼 수 없도록 사용자 공간으로 나갈 때마다 무해한 나누기를 수행하십시오.
호스트 데이터가 게스트로 유출되지 않도록 보호하기 위해 VMRUN 전에도 동일하게 수행하십시오."
CPU 영역의 취약점으로 인해 이미 바쁜 한 달이었으며 AMD와 Intel 모두 공개로 타격을 받았습니다. AMD의 SQUIP 및 Inception을 통해 Intel의 더 극단적인 Downfall 취약점(Tiger Lake/Rocket Lake를 통해 Skylake에 영향을 미침)취약성(및 현재 재수정된 "0으로 나누기" 취약성)에 대해 연구원들이 열심히 연구하고 있습니다. Meltdown 및 Spectre 시절의 역사와 비교할 수는 없습니다(이러한 새로운 버그는 예측 실행 취약성과도 관련이 있음에도 불구하고). 예측 실행은 최신 CPU가 계산 단계가 필요해지기 전에 계산 단계를 선점하여 실행 요청 시 필요한 데이터를 이미 사용할 수 있도록 하는 방식을 의미합니다. (때로는 심각한) 성능 저하, AMD의 0/1 더미 분할에 추가 오버헤드가 발생하지 않는다는 것은 최소한 좋은 신호입니다.
동시에 적어도 이 경우에는 보안 패치가 일종의 "설정하고 잊어버리는" 방식, 즉 블루 팀 전문가가 회전목마 작업을 수행하는 방식으로 배포되지 않았다는 사실이 고무적입니다. 수행해야 하지만 이것이 갈 수 있는 다른 방법이 있었습니다(부족한 패치는 완전히 작동하는 것으로 믿어졌을 수 있으며, 향후 더 많은 해킹 탐색을 위한 문을 열어 둡니다(그 영향이 무엇이든).
출처 : https://www.tomshardware.com/news/amd-zen-1-vulnerability-not-properly-fixed-second-pass-issued
#amd #zen1