IT 관련/IT일반

인텔 CPU 버그

nullzone 2018. 1. 8.
반응형


인텔 CPU 버그



근래 애플의 아이폰 배터리 게이트로 시끄럽다가 갑작스럽게 인텔 CPU 버그로 인해 시끄럽게 되었다.

나는 더 이상 아이폰을 사용하지 않아 무관심했는데 인텔CPU는 조만간 새로운 컴을 조립하려는 나에게 관심을 끌어 한번 살펴보게 되었다. 


개인적인 경해로는 인텔에게 있어서 이번 사태는 그 파급 효과가 적지 않을 것 같다는 생각이다. 

인텔 프로세서가 스약 70%를 점유 한다고 하는데 수천~수만대의 서버들을 사용하는 기업들은 이로 인해 발생하는 문제를 고려하면 인텔에게 있어서 이번 문제를 해결하지 못한다면  작은문제가 아닐 가능성이 크다. 




일단 문제의 발표님 구글의 프로젝트 제로팀에서 공식적으로 제일 먼저 발표되었다.

제일먼저 발표했다는 말은 구글외에  다른곳에서도 해당 버그를 이미 인지 하고 있었다는 의미다.

자료를 검색해 보고 사건을 유추해보면 구글에서 인텔 CPU에 문제가 있음을 인지 하고, 인텔뿐 아니라 AMD, ARM등에 연락을 취했을 것이다. 

아울러 MS, 리눅스진영, 애플 등에 이를 알리고.. 같이 해결책을 모색했던것 같다. 


아마도 운영체계에 패치들이 바로 나온 것을 보면...

인텔에서는 해당문제를 인지했음에도 불구하고 인텔 자체에서 해결책을 못찾았는지 아니면 이런 버그를 사전에 인지 하고 있었음에도 이는 인텔 프로세서들의 구조적 문제이기에 외부로 알려지기 전까지 대응을 안했는지는 모르겠다.

*많은 사실들을 종합해 보면 후자가 맞을듯하다.  


아무튼 리눅스, 마이크로소프트, 애플등은 이후, 빠르게 소프트웨어 패치를 발표했다.

문제는 해당 패치가 인텔CPU에 대한 근본적 문제 해결이 아닌 인텔CPU의 문제를 건드리지 않도록한 패치라는 것이다.



발견된 버그는?





인텔 CPU의 버그는 두가지인데 Meltdown, Spectre 라고 명명되었다. 


  • meltdown : kernel영역의 메모리 내용을 일반 application이 볼수 있는 버그

  • Spectre  :한 유저 프로그램이 다른 유저 프로그램 메모리를 볼수 있는버그


멜트다운(meltdown)

멜트다운과 스펙터 취약점은 현대 CPU에서 사용하는 최적화 기법인 비순차적 실행(out-of-order execution)과 추측 실행(speculative execution)의 결과로 나타나는 프로세서의 상태 변화에 대한 부채널 공격이다. CPU 명령어는 사용자에게는 순차적으로 실행되는 것처럼 보이지만, 내부적으로는 최적화를 위해 뒤쪽 명령어를 미리 실행한다든지 조건에 따라 분기되는 부분에서 가정을 세워 실행하는 등의 최적화를 수행한다. 이렇게 미리 계산한 값이 맞을 경우 해당 값을 실제로 적용해 사용자에게 보여주고, 틀리다면 해당 계산을 파기하는데 두 가지 취약점은 실제로는 실행되지 않는 파기된 계산에서 정보를 누출하는 공격을 수행한다.


일반 사용자들이 좀 더 쉽게 이야기 하면, kernel영역의 메모리 내용은 악의 적인 프로그램에 의해서  보호가 되어야 합니다. 

즉, Kernel이 CPU를 이용할때 커널 영역은 커널외에 다른 프로그램이 접근할수 없도록 팬스(protection ring)가 있습니다. 

