11: 하드웨어 보안

컴퓨터의 구조

  1. 응용 프로그램(User Space)
    • 모든 프로그램의 실행 환경
    • 일반 사용자와 관리자로 권한 구분(Ring 3)
    • 백신, 실행파일 무결성 검증 필요
  2. 커널(Kernel Space)
    • 운영체제 핵심 역할 및 시스템 서비스 제공
    • 과거 소프트웨어 플랫폼의 최고 권한(Ring 0)
    • a.k.a VMM(Virtual Machine Monitor)
    • 커널 및 드라이버 무결성 검증(신뢰 기반) 필요
  3. 하이퍼바이저
    • 가상 머신 생성, 관리, 운영 서비스 제공
    • 현재 소프트웨어 플랫폼의 최고 권한(Ring -1)
      • 커널보다 권한이 높아 커널 무결성 검증 가능
    • 하이퍼바이저 무결성 검증 필요
  4. 펌웨어
    • 단말 하드웨어 초기화 및 단말 부팅 담당
    • 하드웨어 내부의 소프트웨어
    • 펌웨어 무결성 검증(신뢰 기반) 필요
  5. 하드웨어
    • 단말의 물리적 구성 담당
      • CPU, RAM, mainboard, HDD/SSD, TPM
    • 광학 조사 및 x-ray 투과 등으로 변조 흔적 탐지

1-3: 소프트웨어 플랫폼 4-5: 하드웨어 플랫폼

신뢰 체인

선 검증, 후 실행

  1. 하드웨어에서부터 User space로 이르기까지 먼저 무결성을 검증하고
  2. User space에서 헤드웨어에 이르기까지 실행한다

이러한 방법으로 신뢰 체인(trust chain)을 형성한다.

무결성(integrity) 검증 기법

Inget Boot Guard

UEFI SecureBoot

Microsoft HVCI

Syscall vs Hypercall

코드 서명의 장단점

TPM

RTM (Root of Trust for Measurement)

State-Of-The-Art Boot Process

전원이 켜지면

  1. CPU는 BIOS의 코드서명 검사
  2. BIOS/UEFI는 BIOS/UEFI, 부트로더의 해쉬를 TPM에 저장
  3. BIOS/UEFI는 부트로더의 코드서명 검사
  4. Bootloader는 커널의 해쉬를 TPM에 저장
  5. 부트로더는 커널의 코드서명 검사
  6. Remote Attestation Server는 TPM에게 요청하여 무결성이 유지되었는지 검사

OS에 따른 최신 보안기술

응용프로그램: CFI(Control-Flow Integrity) 커널: 응용프로그램 서명 검증, CFI(Control-Flow Integrity) Hypervisor: VBS(Virtualization-Based Security) (ms-windows-only)

경량 가상화 기반 운영체제 보호 기술

Kernel mode heap 할당

Kernel모드에서는 메모리가 할당될때 페이지 단위로 할당된다

special cache가 있는 이유는 권한 관련된 오브젝트들이 오버플로우가 나면 권한상승이 되기 때문에, 이러한 취약점을 방지하기 위해 따로 일반 캐쉬로 페이지를 저장한다.

freelist 참조 freelist에 유휴 공간 없다면 page의 공간을 freelist로 이동 page에 유휴 공간 없다면 partial page의 공간을 freelist로 이동

Scheduler

FCFS: First Come First Serve SJF: Shortest Job First - Starvation Effect Priority: - Every process has a priority - Aging: The longer process is pending, the higher priority

Scheduler Option