커널 4.14.14가 설치된 Linux 시스템에서 Spectre retpoline 기능이 활성화되었는지 확인하는 방법은 무엇입니까?

커널 4.14.14가 설치된 Linux 시스템에서 Spectre retpoline 기능이 활성화되었는지 확인하는 방법은 무엇입니까?

최신 안정 커널 4.14.14를 설치했습니다.엘레포Spectre 취약점에 대한 몇 가지 수정 사항이 있는 것으로 보입니다.

이것변경 로그CONFIG_RETPOLINE파일에 /boot/config-4.14.14-1.el7.elrepo.x86_64Spectre 완화를 활성화하는 내용이 있다고 말하는 것이 제 경우에는 사실인 것 같습니다.

하지만 내가 이것을 실행할 때스크립트모든 문제가 해결되었는지 확인한 결과 4.14.13 커널과 4.14.14 커널의 출력 간에 큰 차이가 보이지 않습니다. 이 리트폴린 기능이 실제로 활성화되어 있나요? 그렇다면 어떻게 확인하나요?

4.14.13 출력 여기에 이미지 설명을 입력하세요.

4.14.14 출력 여기에 이미지 설명을 입력하세요.

또한 4.14.14 및 향후 기능 커널에서 사용할 수 있는 Spectre 변종 보호에 대한 정보에도 관심이 있습니다.

답변1

현재 바닐라(또는 ElRepo) 커널로 할 수 있는 거의 모든 작업을 수행한 것 같습니다.

릴리스 커널은 명목상 이전 버전일 수 있지만 아직 기본 커널에 포함되지 않은 패치인 더 많은 보안 패치를 포함할 가능성이 높습니다. 특히 기업 배포판에서는 현재 CPU 제조업체의 내부 정보와 자체 개발 리소스를 활용하여 수정 사항을 작업 순서대로 적용하고 출시하기 위해 노력하고 있습니다. 이 경우 최신 기본 커널이 반드시 최선의 선택은 아닙니다.

4.14.13 커널의 스크립트 출력에 따르면 프로세서는 마이크로코드 업데이트로 이점을 얻을 수 있습니다. 업데이트된 마이크로코드는 Spectre 변종 2를 완화하는 방법인 IBRS를 활성화합니다. IBRS를 실제로 사용하려면 추가 커널 패치가 필요합니다. 이 패치는 현재 검토 중이며 4.15 커널에 포함될 수도 있고 포함되지 않을 수도 있습니다(그리고 잠재적으로 이전 커널 버전으로 백포트될 수도 있음).

4.14.14에서 커널은 CONFIG_RETPOLINEIBRS 유무에 관계없이 Spectre 변종 2를 완화할 수 있는 옵션을 제공하지만 현재 버전을 사용합니다.번역가버전은 아직 리트폴린의 전체 효과를 실현하지 못했습니다. 그러나 현재의 리트폴린 상태는 여전히 취약하지만 없는 것보다는 낫습니다.

Spectre 변형 1에 대한 완화에는 컴파일러 수정도 필요합니다.

따라서 이제 여러분(또는 ElRepo)이 더 많은 LFENCE 명령어와 더 엄격한 리트폴린 구현을 사용하여 커널을 컴파일할 수 있게 해주는 C 컴파일러 업데이트를 주로 기다리고 있습니다. 두 번째 변종을 완전히 재배치하면 일부 CPU 성능이 소모될 수 있지만 이는 두 Spectre 변종의 영향을 완화합니다.

둘째, IBRS를 활성화하기 위한 CPU용 (버그 없는) 마이크로코드 업데이트와 이를 실제로 사용할 수 있는 커널 업데이트를 기다리고 있습니다. 이는 BIOS/펌웨어 업데이트와 함께 제공되거나 Linux가 부팅 시 업데이트된 마이크로코드를 설치하도록 할 수 있습니다.

고쳐 쓰다: 데비안은 완전한 리트폴린 기능을 통합하는 업데이트된 컴파일러 패키지를 제공합니다. Debian 8(jessie)의 경우 gcc-4.9리트폴린 백포트가 포함된 버전이 2018년 2월 17일에 출시되었습니다. Debian 9(stretch)의 경우 gcc-6리트폴린 백포트가 포함된 버전이 2018년 2월 22일에 출시되었습니다.

array_index_mask_nospec또한 2018년 2월 22일에 Debian은 Spectre 변종 2에 대한 전체 리트폴린 완화와 Spectre 변종 1에 대한 완화가 포함된 Debian 9용 커널 업데이트를 출시했습니다 . 결과적으로 이제 BIOS/마이크로코드 업데이트 없이 Debian 9에서 Spectre 완화 전체 세트를 사용할 수 있습니다.

일부 테스트에서는 이 리트폴린 완화가 실제로 Intel에서 제공하는 마이크로코드 기반 완화보다 성능에 훨씬 작은 영향을 미치는 것으로 나타났습니다.

따라서 필요한 컴파일러 기능의 백포팅이 진행 중입니다. 불행하게도 RHEL/CentOS 7의 표준 컴파일러 버전은 다음과 같습니다 gcc-4.8.5. 백포트 패치가 도움이 될 수 있지만 필요한 컴파일러 기능을 .gcc-4.9gcc-4.8.5

2018년 2월 20일 인텔이 출시했습니다.다양한 프로세서 모델에 대한 마이크로코드 업데이트에 대한 권장 사항 집합. 또한 1월에 출시된 이후 버그가 있는 것으로 밝혀진 마이크로코드 버전을 나열하고 그에 따라 해당 특정 마이크로코드 버전의 배포를 권장합니다.멈춰야 해.

관련 정보