Abstract
The kernel hardening function is necessary in terms of kernel stability to reduce the system error or panic due to the kernel code error that is made by program developer. But, the traditional kernel hardening method is difficult to implement and consuming high cost. The suggested kernel hardening function that makes high availability system by changing the panic() function of inside kernel code guarantees normal system operation by recovering the incorrect address of the kernel stack frame. We experimented the kernel hardening function at the network module of the Linux by forcing panic code and confirmed the proposed design mechanism of kernel hardening is working well by this experiment.
리눅스 운영체제에서 커널 개발자의 오류로 인하여 발생되는 시스템 정지 현상을 줄이기 위해서 커널 하드닝이 필요하다. 그러나 기존의 커널 하드닝 방식은 고장 감내 기능을 통하여 제공되고 있기 때문에 구현이 어려울 뿐만 아니라 많은 비용이 소요된다. 본 논문에서 제안하는 커널 하드닝 방식은 패닉이 발생한 커널 주소에 대한 커널 스택 내의 값들을 정상적인 값으로 복구하기 위해서 커널 내의 panic() 함수 등 커널의 일부분을 수정하므로, 적은 비용으로 시스템 가용성을 높일 수 있다. 제안한 방식의 실험을 위하여 네트워크 모듈에 강제적인 패닉 현상 유발시키고, 잘못된 스택 값을 정상적인 값으로 복구하는 동작을 확인하였다.