하드웨어 보안
Meltdown에 대한 소프트웨어 대책으로 도입된 KPTI(커널 페이지 테이블 격리, Kernel Page-Table Isolation)의 개념으로 올바른 것은?
- A사용자 프로그램이 동작하는 동안에는 커널 메모리 대부분을 페이지 테이블에서 제외하여 투기적으로도 읽지 못하게 한다
- B커널을 모두 암호화하여 디스크에 둔다
- C사용자 프로그램의 실행을 금지한다
정답과 해설 보기
정답: A. 사용자 프로그램이 동작하는 동안에는 커널 메모리 대부분을 페이지 테이블에서 제외하여 투기적으로도 읽지 못하게 한다
기존 OS는 전환을 빠르게 하려고 사용자 프로세스의 페이지 테이블에도 커널 메모리를 (접근 금지 표시를 붙여) 올려 두었습니다. Meltdown에서는 그 표시를 확인하기 전에 투기적으로 읽을 수 있었기 때문에, KPTI에서는 사용자 프로그램이 동작하는 동안 커널 페이지를 매핑에서 아예 제외했습니다. 주소 변환이 되지 않으면 투기적으로도 읽을 수 없습니다. 다만 시스템 콜 때마다 페이지 테이블을 전환하므로 성능이 떨어집니다.
- A. 올바릅니다. 대신 시스템 콜 등의 전환이 무거워집니다.
- B. 커널을 디스크에 두는 것이 아닙니다.
- C. 프로그램은 평소처럼 동작합니다.