'싱크클로즈'(Sinkclose) 취약점이 '수억 대의 노트북, 데스크톱 및 서버'에 영향을 미칠 수 있다는 분석이다. 이를 악용하면 공격자가 컴퓨터에서 최상위 권한의 실행 모드에서 악성 코드를 실행할 수 있다고 보안 분석가들은 추정했다.
AMD가 광범위한 서버 및 데스크탑 CPU에 대해 마이크로코드 업데이트를 발표했다. 시스템 관리 모드(SMM)의 보호 기능을 우회, OS 외부의 저수준 펌웨어에서 악성 코드가 실행될 수 있는 취약점을 해결하기 위해서다. 이 결함은 은밀한 부팅 수준의 루트킷을 UEFI에 배포하는 데 사용될 수 있다.
이번 취약점(CVE-2023-31315)을 발견한 아이오액티브(IOActive) 연구진은 지난 주말 데프콘 컨퍼런스에서 관련 연구 결과를 발표했다. 설명에 따르면 이’AMD 싱크클로즈’라고 불리는 이번 취약점은 거의 모든 AMD 에픽 시리즈 및 라이젠 시리즈 CPU에 영향을 미칠 수 있으며, 심각도가 매우 높은 것으로 평가된다. 컴퓨터에서 가장 권한이 높은 실행 모드인 링 -2의 권한으로 악용될 수 있어서다.
아이오액티브는 “이 하드웨어 수준의 문제는 거의 20년 동안(아마도 더 오래) 알려지지 않았으며 수억 대의 노트북, 데스크톱, 서버에 영향을 미칠 수 있다”라며, “올바르게 설정되지 않은 컴퓨터에서는 이 취약점을 수정하는 것이 거의 불가능하다”라고 전했다. 참고로 거의 모든 컴퓨터가 그들이 말하는 올바르게 설정되지 않은 컴퓨터에 속한다.
SMM 모드 잠금 우회하기
SMM은 정상적인 실행이 일시 중단되고 프로세서가 이 모드에서만 액세스할 수 있는 보호된 메모리 내에서 특수 펌웨어 코드를 실행하는 CPU의 작동 모드다. SMM은 컴퓨터의 초기 부팅 과정에서 UEFI 펌웨어에서 전용 드라이버 및 칩셋 구성을 로드하거나 전원 관리와 같은 기능을 구성하기 위해 호출된다. 그런 다음 UEFI 및 OS 부트로더가 이후 부팅을 이어받을 때 잠기도록 되어 있다.
CPU가 SMM에 진입하지 않으면 메모리 컨트롤러는 더 이상 SMM에 할당된 물리적 메모리의 특수 영역인 SMRAM에 대한 액세스를 허용하지 않는다. 그러나 아이오액티브 연구원들은 특정 MSR 레지스터를 활용하여 이 잠금을 우회하는 방법을 발견했다. AMD CPU가 제공하는 해당 레지스터는 링 0에서 액세스할 수 있으며 SMLock 비트가 설정되어 있어도 읽기 전용이 아닌 특성을 지닌다.
AMD는 “모델별 레지스터(MSR)의 유효성 검사를 잘못하면 링 0 액세스 권한을 가진 악성 프로그램이 SMI 잠금이 활성화된 상태에서 SMM 구성을 수정하여 임의의 코드 실행으로 이어질 수 있다”라고 9일 발표한 권고문에서 밝혔다.
저수준 맬웨어 배포
공격자가 SMM 내부에서 악성 코드를 실행하는 데 성공하면 잠재적으로 UEFI 내부에 영구 맬웨어 임플란트를 주입할 수 있다. 그러나 이는 플랫폼 구성에 따라 다르다. UEFI가 저장되는 SPI 플래시 메모리에 대한 액세스를 제어하는 AMD의 ROM 아머(Armor)와 같은 추가 보호 기능이 있을 수 있기 때문이다.
그러나 ROM 아머는 상대적으로 최신 기능이다. 이 취약점의 영향을 받는 대부분의 컴퓨터에는 존재하지 않는다. UEFI 내부의 맬웨어를 방지할 수 있는 또 다른 기능으로는 UEFI 펌웨어 코드에 대한 암호화 신뢰 체인을 설정하는 플랫폼 보안 부팅이 있지만, 이 기능도 모든 시스템에 존재하거나 활성화되어 있지는 않다.
이러한 기능이 활성화되어 있더라도 공격자는 최소한 OS 부팅 프로세스의 무결성을 보호하고 서명된 부트로더만 실행하도록 허용하는 보안 부팅을 무력화할 수 있다. 보안 부팅을 무력화하면 공격자는 OS 커널이 시작되기 전에 실행되는 부팅 수준 루트킷 또는 부트킷을 배포하여 전체 시스템을 제어할 수 있으며, 모든 OS 수준의 엔드포인트 보안 제품에서 프로세스와 파일을 숨길 수 있다.
연구원들은 또한 시스템이 손상되면 플랫폼 부팅 보안이 영구적으로 비활성화되어 펌웨어 임플란트에 영원히 취약해질 수 있다고 지적했다.
업데이트
AMD는 영향을 받는 광범위한 CPU에 대한 CPU 마이크로코드 업데이트를 발표했지만, 모든 제품은 아니다. 일부는 지원 기간 종료(end-of-life)에 이르렀기 때문이다. 예를 들어, AMD 라이젠 3000 시리즈 데스크탑 프로세서에 대한 수정은 계획되어 있지 않다. 또한 일부 임베디드 CPU의 경우 패치 출시일이 10월로 예정되어 있다.
또 CPU 마이크로코드 업데이트는 부팅 프로세스 초기에 OS에서 적용될 수 있지만 이는 영구적인 수정 사항은 아니다. 보다 영구적인 해결책은 마더보드 공급업체가 새로운 마이크로코드가 포함된 UEFI 펌웨어 업데이트를 배포하는 것이다. 그러나 이 취약점이 존재한 기간을 고려할 때 AMD CPU가 탑재된 컴퓨터의 많은 마더보드가 지원 종료 상태이기에 더 이상 펌웨어 업데이트를 제공하지 않을 가능성이 크다. dl-ciokorea@foundryco.com