Ubuntu 에서 인텔 CPU 의 하이퍼스레딩 – SMT – 끄기

며칠 전에 ‘좀비로드’ 라는 인텔 CPU 취약점이 기사화되었다. 하이퍼스레딩 -이하 SMT, 인텔에서는 HyperThreading 이라고 하는데 이건 마케팅 용어고, 실제 기술 이름은 Simultaneous Multi-Threading 이다- 의 예측 실행에 관련된 취약점인데, 자세한 메카니즘은 나도 잘 모르겠다. ㅋ
뒤져보니 발표 자체는 2018년 7월 즈음에 이미 되어 있는 상태였다.

몇몇 IT 관련 사이트에서 인텔의 말을 인용해서 8, 9 세대는 다 대비가 되어 있으니 SMT를 끌 필요가 없다는 기사를 냈는데, 정말 그런가 해서, 이런저런 자료를 좀 뒤져봤다.

 

https://software.intel.com/security-software-guidance/insights/deep-dive-cpuid-enumeration-and-architectural-msrs

 

내 CPU 는…

Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz

Extended Family: 0 Extended Model: 8 Family: 6 Model: 142 Stepping: 10

 

인데 저 문서에 따르면 <B 라고 되어 있다. 즉, 스테핑 11 미만은 좀비로드에 영향을 받는다. 씨발, 내거 포함된다. 게다가 문서에 보면 9세대 중 몇몇 모델도 해당된다.

…진짜 기자 나부랭이 하기 정말 쉽다니까… 그냥 주는 기사 실어주기만 하면 되니, 뭐…-_-;

 

여러분! 인텔 CPU 는 안전합니다! 안심하십시오!

 

잘 몰라도 대충 보니 버텨서 될 문제가 아닌 것 같아서, 제대로 된 패치가 나올 때 까지 당분간 SMT 를 끄고 쓰기로 결정했다.

SMT 를 끄는 가장 쉬운 방법은 BIOS 에서 해당하는 옵션을 바꾸는 것인데, 내가 사용하는 Acer 노트북의 BIOS 는 SMT 를 끄는 기능을 제공하지 않았다.

구글 신께 여쭤보니 리눅스 커널에 옵션을 줘서 끄는 방법이 있다고 한다.

 

/etc/default 폴더로 이동해서..

> cd /etc/default

grub 파일을 에디터로 연다

> sudo nano grub

GRUB_CMDLINE_LINUX=”” 이라고 옵션 딱 넣으라고 한 줄 비워 놨다. 여기에 “mitigations=auto,nosmt” 라고 넣어준다.

GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
GRUB_CMDLINE_LINUX=”mitigations=auto,nosmt”

저장하고,  Grub 설정을 Update 한다.

> sudo update-grub

만약 오타가 나거나 하면 에러 메시지 나올테니, 수정해서 다시 해주면 된다.

 

이제 재부팅을 하면 되는데, 한번 정도는 부팅이 이상하게 된다. 다시 부팅해서 CPU 정보를 확인해 보면…

> lscpu

………

CPU(s): 8
On-line CPU(s) list: 0-3
Off-line CPU(s) list: 4-7
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 142
Model name: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
Stepping: 10

……….

 

제대로 smt 가 꺼졌다. 끈 채로 게임 몇 개를 돌려봤는데, 딱히 눈에 띄는 프레임 저하는 없었다. 좀 더 써보면 차이가 느껴질지도 모르겠네.

 


참고 사이트

https://software.intel.com/security-software-guidance/insights/deep-dive-cpuid-enumeration-and-architectural-msrs#MDS-CPUID

https://www.golinuxhub.com/2018/01/how-to-disable-or-enable-hyper.html

https://zombieloadattack.com/zombieload.pdf

https://mdsattacks.com/

 

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

This site uses Akismet to reduce spam. Learn how your comment data is processed.