Hardware, ICT, Software

인텔 11세대 이전 CPU의 Downfall 보안 취약점

지금은 13900K 들어간 데스크탑을 주 PC로 쓰고 있습니다만, 그 이전에는 8세대/9세대 랩탑을 꽤 오랜 기간 사용 했습니다.
고장나지 않는 이상 아끼고 고쳐서 쓰는 것이, 기후 위기에 대한 개인이 할 수 있는 가장 큰 저항이니까요.
휴대폰은 2016년에 산 걸 7년째 쓰고 있고, 50년 된 독일제 핀셋도 아직 현역으로 사용중이고, 보조 공유기는 사용한지 10년 넘었으며, 마우스 패드는 20년 된 걸 쓰는 중입니다.
치명적 고장 아니라면 어지간하면 물건을 버리지 않습니다.

20년 묵은 마우스 패드입니다.
애쉬론즈 콜 2가 2002년인가에 나왔으니까 아마 그 때쯤 손에 넣은 것일 겁니다.
유리 재질. 마우스 밑에 테프론 테이프를 붙이면 말 그대로 날아다닙니다.

8세대 랩탑도 나왔을 당시에는 꽤 쓸만했습니다.
가끔 게임이라든지 GPU 가속이 필요 할 때는 썬더볼트 3를 이용한 eGPU 시스템으로 해결 했습니다.
9세대 랩탑은 GTX 1070이 달려 있어서 게임도 잘 돌아갔지만, 고장이 나는 바람에 폐기 해야 했습니다.
메인보드 가격이 무참히 비싸서 새거 사는 게 나을 정도였기 때문에 어쩔 수가 없었네요.

그러던 중 큰 사건이 벌어지게 되는데…
멜트다운/스펙터 취약점이 터진 겁니다.
거의 모든 현대 CPU(스마트폰 포함!)가 이 보안 취약점에 속수무책이었기 때문에, 모든 PC 제조사 및 운영체제 업체들이 긴급 보안 패치를 진행 했습니다.
문제는 패치 후 PC(와 스마트폰) 성능이 적게는 10%에서 많게는 30% 이상 떨어진다는 것.
쓰고 있던 8세대 랩탑은 보안 패치 이전 210점 정도의 성능이었다면, 이후 190점 정도로 떨어지더군요.
졸지에 6세대 i3 정도의 성능으로 추락 하는 바람에 웹서핑마저도 버거울 정도가 돼버렸습니다.
특히 사진 편집을 주로 하다보니 자잘한 파일을 자주 입출력 하는데, CPU 성능 뿐 아니라 I/O 쪽 성능도 떨어져 체감상 성능 저하가 수치 이상으로 컸습니다.
2018년 전후로 쓰던 폰이나 PC가 이유없이 느려졌다고 느끼시는 분들이 많았을텐데, 바로 이런 이유였던 것이죠.
2016년에 산 스마트폰도 느려지고 말았지만 참고 쓰기로 했고, 다만 컴퓨터는 어쩔 수 없이 데스크탑을 새로 들였습니다.

11700KF, 성능은 충분히 높다고 생각해서 , 공랭 쿨러 등 보수적인 세팅으로.

12세대 발매 전이라 11세대 11700KF에 안정성을 중시한 공랭 CPU 쿨러, OS도 윈도우 10으로 유지 했습니다.
한동안 별 문제 없이 잘 썼습니다.
그러다가 PC 두 대를 추가로 들여야 할 소요가 발생 했습니다.
11700KF는 서브 PC로 유지하면서, 11세대 CPU를 하나 더 사서 웹 서버를 구성 했습니다.
동시에 구입한 메인 PC는 한 10년 정도 쓸 걸 목표로 13900K를 넣었습니다.
당시 AMD를 놓고 아주 약간 고민하기는 했지만, Zen 4가 성능은 더 우수해도 메인보드나 RAM, 소프트웨어, 드라이버 등 시스템 전체적인 유지보수/관리 부분에 있어서는 난점이 크기 때문에 배제 했습니다.


Downfall, CVE-2022-40982

…서설이 좀 길었습니다.

