20151029

1. [CCS’14] ATRA: Address Translation Redirection Attack against Hardware-based External Monitors 읽기 (paper)
이 논문에서는 기존의 hardware 기반 kernel integrity monitor를 우회할 수 있는 공격 기법인 Address Translation Redirection Attack(ATRA)를 소개한다. 기존의 HW-based kernel integrity monitor는 대부분 일정 구간의 메모리 변조를 탐지함으로써 방어하는데, ATRA는 공격하고자 하는 커널 오브젝트를 감시받지 않는 영역으로 매핑함으로써 공격을 방어한다. 조금 더 구체적으로는 Memory-bound ATRA와 Register-bound ATRA를 제안한다.
기존에 kernel integrity를 보장하기 위한 기법에는 크게 두 가지가 있다. 하나는 hypervisor-based 기법이고, 다른 하나는 hardware-based 기법이다. Hypervisor-based 기법은 오버헤드가 심하고 자체 취약점이 있다는 문제점이 있다. 따라서 최근에 많이 제안되는 기법은 hardware-based kernel integrity 보장 기법이다. 이들이 효율적이고 효과적이어서 많이 연구되고 있으나, 주소 매핑이 안전하다는 가정에 기반한다는 점이 문제이다. 주소 매핑이 안전하다는 가정은 언제든지 깨질 수 있고, 이를 사용해 공격하는 것이 ATRA이다.
ATRA의 공격 모델에서 공격자는 루트 권한을 가진 상황이라고 가정한다. 공격 대상 시스템은 multi-paging을 사용하는 시스템이며, 해당 시스템의 메모리가 hardware-based kernel integrity module에 의해 보호받는 상황을 가정한다.
이 논문에서는 memory-bound ATRA와 register-bound ATRA를 소개한다. memory-bound ATRA는 메모리 영역(PGD, PTE)을 변조함으로써 ATRA 공격을 하는 것이고, register-bound ATRA는 레지스터(IDTR, CR3)를 변조함으로써 ATRA 공격을 하는 것이다. 실제 공격은 register-bound ATRA와 memory-bound ATRA를 섞어서 수행한다.
memory-bound ATRA는 page-table 관련 자료 구조 중에 무엇을 변조하느냐에 따라 다시 두 가지로 나뉜다. PTE-ATRA는 PTE를 수정해 ATRA 공격을 하는 것이고, PGD-ATRA는 PGD를 수정해 ATRA 공격을 하는 것이다. PTE는 system-wide하게 공유되므로, PTE-ATRA는 system-wide하게 영향을 받고, PGD는 process-specific하므로 process만 영향을 받는다. memory-bound ATRA는 메모리 감시에 의해 탐지된다는 한계점이 있다.
반면에 register-bound ATRA는 레지스터에 변조를 가해 메모리 매핑을 임의 수정하므로, 탐지가 잘 되지 않는다. CR3 값을 변경해 악의적으로 수정된 page table을 가리키도록 함으로써 공격 수행한다. 이 또한 CR3 값을 어떻게 변경하느냐에 따라 두 가지로 나뉜다. 메모리에 저장된 CR3의 값을 변경함으로써 공격하는 saved-CR3-ATRA, 인터럽트가 발생할 때 CR3의 값을 직접 변경해 공격하는 CR3-ATRA가 있다. CR3-ATRA를 적용하기 위해 이 논문에서는 Inter-Context Register Modification 이라는 방법을 고안해 적용한다. 인터럽트 테이블을 가리키고 있는 IDTR을 후킹함으로써 원하는 동작을 수행하도록 하는 것이다. CR3-ATRA 공격은 영속적이지 않고, 일시적이다. Schedule out된 다음에 다시 schedule되면 CR3의 값은 original 값으로 돌아간다.
이런 ATRA 공격을 왜 방어하기 힘든지에 대해 Section 4. Challenges in Mitigating ATRA에서 소개하고 있다. Memory 보호를 할 때 생기는 공격과 방어의 race condition, 너무 넓은 attack surface, 방어하기 힘든 특성의 ATRA 등을 이유로 들고 있다.


2. VMware 제품에서 제공하는 자원 관리 기법
VMware 제품에서는 Distributed Resource Scheduler(DRS)와 Distributed Power Management(DPM)을 제공한다. DRS는 물리적인 자원을 논리적인 자원으로 묶어 효율적으로 관리해주는 스케쥴러이고, DPM은 전력 절감을 고려해 자원 및 가상 머신을 관리하는 관리 기법이다.

VMware vSphere Storage DRS에 대한 영상

References:
[1] VMware Distributed Resource Scheduler (DRS), VMware, http://www.vmware.com/files/pdf/VMware-Distributed-Resource-Scheduler-DRS-DS-EN.pdf
[2] DRS(Distributed Resource Scheduler) 및 DPM(Distributed Power Management), VMware, https://www.vmware.com/kr/products/vsphere/features/drs-dpm#sthash.8FaVfCOh.dpuf
[3] vSphere Resource Management Guide, VMware, http://www.vmware.com/pdf/vsphere4/r40/vsp_40_resource_mgmt.pdf
[4] vSphere 리소스 관리, VMware, https://pubs.vmware.com/vsphere-51/topic/com.vmware.ICbase/PDF/vsphere-esxi-vcenter-server-51-resource-management-guide.pdf


3. VMware vSphere Resource Management Guide 읽기
연구에 필요한 내용이 있어서 vSphere Resource Management Guide를 조금 읽어보았는데, 핵심적인 내용과 개념이 명쾌하게 잘 정리되어 있었다. 연구 방향 및 흐름을 정하는데 도움이 되었다. 몇 가지 마음에 들었던 설명을 정리한다.
– 자원 관리란 자원 제공자로부터 자원을 받아, 자원을 필요로 하는 소비자에게 할당하는 작업.
– 자원 관리는 overcommitment of resources가 발생할 때 필요하다.
– VMware에서는 자원 관리의 목적을 크게 세 가지로 정의하고 있다. Performance Isolation, Efficient Utilization, Easy Administration.

Advertisements
Tagged with: , , , , , , , , , , , , ,
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 91,344 hits
%d bloggers like this: