In this paper, we introduce VCIsolation, a new framework that combines code virtualization with Intel Software Guard Extensions (SGX) to improve the security of binary files protected by commercial code virtualization software. This study shows that important program components that are protected only by code virtualization have a problem with devirtualization and that VCIsolation can be used to overcome this problem and make the code safer from attackers. VCIsolation utilizes the hardware isolation feature of Intel SGX to fundamentally disrupt the execution trace of code virtualization, thereby preventing restoration to the original code. The VCIsolation framework supports Intel x86 architecture, which is widely provided by commercial code virtualization software, and Intel SGX was used for hardware isolation. The paper explains how the VCIsolation framework was created and how it works. It also tests how well the framework can prevent devirtualization like Backward Slicing. It also checks how strong the framework is against SGX side-channel attacks. Additionally, by comparing the performance of Code Virtualizer, one of the commercial code virtualization solutions, and VCIsolation, we showed that VCIsolation can significantly improve the security of protected code with minimal overhead. The results of the study showed that although VCIsolation has some performance overhead compared to non-SGX-based virtualization, it is a practical solution that significantly improves security in protecting critical code parts of software applications.
본 논문에서는 상용 코드 가상화 기술로 보호된 바이너리 파일의 보안성을 향상시키기 위해 코드 가상화 기법에 Intel Software Guard Extensions(SGX)를 활용하는 새로운 프레임워크인 VCIsolation을 소개한다. 이 연구는 코드 가상화 방법만으로 보호하는 중요한 프로그램 구성요소들이 역가상화에 취약한 문제점이 있음을 알리고 VCIsolation을 통해 해당 문제점을 해결하여 코드를 공격자로부터 좀 더 안전하게 할 수 있음을 보인다. VCIsolation은 Intel SGX의 하드웨어 격리 기능을 활용하여 코드 가상화의 실행 추적을 근본적으로 방해함으로써 원본 코드로의 복원을 방지한다. VCIsolation 프레임워크는 대부분의 상용 코드 가상화 소프트웨어에서 지원하는 Intel x86 아키텍처를 지원하며, 하드웨어 격리로는 Intel CPU에서 제공하는 격리 기능인 SGX를 사용했다. 논문은 VCIsolation 프레임워크의 설계 및 구현을 설명하고, Backward Slicing과 같은 역공학 기법에 대한 방어와 SGX 부채널 공격을 통한 코드 탈취에 대해 강함을 입증했다. 또한 상용 코드 가상화 솔루션 중 하나인 Code Virtualizer와 VCIsolation의 성능을 비교하여, 최소한의 오버헤드로 VCIsolation이 보호된 코드의 보안성을 크게 향상시킬 수 있음을 보였다. 연구 결과는 VCIsolation이 SGX를 기반으로 하지 않는 가상화에 비해 일부 성능 오버헤드가 있지만, 소프트웨어 애플리케이션의 중요한 코드 부분을 보호하는 데 있어 보안성을 크게 향상시키는 실용적인 솔루션임을 보였다.