하드웨어 기반 커널무결성 감시 시스템들은 감시 대상으로부터 물리적으로 완전히 분리된 공간에서 수행되기 때문에 감시 시스템 자체의 안전성을 보장받는다는 장점을 가진다. 반면, 이들 감시 시스템들은 물리 메모리 주소를 기반으로 동작하기 때문에 가상-물리 메모리 주소 변환을 조작하는 공격으로부터 취약하다는 단점도 지닌다. 본 논문은 이러한 단점을 보완하기 위해 주소 변환 조작 공격에 대한 커널 스케줄러 기반의 탐지 기법을 제시한다. 제시된 탐지 기법은 커널 스케줄러가 모든 프로세스의 문맥 교환 시마다 수행된다는 점을 이용하여 프로세스 스케줄 시에 공격 여부를 검증한다. 탐지 시스템은 안드로이드 에뮬레이터와 TizenTV에서 구현되었으며, 실험을 통해 최대 10% 정도의 성능저하만 발생시키면서, 루트킷이 수행하는 주소 변환 공격을 정확히 탐지한다는 것을 확인하였다.
하드웨어 기반 커널 무결성 감시 시스템들은 감시 대상으로부터 물리적으로 완전히 분리된 공간에서 수행되기 때문에 감시 시스템 자체의 안전성을 보장받는다는 장점을 가진다. 반면, 이들 감시 시스템들은 물리 메모리 주소를 기반으로 동작하기 때문에 가상-물리 메모리 주소 변환을 조작하는 공격으로부터 취약하다는 단점도 지닌다. 본 논문은 이러한 단점을 보완하기 위해 주소 변환 조작 공격에 대한 커널 스케줄러 기반의 탐지 기법을 제시한다. 제시된 탐지 기법은 커널 스케줄러가 모든 프로세스의 문맥 교환 시마다 수행된다는 점을 이용하여 프로세스 스케줄 시에 공격 여부를 검증한다. 탐지 시스템은 안드로이드 에뮬레이터와 TizenTV에서 구현되었으며, 실험을 통해 최대 10% 정도의 성능저하만 발생시키면서, 루트킷이 수행하는 주소 변환 공격을 정확히 탐지한다는 것을 확인하였다.
Since hardware-based kernel-integrity monitoring systems run in the environments that are isolated from the monitored OS, attackers in the monitored OS cannot undermine the security of monitoring systems. However, because the monitoring is performed by using physical addresses, the hardware-based mo...
Since hardware-based kernel-integrity monitoring systems run in the environments that are isolated from the monitored OS, attackers in the monitored OS cannot undermine the security of monitoring systems. However, because the monitoring is performed by using physical addresses, the hardware-based monitoring systems are vulnerable to Address Translation Redirection Attack (ATRA) that manipulates virtual-to-physical memory translations. To ameliorate this problem, we propose a scheduler-based ATRA detection method. The method detects ATRA during the process scheduling by leveraging the fact that kernel scheduler engages every context switch of processes. We implemented a prototype on Android emulator and TizenTV, and verified that it successfully detected ATRA without incurring any significant performance loss.
Since hardware-based kernel-integrity monitoring systems run in the environments that are isolated from the monitored OS, attackers in the monitored OS cannot undermine the security of monitoring systems. However, because the monitoring is performed by using physical addresses, the hardware-based monitoring systems are vulnerable to Address Translation Redirection Attack (ATRA) that manipulates virtual-to-physical memory translations. To ameliorate this problem, we propose a scheduler-based ATRA detection method. The method detects ATRA during the process scheduling by leveraging the fact that kernel scheduler engages every context switch of processes. We implemented a prototype on Android emulator and TizenTV, and verified that it successfully detected ATRA without incurring any significant performance loss.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문은 이러한 하드웨어 기반 커널 무결성 감시 시스템이 가진 주소 변환 공격에 대한 취약점을 해결하고자 커널 스케줄러 기반의 공격 탐지 기법을 제시한다. 탐지 기법은 공격자가 특정 프로세스의 주소 변환 정보를 변조하더라도, 변조된 내용이 효력을 발휘하기 위해서는 해당 프로세스가 스케줄 되어 실행되어야 한다는 점을 이용한다.
본 논문은 주소 변환을 통해 하드웨어 기반 감시 시스템을 우회하기 위한 레지스터 변조 공격에 대한 방어 방법을 제시한다. 우리가 제안하는 방법은 이러한 목적을 달성하기 위해 아래와 같은 선행 조건을 요구한다.
본 논문은 하드웨어 기반 커널 무결성 감시 시스템의 약점을 보완하기 위해 주소 변환 공격에 대한 탐지 기법을 제시한다. 제시된 기법은 프로세스 스케줄 시마다 페이지 테이블 베이스 레지스터에 대한 변조 여부를 검증함으로써 공격 여부를 탐지해낸다.
가설 설정
가령, 커널 코드가 존재하는 메모리 영역과 해당 영역에 대한 가상-물리 주소 변환을 위한 페이지 테이블을 주기적으로 감시하거나[3] 해당 메모리 영역에 대한 쓰기 시도를 감지하는[4,5] 방법을 들 수 있다. 그러므로 페이지 테이블 직접 변조 공격은 하드웨어 기반 감시 시스템에 의해 이미 방어 가능하다고 가정한다.
둘째, 페이지 테이블 직접 변조 공격은 하드웨어 기반 감시 시스템에 의해 방어되고 있다고 가정한다. 따라서 커널 코드 영역을 지정하는 페이지 테이블과 메모리에 저장된 각 프로세스의 페이지 테이블 베이스 레지스터 정보는 하드웨어 기반 감시 시스템에 의해 보호된다.
제안 방법
또한, 그래픽과 네트워크 접근 등과 같은 일반적인 시스템 이벤트들이 존재할 경우의 성능 저하를 측정하기 위해 공격 탐지 코드를 삼성 TizenTV에 포팅하고 성능을 측정하였다. 실험에 사용된 Tizen TV는 4개의 ARMv7 CPU를 지원하며, 운영체제로써 리눅스 커널 3.
안드로이드의 성능 측정 시에 주로 사용되는 Oxbench[14]를 사용하여 스케줄러 코드에 삽입된 공격 탐지 코드의 실행으로 인한 성능 저하를 측정하였다.
우리가 제안하는 레지스터 변조 공격에 대한 방어 방법은 프로세스 스케줄러가 모든 페이지 테이블 베이스 레지스터의 변경에 관여한다는 점을 이용한다. Fig.
이러한 사항들을 고려하여 안드로이드 에뮬레이터 상에 주소 변환 공격 탐지를 위한 프로토타입을 구현하였다. 프로토타입에 대한 평가를 위해서는 안드로이드 에뮬레이터 수정을 통해 하드웨어 기반 커널 무결성 감시 시스템의 동작을 재현하였으며, 주소 변환 공격을 수행하는 루트킷 또한 작성하였다.
본 논문은 하드웨어 기반 커널 무결성 감시 시스템의 약점을 보완하기 위해 주소 변환 공격에 대한 탐지 기법을 제시한다. 제시된 기법은 프로세스 스케줄 시마다 페이지 테이블 베이스 레지스터에 대한 변조 여부를 검증함으로써 공격 여부를 탐지해낸다. 구현 및 평가는 안드로이드 에뮬레이터와 TizenTV 상에서 이루어졌으며, 최대 10% 정도의 성능 저하만으로 주소 변환 공격을 수행하는 루트킷을 탐지 가능함을 확인하였다.
패치된 스케줄러 코드의 공격 탐지 여부를 평가하기 위해서, TTBR 값을 임의의 값으로 변조하는 루트킷을 작성하였다. 루트킷은 LKM 형태로 작성 되었으며 MCR 명령어를 이용하여 TTBR의 값을 특정 값으로 변조한다.
이러한 사항들을 고려하여 안드로이드 에뮬레이터 상에 주소 변환 공격 탐지를 위한 프로토타입을 구현하였다. 프로토타입에 대한 평가를 위해서는 안드로이드 에뮬레이터 수정을 통해 하드웨어 기반 커널 무결성 감시 시스템의 동작을 재현하였으며, 주소 변환 공격을 수행하는 루트킷 또한 작성하였다. 마지막으로 실험을 통해 프로토타입이 루트킷을 정확하게 탐지한다는 것을 확인하는 동시에 성능 저하 또한 크지 않음을 보였다.
프로토타입에서는 탐지 시스템 구현을 위해 감시 대상의 커널 코드를 직접 수정하였다. 하지만, 실제 시스템에 적용되기 위해서는 커널 코드 변경을 최소화 할 필요가 있다.
페이지 테이블 베이스 레지스터 변조 공격과 이에 대한 탐지 코드는 Nexus 5 안드로이드 환경을 제공하는 QEMU 기반의 에뮬레이터 상에서 구현되었다[13]. 하드웨어 기반 감시 시스템의 동작을 재현하기 위해서는 QEMU의 android/main.c 파일을 수정하여 TCP 방식을 통해 외부와 통신 가능한 쓰레드를 생성하였다. 해당 쓰레드는 읽어 들일 메모리 영역의 물리 주소 및 크기를 입력 받아 메모리 덤프를 생성하고 외부로 전송하게 된다.
대상 데이터
또한, 그래픽과 네트워크 접근 등과 같은 일반적인 시스템 이벤트들이 존재할 경우의 성능 저하를 측정하기 위해 공격 탐지 코드를 삼성 TizenTV에 포팅하고 성능을 측정하였다. 실험에 사용된 Tizen TV는 4개의 ARMv7 CPU를 지원하며, 운영체제로써 리눅스 커널 3.10.30 버전을 사용하였다.
성능/효과
제시된 기법은 프로세스 스케줄 시마다 페이지 테이블 베이스 레지스터에 대한 변조 여부를 검증함으로써 공격 여부를 탐지해낸다. 구현 및 평가는 안드로이드 에뮬레이터와 TizenTV 상에서 이루어졌으며, 최대 10% 정도의 성능 저하만으로 주소 변환 공격을 수행하는 루트킷을 탐지 가능함을 확인하였다.
는 2개의 벤치마크 - CoreMark[15] 와 Streamline[16] - 를 TizenTV에서 수행한 결과 값의 평균을 비교한다. 두 경우 모두 1% 미만의 성능 저하를 보임으로써, 일반적인 시스템 이벤트들과 함께 측정된 탐지 코드 수행에 의한 성능 저하는 크지 않음을 알 수 있었다.
프로토타입에 대한 평가를 위해서는 안드로이드 에뮬레이터 수정을 통해 하드웨어 기반 커널 무결성 감시 시스템의 동작을 재현하였으며, 주소 변환 공격을 수행하는 루트킷 또한 작성하였다. 마지막으로 실험을 통해 프로토타입이 루트킷을 정확하게 탐지한다는 것을 확인하는 동시에 성능 저하 또한 크지 않음을 보였다.
마지막으로, 본 논문의 실험에서 사용된 메모리 주소 변환 공격의 예시와 그에 대한 방어 방법은 ARM 프로세서를 기반으로 구동되는 모바일 기기용 리눅스 운영체제를 바탕으로 구현되었다. 따라서 구현과 관련된 상세 내용은 ARM 프로세서와 리눅스에 의존적이다.
루트킷은 현재 프로세스의 TTBR 값인 0x28b68059를 0x25300059로 바꾸고, 변경 사항을 시스템에 반영하기 위해 변환 색인 버퍼(TLB)의 값을 갱신한다. 이러한 루트킷의 공격 행위는 스케줄러에 삽입된 TTBR과 pgd의 비교 로직에 의해 정상적으로 탐지됨을 확인하였다.
첫째, 하드웨어 기반 감시 시스템은 감시 대상 운영체제 구조에 대한 사전 정보를 보유하고 있다. 예를 들어, 감시 대상 운영체제가 리눅스일 경우, 감시 시스템은 각 프로세스의 정보를 담고 있는 task_struct 구조체의 내부 구조, 모든 프로세스의 task_struct를 탐색하기 위한 연결 리스트의 시작 주소, 커널 코드 영역의 시작 주소 정보 등에 접근 가능하다[12].
는 execve(), System Call, CPU Microbench의 3가지 항목에 대한 성능 측정 결과를 나타낸다. 탐지 코드 삽입에 의해 5~10% 정도의 성능 저하가 나타남을 확인 할 수 있었다.
질의응답
핵심어
질문
논문에서 추출한 답변
하드웨어 기반 커널 무결성 감시 시스템은 어떤 장점을 가지는가?
하드웨어 기반 커널 무결성 감시 시스템들은 감시 대상으로부터 물리적으로 완전히 분리된 공간에서 수행되기 때문에 감시 시스템 자체의 안전성을 보장받는다는 장점을 가진다. 반면, 이들 감시 시스템들은 물리 메모리 주소를 기반으로 동작하기 때문에 가상-물리 메모리 주소 변환을 조작하는 공격으로부터 취약하다는 단점도 지닌다.
커널 루트킷은 무엇인가?
커널 루트킷은 운영체제의 커널 권한으로 수행되는 악성 코드이다. 커널 권한을 바탕으로 수행되기 때문에 유저 권한의 프로세스를 포함하여 운영체제 상의 모든 객체들을 공격할 수 있다.
하드웨어 기반 커널 무결성 감시 시스템은 어떤 단점을 가지는가?
하드웨어 기반 커널 무결성 감시 시스템들은 감시 대상으로부터 물리적으로 완전히 분리된 공간에서 수행되기 때문에 감시 시스템 자체의 안전성을 보장받는다는 장점을 가진다. 반면, 이들 감시 시스템들은 물리 메모리 주소를 기반으로 동작하기 때문에 가상-물리 메모리 주소 변환을 조작하는 공격으로부터 취약하다는 단점도 지닌다. 본 논문은 이러한 단점을 보완하기 위해 주소 변환 조작 공격에 대한 커널 스케줄러 기반의 탐지 기법을 제시한다.
참고문헌 (16)
O.S. Hofmann, A.M. Dunn, Sangman Kim, I. Roy, and E.Witchel, "Ensuring operating system kernel integrity with OSck," Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems, pp. 279-290, Mar. 2011.
Y. Liu, Y. Xia, H. Guan, B. Zang, and H. Chen, "Concurrent and consistent virtual machine introspection with hardware transactional memory," 2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA), pp. 416-427, Feb. 2014.
N.L. Petroni Jr., T. Fraser, J. Molina, and W.A. Arbaugh, "Copilot - a coprocessor-based kernel runtime integrity monitor," Proceedings of the 13th USENIX Security Symposium, pp. 179-194, Aug. 2004.
Hyungon Moon, Hojoon Lee, Jihoon Lee, Kihwan Kim, Yunheung Paek, and Brent Byunghoon Kang, "Vigilare: toward snoop-based kernel integrity monitor," Proceedings of the 2012 ACM conference on Computer and communications security, pp. 28-37, Oct. 2012.
Hojoon Lee, Hyungon Moon, Daehee Jang, Kihwan Kim, Jihoon Lee, Yunheung Paek, and Brent Byunghoon Kang, "KI-Mon: A hardware-assisted event-triggered monitoring platform for mutable kernel object," Proceedings of 22nd USENIX Security Symposium, pp. 511-526, Aug. 2013.
Daehee Jang, Hojoon Lee, Minsu Kim, Daehyeok Kim, Daegyeong Kim and Brent Byunghoon Kang, "ATRA: Address translation redirection attack against hardware-based external monitors." Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, pp. 167-178, Nov. 2014.
A. Seshadri, M. Luk, N. Qu, and A. Perrig, "SecVisor: A tiny hypervisor to provide lifetime kernel code integrity for commodity OSes," Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles, pp. 335-350, Dec. 2007.
A.M. Azab, P. Ning, J. Shah, Q. Chen, R. Bhutkar, G. Ganesh, J. Ma, and W. Shen, "Hypervision across worlds: real-time kernel protection from the ARM TrustZone secure world," Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, pp. 90-102, Nov. 2014.
X. Ge, H. Vijayakumar, and T. Jaeger, "Sprobes: enforcing kernel code integrity on the TrustZone architecture," Proceedings of the Third Workshop on Mobile Security Technologies (MoST) 2014, May. 2014.
INTEL, INC. "Intel R 64 and IA-32 Architectures Software Developer's Manual," Volume 3b: System Programming Guide (Part 2), pp. 14-19, 2013.
ARM, "Architecture reference manual (ARMv7-A and ARMv7-R edition)." ARM DDI C, 406, 2008.
D.P. Bovet and M. Cesati, "Understanding the Linux kernel," O'Reilly Media, Inc., 2005.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.