몇 주 전에 우리는 블로그에서 다음과 같은 소식을 공유했습니다. EntrySign 취약점 AMD 프로세서의 마이크로코드 업데이트 중에 디지털 서명 검증 메커니즘을 회피할 수 있습니다.
으로 처음에는 Zen 1~Zen 4 세대에만 국한된 버그처럼 보였습니다. 이제 Ryzen 9000, EPYC 9005, Ryzen AI 300 및 Ryzen 9000HX와 같은 최신 칩으로 확장되었습니다. 이 결함은 특정 조건 하에서 디지털 서명 검증 메커니즘을 우회하여 CPU 마이크로코드를 수정할 수 있게 하며, 가상화 시스템의 보안에 심각한 영향을 미칩니다.
문제의 근원 ~에있다 CMAC 알고리즘의 부적절한 사용 마이크로코드 검증 과정 중. AMD 전통적으로 개인 RSA 키를 사용합니다 이러한 업데이트의 내용을 디지털로 서명하려면그리고 패치에 포함된 공개 키는 마이크로코드의 진위성을 검증합니다. 로딩 시점에. 그러나 이러한 무결성을 보장해야 하는 공개 키 해시는 암호화된 MAC인 AES-CMAC을 사용하여 생성되는데, 이는 강력한 해시 함수와 달리 충돌에 대한 보장을 제공하지 않습니다.
이 디자인은, AMD가 공통 암호화 키를 사용했다는 사실에 추가됨 Zen 1 이후 모든 CPU에 대해, 연구원들이 영향을 받는 모든 프로세서에서 키를 추출할 수 있도록 허용했습니다. 이를 재사용하여 다른 컴퓨터의 마이크로코드 패치를 조작할 수 있습니다. 놀랍게도 이 키는 NIST SP 800-38B 암호화 관행의 공개된 사례와 일치하며, 이는 좋은 암호화 관행을 부주의하게 사용했음을 보여줍니다.
가짜 마이크로코드, 유효한 서명
이러한 약점으로부터 연구원들은 AMD의 원래 키와 동일한 해시값을 생성하는 공개 키를 생성하는 데 성공했습니다., 그들이 무결성 제어를 우회할 수 있는 가짜 패치의 구축을 허용했습니다.. 이러한 충돌은 마이크로코드의 끝에 추가 블록을 삽입함으로써 가능한데, 겉보기에는 무작위적이지만 신중하게 계산된 것으로, 디지털 서명이 겉보기에 손상되지 않은 것처럼 보이게 합니다. 이런 방식으로 경고 메커니즘을 작동시키지 않고도 프로세서의 내부 동작을 변경할 수 있습니다.
이 프로세스는 분석 도구를 통해 더욱 용이해졌습니다. AMD의 마이크로코드를 연구하고 수정된 패치를 준비할 수 있는 오픈 소스 유틸리티 세트인 Zentool 등이 있습니다. 이러한 유형의 공격을 실현하려면 공격자는 Ring 0 권한, 즉 운영 체제의 가장 높은 수준에 액세스할 수 있는 권한이 있어야 합니다. 이는 하이퍼바이저가 손상되었거나 VT-x 또는 AMD-V와 같은 기술의 안전하지 않은 구성을 통해 가상화된 환경에서 가능한 일입니다.
AMD SEV 및 보안 가상화에 미치는 영향
EntrySign은 마이크로코드 조작을 넘어 AMD SEV(Secure Encrypted Virtualization)와 그 확장인 SEV-SNP(Secure Nested Paging)에 직접적인 위협을 가합니다. 이 기술은 하이퍼바이저나 호스트 시스템의 공격에 직면해도 가상 머신의 무결성과 기밀성을 보장하도록 설계되었습니다. 이러한 취약점은 보호된 프로세서 레지스터에 간섭하고, 중첩된 페이지 테이블을 수정하고, 게스트 시스템의 동작을 변경하여 심각한 수준의 보안을 손상시킬 수 있습니다.
AMD 대응 및 완화 조치
이 상황에서, AMD는 버그를 수정하는 마이크로코드 업데이트를 배포하기 시작했습니다.또는 SEV-SNP를 사용하는 시스템에서는 BIOS 업데이트가 필요한 SEV 모듈 펌웨어를 업데이트해야 합니다. 회사는 이미 제조업체에 새로운 패키지를 보냈습니다. ComboAM5PI 1.2.0.3c AGESA라고 불리지만, 최종 패치가 최종 사용자에게 제공되기까지는 몇 주 또는 몇 달이 걸릴 것으로 추정됩니다.
이 외에도, AMD 엔지니어는 마이크로코드 로딩을 차단하는 Linux 커널 패치를 제안했습니다. 비공식. 이러한 조치의 목적은 BIOS 조각을 추출하여 마니아가 만든 것과 같은 제3자가 수정한 패치의 확산을 방지하는 것입니다. 그동안은 공식 BIOS 업데이트를 기다리고 검증되지 않은 버전은 설치하지 않는 것이 좋습니다.
마지막으로, 그것에 대해 더 많이 알고 싶다면에서 세부 정보를 확인할 수 있습니다. 다음 링크.