Run the Meltdown, Meltdown 구현코드 돌려보기

Yu-gyoung
4 min readJun 29, 2020

아래의 내용은, Meltdown을 실습할 수 있는 아래의 git-hub 코드를 돌려보고직접 정리한 [Meltdown 분석 보고서]가 출처임을 밝힙니다.

[Meltdown Proof-of-Concept] Git-hub link: https://github.com/IAIK/meltdown

위의 표 내용의 Reference는 다음과 같습니다.

“CPU 취약점 Meltdown과 Spectre의 이해”, medium-Junghyun, 2018년 1월 28일 게시, 2020년 6월 26일 접속, https://medium.com/@kjhcloud/%EC%9D%B8%ED%85%94-cpu-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-9ddab8d502b7.

2) libkdump

(2) Experiment

reliability.c 파일을 확인해 보면, random하게 unsigned char type의 값을 secrete의 변수명의 값으로 매번 생성한다(terminal에서 명령어를 강제종료 시키지 않는 한 계속 돌아감). 그 값을 아래의 코드를 돌리면서 Success rate를 확인한다.

Secrete value를 추출한 최종 코드 결과는 아래와 같다.

Experiment 1
Experiment 2
Experiment 3

Experiment 3을 보면, Secret 의 string 값이 "Wow, you broke the security boundary between user space and kernel”이고 이 secret의 물리주소를 physical_reader로 읽으면 해당 값을 cache side-channel attack 으로 알아낸 것을 확인할 수 있다.

이는 성공적인 결과물로, cache side-channel attack의 특성 상 해당 값을 읽어오는 것을 실패할 수도 있다.

아래는 실패의 결과물이다.

Fail to read the secret value.

--

--