虽然软件安全问题已经被研究了很多年,但是至今仍然有一些问题没有得到很好的解决。下面从应用软件安全、操作系统内核模块安全及操作系统内核安全加固三个方面分析当前研究的不足。
1.应用软件安全研究的不足
(1)基于源代码分析的方法和基于编译器扩展的方法要求访问和修改源代码,无法应用于非开源的商业软件。
(2)大部分方法对现有软硬件不透明,不适合大规模部署。
(3)基于污点分析的方法虽然能较好地保护目标程序,但是却带来了难以接受的性能开销。
(4)目前几乎所有的方法都要求重新启动被保护的程序,使得这些方法无法用于对服务的连续性要求很高的程序,如网上银行和大型多人在线游戏,因为即使是短暂的服务中断,也会给商家带来巨大的经济损失。
2.操作系统内核模块安全研究的不足
(1)大部分研究主要关注内核模块的可靠性问题,没有充分考虑到由内核模块漏洞导致的内核安全问题。
(2)大部分解决方案采用了基于通用策略的方法,而没有为每一个内核模块单独制定安全策略,因此不能保证内核模块按最小特权原则执行。(www.xing528.com)
(3)大部分研究需要依赖大量的专家知识来制定安全策略,使得策略产生比较耗时并且容易出错。
(4)大部分方法要求修改操作系统内核或者重构内核模块,而有些方法甚至需要特殊硬件支持,因此很难将这些方法应用到实际环境中。
(5)现有研究方法难以对内核模块安全进行有效测试。
3.操作系统内核安全加固研究的不足
(1)大部分方法仅仅关注内核安全的某一方面,如内核代码的完整性、内核数据的完整性和内核控制流的完整性,因此不能全面抵御针对操作系统内核的各种攻击。
(2)大部分研究采用了捕获-分析-处理的方式来保护内核安全,即需要VMM截获安全事件,然后进行分析和处理。然而,如果产生安全事件的频率很高,将会使系统频繁陷入VMM中,从而给系统带来较大的性能损失。
(3)有些基于模拟器的方法,如QEMU[21],虽然能实现指令级的分析,但由于其性能开销比较明显,因此不适合在实际环境中应用。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。