Linux 커널에서 "Retpoline"이 활성화되어 있는지 확인하는 방법은 무엇입니까?

Linux 커널에서 "Retpoline"이 활성화되어 있는지 확인하는 방법은 무엇입니까?

'Spectre' 보안 취약점에 대응하여 위험 완화 솔루션으로 'Retpoline'이 출시되었습니다. 그런데 다음과 같은 기사를 읽었습니다.

retpoline 없이 커널을 빌드하는 경우 CONFIG_RETPOLINE리트폴린을 사용하여 모듈을 빌드한 다음 로드할 것으로 기대할 수 없습니다. 썽크 기호가 내보내지지 않기 때문입니다.

리트폴린을 사용하여 커널을 빌드하면할 수 있는리트폴린으로 구축되지 않은 모듈을 성공적으로 로드합니다. (원천)

커널에 "Retpoline"이 활성화되어 있는지 확인하는 간단하고 일반/범용/통합된 방법이 있습니까? 내 설치 프로그램이 설치할 커널 모듈의 올바른 버전을 사용할 수 있도록 이 작업을 수행하고 싶습니다.

답변1

메인라인 커널이나 대부분의 주요 배포판의 커널을 사용하는 경우 전체 리트폴린 지원을 확인하는 가장 좋은 방법은 (커널은 CONFIG_RETPOLINE다음과 같은 목적으로 리트폴린을 지원하는 컴파일러로 구성 및 구축되었습니다 /sys/devices/system/cpu/vulnerabilities/spectre_v2.

$ cat /sys/devices/system/cpu/vulnerabilities/spectre_v2
Mitigation: Full generic retpoline, IBPB, IBRS_FW

systree 파일 없이 커널에서 리트폴린을 감지하기 위한 보다 포괄적인 테스트를 원하는 경우 spectre_v2방법을 확인하세요.spectre-meltdown-checker사물에 대해 이야기하십시오.

답변2

이 특별한 경우에는 리트폴린 지원에도 새로운 컴파일러 버전이 필요하기 때문에 Stephen Kitt의 답변이 더 포괄적입니다.

그러나 일반적으로 대부분의 배포판은 다음 위치 중 하나에 커널 구성 파일을 제공합니다.

  • /boot/config-4.xx.xx-...
  • /proc/config.gz

그렇다면 간단하게 할 수 있습니다zgrep CONFIG_RETPOLINE /boot/config* /proc/config.gz

관련 정보