독일 CISPA 헬름홀츠 정보보안 센터의 연구원 팀은 중국 칩 회사 T-Head의 XuanTie C910 및 C920 RISC-V CPU에 영향을 미치는 구조적 버그를 공개했습니다. 이 버그를 통해 공격자는 취약한 장치에 무제한으로 액세스할 수 있습니다.
이 취약점은 GhostWrite라는 코드명으로 명명되었습니다. 사이드 채널 또는 일시적 실행 공격이 아닌 하드웨어에 내장된 직접적인 CPU 버그로 설명되었습니다.
연구자들은 “이 취약점은 권한이 없는 공격자, 심지어 제한된 접근 권한을 가진 공격자도 컴퓨터 메모리의 모든 부분을 읽고 쓰고 네트워크 카드와 같은 주변 장치를 제어할 수 있게 합니다.”라고 말했습니다. “GhostWrite는 CPU의 보안 기능을 무효화하고 CPU 기능의 약 절반을 비활성화하지 않고는 수정할 수 없습니다.”
CISPA는 CPU의 벡터 확장에 잘못된 명령어가 있다는 것을 발견했습니다. 벡터 확장은 기본 명령어 세트 아키텍처(ISA)보다 더 큰 데이터 값을 처리하도록 설계된 RISC-V ISA의 추가 기능입니다.
연구자들은 이러한 잘못된 명령어는 가상 메모리가 아닌 실제 메모리에서 직접 작동하며, 일반적으로 운영 체제와 하드웨어에서 강제하는 프로세스 격리를 우회할 수 있다고 밝혔습니다.
결과적으로 권한이 없는 공격자는 이 허점을 무기화하여 모든 메모리 위치에 쓰고 보안 및 격리 기능을 우회하여 장치에 대한 완전하고 제한 없는 액세스를 얻을 수 있습니다. 비밀번호를 포함하여 머신에서 모든 메모리 콘텐츠를 누출할 수도 있습니다.
연구자들은 “이 공격은 100% 신뢰할 수 있고 결정적이며 실행하는 데 마이크로초 밖에 걸리지 않습니다.”라고 말했습니다. “Docker 컨테이너화나 샌드박싱과 같은 보안 조치조차도 이 공격을 막을 수 없습니다. 또한 공격자는 메모리 매핑 입출력(MMIO)을 사용하는 하드웨어 장치를 하이재킹하여 이러한 장치에 모든 명령을 보낼 수 있습니다.”
GhostWrite에 대한 가장 효과적인 대책은 벡터 기능 전체를 비활성화하는 것입니다. 그러나 이렇게 하면 명령어 세트의 약 50%가 꺼지기 때문에 CPU 성능과 기능에 심각한 영향을 미칩니다.
“다행히도 취약한 명령어는 벡터 확장에 있으며, 운영 체제에서 비활성화할 수 있습니다.” 연구원들은 언급했습니다. “이것은 GhostWrite를 완전히 완화하지만 CPU에서 벡터 명령어도 완전히 비활성화합니다.”
“벡터 확장을 비활성화하면 CPU 성능이 크게 저하되며, 특히 병렬 처리와 대용량 데이터 세트 처리의 이점을 얻는 작업의 경우 더욱 그렇습니다. 이러한 기능에 크게 의존하는 애플리케이션은 성능이 저하되거나 기능이 저하될 수 있습니다.”
이 공개는 Google의 Android Red Team이 Qualcomm의 Adreno GPU에서 9개 이상의 결함을 공개한 데 따른 것입니다. 이 결함은 로컬 액세스 권한이 있는 공격자가 커널 수준에서 권한 상승 및 코드 실행을 달성할 수 있도록 허용할 수 있습니다. 이 취약점은 이후 칩셋 제조업체에서 패치되었습니다.
또한 AMD 프로세서에서 새로운 보안 결함이 발견된 이후에도, 공격자가 커널(일명 Ring-0) 접근 권한을 이용해 SMM 잠금이 활성화되어 있어도 시스템 관리 모드(SMM 또는 Ring-2)의 구성을 변경하고 권한을 상승시킬 수 있는 가능성이 있습니다.
IOActive에서 Sinkclose라고 명명한(일명 CVE-2023-31315, CVSS 점수: 7.5) 이 취약점은 거의 20년 동안 감지되지 않은 것으로 알려져 있습니다. 컴퓨터에서 가장 높은 권한 수준에 액세스할 수 있다는 것은 보안 기능을 비활성화하고 사실상 레이더 아래로 이동할 수 있는 지속적인 맬웨어를 설치할 수 있다는 것을 의미합니다.
WIRED와의 인터뷰에서 해당 회사는 감염을 치료하는 유일한 방법은 SPI Flash programmer라는 하드웨어 기반 도구를 사용하여 CPU에 물리적으로 연결하고 SinkClose를 사용하여 설치된 맬웨어를 메모리에서 검사하는 것이라고 말했습니다.
AMD는 권고문에서 “모델별 레지스터(MSR)에서 부적절한 검증이 수행되면 ring0 액세스 권한이 있는 악성 프로그램이 SMI 잠금이 활성화된 상태에서 SMM 구성을 수정할 수 있으며, 이로 인해 임의의 코드가 실행될 가능성이 있습니다.”라고 언급하며, 이 문제를 완화하기 위해 OEM(Original Equipment Manufacturers)에 업데이트를 출시할 계획이라고 밝혔습니다.