"윈도PC-서버, '포어섀도' 버그 패치해야"

MS, 인텔CPU 버그 취약점 3종 대응 권고

컴퓨팅입력 :2018/08/17 14:34    수정: 2018/08/18 16:15

마이크로소프트(MS)가 7년전부터 최근까지 출시한 윈도 운영체제(OS)를 대상으로 폭넓게 보안 패치를 내놨다. 최근 등장한 인텔 중앙처리장치(CPU) 보안 버그 '포어섀도(Foreshadow)' 때문이다.

그 영향을 받는 인텔CPU 기반의 PC 사용자와 서버 관리자들은 기본적으로 MS같은 OS 개발업체가 제공하는 소프트웨어 패치를 적용해야 하고, 필요시 그 하드웨어 제조사의 펌웨어 업데이트까지 적용해야 한다.

인텔CPU의 새로운 보안 버그는 클라우드컴퓨팅 환경에서 돌아가는 어떤 가상머신이 그 하드웨어 자원을 공유하는 시스템의 다른 영역을 해킹할 수 있게 만든다. 공격자가 시스템상의 추가 권한을 얻거나 별도의 공격 코드를 동원해야 하긴 하지만, 취약점을 악용하는 데 성공하면 가상머신에서 다른 가상머신이 처리하고 있는 기밀정보 내지 민감한 데이터를 들여다보거나 빼돌릴 수 있다는 얘기다.

포어섀도는 인텔CPU 명령어 처리 성능을 높이는 동작의 허점을 통해 PC부터 클라우드까지 다양한 형태의 컴퓨터 시스템에서 저장, 처리되고 있는 민감한 정보를 유출당할 수 있게 만드는 보안 버그다. 연초 발견된 인텔CPU 버그 '멜트다운' 및 '스펙터'와는 차이가 있다. 멜트다운처럼 커널페이지테이블격리(KPTI)를 적용한 환경에도, 다른 부채널(side-channel) 취약점이 없는 보안구획에도 피해를 줄 수 있다.

마이크로소프트 본사 전경

이 버그의 정식명칭은 'L1터미널오류(L1 Terminal Fault, L1TF)'다. 보안전문가들이 '복선을 깔다'라는 뜻의 영어 단어로 별명을 붙인 이유는 뭘까. 버그의 특성이 해커에게 민감한 데이터를 직접 노출시키는 게 아니라, 공격자에게 현대 CPU의 처리 속도를 높이는 '투기적 실행' 또는 '추측실행(speculative execution)' 기법을 통해 처리 중이거나 예정된 명령어가 다룰 정보를 재구성해낼 기회를 주기 때문이다.

MS는 윈도OS의 커널, 가상머신을 다루는 하이퍼바이저 하이퍼V에 적용되는 패치를 포함한 윈도용 8월 정기업데이트를 통해 잠재적인 L1TF 악용 위협을 차단키로 했다. 다만 이것만으로는 모든 위협에 대응할 수 없다. 메모리 유출 근원인 인텔CPU의 L1 데이터캐시를 소거하는 동작을 추가한 마이크로코드 업데이트도 적용돼야 한다. 이는 컴퓨터 제조사들이 그 제품 사용자들에게 펌웨어 형태로 배포해야 한다.

17일 한국MS 김귀련 보안담당 부장은 "최근 공개된 취약점을 해결하는 (윈도용) 업데이트 보안권고가 발표됐다"며 "제공되는 보호 기능을 모두 이용하려면 하드웨어/펌웨어 및 소프트웨어 업데이트를 설치하라"고 권고했다. 또 "MS는 추측실행이 가능한 하드웨어 취약성으로부터 고객을 보호하려고 칩 제조업체, 하드웨어 OEM, 앱 공급업체 등 업계 파트너와 협력하고 있다"고 밝혔다.

■ L1TF 버그, 3가지 보안취약점 확인…영향 받는 인텔CPU 모델은

L1TF 버그로 야기된다고 확인된 공통보안취약점공개항목(CVE)은 CVE-2018-3615, CVE-2018-3620, CVE-2018-3646, 3가지다. [☞관련기사 바로가기]

