Intel CPU 보안 홀 패치로 인해 성능 손실을 회복하기 위해 페이지 테이블 격리를 비활성화하는 방법은 무엇입니까?


43

현재 인텔 CPU 보안 허점 문제로 인해 시스템 성능이 저하되는 패치가 예상됩니다.

이 패치가 Ubuntu 시스템에 설치되지 않도록하려면 어떻게해야합니까?


49
다양한 다른 보안 메커니즘을 비활성화하여 시스템 성능을 더욱 향상시킬 수 있습니다. 아니요, 권장 사항이 아닙니다.
scai

11
성능이 중요한 경우 최신 커널 릴리스 후보를 직접 작성하고 워크로드에서 성능 손실을 테스트하는 것이 좋습니다. 오버 헤드가 무시할 만하거나 견딜 수 있음을 알 수 있습니다.
Jeffrey Bosboom

5
나는 이것이 얼마나 끔찍한 아이디어인지 과장 할 수 없다.
Alexander

13
나는 반대 할 것이다. 개인적으로 보안 기능을 비활성화하는 것은 좋지 않지만, 성능 저하를 발견 한 사용자의 경우 pti 비활성화는이 특정 보안 허점과 대상 컴퓨터 / 데이터의 가치에 대한 공격을 활용하는 것이 얼마나 어려운지를 고려할 때 합리적인 옵션 일 수 있습니다. 문제는이 옵션을 비활성화하지 않아야하는 방법입니다.
Panther

2
PTI는 무시할 수없는 비용을 초래할 수있는 보안 기능입니다. 이 질문의 범위를 벗어나는 것이 적합한 지 결정하는 것은 OP에 달려 있습니다.
Jake

답변:


55

패치 (일명 "페이지 테이블 격리")는 일반적인 커널 업데이트의 일부입니다 (시스템을 업데이트 할 때 나타납니다). 그러나 다른 많은 보안 픽스도 제공하므로 커널을 최신 상태로 유지하는 것이 좋습니다. 따라서 수정없이 오래된 커널을 사용하는 것은 좋지 않습니다 .

그러나, 당신은 효과적으로 추가하여 패치를 비활성화 할 수 있습니다 pti=off( 추가 정보를 원하시면이 옵션을 추가 커널 패치를 커널 명령 행 (을) HOWTO ). 이렇게하면 시스템의 보안 수준이 떨어집니다.

PostgreSQL 메일 링리스트 에 PTI를 활성화 및 비활성화 한 정보 및 성능 테스트가 더 있습니다. TLDR은 성능에 10 ~ 30 %의 영향을 미친다는 것입니다 (ProstgreSQL의 경우 게임과 같은 다른 영향은 거의 영향을받지 않음) .

AMD 는 영향을받지 않기 때문에 ( reddit ) 인텔 프로세서에만 영향을 미치므로 AMD 에서는 기본적으로 비활성화되어있을 것입니다.


2
"... 이것은 AMD에서 기본적으로 비활성화 될 것입니다." 이는 Canonical에서 제공하는 AMD CPU가 장착 된 시스템에서 실행중인 Ubuntu 운영 체제에 대한 추가 커널 버전이 있음을 의미합니까? :)
cl-netbox

16
아니요, 커널은 AMD CPU에서 실행중인 날씨를 감지 (부팅시)하고 수정 된 경우 비활성화합니다. @ cl-netbox
JonasCz-복원 모니카

1
register.co.uk/2018/01/04/intel_amd_arm_cpu_vulnerability 에 따르면 AMD 칩은 적어도 하나의 다양한 스펙터 공격 (분기 대상 주입)의 영향 을 받으 므로 이번 주에 성능에 영향을 줄 수있는 커널 업데이트가 제공 될 것입니다. Meltdown이 적용되지 않더라도 마찬가지입니다.
Dave Sherohman

1
분명히이 기능은 x64 아키텍처에 있지만 i386 / IA-32에는 없습니다.이 때문에 패치는 32 비트 Linux에도 영향을 미치지 않습니다 (security / Kconfig는 X86_64를 사용하여 PAGE_TABLE_ISOLATION을 활성화해야 함). 그래도 다른 질문이 생깁니다. 32 비트 리눅스가 설치된 x64 시스템은 어떤 영향을받을 수 있습니까? 그렇다면 32 비트 명령어 만 실행하도록 바이오스에 의해 제한되는 구형 x64 시스템은 어떻습니까 (오래된 원자 기반 넷북과 같은)? 그들은 오리를 앉아 있습니까?
thePiGrepper

2
내가 확실하게 알기 전까지는 이것을 사용하려고 계획 한 JavaScript 기반 공격이있었습니다.
Joshua

35

