멜트다운과 스펙터

최근 편집: 2022년 12월 27일 (화) 03:02
멜트다운을 이용한 메모리 덤핑
멜트다운 데모

CVE-2017-5753CVE-2017-5715는 일반적으로 스펙터(영어: Spectre)로 불리는 보안 취약점이고, CVE-2017-5754는 일반적으로 멜트다운(영어: Meltdown)으로 불리는 보안 취약점이다.

보안 취약점 등록은 2017년 6월에 되었고, 2018년 1월 9일까지 엠바고로 알려지지 않은 상태로 운영체제 보안 패치가 이뤄질 예정이었으나, 리눅스 커널 수정 내역을 확인해보던 유저들이 인텔 CPU에 심각한 문제가 있다는 것을 유추하자 1월 3일에 원 발견자 중 하나인 구글 프로젝트 제로에서 공격 예제 코드를 제외한 모든 원리를 상세하게 밝혔다.

취약점과 관련된 Q&A[1]

  • 나도 이 버그의 영향을 받게 될까요?
    • 거의 확실히, 네.
  • 누군가 멜트다운이나 스펙터로 공격시 내가 알 방법이 있을까요?
    • 아마도 그렇지 않을겁니다. 이 공격은 추적이 가능한 일반적인 로그 파일을 남기지 않습니다.
  • 내 안티바이러스 소프트웨어가 이 공격을 탐지하거나 막아낼 수 있을까요?
    • 이론적으로는 가능하지만, 실제로는 어렵습니다. 일반적인 멀웨어와 달리 멜트다운과 스펙터는 일반적인 정상 응용프로그램과 구별하기가 어렵습니다. 다만, 해당 바이너리가 알려진 후 안티바이러스 소프트웨어가 알고 있을 경우는 탐지할 수 있을 겁니다.
  • 무엇이 유출될 수 있을까요?
    • 시스템이 영향을 받는 경우, 저희의 PoC Exploit은 당신 컴퓨터의 메모리 내용을 읽을 수 있습니다. 여기에는 시스템에 저장된 암호 및 중요한 데이터가 포함될 수 있습니다.
  • 멜트다운이나 스펙터가 이미 악용되고 있을까요?
    • 저희도 모릅니다.
  • 어떤 시스템이 멜트다운의 영향을 받을까요?
    • 데스크톱, 노트북 및 클라우드 컴퓨터는 멜트다운의 영향을 받을 수 있습니다, 더 기술적으로는, 모든 인텔 프로세서는 영향을 받을 가능성이 있으며, 이는 1995년 이래 사실상 모든 프로세서(2013년 이전의 인텔 아이태니엄 및 인텔 아톰 시리즈 제외)입니다. 우리는 2011년 초에 발표된 인텔 프로세서 세대에 대한 멜트다운을 성공적으로 테스트했습니다. 현재 인텔 프로세서에 대한 멜트다운만 검증했으며, ARM 및 AMD 프로세서가 멜트다운의 영향을 받는지는 불분명합니다.
  • 어떤 클라우드 제공자가 멜트다운의 영향을 받을까요?
    • 관련 패치를 적용하지 않고 인텔 CPU 및 Xen PV를 가상화로 사용하는 클라우드 제공자가 영향을 받을 것이며, 또한 Docker, LXC 또는 OpenVZ와 같은 하나의 커널을 공유하는 컨테이너에 의존하는 실제 하드웨어 가상화가 없는 클라우드 제공자가 영향을 받습니다.
  • 멜트다운과 스펙터의 차이는 무엇입니까?
    • 멜트다운은 응용프로그램이 임의의 시스템 메모리에 접근하지 못 하도록 하는 매커니즘을 무력화합니다. 덕분에 응용프로그램은 시스템 메모리에 접근할 수 있습니다. 스펙터는 다른 응용프로그램을 속여 메모리의 임의의 위치에 접근할 수 있습니다. 두 공격은 사이드 채널을 사용해 접근된 메모리 위치로부터 정보를 얻을 수 있습니다. 보다 자세한 논문은 멜트다운스펙터를 참고하세요.

원리

멜트다운 보안 취약점은 가상 메모리의 페이지 테이블과 관련된 취약점, 스펙터라는 이름으로 묶여있는 보안 취약점들은 분기 예측을 이용하는 모든 CPU가 가지고 있는 취약점으로 알려져 있다.

기본적으로 스펙터-1과 스펙터-2 모두 유저 모드에서 동작하는 응용프로그램이 다른 응용프로그램의 메모리를 훔쳐볼 수 있는 취약점이고, 멜트다운은 유저 모드에서 동작하는 응용프로그램이 커널 모드의 메모리를 훔쳐볼 수 있는 취약점이다.

멜트다운

빈 문단 이 문단은 비어 있습니다. 내용을 추가해 주세요.

스펙터-1

빈 문단 이 문단은 비어 있습니다. 내용을 추가해 주세요.

스펙터-2

빈 문단 이 문단은 비어 있습니다. 내용을 추가해 주세요.

해결법

멜트다운

멜트다운과 관련된 해결법이 윈도우 커널 및 리눅스 커널에 적용되어 패치가 배포되고 있지만 하드웨어와 관련된 결함이기 때문에 완벽한 해결법은 하드웨어를 변경하는 것이다. macOS용 멜트다운 보안패치는 2017년 12월부터 이미 배포되어 적용됐다.

그러나 멜트다운과 관련된 커널 보안 패치를 실시하면 관련 하드웨어에서 성능 하락이 있다. 일반적인 상황에서는 큰 성능 하락이 없지만, 파일 입출력과 관련된 부분에서 성능이 최대 30% 가량 느려지는 것으로 밝혀져 있다. 때문에 서버 시장에서는 비상이 걸려있으며, 에픽 게임즈에서는 자사의 게임 서버에 관련 패치를 시행한 후 CPU 사용률이 급격하게 올라간 것을 확인했다.[2] 이 외에 다른 서버에서도 파일 쓰기와 관련하여 성능 문제가 발생하는 중이다.

인텔에서 맨 처음 리눅스 커널 커뮤니티에 제출한 패치 코드에서는 멜트다운과 관련이 없는 AMD 및 일부 ARM 하드웨어에서도 성능 하락이 있도록 코드를 제출했으나 리누스 토르발즈의 욕설과 함께 리젝트 되었으며 이후 문제가 발생하는 하드웨어에서만 해당 코드가 동작하도록 커널 패치가 배포되었다.

AMD의 CPU는 아키텍처 차이로 멜트다운과 관련한 문제가 1%도 발견되지 않아 안전한 것으로 알려져 있으며, ARM의 ARMv7, ARMv8 CPU 아키텍처, IBMPOWER 아키텍처 등은 처음에는 안전하다고 알려져 있었으나 확인 결과 안전하지 않은 것으로 알려졌다. 다만, ARM64 기반의 서버용 CPU는 멜트다운으로부터 안전한 것으로 밝혀졌다.

예정보다 보안 취약점이 일찍 공개돼버렸기 때문에 그에 맞춰 패치가 급하게 준비되느라 알려지지 않은 큰 문제점을 가지고 있을 가능성이 있으므로 보안패치는 신중하게 설치해야 하며, 실제로 윈도우용 멜트다운 보안패치를 진행한 미국의 한 공장에서는 설비에 문제가 발생하기도 했고, 인텔 및 AMD의 CPU를 사용하는 일부 시스템에서는 무한 재부팅 버그 등이 발생하기도 했으므로 패치에 주의해야 한다.

스펙터-1 및 스펙터-2

비순차적 실행이 가능한 CPU 위에서는 현재까지 완벽한 해결법은 없는 것으로 알려져 있다. 단, 알려진 공격 방법을 완화시킬 수 있는 운영체제 커널 업데이트와 바이오스 업데이트가 배포되고 있다.

하드웨어 커뮤니티들에서는 이 문제가 완전하게 해결이 가능하려면 CPU의 분기 예측 구조가 변경되거나 완전히 새로운 CPU 아키텍처가 사용돼야 하는 것으로 추측하고 있다.

자바스크립트의 JIT을 이용해 공격할 수 있는 방법이 알려지면서 마이크로소프트 엣지, 파이어폭스 등의 브라우저에서 관련 패치를 내놓았다. 다만 완벽하게 막는 패치가 아니라, 공격 시간을 늦추는 패치이므로 여전히 주의해야 한다.

그 외

멜트다운 보안 취약점과 관련이 큰 인텔에서 스펙터 취약점으로 다른 CPU 제조사도 문제가 있다며 물타기를 시도하고 있다. 이후 ARMIBM의 CPU도 멜트다운과 관련된 취약점이 있는 것이 확인되긴 했다.

인텔의 CEO인 브라이언 크르자닉2017년 11월에 1400만 달러에 해당하는 주식을 매각한 사실이 밝혀졌으며, 이것이 멜트다운 및 스펙터와 관련된 보안 결함을 알게된 이후이기 때문에 내부자 거래를 이용한 부당 거래가 아닌가 하는 의혹을 받고 있다.

인텔은 멜트다운과 관련한 보안 결함을 알고도 결함이 있는 8세대 코어 i 시리즈 CPU를 출시 및 판매했으며, 인텔 발표에 따르면 이 제품들에 대해 리콜은 계획이 없다.

보안 취약점을 해결하는 패치로 I/O 성능 하락은 피할 수 없다고 밝혀져 있었으나 개인 사용자의 경우 생각보다 큰 하락은 없었으며, 다만 CPU의 출시 세대에 따라 성능 하락도의 차이가 있다.

멜트다운 및 스펙터가 현재진행형인 문제인데 여기에 가세해서 CPU의 행동을 관리하는 인텔 매니지먼트 엔진(ME) 및 인텔 액티브 관리 기술(AMT)에서 또 보안 문제가 터져서 이슈가 되고 있다. 아예 인텔 제품을 사용하지 않겠다는 기업도 있을 정도. 이 취약점을 이용해서 30초만에 해킹이 가능하다는 보도도 있다.[3]

참조

  1. “Questions & Answers”. 《Meltdown and Spectre》. 
  2. “Epic Services & Stability Update”. 《Fortnite Forum》. 2018년 1월 5일. 
  3. “인텔 또다른 해킹 취약점 발견…"노트북 30초면 뚫려". 《네이버 뉴스》. 2018년 1월 14일.