이번에 인텔 11세대 이전 CPU가 영향 받는 [Downfall](CVE-2022-40982)이라 이름 붙은 보안 취약점이 발표 됐습니다.
이 취약점을 이용하여 비밀번호, 복호화 키 등등을 훔쳐 낼 수 있습니다.
CVE에서 알 수 있듯 발견은 작년이었지만 발견자(Daniel Moghimi)가 인텔에 먼저 알렸고, 대응을 위한 패치 개발 끝에 며칠 전 8월 8일 발표 됐습니다.
인텔 6세대~11세대 CPU에만 해당하는 취약점으로, 최신 12~13세대는 해당 없습니다.

CVE-2022-40982, Downfall.
발견자 Daniel Moghimi 박사는 구글에서 일하고 있습니다.
그가 이미지 생성 AI, DALL-E 2로 만든 것입니다.

다운폴은 CPU 안에 내장되어 있는 명령어 세트 들 중, AVX-2/AVX-512가 가진 ‘gather’ 명령이 원인입니다.
메모리에 흩어져 있는 데이터를 문자 그대로 ‘긁어모아(gather)’ 빠르게 처리 할 수 있도록 돕는 것.
데이터를 긁어 모은 다음 버퍼에 저장하는 과정을 거치게 되는데, 이 때 버퍼에 담겨 있는 ‘긁어 모은 데이터’를 다른 악성 프로세스가 훔쳐 볼 수 있습니다.
이것이 바로 다운폴 취약점입니다.

아주 간단히 요약 했지만, 실제로는 공격자가 CPU 마이크로 코드를 다룰 수 있어야 하고, 공격 대상 PC의 작동 패턴을 파악하여 악성 앱을 상주(컴퓨터 끄면 메모리는 날아가니까요) 시켜야 하는 등의 다소 복잡한 전제 조건이 필요합니다.
때문에 가벼운 웹서핑이나 동영상 보는 정도의 개인용 PC라면 크게 걱정 할 필요는 없겠습니다.
다만… 이게 개인들은 별 걱정 안 해도 된다는 정도에서 그치면 이렇게 따로 글을 쓰지 않았겠지요…?


인텔의 서버 시장 점유율: 70%

다운폴은 6세대에서 11세대 까지의 인텔 CPU에 영향을 미칩니다.
전 세계에 여기 해당하는 인텔 CPU가 얼마나 많을까요.
아마 인텔조차도 잘 모를겁니다.
2010년대 중반 한동안 AMD가 전혀 힘을 쓰지 못했기 때문에, 당시 PC들은 대부분이 인텔 CPU입니다.
개인용 뿐 아니라 서버용도 마찬가지로, 최근 AMD가 선전하고 있기는 하지만 여전히 70% 가량의 서버들이 인텔 제품을 쓰는 것으로 추산됩니다.
…라는 것은 서버용 PC들도 다운폴의 영향을 받으니…

취약점에 대한 방비가 없는 서버로 보내진 내 정보가 탈취 당할 수 있다는 것.

특히 한국은 허구헌날 북한에게 털렸다는 뉴스가 나올 정도로 보안에 대한 투자나 인식이 빈약합니다.
개인용 PC가 안전하다한들, 그 개인용 PC들의 정보가 모여있는 서버가 털린다면…?


기다려서 12세대를 사는 게 아니라 11세대 CPU를 구입한 여러 이유 중의 하나가 CPU 구조였습니다.
12세대부터는 빅.리틀 구조(인텔 공식은 ‘하이브리드 테크놀로지’, 빅.리틀은 ARM에서 들고 나온 말. 셀로판 테이프가 아니라 스카치 테이프라고 하는 것 마냥, 요즘은 다들 빅리틀이라고 합니다)라는 스마트폰 등의 모바일 기기에서나 볼 수 있던 신기술(이라고 하기에는 애매한…🙄🤔)이 데스크탑 CPU에도 도입 됩니다.
강력한 성능의 P(Performance)코어와, 성능은 떨어지지만 전력 소비가 적은 E(Efficient)코어를 합쳐 만든 것입니다.
그런데 윈도우 10은 이 빅리틀 구조를 지원하지 않습니다.
윈도우 11부터 지원하는데, 윈 11이 여러가지 문제가 많아(예를 들자면 마우스 클릭에 대한 반응 같은 latency가 윈 10에 비해 수십ms 이상 느립니다) 윈 10을 유지하기 위해 11세대에 머물렀던 것입니다.
성능을 위해 모험을 하기보다는 비용과 안정성.
이 같은 선택을 하는 사람은 꽤 많습니다.
특히 서버쪽이라면 더욱 그렇죠.
그런데… 안전하자고 한 선택인데 보안 취약점에 노출되게 생겼으니 환장 할 노릇입니다.