그래야 우리가 사용하는 암호, 계정정보, 암호화키값등이 다른 프로그램에 의해서 탈취 할수 없는것인데 이런 보호 팬스(?)가 녹아 내린다는 의미로 멜트다운(Meltdown: 원자로가 녹아 내린다는 의미로 많이 쓰이지요?)이라 명명한 것 같습니다. 



스펙터(Spectre)
스펙터(Spectre) 취약점은 다른 유저 프로그램의 메모리 데이터를 엿볼 수 있는 버그입니다. 스펙터 취약점을 이용하면 다른 유저 프로그램이 사용하는 메모리 데이터를 복사할 수 있습니다. 서버 시스템에서는 가상머신 환경에서 해당 가상 머신을 구동하고 있는 서버나 동일 서버 내 다른 가상머신의 메모리에 접근할 수도 있습니다.

하지만,  스펙터 취약점을 공격하려면 상당히 어렵다고 합니다. 즉, 스펙터 버그를 이용하여 시스템 공격은 그 난이도가 매우 높다고 합니다(이 부분은 저도 잘 이해가 않가서) 

다만, 스펙터 취약점은 현존하는 대다수의 CPU들의 공통적인 문제라고 합니다. 






적용 범위는?



스펙터 버그는 동시에 여러 명령어를 처리하는 CPU에서는 공통적으로 발생이 가능하다. 
즉, 인텔, AMD, ARM 등 모두 해당된다. 
현재까지 완전 면역으로 밝혀진 CPU는 명령어를 순차 처리하는 구형 저성능 CPU들만 존재하는 상황이다.
스펙터 버그는 어쩔 수 없이 존재한다고 인정 할 수 밖에 없는것 같습니다. 


멜트다운 버그
1995년 이후 나온 비순차 처리를 이용하는 모든 인텔 프로세서
*리눅스, Windows, macOS 등 intel CPU를 사용하는 모든 컴퓨터에 적용됩니다.

AMD는 비교적 안전하다고 합니다. 

AMD 측의 분석 결과 발표에 의하면, 구글 프로젝트 제로팀에서 언급해 준 취약점 중 스펙터 버그에 해당되는 "Bounds Check Bypass" 변수는 OS/소프트웨어 업데이트로 해결이 되었으며 업데이트로 인한 성능 저하는 무시할 수 있는 수준이라 하였고, "Branch Target Injection" 변수는 아키텍처 구조 상 문제 발생 가능성이 매우 낮으며 아직까지 성공이 확인된 사례는 없다고 하였다. 그리고 멜트다운 버그에 해당되는 "Rogue Data Cache Load"변수의 경우도 마찬가지로 아키텍처 구조의 차이로 문제가 없다고 하였다.



패치는?



멜트다운과 스펙터 모두 하드웨어 문제이기 때문에, 이 둘에서 벗어나기 위해서는 궁극적으로 CPU 교체가 필요하다. 즉, 하드웨어 결함이기때문에 소프트웨어적으로는 어떤 보안 패치는 완벽하게 막을 수 없을 것이고, 일정부분 부작용(속도 저하등)이 있을 수 있을 것이다. 



윈도우


윈도우 업데이트는 대게 알아서 설치된다. 만약 설치가 되지 않을 경우 마이크로소프트 카탈로그 사이트에 들어가 자신에게 맞는 업데이트를 설치한 뒤, 재시작하면 된다.


윈도우 7 SP1 제품 다운로드

윈도우 8.1 제품 다운로드

윈도우 10 Threshold 1 (TH1) 버전 1507 제품 다운로드

윈도우 10 Threshold 2 (TH2) 버전 1511 제품 다운로드

윈도우 10 Redstone 1 (RS1) 버전 1607 제품 다운로드

윈도우 10 Redstone 2 (RS2) 버전 1703 제품 다운로드

윈도우 10 RedStone 3 (RS3) 버전 1709 제품 다운로드


macOS

Mac App Store에서 업데이트를 통해 High Sierra 10.13.2를 설치하면 된다. 자신의 OS 버전이 10.12 시에라이고 하이 시에라로 업데이트하고 싶지 않은 경우 2017-002 보안 업데이트를, 10.11 엘 캐피탄인 경우 2017-005 보안 업데이트를 설치하면 된다.


