카테고리 없음

TESt2

마준123 2025. 1. 9. 01:14

1. 메모리 시스템 (Memory Systems)

  • 메모리 계층 구조 (Memory Hierarchy): 데이터 지역성(locality)을 이용해 성능 향상.
    • Temporal Locality: 최근 접근한 데이터는 곧 다시 접근.
    • Spatial Locality: 인접 데이터 접근 가능성 높음.
    • 주요 계층: Registers > Cache > Main Memory > Disk.
  • 캐시 성능 지표:
    • Miss Rate = 캐시 미스 비율.
    • AMAT = Hit Time + (Miss Rate × Miss Penalty).
    • Mapping 방식: Direct-mapped, Set-associative, Fully-associative.
  • 가상 메모리 (Virtual Memory):
    • 프로세스 간 메모리 분리 및 보호.
    • TLB (Translation Lookaside Buffer): 가상 주소와 물리 주소 매핑 캐시.

2. 사이드 채널 공격 (Side-Channel Attacks)

  • 사이드 채널: 의도치 않은 데이터 유출 경로.
    • 예: 실행 시간 차이, 전력 소비, 전자파 방출.
  • 공격 유형:
    • Cache Timing Attacks:
      • Prime+Probe, Flush+Reload.
    • Functional Unit Contention: 자원 공유로 인해 발생.
    • Memory Hierarchy: 캐시 히트/미스 기반 공격.
  • 방어 기법:
    • 하드웨어 기반: 캐시 파티셔닝, 랜덤화.
    • 소프트웨어 기반: 플러시 상태, 스케줄링 수정.

3. 스펙터 및 멜트다운 (Spectre & Meltdown)

  • 스펙터 (Spectre):
    • Variant 1: 조건 분기 우회 (Boundary Check Bypass).
    • Variant 2: 분기 타겟 주입 (Branch Target Injection).
    • 공격 원리: 예측 실행(speculative execution)을 통해 민감 정보 유출.
  • 멜트다운 (Meltdown):
    • 커널 메모리 접근 허용 문제.
    • 인텔 CPU에서 사용자-커널 메모리 간 격리 문제 발생.
  • 방어 기법:
    • LFENCE: 예측 실행 차단.
    • KPTI: 커널/사용자 메모리 분리.

4. DRAM 신뢰성 및 RowHammer 공격

  • RowHammer:
    • DRAM 행을 반복적으로 활성화하면 인접 행에 간섭 발생.
    • 보안 문제: 비트 플립으로 페이지 테이블 수정 가능.
  • 방어 기법:
    • Refresh 간격 단축, Naive Counter-based Protection.
    • 확률적 인접 행 활성화.

5. 리눅스 커널 및 하드웨어 취약점

  • 주요 취약점: Spectre, Meltdown, MDS, TAA 등.
  • CPU 취약점 확인:
    • /sys/devices/system/cpu/vulnerabilities 디렉토리 활용.
  • 대응:
    • 소프트웨어 패치: Retpoline, KPTI.
    • 하드웨어 완화: SMT 비활성화, 캐시 플러시.

6. 방어 전략 (Defenses)

  • InvisiSpec: 안전하지 않은 로드 명령을 캐시 계층에 보이지 않게.
  • CleanupSpec: 잘못된 예측 실행으로 인한 캐시 상태를 원래대로 복구.
  • Secure Cache:
    • 파티셔닝: 공격자와 피해자 격리.
    • 랜덤화: 주소 매핑과 타이밍 간의 상관관계 제거.

아래는 예상 문제 30개와 정답입니다.