CVE-2018-3615는 인텔CPU 보안 특화 명령인 '소프트웨어 가드 익스텐션(SGX)'가 무력화되는 보안취약점이다. CVE-2018-3620은 OS 커널과 시스템관리모드(SMM)의 메모리 내 정보를 유출하는 보안취약점이다. CVE-2018-3646은 가상머신관리자(VMM)의 메모리 내 정보를 유출하는 보안취약점이다. 인텔은 지난 14일 공식 보안권고를 통해 이 3가지 보안취약점의 주요 특징을 설명했다. [☞원문보기]

MS 보안대응센터(MSRC) 소속 보안 엔지니어 맷 밀러(Matt Miller)는 지난 10일 MSRC 공식블로그를 통해 포어섀도 또는 L1TF 버그로 야기될 수 있는 3가지 보안취약점이 각각 어떤 공격시나리오를 허용할 수 있는지 분석했다. [☞원문보기]

MSRC 보안엔지니어 맷 밀러가 2018년 8월 10일 공식블로그에 게재한 인텔CPU L1TF 또는 포어섀도 보안버그 분석 내용 일부.

먼저 VMM 취약점(CVE-2018-3646)은 하이퍼바이저에서 게스트로(Hypervisor-to-guest), 호스트에서 게스트로(Host-to-guest), 게스트에서 다른 게스트OS로(Guest-to-guest) 공격할 길을 연다. 이는 동일한 서버 하드웨어를 사용하는 VM간의 해킹이 발생할 수 있다는 얘기다. 여러 사업자와 개인 고객에게 가상 자원을 제공하는 퍼블릭클라우드 및 데이터센터 호스팅 서비스 환경에서 문제가 될 수 있다.

VMM 취약점과 SGX 취약점(CVE-2018-3615)이 결합되면, 인텔CPU SGX 명령으로 사용자 코드에 전용 메모리 구획을 할당하는 '인클레이브(enceval)' 또는 윈도서버의 신뢰실행환경(TEE)인 '버추얼시큐어모드(VSM)' 등 격리된 보안 영역에서 시스템의 어느 영역(Enceval-to-any, VSM-to-any)으로든 공격이 시도될 수 있다. 윈도10, 윈도서버2016, MS애저 클라우드의 민감데이터 보안모델이 무력화될 위험이 있다.

OS 커널 및 SMM의 취약점(CVE-2018-3620)은 OS 내부의 보안을 공격받게 만든다. 커널에서 사용자(Kernel-to-user), 프로세스에서 다른 프로세스(Process-to-process), 프로세스 내부(Intra-process)로 공격이 이뤄질 수 있다.

맷 밀러는 "올해 초 역시 인텔CPU 보안 버그로 발표된 '멜트다운(Meltdown)' 보안취약점은 커널에서 사용자 대상 공격만을 허용했는데, L1TF 버그는 모든 디바이스 내부 공격(all intra-device attack) 시나리오에 적용될 수 있다"며 "이는 L1TF가 잠재적으로 제약 없이 시스템의 물리적 메모리를 읽어내는 능력을 제공할 수 있기 때문"이라고 설명했다.

포어섀도 역시 각종 분기 예측 기능의 허점을 파고 든다. (사진=픽사베이/foreshadowattack.eu)

어떤 인텔CPU가 문제일까. 17일 현재 인텔이 '잠재 영향 제품' 목록은 ▲코어i3, i5, i7, M프로세서(45nm 및 32nm 공정 기반) ▲2~8세대 코어프로세서 ▲인텔X99 및 X299플랫폼용 코어X시리즈 프로세서 ▲제온 3400, 3600, 5500, 5600, 6500, 7500 시리즈 ▲제온E3, E3 v2~v6 제품군 ▲제온E5, E5 v2~v4 제품군 ▲제온E7, E7 v2~v4 제품군 ▲제온 스케일러블 제품군 ▲제온D(1500, 2100)을 포함한다.

■ MS "커널-하이퍼바이저 업데이트하라"…영향 받는 윈도 클라이언트-서버 OS는

올해 초 발표된 멜트다운 및 스펙터 버그처럼, 포어섀도 또는 L1TF 버그는 인텔CPU의 기본 동작을 결정하는 하드웨어 설계상 문제로 보인다. 즉 보안취약점이 특정 OS나 애플리케이션 구동환경이 아니라, 이 버그를 품은 인텔CPU 컴퓨터 전반에 영향을 줄 수 있다. 대다수 인텔CPU 기반 모바일 기기, 태블릿과 데스크톱 PC, 워크스테이션, 서버, 통신장비, 클라우드 데이터센터 환경에 대응이 필요하다.