Linux

리눅스의 경우 커널 버전 4.15-rc6부터 패치가 적용된다. 


Android OS

구글에서 패치 배포예정이라고 합니다.



패치로 인한 성능저하는?



하드웨어의 취약점이기 때문에 이를 OS와 커널 등 소프트웨어 수준에서 해결하려면 성능 하락이 발생을 피할수는 없다는 것이 전문가들의 공통적 의견입니다.

또한, 일반 개인유저들보다는 서버의 시능템에서 성능 저하가 나타날수 있다고 합니다.



레드햇 성능팀이 Red Hat Enterprise Linux 7을 기준으로 벤치마크한 결과입니다. 


게임등에는 큰 성능 저하는 없다. 대부분 IO가 많이 발생하는  서버쪽 성능저하가 바생되었다고 합니다.


  • Measureable: 8~12% - Oracle OLTP, MariaDB, PostgreSQL, fio(Random IO to NvME)와 같은 buffered IO와 cached random memory access, OLTP DB 환경
  • Modest: 3~7% - DW성 업무(Analytics), Java VM, MongoDB 등
  • Small: 2~5% - HPC와 같은 CPU intensive 업무


뒷 이야기




  •  해당 버그의 발견과 이에 대하여 초기 대응및 기타 내용들은 아직 확실하게 밝혀지지 않았음


  •  해당 버그는 이미 공개전에 대형서비스 업체들과 공유되었던 것으로 알려지고 있습니다. 

*리눅스 커널 패치는 이미 릴리즈, 아마존, MS등에는 이미 패치되어 있는것으로 알려졌습니다. 


  • 이미  멜트다운이나 스펙터로 인한 피해가 있었는지는 알수 없으며, 이를 이용한 악성 프로그램을 백신으로 사전 차단은 불가 합니다. 왜냐하면 해당 부분은 하드웨어 버그 이므로 정상적인 프로그램과 동일합니다. 단, 악성프로그램이 발견되면 패턴을 이용하여 동일 방식을 프로그램은 차단 가능할 것입니다. 
  •  인텔의 대응 방식에 대한 문제점과 불만/비난 폭주

 1.  CEO인 크라자니치]를 포함한 인텔 전현직 고위 간부들은 작년 11월부터 12월까지 CEO의 경영권 보장 분의 주식 등을 제외한 본인들이 팔 수 있는 한계 안에서 모두 주식을 매각.-->이미 해당 버그를 인지 하고 있었으며, 이에 따른 파장을 인지 하고 있었다는 의혹 제기


2. 인텔 프로세서만의 문제가 아니라는 식의 보도자료 발표 및 주장 


3. 구글, 인텔에 수개월 전부터 이를 통보했으나 인텔측에서 무시, 심지어 인텔의 CEO인 크라자니치 역시 이를 알고 있었음을 실토.


4. 인텔은 이번 이슈로 인해 하루만에 주가가 7% 가까이 하락.


5. AMD는 홈페이지에 각 취약점의 영향과 해결 방법을 공지, 해당 취약점에 영향을 받는 칩셋과 해결 방법에 대한 페이지를 공개하였다. 이에 반해 인텔은 답변을 전혀 주지 않았고, 자사 홈페이지에 관련 취약점에 대해 무성의한 대응책 발표.


6. 인텔입장에서는 해당 취약점에 대해 근본적인 해결채을 내 놓으려면 프로세서 디자인을 모두 바꾸어야 하는데 이는 몇년이 걸릴지 모르는 매우 어려운 일이라고 함.






반응형

'IT 관련 > IT일반' 카테고리의 다른 글

VSCode와 함께 사용하면 유용한 Plug in  (0) 2021.06.28
VI editor 익숙해지기  (0) 2020.02.21
기계식 키보드 구매요령  (0) 2018.01.21
키보드 이야기  (0) 2018.01.11
activeX 때문에 Hyper-V 이용하기  (4) 2018.01.06

댓글