1. 메모리 시스템

  1. 메모리 계층 구조에서 데이터 지역성(Locality)의 두 가지 유형을 설명하시오.
    • Temporal Locality: 최근 접근한 데이터가 곧 다시 접근될 가능성이 높음.
    • Spatial Locality: 인접한 메모리 주소들이 함께 접근될 가능성이 높음.
  2. AMAT(Average Memory Access Time)의 계산 공식을 쓰고, 각 요소를 설명하시오.
    • 공식: AMAT=Hit Time+(Miss Rate×Miss Penalty)
    • AMAT=Hit Time+(Miss Rate×Miss Penalty)\text{AMAT} = \text{Hit Time} + (\text{Miss Rate} \times \text{Miss Penalty})
    • Hit Time: 캐시에서 데이터를 찾는 데 걸리는 시간.
    • Miss Rate: 캐시에서 데이터를 찾지 못할 확률.
    • Miss Penalty: 캐시 미스 후 데이터를 가져오는 데 걸리는 추가 시간.
  3. 캐시의 매핑 방식(Direct-mapped, Set-associative, Fully-associative)을 비교하시오.
    • Direct-mapped: 한 블록은 특정 캐시 라인에만 매핑 가능. 단순하지만 충돌 빈번.
    • Set-associative: 블록이 특정 세트의 여러 캐시 라인 중 하나에 매핑 가능. 균형적.
    • Fully-associative: 블록이 모든 캐시 라인에 매핑 가능. 복잡하지만 유연.
  4. 캐시 미스의 세 가지 유형(Compulsory, Conflict, Capacity)을 설명하시오.
    • Compulsory Miss: 캐시에 데이터가 처음 로드될 때 발생.
    • Conflict Miss: 두 데이터가 같은 캐시 라인을 공유할 때 발생.
    • Capacity Miss: 캐시 용량이 부족하여 발생.
  5. TLB(Translation Lookaside Buffer)의 역할과 작동 방식을 설명하시오.
    • 역할: 가상 주소를 물리 주소로 매핑하여 메모리 접근 속도를 높임.
    • 작동 방식: 가상 페이지 번호를 기반으로 물리 페이지 번호를 캐싱하고 빠르게 변환.

2. 사이드 채널 공격

  1. 사이드 채널과 코버트 채널(Covert Channel)의 차이를 설명하시오.
    • 사이드 채널: 의도치 않은 정보 누출. 피해자가 정보를 무의식적으로 유출.
    • 코버트 채널: 설계되지 않은 통신 채널. 주로 내부자 간 의도적 통신.
  2. 캐시 타이밍 공격(Cache Timing Attack)의 기본 원리를 설명하시오.
    • 캐시 히트와 미스의 시간 차이를 이용해 민감 데이터를 추측.
  3. Prime+Probe와 Flush+Reload 공격을 비교하시오.
    • Prime+Probe: 공격자가 캐시를 초기화 후 피해자의 접근 패턴을 모니터링.
    • Flush+Reload: 공격자가 특정 데이터 플러시 후 피해자의 재로딩 여부를 확인.
  4. Functional Unit Contention이란 무엇이며, 이를 악용한 공격 사례를 설명하시오.
    • 여러 스레드가 동일한 하드웨어 자원을 공유할 때 성능이 저하되는 현상.
    • 사례: 공격자가 하드웨어 자원 사용 패턴을 모니터링하여 민감 데이터 추출.
  5. 사이드 채널 공격 방어를 위한 하드웨어와 소프트웨어 기반 전략을 각각 서술하시오.
    • 하드웨어: 캐시 파티셔닝, 랜덤화, 노이즈 추가.
    • 소프트웨어: 스케줄링 수정, 민감 데이터 접근 제한.

3. 스펙터(Spectre)와 멜트다운(Meltdown)

  1. 스펙터(Spectre) 공격에서 Variant 1과 Variant 2의 차이를 설명하시오.
    • Variant 1: 경계 검사 우회(Bounds Check Bypass).
    • Variant 2: 분기 타겟 주입(Branch Target Injection).
  2. 멜트다운(Meltdown) 공격의 원리와 보안 취약점을 서술하시오.
    • 원리: 사용자 공간에서 커널 메모리에 접근.
    • 취약점: 잘못된 접근 시 데이터가 캐시에 남음.
  3. Retpoline과 KPTI의 역할과 차이를 설명하시오.
    • Retpoline: 간접 분기 보호를 위한 소프트웨어 패치.
    • KPTI: 사용자와 커널 메모리 공간 분리.
  4. 예측 실행(speculative execution)이란 무엇이며, 왜 취약점으로 이어질 수 있는지 설명하시오.
    • 정의: 분기를 미리 실행하여 성능 향상.
    • 취약점: 잘못된 분기 결과도 캐시에 남음.
  5. 스펙터와 멜트다운이 현대 CPU 설계에 미친 영향을 논하시오.
    • 성능 저하를 감수하고 보안 강화 설계 도입.