하지만 PC나 모바일 기기를 구매한 개인 소비자나 서버 및 기업용 하드웨어 시스템 관리자가 인텔CPU 보안 버그를 해결하려면 인텔이 아니라 OS 개발회사, CPU의 동작 방식을 일부 수정할 수 있는 메인보드 하드웨어 제조사의 보안 패치를 이용해야 한다. 인텔CPU를 영향받지 않는 프로세서 모델이나 타사 제품으로 바꾸지 않는 한 OS나 펌웨어 패치가 실제 이용자 환경의 보안취약점을 메울 수 있기 때문이다.

MS도 공지를 통해 인텔CPU 기반 윈도 클라이언트 및 서버 환경에 필요한 소프트웨어 차원의 대응 방안을 내놨다. 먼저 "여러분의 컴퓨터를 최신 상태로 유지하는 것이 최선의 보호조치"라며 OS의 자동업데이트 기능을 켜 놓으라 권고했다. OS 자동업데이트를 원할 때 설치하고 필요시 시스템을 재시작할 수 있는 개인 이용자 대상 지침이다. [☞원문보기]

필요시 아무 때나 패치를 깔고 시스템을 재시작할 수 없는 기업들은 어떻게 해야 할까. MS는 이들에게 포어섀도, 즉 L1TF 버그 영향을 받는 CPU 자산, 가상화기반보안(VBS)을 사용하는 클라이언트시스템 자산을 파악하라고 권고했다. 그리고 "L1TF로 기업환경에 야기되는 위험을 평가하라"며 "통상 제2종 스펙터(Spectre Variant 2)에 대응해야 했던 시스템은 L1TF에도 보호조치가 필요할 것으로 보인다"고 언급했다.

MS에 따르면 인텔CPU 포어섀도 패치가 성능에 영향을 줄 수 있다. 인텔CPU 탑재 시스템으로 데이터센터 및 클라우드 서버를 운영하는 기업에겐 좋지 않은 소식이다. [사진=Pixabay]

어떤 윈도 제품군에 OS 업데이트가 필요할까. MS가 제시한 목록을 보면 ▲윈도10 ▲윈도10 1607, 1703, 1709, 1803 버전 ▲윈도7 서비스팩(SP)1 ▲윈도8.1 ▲윈도RT 8.1 ▲윈도서버2008 SP2 ▲윈도서버2008 R2 SP1 ▲윈도서버2012 및 2012서버코어설치 버전 ▲윈도서버2012 R2 및 2012 R2 서버코어설치 버전 ▲윈도서버2016 및 2016서버코어설치 버전 ▲윈도서버 1709, 1803 서버코어설치 버전을 포함한다.

MS는 이 목록에 해당하는 윈도 클라이언트 및 서버 환경에서 CVE-2018-3620 보안취약점을 패치할 커널 업데이트와 CVE-2018-3646 보안취약점을 패치할 하이퍼바이저 업데이트를 적용하라고 권고했다. 그리고 만일 VBS 또는 하이퍼V 하이퍼바이저와 하이퍼쓰레딩(HT) 기능을 사용 중이라면, 해당 컴퓨터 제조사가 제공하는 펌웨어를 통해 마이크로코드(microcode) 업데이트도 적용해야 한다고 덧붙였다.

관련기사

MS의 설명에 따르면 CVE-2018-3620 취약점을 메우는 커널업데이트는 앞서 나온 멜트다운 취약점(CVE-2017-5754) 패치가 적용된 환경을 전제한다. 멜트다운 패치를 해야 새로운 패치의 효과도 얻을 수 있다. 그리고 CVE-2018-3646 취약점을 메우는 하이퍼바이저 업데이트 적용이 필요한 환경이라면, 업데이트의 최대 보호 효과를 얻기 위해 인텔CPU의 HT 기능도 비활성화해야 한다. 이 경우 성능 저하 우려가 있다.

특히 MS는 윈도서버 시스템 관리자를 대상으로 게재한 별도 공지를 통해 "일부 고객은 L1TF의 위험을 완전히 해결하기 위해 HT를 비활성화해야 하는데 이는 성능 하락을 야기할 수 있음에 유의하라"면서 "이는 윈도서버2016보다 이전 버전의 하이퍼V 또는 '크리덴셜가드' 및 '디바이스가드'같은 VBS기반 보안기능을 쓰는 고객에 적용된다"고 설명했다. [☞원문보기]