CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·아이포니앙 ·주식한당 ·MaClien ·방탄소년당 ·일본산당 ·개발한당 ·자전거당 ·소시당 ·이륜차당 ·AI당 ·골프당 ·안드로메당 ·소셜게임한당 ·콘솔한당 ·걸그룹당 ·나스당 ·키보드당 ·곰돌이당 ·퐁당퐁당 ·가상화폐당 ·바다건너당 ·리눅서당 ·노젓는당 ·위스키당 ·갖고다닌당 ·클다방 ·디아블로당 ·라즈베리파이당 ·찰칵찍당 ·육아당 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·날아간당 ·사과시계당 ·배드민턴당 ·야구당 ·농구당 ·블랙베리당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·이브한당 ·패셔니앙 ·물고기당 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·IoT당 ·KARA당 ·꼬들한당 ·덕질한당 ·어학당 ·가죽당 ·레고당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·방송한당 ·PC튜닝한당 ·그림그린당 ·소풍간당 ·심는당 ·패스오브엑자일당 ·품앱이당 ·리듬탄당 ·달린당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·스팀한당 ·파도탄당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·여행을떠난당 ·터치패드당 ·트윗당 ·창업한당 ·VR당 ·시계찬당 ·WebOs당 ·와인마신당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

팁과강좌

PC/모바일 스펙터 멜트다운 공격: 멜트다운 공격 5

4
2018-04-20 18:29:31 수정일 : 2018-04-21 00:41:57 121.♡.194.36
메가맨

제 개인 블로그에 올린 글을 제가 링크를 걸어놓았는데,

아무래도 클리앙에 직접 글을 올리는게 더 좋을 것 같아 핵심글을 여기서 직접 다시 작성했습니다.


스펙터와 멜트다운 공격 2: 스펙터 공격 을 먼저 보시는 것을 권장합니다

http://www.clien.net/service/board/lecture/12021230CLIEN

 

본 글에서는 멜트다운 공격의 핵심원리를 설명합니다.

 

Meltdown

멜트다운 공격의 핵심 코드는 다음과 같습니다.

 


스펙터 공격과 마찬가지로 멜트다운 공격의 핵심 코드는 단 두줄입니다. 코드에 대한 설명은 다음과 같습니다.


멜트다운 공격의 동작을 요약하자면 다음과 같습니다.


A. 프로그램을 실행하면 1번줄의 raise_exception() 함수가 실행된다.


B. raise_exception() 함수는 예외 (exception)을 발생시키기 때문에 1번 함수 실행 후 프로그램은 강제 종료된다. (참고: 컴퓨터에서 예외란 어떤 수를 0으로 나누거나 권한없이 OS 메모리 영역에 접근하는 것 등의 특별한 상황이다.)


C. 3번줄의 명령어는 실행되지 않는다. 그러나 실제로는 CPU의 Out-of-order Execution 때문에 3번 명령어가 1번 명령어 전에 실행될 수 있다.


D. 3번줄의 명령어가 실행되었다면, data 값에 해당하는 probe_array의 메모리 페이지가 캐쉬 메모리에 올라가게 된다. FLUSH+RELOAD 기법을 사용하면 해당 data를 알아낼 수 있다.

 


Out-of-order Execution

멜트다운 공격은 현대 CPU의 Out-of-order (O3) Execution 기법의 허점을 이용합니다. O3 Execution은 거의 대부분의 고성능 CPU들이 채택하고 있는 성능향상 기법입니다. 핵심 원리는 다음과 같습니다.

프로그래머의 논리상 위의 코드에서 프로그램은 위에서 아래로 실행됩니다. 즉 x = 10이 실행된 다음에 z = a가 실행이 되고, 다음에 y = x + z가 실행이 됩니다.


O3 Execution은 명령어의 실행순서가 바뀌어도 원래 프로그램의 결과와 같을 수 있다는 성질을 이용합니다.


예를들어, x = 10 명령어를 실행하는 동안 z = a 명령어를 먼저 실행해도 결과에는 전혀 영향을 주지 않습니다. 그러나 y = x + z명령어를 먼저 실행할 수는 없습니다. 왜냐면 y = x + z 의 결과는 z = a 결과에 따라서 달라지기 때문입니다.


O3 Execution은 프로그램에서 명령어 순서에 상관없이 실행될 수 있는 명령어들을 먼저 실행함으로써 (앞의 명령어들이 수행될 동안) CPU의 성능을 향상 시키는 기법입니다. 

 

FLUSH+RELOAD

Out-of-order Execution 의 허점을 이용하여 캐쉬메모리에 올라간 data의 값은 FLUSH+RELOAD를 통해 알아낼 수 있습니다. (FLUSH+RELOAD는 스펙터 공격에서 설명됩니다. http://www.clien.net/service/board/lecture/12021230CLIEN )

 

멜트다운 공격도 스펙터 공격과 마찬가지로 CPU의 성능향상 기법이 보안위협이 된다는 점에서 상당히 골치아픈 문제로 여겨지고 있습니다.

 

 

– 본 포스트는 https://www.meltdownattack.com 에 있는 논문과 자료들을 토대로 작성되었습니다.


 

출처 : http://csneverdie.net/meltdown_attack/
메가맨 님의 게시글 댓글
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [5]
C-137
IP 112.♡.17.232
04-20 2018-04-20 20:59:29
·
음...그렇군 정확히 제가 예상한 시나리오네요.... 역시 이런식으로 저렇게...이렇게....흠....
(지나가던 35세 무직, 문과)
메가맨
IP 110.♡.27.162
04-20 2018-04-20 21:26:24
·
읽어주셔서 감사합니다. 배경지식 편을 함께 읽어보시면 도움이 될 것 같습니다 :)
베타고
IP 123.♡.168.254
04-20 2018-04-20 23:37:06
·
잘 읽었습니다~ 그런데 스펙터와 멜트다운 둘다 임의의 메모리 값을 알 수 있다면 동일한 정도로 위험한 거 같은데 멜트다운이 더 심각하다고 들은 듯 합니다. 그 이유는 뭘까요?
메가맨
IP 121.♡.194.36
04-21 2018-04-21 00:16:56
·
읽어주셔서 감사합니다. 대체로 멜트다운이 더 심각하다는 평가를 받는 이유는 스펙터 공격은 아직 OS 영역 메모리를 공격할 수 있는지는 검증되지 않았고 멜트다운은 OS영역을 공격할 수 있기 때문입니다. 하지만 스펙터 공격이 막기가 더 어렵기 때문에 둘 다 장단이 있는 것 같습니다.
삭제 되었습니다.
메가맨
IP 121.♡.194.36
04-21 2018-04-21 00:40:28 / 수정일: 2018-04-21 00:42:21
·
커멘트 감사드립니다. 다만 권한 검사를 통해 Load를 못하게 하는 회로를 구현하려면 파이프라인 성능에 영향을 주지 않을까 생각이 듭니다. 말씀하신대로 아마 인텔에서 성능을 조금이라도 더 높이려고 이런식으로 구현했는데 이러한 보안 문제를 예상을 못했을 것 같습니다. 의견 반영해서 단어를 조금 수정하였습니다.
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.