Abstract
In recent years, the software vulnerability becomes an important problem to the safety in operating system kernel. Many organizations endeavor to publish patches soon after discovery of vulnerability. In spite of the effort, end-system administrators hesitate to apply the patches to their system. The reasons of hesitation are the reboot disruption and the distrust of patches. To solve this problem we propose a dynamic update system for non-updatable kernel, named DUNK. The DUNK provides: 1) a dynamic update mechanism at function-level granularity to overcome the reboot disruption and 2) a safety verification mechanism to overcome the distrust problem, named MAFIA. In this paper, we describe the design of DUNK and detailed algorithm of MAFIA.
최근 시스템의 복잡도가 증가함에 따라 보안 취약점 문제가 더욱 많이 발생하고 있다. 이를 해결하기 위해 보안 패치가 배포되고 있지만, 시스템 서비스의 중단이 필요하고 패치 자체의 안정성이 검증되지 못해 패치의 적용이 늦어지는 문제가 발생한다. 우리는 이러한 문제를 해결하기 위해 업데이트성이 없는 커널을 위한 함수 단위 동적 업데이트 시스템인 DUNK를 설계하였다. DUNK는 서비스 중단 없는 업데이트를 가능케 하고, 보안 기법인 MAFIA를 통해 안전한 업데이트를 수행한다 MAFIA는 바이너리 패치 코드의 접근 행위를 분석함으로써 패치된 함수가 기존 함수의 접근 권한을 상속받도록 하고, 이를 검증하는 기술을 제공한다. 본 논문에서는 DUNK의 설계와 MAFIA의 알고리즘 및 수행에 대해 기술한다.