IT/하드웨어 보안 4

[Meltdown and Spectre] 엎질러진 물

💡Meltdown: 비순차실행을 이용해, user application 주제에 kernel 데이터를 읽는 공격  발생 원리✅1: user mode application이 커널 영역의 메모리 주소에 접근 시도 예시 1예시 2ptr: kernel 영역의 주소. ✅2: 비순차실행1.에 의해 아래 과정이 일어나야 한다.i) 가상 주소의 Address translation: 가상 주소인 (kernel)을 물리 주소로 변환ii) PTE 로드: 주소 변환을 위한 Page Table 참조iii) permission check: 해당 물리 주소에 접근 권한이 있는지를 PTE의 권한 정보를 바탕으로 체크    -> 권한이 없네! -> page fault exception 그런데 이것은 시간이 한참 걸리므로,비순차실행에 ..

[Cache Side-channel Attacks] Cache, Flush+Reload, Prime+Probe, Countermeasure

배경지식: Cache Locality: 프로그램이 실행되는 동안 주소 공간의 일부분만을 집중적으로 접근하는 경향▶Temporal locality: 최근에 access된 것은 곧 다시 access될 확률이 높다- 따라서 최근에 접근된 데이터를 프로세서 가까이에 유지하면 성능 향상됨 eg. 반복문 안에서는 동일한 명령어가 반복적으로 실행되기 때문에, 해당 명령어는 다시 접근될 확률이 높다.▶Spatial locality: 최근에 access된 것 가까이에 있는 것은 곧 access될 확률이 높다 메모리의 연속적인 주소 공간이 자주 함께 사용되는 경우가 많기 때문 - 따라서 연속된 데이터 블록을 메모리의 상위 수준으로 옮기면 성능 향상됨eg. 배열은 메모리에 연속적으로 저장되며, 배열의 요소들이 순차적으로 접..