메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Thwarting Memory Disclosure with Efficient Hypervisor-enforced Intra-domain Isolation

noriwiki


개요

Motivation

Application이 탈취되거나, OS가 해킹당하면 Application의 중요한 Credential정보가 탈취된다. 기존에는 Hypervisor방식, 혹은 Application의 일부분을 분리하는 방식은 제각기 단점이 있다.

Main Idea

Static analysis를 이용해서 Application을 분석하여 Secret을 포함하는 부분과 아닌 부분으로 쪼갠다. 추가로 Static analysis는 In-complete함으로, Dynamic runtime을 통해서 추가적인 exception handling을 처리해준다. SeCage는 Hardware virtualization기법을 이용해서 각각의 Secret compartment을 보호하였다. 또한 Control plane과 Data plane을 분리하여서 빠른 Secret compartment끼리의 IPC가 가능하도록 하였다.

Threat Model

SeCage는 OS + Application이 둘다 탈취되는 경우를 가정하였다.

Design

SeCage는 Application이 사용하는 EPT를 두개로 분리하였다. EPT-N은 Application이 사용하는 Data영역 EPT-S는 Secure domain이 사용하는 EPT라 하자. 이때 SeCage는 EPT-N과 EPT-S사이에 공통의 Data부분을 만들어 그 부분은 공유하도록 하였다. 그러나 Secret을 담고 있는 EPT-S는 분리하여 그 부분은 동시 Mapping하지 않았다. 이를 통해 SeCage의 Application부분이 탈취되더라도, Secure domain은 탈취되지 않는다. 각각의 Compartment의 전환은 VM Function을 이용하여서 효율적으로 이루어지도록 하였댜.

Secret에 있는 Sensitive function을 통해서만 Secret에 접근할 수 있으며, 접근하기 위해서는 Secret에 위치한 Trampoline코드를 거쳐야 한다. 마찬가지로 Secure에서 Non-sensitive영역을 접근하기 위해선 Trampoline코드를 거쳐야 한다. 자세한 매커니즘에 대한 이야기는 논문을 참조.

Conclusion

SeCage는 Intel VT-d기능을 사용하여 효율적인 Protection기능을 제공한 논문이다.