[CPU] 팩트체크 2 : CPU 보안 버그에 관하여
인텔이 연초부터 업계의 뜨거운 감자로 부상했습니다. 단, 좋은 의미에서가 아니라 치명적인 CPU 보안 버그라는 오명이 어느 때보다 크게 불거지고 있는 상황입니다. 구글과 몇몇 대학 연구팀이 거의 동시에 밝힌 내용들에 따르면 현존하는 거의 모든 인텔 CPU가 이 버그를 피해가지 못하는 것으로 알려졌는데요.
일단 인텔측에서는 자신들뿐만 아니라 x86 시장의 최대 라이벌 AMD, 그리고 x86 진영을 넘어 ARM 계열 CPU까지 보안 버그를 피해갈 수 없다는 해명을 내놓은 바 있습니다. 해명이 적절했는지 여부와 별도로 인텔에 한정된 버그의 경우 소프트웨어적 보완이 가능하나 큰 성능하락을 수반하는 것으로 알려져 또다른 논란의 시작이 되기도 했습니다.
게다가, 일각에서는 이러한 해명이 전형적인 물타기라며 오히려 비난의 목소리가 커지고 있기도 합니다. 거두절미하고 말하자면 이들 주장은 각각 반은 맞고 반은 틀리다고 볼 수 있습니다. 우선 'CPU 보안 버그' 라고 뭉뚱그려진 논점 자체가 사실은 서로 다른 두 가지 버그를 포괄하고 있어 각 진영이 주장하는 바가 모두 부분적으로는 맞으면서도 교묘하게 서로를 기각하는 것처럼 보이는 상황이 연출되었습니다.
또한, 그럼에도 불구하고 인텔의 해명이 전형적인 물타기라는 점 역시 엄연한 사실입니다. 앞서 말한 "교묘하게 서로를 기각하는 것처럼 보이는 상황"을 연출하는 것을 사실상 유도한 결과를 낳았기 때문입니다. 이번 이슈와 관련하여, 중요한 사실관계를 중심으로 차근차근 짚어 보겠습니다.
0. 메모리 공간 내에서 운영체제 커널 영역과 유저 어플리케이션 영역은 엄격히 상호 고립되어야 (isolated) 합니다. 또한 유저 어플리케이션 영역 상호간 역시 원칙적으로 고립되어 있어야 합니다.
1. 문제가 된 CPU 보안 버그는 (1) 멜트다운 버그 / (2) 스펙터 버그, 두 가지입니다.
2. 멜트다운 버그는 (0번 전단을 위반하여) 유저 어플리케이션이 운영체제 권한 영역을 침범해 내용을 빼돌릴 수 있는 버그입니다. 반면 스펙터 버그는 (0번 후단을 위반하여) 유저 어플리케이션 상호간의 권한 영역을 침범해 내용을 빼돌릴 수 있는 버그입니다. 둘 모두 0번이라는 대전제를 위반하는 점에서 치명적인 버그이나 굳이 계량화를 시도한다면 운영체제 커널 영역을 침범하는 멜트다운 버그가 더 근원적이고 치명적이라고 볼 수 있습니다.
단, 발생 메커니즘이 근원적이라는 것을 뒤집어 보면 '근원적'인 간단한 처방으로 예방이 가능하다는 뜻이기도 합니다. 멜트다운 버그는 소프트웨어 패치를 수행하는 경우 큰 성능 하락을 수반하는 경우가 있지만 어쨌든 해결은 가능한 반면, 스펙터 버그는 아직까지 해결책이 나오지 않았습니다. 그러나 이 대목을 해석할 때 "멜트다운은 해결 가능하니 큰 문제가 아니고, 스펙터는 해결 불가능하니 큰 문제이다" 가 되어서는 안 됩니다. 간단히 말해, 멜트다운은 인텔이라는 특정 제조사에 국한되어 발생하는 문제로 '예방 가능했던' 것이자 '제조사의 설계결함'에 의한 것인 반면, 스펙터는 현대 CPU 전반에 걸쳐 발생하는 보편적 문제이기 때문입니다.
3. 현대 CPU의 성능향상을 위한 기법 중 분기예측을 구현하기 위한 하드웨어 (=branch predictor, 분기예측기) 는 제조사별로 고유한 설계를 갖는데, 멜트다운 버그는 인텔의 분기예측기가 가진 고유한 결함에서 비롯된 것인 반면 (즉 분기예측기의 특정 작동 기전만 수정함으로써 우회할 수 있습니다) 스펙터는 보다 넓은 레벨에서, '분기예측'이라는 방법론 자체가 갖고 있는 한계에 기인한 것이기 때문입니다. 현대 CPU의 역사에서 분기예측 자체가 쓰이지 않은 예는 90년대를 건너오는 동안 거의 씨가 마르다시피 했습니다. 예외적으로 저전력화를 위해 당대 아키텍처에서 의도적으로 퇴화시킨 산물인 초창기 아톰 본넬 아키텍처 정도가 남습니다.
보다 구체적으로, 멜트다운 버그는 (인텔의) 분기예측기가 커널 모드와 유저 모드를 구별하지 않도록 설계된 것이 발생 원인입니다. 현재까지 구글 등 연구팀에서 알린 위험 변수에 한하여 보면 AMD 및 대부분의 ARM Cortex 계열 CPU는 여기에 해당되지 않습니다. (다만 "현재까지"라는 단서에 유의할 필요는 있습니다) 반면 스펙터 버그는 분기예측이라는 방법론 자체, 즉 분기 명령어를 CPU가 처리할 때 파이프라인 멈춤 (stall) 을 최소화하기 위해 "가장 그럴싸한" 분기로 점프하는 메커니즘이 발생 원인입니다.
스펙터 버그는 그 원인인 분기 점프 자체가 (동적 예측의 경우) 확률적 성격을 띄므로 이 버그를 사용해 공격을 시도하더라도 항상 적중하는 것은 아닙니다. 말하자면 악용의 가능성은 분명 존재하나 그로써 발생할 피해 확률 자체도 상당히 모호한 (vague) 케이스입니다. 둘 다 치명적인 버그이나, 멜트다운이 이슈가 되자 스펙터를 들고 나온 발표가 물타기라는 지적을 받는 이유가 바로 여기에 있습니다 : 특정 제조사의 명백한 실수에 기인한 확실하고도 치명적인 위험을 덜 돋보이게 할 목적으로 (심지어 그 '특정 제조사'가 열외되는 것도 아니고) 현대의 모든 CPU가 공유하는, 발생확률은 더 모호한, 덜 치명적인 위험으로 시선을 돌리려 했기 때문이죠.
다만 이번 사건을 해석함에 있어 인텔의 현 CEO, CFO 등 최고경영진이 몇달 전 주식을 대량 처분했다더라는 등의 외부요인과 결합해 확대해석하는 것 역시 팩트를 명확히 하는 것과는 다소 거리가 있다고 여겨집니다. 오히려 지나친 음모론적 접근이 건전한 팩트체크 및 (마땅히 비판받아야 할) 교묘한 물타기를 예리하게 검증하는 것을 무디게 하고, 대중의 시선을 분산시키는 역효과가 있음을 간과해서는 안 되겠죠.
그러나 분명한 것은, 이런 문제가 공론화되고 또 큰 파문을 낳을 수 있던 기반에는 거의 10년 만에 처음으로 "인텔이 아니어도 대안이 있다" 는 분위기가 조성된 공이 있음을 무시할 수 없단 것입니다. 비슷한 버그가 한 해 전에만 불거졌더라도 "대안이 없으므로" 문제를 해결한 인텔의 다음 세대 제품을 기다리는 것 외에는 달리 선택할 길이 없었을 것이고, 따라서 오늘날과 같은 거대한 문제제기 대신 찻잔 속 태풍으로 끝나버렸을 가능성이 높았겠지요.
과거와 지금이 다른 유일한 점이라면 인텔이 아니더라도 당장 선택가능한, 적어도 '비슷한' 성능을 보장하는 선택지가 "존재한다" 는 점일 것입니다. 기업의 불꽃 튀는 경쟁이 궁극적으로 소비자에게 득이 된다는 평범한 사실을 재확인하며, 실로 오랜만에 살아난 경쟁의 불씨가 오래도록 타오르기를 기원하며 글을 마칩니다.
Dr.Lee's Signature
* 적용중인 트로피 :
DR.MOLA
레벨 | Lv. 30 (-22%) |
---|---|
포인트 | 98,138 p |
출석 | 11 일 (개근 0 일) |
Dr.Lee'님의
- 연관 글
- 게임 정보
- [CPU] 14nm 끝을 화려하게 장식하는 인텔 : 2018년 하반기의 뉴페이스들 {today_a_date(strtotime($item->regdate), 'y.m.d')}
- [피씨] 구글 클라우드 COO, 인텔 CEO 출마 위해 사임설 {today_a_date(strtotime($item->regdate), 'y.m.d')}
- [피씨] 인텔 9세대 코어 i3 / i5 스펙 유출 {today_a_date(strtotime($item->regdate), 'y.m.d')}
- [피씨] 브라이언 크르자니크 인텔 CEO 전격 사퇴, 후임으로 제온 총책임자 등 거론 {today_a_date(strtotime($item->regdate), 'y.m.d')}
- [CPU] [번역] [내용추가] 인텔, 2018년 하반기 라인업 대개편 {today_a_date(strtotime($item->regdate), 'y.m.d')}
- [CPU] [번역] 코어 i7-8086K 벤치마크 : 8700K를 뛰어넘는 CPU일까? {today_a_date(strtotime($item->regdate), 'y.m.d')}
- [CPU] 공수교대, 컴퓨텍스 2018 스케치 : 인텔의 선공과 AMD의 카운터 {today_a_date(strtotime($item->regdate), 'y.m.d')}
솔직히 보안 취약점에 대해선 개인 레벨에서 할 수 있는 일이 없는지라 CPU 가격 떨어지면 좋은 일이니 팝콘을 준비해놓고 먹으면 되지 않을까 싶네요. 과로에 시달릴 서버 관리자님들에 대해서는 유감입니다.
인텔이 커피 다음으로 준비중인 CPU가 있었을 텐데 그 제품도 이번 멜트다운 버그 대상이었을까요?
분기 예측 설계를 하루아침에 바꾸진 못할테니 거의 예라고 생각합니다. 캐논 - 아이스 레이크 이후 타이거 레이크 / 사파이어 래피즈에나 방지 가능성 있지 않을까요?
크... 좋네요.
단지 제가 이해할 수 없는 부분이 좀...
좋은 글 감사합니다.
경쟁의 불씨 타올라라!
도요다, 폴크스바겐, 삼성, 애플도 소비자들에게 손을 들었는데,
인텔은 지금까지의 태도로 봐서는 손을 들 생각이 없는 듯 합니다.
어떻게 전개되어 가는지 지켜보고 있습니다.
lan님// 애플이 손을 들었나요? 아직까진 아닌데...