4. DRAM 신뢰성 및 RowHammer

  1. RowHammer 공격의 원리를 설명하시오.
    • 특정 행을 반복 활성화하여 인접 행의 데이터 비트가 뒤집힘.
  2. RowHammer 공격이 발생할 수 있는 하드웨어 조건은 무엇인가?
    • DRAM의 낮은 전압 안정성, 높은 밀도.
  3. RowHammer로 인한 비트 플립(Bit Flip)이 보안에 미치는 영향을 서술하시오.
    • 페이지 테이블 수정, 메모리 접근 권한 상승.
  4. DRAM Refresh 간격 단축의 장점과 단점을 설명하시오.
    • 장점: RowHammer 공격 완화.
    • 단점: 전력 소비 증가.
  5. Probabilistic Adjacent Row Activation의 원리와 보안 효과를 설명하시오.
    • 인접 행을 확률적으로 리프레시하여 간섭 감소.

5. 리눅스 커널 및 하드웨어 취약점

  1. 리눅스에서 CPU 취약점을 확인할 수 있는 경로와 명령어를 쓰시오.
    • 경로: /sys/devices/system/cpu/vulnerabilities
    • 명령어: grep . /sys/devices/system/cpu/vulnerabilities/*
  2. iTLB Multihit 공격의 원리와 완화 방법을 설명하시오.
    • 원리: iTLB 항목이 중복되어 CPU 락업 발생.
    • 완화: 모든 iTLB 항목을 4K로 강제 변환.
  3. MDS(Microarchitectural Data Sampling) 공격의 주요 특징과 영향을 설명하시오.
    • 특징: CPU 버퍼에서 데이터 유출.
    • 영향: 민감 데이터 노출.
  4. 리눅스 커널에서 Spectre Variant 2 방어를 위해 사용하는 방법을 서술하시오.
    • Retpoline, IBPB(간접 분기 예측 차단).
  5. TSX Asynchronous Abort(TAA) 공격이란 무엇이며, 영향을 받는 CPU 유형을 서술하시오.
    • 정의: TSX 메모리 트랜잭션 롤백 중 데이터 유출.
    • CPU: TSX 지원 인텔 프로세서.

6. 방어 전략

  1. InvisiSpec의 작동 원리와 주요 장단점을 설명하시오.
    • 원리: 안전하지 않은 로드를 캐시 계층에서 숨김.
    • 장점: 정보 유출 방지.
    • 단점: 성능 저하.
  2. CleanupSpec의 역할과 캐시 상태 복구 과정을 서술하시오.
    • 역할: 잘못된 예측 실행 후 캐시 복구.
    • 복구 과정: L1/L2 캐시 라인 무효화.
  3. Secure Cache의 세 가지 주요 설계 기법(Partitioning, Randomization, Differentiation)을 설명하시오.
    • Partitioning: 캐시 공간 분리.
    • Randomization: 주소 매핑 랜덤화.
    • Differentiation: 민감 데이터 레이블링.
  4. 캐시 파티셔닝(Cache Partitioning)의 정적(static)과 동적(dynamic) 방식의 차이를 비교하시오.
    • 정적: 고정된 파티션.
    • 동적: 필요에 따라 크기 조정.
  5. Scatter Cache의 랜덤화 기법이 공격 방어에 미치는 영향을 설명하시오.
    • 메모리 주소와 캐시 매핑 간의 관계를 분리하여 타이밍 공격 방지.

이 예상 문제와 정답으로 충분히 시험 준비를 할 수 있을 것입니다. 추가 질문이 있으면 알려주세요!

Rcmd

Sdscv