업데이트 : 이 문제에는 Meltdown 및 Specter 한 쌍의 모니 커가 제공되었습니다 . 새로운 정보로 답변을 업데이트했습니다.

처음에는 커널 패치입니다. 더 높은 버전으로 표시됩니다. 설치했기 때문에 linux-image-generic설치됩니다. 그것이 그 패키지의 목적입니다. 그래서 당신은 제거 할 수 linux-image-generic있습니다. 그것은 끔찍하고 비참한 생각입니다. 모든 종류의 미숙함에 노출 되지만 그렇게 할 수 는 있습니다. CPU 내 수정 을 위해 따르는 CPU 마이크로 코드 가 있을 수도 있습니다 linux-firmware. 그것은 실제로 인텔에 있습니다.

이 문제를 해결하기 위해 따르는 방법은 관련이 없습니다. 버그의 실제 영향이나 버그 수정의 성능 비용을 알지 못하는 것을 우회하도록 요청하고 있습니다.

  • 버그가 심하다. 보고 된 CVE는 프로세스 간 메모리 읽기입니다. 모든 프로세스는 다른 프로세스의 메모리를 읽을 수 있습니다. 입력, 비밀번호, 전체 로트. 이것은 샌드 박스에도 영향을 줄 수 있습니다. 매우 초기의 일이며 사람들이 영향력과 접근성 모두에서이를 더욱 발전시킬 것으로 기대합니다.

  • 성능 저하는 걱정만큼 크지 않을 것입니다. 사람들이 이론적 서브 시스템 성능 또는 최악의 경우에 집중하고있는 숫자. 캐시가 잘못 된 데이터베이스는 가장 큰 타격을받을 것입니다. 게임과 일상적인 것들이 눈에 띄게 변하지 않을 것입니다.

지금도 실제 버그가 무엇인지 알 수 있지만, 그 영향이 무엇인지 말하기에는 너무 이릅니다. RAM에 대한 무료 읽기 액세스는 좋지 않지만 더 나쁜 점이 있습니다. 또한 수정 사항이 실제로 귀하에게 미치는 영향을 확인합니다.

플래그로 GRUB 설정을 미리로드하거나 아직 커널 메타 패키지를 제거하지 마십시오.


7
pti=off패치를 비활성화하려면 커널 명령 줄 (GRUB)에 추가 하기 만하면됩니다.
JonasCz-복원 모니카

3
@JonasCz는 그 의견-사실이라면 모르겠습니다-특히 참조로 백업 할 수 있다면 별도의 답변이 가치가있는 것처럼 들립니다.
바이트 사령관

IMHO nopti가 더 나은 선택입니다
Panther

3
@Oli 나는 그 충고에 동의하고 다른 곳에서 그런 조언을했다. 따라서 원하는 경우이 새로운 보안 기능을 비활성화하는 방법에 대한 의문이 있으며, IMO에서는 nopti가 옵션입니다.
Panther

1
예, 가상 머신을 사용할 때 일부 시스템 활동이 99 % 느려졌습니다. 2-3 초가 걸리던 호스트에서 가상 머신으로 파일을 복사하는 데 1 분이 걸렸습니다.
rboy

14

권장하지는 않지만 PTI를 비활성화 할 수 있습니다.

nopti 커널 명령 줄 매개 변수

Phoronix 에 따르면 .

이, APPEND을 수행하려면 nopti다음 행으로 문자열에 그와 시작 GRUB_CMDLINE_LINUX_DEFAULT/etc/default/grub다음 실행

sudo update-grub

다시 시작합니다.

성능 관련 보안 기능을 비활성화하기위한 커널 부팅 매개 변수에 대한 자세한 내용 은 Ubuntu Wiki의 Spectre & Meltdown 완화 제어를 참조하십시오.


1
커널 부팅 매개 변수 noptipti = off 의 차이점은 무엇입니까 ?
niutech

@niutech 차이점은 없습니다. 여기서
nixpower



3

가장 간단한 방법 : 커널 구성에서 확인 해제

-> 보안 옵션

[] 사용자 모드에서 커널 매핑 제거

그런 다음 새 커널을 컴파일하십시오.


1
Ask Ubuntu에 오신 것을 환영합니다! 현재 형태로는 귀하의 답변이 가능한 한 좋지 않습니다. 좋은 답변을 작성하는 방법질문과 답변에 대한 스타일 가이드를 검토 할 수 있습니까 ? - 검토에서
J. Starnes

2
슬프게도 J. Starnes가 옳습니다. 극단적 인 최후의 수단을 제외하고는 더 이상 자신의 커널을 컴파일하지 마십시오.
Joshua

이는 커널 옵션에있어 사소한 변경이지만, IMO nopti는 아마도 더 좋고 더 쉬운 선택 일 것입니다.
Panther
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.