AVX-512

위 설명대로 이번 보안 취약점은 AVX-512 명령어 세트(이하 512)가 원인입니다.
그런데 512 이게 또 여러 이슈가 엮여 있어서 나름 복잡합니다.
글이 더 길어지면 곤란하니 [다른 글에서 다시 이야기] 하기로 하고, 이번 글에서는 큰 그림만 살펴보겠습니다.

AMD는 최근 내놓은 Zen 4 이전까지 512를 지원하지 않았고, 인텔은 11세대까지 지원 했었습니다.
상대편이 없는 걸 가지고 있으니, 당연히 자랑을 해야죠.
인텔은 512가 들어있는 자기들 CPU가 (AMD에 비해) 우수하다고 주장했습니다.
물론 장사꾼이 하는 말 다 믿으면 안 되는 거 아시죠?
512가 작동하면 CPU 클럭이 떨어지면서, 512 아닌 다른 작업에도 영향을 미칩니다.
전체적인 성능 저하를 가져올 수도 있다는 말입니다.
12, 13세대 인텔 CPU는 이번 다운폴 취약점에서 안전합니다.
그게 웃기는 것이, 잘 만들어서 안전한 것이 아니라 512를 빼버렸기 때문에 안전 할 수 있었습니다.

만약 인텔의 과거 주장처럼 512가 들어있어서 더욱 우수하다면, 12세대 이후 로드맵에서도 512 유지 해야죠.
하지만 그렇지 않았습니다.
512가 시스템 성능을 떨어뜨릴 수 있다는 점을 인텔도 간접적으로 인정 했다고 볼 수 있는 부분입니다.
재미있는 것은… 인텔이 512를 뺀 다음 나온 AMD Zen 4가 되려 512를 도입 했다는 겁니다.

512가 없는 CPU에서 안전하다는 말은, 11세대 이전 CPU에서도 512를 막으면 해결되지 않을까요?
인텔이 실제 그 방향으로 작업하고 있다합니다.
다만 그런 쉬운 방법으로 해결 될 수 있었다면 작년 8월 발견된 취약점에 대한 발표를 1년 동안 미룰 이유가 없었겠죠.
CPU 설계 구조적 문제라 그렇게 단순하게 해결 될 문제는 또 아니라합니다.


영향과 전망

개인이 신경 써야 할 것은 사실 없습니다.
인텔이 마이크로 코드 업데이트를 예고하고 있으므로 윈도우 업데이트 잘 실행하는(윈도우 11부터는 강제라서 막을 수도 없습니다) 것으로 충분합니다.
나중에 제조사 별로 BIOS 업데이트가 진행 될 것으로 보입니다.
이것도 하면 좋겠지만… 개인이 쓰는 PC에 악성 코드 박아 뽑아먹어야 할 정도의 값어치 있는 데이터가 있을리는 없겠고, BIOS 업데이트 하다가 잘못되면 더 큰 시간과 비용이 소요 될 것이므로 잘 모르면 차라리 건드리지 않는 것이 최선입니다.
인트라넷으로 분리되어 있는 곳이라면 평소처럼 외부로 나가는 패킷만 잘 관리해도 아무 문제 없으리라 생각합니다.

문제가 큰 곳은 중소 기업과 군소 연구소 등지의 서버들입니다.
보안 취약점이 무엇인지도 모르는 수준의 “관리자”를 두고 있는 업체/공기업들이 수두룩하고, 보안 패치 후 성능 떨어진다고 취약점을 방치하는 결정을 내리는 곳도 많을 겁니다.
하지만 발견자 말마따나 그건 “a bad idea“입니다.

