Linux内核:安全性
本文译自Linux.orgDevynCJohnson的系列文章《Linux内核》,本篇链接:http://www.linux.org/threads/the-linux-kernel-security.4223/,转载请注明出处及原作者。上一篇文章中我们谈到了内核的驱动程序,今天我们来聊一聊内核的安全性。内核是Linux系统的核心,如果有恶意的代码控制或者是破坏了内核的一部分,整个系统就会受到严重
本文译自Linux.orgDevynCJohnson的系列文章《Linux内核》,本篇链接:http://www.linux.org/threads/the-linux-kernel-security.4223/,转载请注明出处及原作者。
上一篇文章中我们谈到了内核的驱动程序,今天我们来聊一聊内核的安全性。
内核是Linux系统的核心,如果有恶意的代码控制或者是破坏了内核的一部分,整个系统就会受到严重的破坏,文件可能被删除或是崩溃,私人信息遭到窃取等等。显然,内核的安全性十分重要。万幸的是,Linux表现得十分安全,这都受益于其内核出色的安全性。例如,相较于Windows系统,Linux系统的病毒要少很多,Linux的用户也相对于Windows用户更少的感染病毒。(这也是许多公司应用Linux管理服务器的原因之一)。当然,我们也不能忽略内核的安全性,Linux有许多安全相关的特性与程序,但是本文中将只讨论Linux安全模块(LSM)和其他的Linux安全性问题。
AppArmor是由Immunix首先创建的安全模块,Canonical自2009年以来负责维护这些代码。这一安全模块自2.6.36版本以后一直被应用于主流的Linux内核之中。Apparmor限制程序的功能,根据程序的路径来跟踪对于程序的限制。许多Linux管理员都声称AppArmor是最容易配置的安全模块。然而,许多Linux用户认为相较于其他安全模块,AppArmor的安全性较差。
SELinux是由美国国家安全局(NSA)研发的AppArmor的替代模块,自2.6版本以后就被应用于主流的内核之中。SELinux在内核以及用户空间上做出了改动。SELinux给可执行程序(主要是守护进程[1]以及服务器应用)在其能完成其任务的前提下,给予其最低的优先级。SELinux也可以用来控制用户的优先级,与使用文件路径的AppArmor不同,SELinux使用文件系统本身来管理可执行程序,SELinux无法提供整个文件系统的保护,但是AppArmor可以。
注:在AppArmor,SELinux以及其他的安全模块之中,只有一个能被激活。
Smack是另一个安全模块,自2.6.25版本以后就应用于Linux的主流内核之中。Smack较之于AppArmor更安全,并且比SELinux更容易配置。
TOMOYO, another security module, has been in the Linux kernel since version 2.6.30. TOMOYO offers security, but its main use is analyzing the system for security flaws.
TOMOYO是自2.6.30版本以后应用于内核之中的安全模块,TOMOYO主要用于检测系统漏洞。
AppArmor,SELinux,Smack以及TOMOYO是四个标准LSM模块,都应用了强制性访问控制(MAC)[2]。LSM都有一些列表列出了什么操作是允许的,什么操作是禁止的。
Yama是一个新的Linux内核安全模块,但还未列为LSM的标准模块,不过在未来有可能被加入到这一序列之中。Yama与其他的安全模块使用同样的原则。
“gresecurity”是一些提升内核安全性的补丁的集合,这些补丁主要用于远程网络连接以及缓冲溢出。Pax是gresecurity中的一部分,该补丁允许内存中的代码使用所需要的最低的优先级。例如,对于一个正在运行的程序来说,内存中的程序被标记为写保护,显然,一个正在被执行的程序是不需要在内存中被写入的,因此恶意的代码就无法修改正在运行的应用。缓冲溢出是指一个程序(bug或是恶意代码)在内存上写数据并且在内存上超出了其空间边界,进而侵占到了其他应用程序的内存空间。当PaX在运行中,它可以防止这类缓冲溢出,因为在这个程序运行的过程中,它并没有向内存中写数据的权限。
Linux指令检测系统(LIDS)是一个内核安全补丁,它提供了强制性访问控制(MAC)的功能。它跟LSM模块的工作机制十分相近。
Systrace是用于削减和控制应用程序对于系统文件和系统指令的访问。系统指令是指对于内核的服务请求,例如,当一个文本编辑器向硬盘中写数据的时候,应用程序向内核请求将文件写到硬盘上。
这些都是Linux安全系统的重要组成部分。这些安全模块阻止恶意代码攻击内核。如果没有这些安全性模块的话,Linux就成为了不安全的计算机操作系统。
现在我们对于内核有了一个较为彻底的了解之后,我们可以开始配置内核了。
[1]守护进程是运行于后台的程序。
[2]MAC:一种限制程序或用户执行一些任务的控制手段。
更多推荐
所有评论(0)