KASR: A Reliable and Practical Approach to Attack Surface Reduction of Commodity OS Kernels