상세 컨텐츠

본문 제목

[정보보안기사 기출풀이] 14회(2019.09) 1과목 시스템 보안 - 2번 3번 CPU취약점 스펙터 멜트다운

[Tech] 국가기술자격증/정보보안기사

by tech-dailylife 2020. 8. 15. 17:35

본문

반응형

- 멜트다운(Meltdown)과 스펙터(Spectre)

2017년 6월 구글 보안분석팀인 "프로젝트 제로"가 발견한 주요 CPU 프로세서 설계 결함/취약점

 

- 멜트다운과 스펙터 공통점

커널 메모리 접근 관련 CPU 취약점

캐시 부채널 공격 유형을 Flush+Reload 기법 사용 (캐시가 응답시간이 더 빠르다는 점을 이용)

커널 메모리 격리로 해결 가능

 

- 멜트다운과 스펙터 비교

 

- 멜트다운 원리

CPU가 처리속도 최적화를 위해 처리하기 어려운 명령어를 캐시 메모리에 저장해두는 과정에서 응용 프로그램이 커널메모리 통해 내부메모리에 접근을 시도할 때, 커널 메모리는 필요한 데이터에 대해 통로 역할 수행

이런 프로세스에서 각 메모리에 대해 권한이 없는 응용 프로그램의 접근이 막혀있어야 하는데 이런 보안 구조가 무너져내리는(Meltdown) 상태

(효율적인 순서로 명령을 처리하는 데, 그 때 발생하는 차이를 악용하는 공격)

raise_exception 함수는 예외가 발생되기 때문에 이론적으로는 access 함수는 실행되지 않는다.

하지만 비순차적 명령 실행에 의해 raise_exception 함수보다 access 함수가 먼저 실행되어 허용되지 않은 메모리 공간에 접근할 수 있다.

 

 

 

 

- 스펙터 원리

분기문 조건의 결과를 CPU가 미리 예측하여 실행하며 캐시 메모리에 이 값이 올라감 (if문의 조건이 참인지 거짓인지 알기 전에 그 안에 내용을 실행 시킬수 없어 다음 명령어를 알수 없음, 그래서 미리 하나의 조건을 지정하여 다음 명령어를 실행하여 CPU 성능을 높이는 "예측 실행"

"예측 실행"을 하고 예측이 틀리면 예측된 명령어는 실행이 취소됨, 그러나 캐시 메모리에는 이미 올라가서 이 데이터가 남아 Flush+Reload 기법을 사용하여 해당 값을 유출

조건이 참인 상황을 여러번 반복하면 예측 실행으로 캐시에 array2[array1[x]*4096] 값을 올리기 때문에 유출할 수 있다.

 

 

- 추가

취약점 조치 위해 패치하면 성능 저하 현상이 나타날 수 있음

 

 

<오답 피하기>

Heartbleed : OpenSSL 취약점으로 HeartBeat 확장모듈에서 Client 요청 데이터 길이 검증 미흡으로 시스템 메모리 정보 누출 취약점 (CVE-2014-0160)
ShellShock : Bash에서 환경변수를 통한 원격 명령 실행 취약점 (CVE-2014-6271)
Speer Phishing : 특정 대상을 정하고 악성 이메일을 전송하여 정보를 빼내는 공격 - APT 일종 (불특정 다수 대상이면 파밍)

반응형

관련글 더보기

댓글 영역