本书以提高软件安全为目标,利用虚拟化技术对应用软件和系统软件(包括操作系统内核和内核模块)进行安全保护,其主要内容有:
1.离线分析和在线保护相结合的应用软件防护技术
在应用软件的安全漏洞中,缓冲区溢出漏洞是最具威胁的一种。切实可行的解决方法需要满足以下五个要求:
(1)不改变现有应用程序、操作系统及硬件架构。
(2)不能要求被保护的应用程序重新启动。
(3)能够抵御各种不同类型的缓冲区溢出攻击。
(4)适当的性能开销。
(5)便于部署。
为此,本书提出了离线分析和在线保护相结合的安全防护机制,对含有潜在缓冲区溢出漏洞的应用软件进行在线保护。
2.基于虚拟化技术的内核数据保护
操作系统内核数据的多样性使得内核数据的完整性保护变得非常复杂,因此需要首先建立针对内核数据的访问控制模型。传统的操作系统无法保护内核数据的安全,其原因在于内核程序可任意访问内核数据。然而在虚拟化环境中,虚拟机监控器比操作系统拥有更高的特权级,因此VMM可以通过限制内核程序的行为来保护内核数据的安全。为了验证内核程序访问内核数据是否合法,需要研究怎样制定恰当的安全策略。对于内核程序对内核数据的非法访问,怎样进行入侵响应也是值得探讨的问题。
3.以策略为中心的内核扩展模块加固技术研究
可加载内核模块被用于扩展操作系统内核的基本功能,然而如果可加载内核模块中含有安全漏洞,将可能影响整个操作系统的安全。为了保护操作系统内核不受脆弱内核模块的影响,较为有效的方法是将内核模块从内核空间隔离出来,然而这种方法需要解决以下一些技术挑战:
(1)怎样从内核模块中提取出安全策略?
(2)怎样为不同内核模块制定不同的安全策略?
(3)怎样在尽量不依赖专家知识的情况下自动地产生安全策略?
(4)怎样在不改变现有软硬件架构前提下保证安全策略被正确实施?
为了解决上述挑战,本书提出了一种以策略为中心并结合虚拟化技术来保证操作系统内核安全不受脆弱内核模块影响的方法,其研究的主要内容包括安全策略的自动产生机制、基于虚拟化技术的内核模块隔离机制及安全策略的实施机制。
4.基于半同步非阻塞的内核堆区并行监控研究
操作系统内核堆区管理器负责维护和管理动态内核数据,然而这些数据却可能因为系统漏洞而受到内核堆溢出的破坏。现有针对内核堆溢出的防御方法主要存在三个问题:
(1)某些方法需要监控每一个写缓冲区的操作,因此其性能开销会比较大。
(2)某些方法需等到内核缓冲区被释放的时候才对其进行完整性检查。如果操作系统不释放目标堆上缓冲区,那么该方法将无法检测出内核堆区溢出。
(3)还有一些方法需要依赖特殊的硬件机制或者要求使用新的操作系统。
针对上述问题,本书提出了并行监控操作系统内核堆区的方法。该方法结合虚拟化技术和多核架构的特点,将监控程序单独运行在多核处理器的某个核上,从而极大地提高了系统性能并缩短了攻击检测延时。
5.基于虚拟化技术的内核模块安全测试研究
本书除了对内核模块进行加固研究外,还研究了内核模块安全测试的方法。现有针对内核模块进行安全测试的方法主要存在两个问题:(www.xing528.com)
(1)某些方法需要依赖软件模拟技术,因此其性能开销较大,无法在实际环境中部署。
(2)传统模糊测试方法无法探索比较复杂的程序路径,导致难以发现复杂内核模块中的安全漏洞。
针对这两个问题,本书提出了一种基于虚拟化技术的内核模块安全测试方法。该方法结合了硬件辅助的虚拟化技术和符号执行技术,能有效提升内核模块安全测试的效率。
【注释】
[1]National Vulnerability Database.http://nvd.nist.gov/.
[2]CERT Advisory CA-2001-19 http://www.msen.com/cert-ca-2001-19.html.
[3]SQL Slammer https://en.wikipedia.org/wiki/SQL_Slammer.
[4]Nsa.security enhanced linux.http://www.nsa.gov/selinux/.
[5]Apparmor.http://www.novell.com/linux/security/apparmor/.
[6]sqrkkyu and twzi.Attacking the core:Kernel exploiting notes.http://phrack.org/issues.html,2007.
[7]C.S.Technologies.Openbsd ipv6 mbuf remote kernel buffer overflow.http://www.securityfocus.com/archive/1/462728/30/0/threaded,2007.
[8]Cloud computing:A new era of IT opportunity and challenges.http://www.zdnet.com/blog/hinchcliffe/cloud-computing-a-new-era-of-it-opportunity-and-challenges/.
[9]Free BSD jails,http://www.freebsd.org/.
[10]OpenVZ project,http://wiki.openvz.org/Main_Page.
[11]VMware,http://www.vmware.com/.
[12]Xen,http://www.xen.org/.
[13]Amazon Elastic Compute Cloud,http://aws.amazon.com/ec2/.
[14]Key Trends:Virtualization Security,http://www.nemertes.com/key_trends/key_trends_virtualizations_ecurity.
[15]GCC Extension for Protecting Applications from Stack Smashing Attacks,http://www.research.ibm.com/trl/projects/security/ssp,2007.
[16]Pax Documentation,http://pax.grsecurity.net/docs/pax.txt,Nov.2003.
[17]Coverity:Analysis of the linux kernel.http://www.coverity.com/,2004.
[18]Chubb P,Get more device drivers out of the kernel!http://www.linuxinsight.com/files/ols2004/chubb-reprint.pdf,2004.
[19]Elson J,A linux framework for user-space devices.http://www.circlemud.org/jelson/software/fusd/docs/,2004.
[20]Microsoft:Architecture of the user-mode driver framework,http://www.microsoft.com/whdc/driver/wdf/umdf-arch.mspx,2006.
[21]F.Bellard.Qemu open source processor emulator.Available online at:http://bellard.org/qemu/.
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。