대기업이야 서버 관리자들이 개같이 열심히 일해서 바로잡겠지만, 큰 회사들에게는 성능 저하가 문제 될 것입니다.
이번 보안 취약점이 발견자의 의견으로는 “💀💀💀50% 이상의 오버헤드 증가💀💀💀”를 가져 올 수 있다고 합니다.
멜트다운/스펙터 당시 처럼 보안 패치 이후 서버 성능이 크게 떨어질 것이 불보듯 뻔합니다.
현재와 같은 처리량을 유지하려면 서버 증설이 불가피하다는 뜻.
서버 증설은 비용 상승을 가져오며, 우리 소비자가 인터넷 서비스 등에 지불하는 요금이 오를 수 있습니다.
넷플릭스나 디즈니+, 유튜브 프리미엄 등등등… 앞으로의 서비스 이용료 인상 압력으로 작용 할 것은 분명합니다.
11세대 CPU는 그렇게 오래된 제품도 아니라서, 앞으로 몇 년을 더 안고 가야 합니다.
…그리고 보안 취약점이 과연 이것 뿐일까요?
앞으로 더 나왔으면 나왔지 덜하진 않을 겁니다.


가끔 보면 최적화 최적화 거리는 최적화무새들이 종종 있죠.
최적화라는 말의 정의를 어떻게 내리는가에 따라 다르겠지만, 일반 소비자들이 생각하는 “최적화” 과정 같은 건 존재하지 않습니다.
현대의 컴퓨터 엔지니어링에서는, 앱(상품)이 일단 돌아가기만 하면 시장에 내놓습니다.
자본주의 사회에서는… 만드는 데에 시간과 돈이 얼마나 들 지 알 수 없는 완벽하고 또 완벽한 하나의 앱보다, 덜그럭거리지만 일단 돌아가는 앱 10개를 재빠르게 만들어 파는 것이 이득이기 때문입니다.
QA나 필드 테스트도 건너뛰곤 하는데 무슨 “최적화” 같은 게 있을까요.

1ms와 10ms는 10배 차이지만, 10ms도 여전히 빠른 속도입니다.
latency를 10ms에서 5ms, 3ms, 1ms로 단축하기 위해 비용과 시간을 들여 “최적화”를 하는 것은 취미면 모를까…
프로젝트 리더가 방망이 깎는 노인 같은 짓을 하는 직원을 발견 했다면 당장 해고 할 겁니다.
작동만 하면 그걸로 충분합니다.
10ms가 쌓이고 쌓여서 UX와 퍼포먼스를 깎아먹겠지만, 새로운 앱으로 대체 하면 그만입니다.
개인용 컴퓨터 RAM에 ECC가 없는 채로 팔리고 있는 것과 마찬가지입니다.
원래는 있어야 마땅 하지만, 뭐 딱히 없어도 돌아는 가고, 문제가 생기더라도 무시하는 것이죠.

CPU 역시 같은 원리가 작동합니다.
소비자들은 늘 더 나은 제품을 원하며 그 안에서 데이터가 어떻게 돌아가는지에 대해서는 관심이 없습니다.
3Ghz! 4Ghz! 5Ghz!!
4C8T! 6C12T! 8C16T!!
더 빠르고 더 많은 코어를 가졌다면 더 좋은 제품인거죠.
레지스터 구획을 엄밀히 나누고 메모리에 대한 접근을 빡빡하게 제한하며 에러 검출 후 제어하는 기능은 소비자들이 원하지도 않을 뿐더러 너무 비쌉니다.
데이터를 대충 긁어모아다가 합쳐서 잘라낸 다음 분산 처리시키고, 버퍼에 떠다니는 메모리 내용물은 아무나 볼 수 있지만, 속도는 훨씬 빠르고 무엇보다도 저렴하니 일단 팔아먹어야겠죠.
소비자들도 사장님도 WIN🤑WIN?

말인즉슨, 하트블리드, 멜트다운, 스펙터, 다운폴 같은 보안 취약점은 시기만이 문제였지 필연적 결과라는 것.
현재 업계가 돌아가는 방식을 보면 앞으로 비슷한 일은 계속해서 벌어질 것입니다.
사실 지금 이 순간에도 우리가 아직 발견하지 못한 어떤 취약점을, 어떤 질 나쁜 사람들이 써먹고 있을지도 모릅니다…

근본적 원인이라 할 수 있는, 돈이 우선인 자본주의 사회 자체를 바꾸는 건 어렵습니다.
보안과 안전에 대해 개개인이 더욱 신경을 쓰고, 새로운 제품에 대한 열망을 조금씩만 자제하면서, 제조사에는 신중한 설계를 요구한다면 언젠가는 CVE 목록이 필요없어질 날이 올지도요.
(…올까요?🤔)


Leave a Reply

Your email address will not be published. Required fields are marked *