보안 연구원들은 최신 CPU의 추측 실행(speculative execution) 메커니즘을 악용해 보안 경계를 허물고 커널 메모리의 내용을 유출하는 새로운 방법을 발견했다. 이 새로운 기술은 SWAPGS라는 시스템 명령을 악용해 스펙터와 같은 이전의 추측 실행 취약점에 대한 완화 조치를 우회할 수 있다.
이 취약점은 보안업체인 비트디펜더 연구원들에 의해 발견됐으며, 약 1년 전에 인텔에 보고됐다. 이후 마이크로소프트는 지난달 패치 화요일에 이에 대한 완화 조치를 발표했다.
SWAPGS를 사용하면 프로세스가 사용자 모드에서 커널 모드로 전환될 때 커널이 CPU 데이터 구조 내부에 액세스를 할 수 있다. 비트디펜더 연구원들은 이 침입 행동이 추측 실행 메커니즘에 따라 실행될 때 명령 동작은 문서화되지 않았으며 보안에 영향을 미친다는 것을 발견했다.
SWAPGS와 관련된 3가지 공격 시나리오가 있다. 하나는 공격자가 취약점을 악용하는 걸 어렵게하기 위해 설계된 최신 운영체제 매커니즘인 KASLR(Kernel Address Space Layout Randomization)을 우회하는 것이다.
두 번째는 공격자가 사용자 공간의 특정 커널 메모리 주소에 특정 값이 존재하는지 테스트하고, 세 번째는 가장 심각한 것으로 공격자가 임의의 커널 메모리 주소의 내용을 유출시킬 수 있다. 이는 스펙터 취약점의 영향과 유사하며 실제로 새로운 기술은 스펙터 버전 1의 변형으로 카탈로그된다.
공격의 성능은 그리 크지 않다. 연구원들은 공격자가 개념 증명 익스플로잇을 사용해 몇분마다 몇 바이트의 정보를 유출할 수 있다고 추정한다. 그러나 이들은 앞으로 유출율이 상당히 개선될 수 있다고 예상했다.
윈도우, SWAPES 취약점에 가장 취약
이 공격이 흥미로운 점은 자체 가상 주소 공간에서 커널 메모리를 완전히 격리해야 하는 KPTI(Kernel Page Table Isolation) 매커니즘을 포함해 기존의 모든 소프트웨어 완화 조치를 우회해 스펙터와 멜트다운과 유사한 공격에 대한 대응을 더욱 어렵게 한다는 것이다. 연구원들은 운영체제가 SWAPGS를 사용하는 방식으로 가장 쉬운 대상이었기 때문에 마이크로소프트 윈도우에 대한 테스트에 중점을 뒀다. 이 문제는 CVE-2019-1125 식별자로 지정됐다.
마이크로소프트 대변인은 이메일을 통해 “우리는 업계 전반의 문제를 알고 있으며, 고객을 보호하기 위해 완화 조치를 개발하고 테스트하기 위해 칩 제조업체와 협력업체와 긴밀히 협력하고 있다. 우리는 7월에 보안 업데이트를 발표했으며, 윈도우 업데이트를 사용하도록 설정하고 보안 업데이트를 적용한 고객은 자동으로 보호된다"고 말했다.
이 결함에 대한 완화 조치는 7월 윈도우 패치에 포함됐지만 비트디펜더가 백서를 발표하고 마이크로소프트가 보안 권고를 발표한 8월 6일까지 세부 사항을 밝히지 않았다.
비트디펜더 연구원은 리눅스 커널에 대한 빠른 분석 결과, 공격에 사용될 수 있는 가제트가 포함되어 있지만 NMI(Non-Maskable Interrupt) 핸들러 내부에 있다고 밝혔다. 따라서 리눅스에서는 공격하기 불가능하지는 않지만 어려울 것이라고 본다고 말했다.
레드햇은 자사의 제품이 이론적으로 취약하다는 사실을 확인했지만 권고에 따르면, 현재 리눅스 커널을 실행하는 시스템에서 성공적으로 악용할 수 있는 방법은 없다. 그럼에도 불구하고 레드햇은 커널 업데이트를 발표했으며 이 완화조치가 이 문제의 영향을 받는 유일한 인텔 및 AMD CPU에 약간의 성능에 영향을 미칠 수 있다고 언급했다.
비트디펜더 연구원들은 하이퍼-V 커널과 젠 하이퍼바이저(Xen hypervisor) 커널에 대한 빠른 분석 결과, SWAPGS 명령이 사용되지 않았기 때문에 악용이 불가능한 것으로 나타났다. 이 연구원들은 “다른 운영체제와 하이퍼바이저는 조사되지 않았지만, 발표를 조정하는 동안 마이크로소프트는 모든 관련 당사자에게 이 취약점에 대해 알렸다.
소프트웨어를 통한 SWAPGS 공격 완화 조치
스펙터 버전 1과 마찬가지로 새로운 SWAPGS 공격은 소프트웨어에서 직접 완화할 수 있으며, 마이크로 코드 업데이트가 필요하지 않다. 때문에 인텔은 마이크로소프트가 취약점 공개 조정을 주도하게 했다. 인텔은 이메일을 통해 “인텔은 협력업체와 함께 소프트웨어 수준에서 문제가 더 잘 해결되고 있으며, 연구원들을 마이크로소프트와 연결시켰다”며, “제품과 데이터를 좀 더 안전하게 보호하기 위해 에코 시스템이 함께 작동해야 하며 이 문제는 마이크로소프트에 의해 조정되고 있다”고 밝혔다.
이것은 스펙터 및 멜트다운 결함이 발표된 2018년 1월 이후, 많은 수의 CPU 취약점과 변형이 발생했다. 보안 연구 커뮤니티는 최신 프로세스 및 기타 하드웨어 구성 요소가 저 수준에서 작동하는 방식을 자세히 살펴보면 더 많은 보안 문제가 발견될 수 있다고 우려했다. editor@itworld.co.kr