Solaris 10(是受信任的 Solaris)
Solaris 10 操作系统通过其增强了安全性的 Trusted Extensions 组件提供了强制访问控制 。该功能适用于 MAC 和 RBAC 。Solaris 通过向所有对象添加敏感性标签实现了这一点,使您能够控制设备、文件、连网访问,甚至窗口管理服务 。Solaris 10 中的 RBAC 的优点在于,它通过提供对管理任务(可在以后进行分配)的细粒度控制最小化了对根访问的需求 。
TrustedBSD
TrustedBSD 是一个正在进行中的项目,主要开发可靠的操作系统扩展,这些扩展最终会加入 FreeBSD 操作系统 。它包括构建在 Flux Advanced Security Kernel (Flask) 安全架构之上的强制访问控制,后者包括以插件模块形式提供的类型强制和多级安全(MLS) 。TrustedBSD 还合并了来自 Apple Darwin 操作系统的开源 Basic Security Module (BSM) 审计实现(BSM 最初由 Sun 引入) 。BSM 是一个审计 API 和文件格式,它支持普通的审计跟踪处理 。TrustedBSD 还构成了供 Security Enhanced Darwin (SEDarwin) 使用的框架 。
操作系统虚拟化
增强操作系统内部安全性的最后一个选择是操作系统虚拟化(也称为虚拟专用服务器(virtual private servers)) 。一个操作系统拥有多个独立的用户空间实例,可以实现功能分离 。操作系统虚拟化对在独立用户空间内部运行的应用程序功能进行了限制 。例如,一个用户空间实例也许不能修改内核(载入或移除内核模块),也不能挂载或卸载文件系统 。并且不允许修改内核参数(例如,通过 proc 文件系统) 。任何修改其他用户实例环境的操作都是不允许的 。
许多操作系统都能实现操作系统虚拟化 。GNU/Linux 支持 VServer、Parallels Viruozzo Container 和 OpenVZ 。在其他操作系统中,您可以找到容器(Solaris)和 jail(BSD) 。在 Linux-VServer 中,每个单独的用户空间实例称为一个安全上下文 。在每个安全上下文中,会为专用服务器实例启动一个新的 init 。
结束语
对于 Linux 内核来说,强制访问控制和基于角色的访问控制都是相对较新的功能 。随着 LSM 框架的引入,新的安全模块将会出现 。除了对框架的增强,还可以堆叠安全模块,从而允许多个安全模块共存,而且最大限度地覆盖了 Linux 的安全需求 。随着对操作系统安全性的深入研究,将会引入新的访问控制方法 。
上一页;;[1];[2];[3]
在访问内部对象之前对内核代码进行修改,以调用一个代表实施函数的钩子,该实施函数实现安全策略 。该函数根据预定义的策略验证操作能否继续进行 。安全函数存储在一个安全操作结构中,该结构包含必须受到保护的基本操作 。例如,security_socket_create 钩子(security_ops->socket_create)在创建新 socket 之前检查权限,并考虑协议集、类型、协议,以及 socket 是在内核中创建还是在用户空间中创建 。清单 1 提供了 socket.c 中用于创建 socket 的示例代码 。
清单 1. 创建 socket 的内核代码
;;;;static int __sock_create(int family, int type, int protocol,
struct socket **res, int kern)
{
int err;
struct socket *sock;
/*
* Check protocol is in range
*/
if (family < 0 || family >= NPROTO)
return -EAFNOSUPPORT;
if (type < 0 || type >= SOCK_MAX)
return -EINVAL;
err = security_socket_create(family, type, protocol, kern);
if (err)
return err;
...
security_socket_create 函数在 ./linux/include/linux/security.h 中定义 。它提供了从 security_socket_create 到 security_ops 结构中动态安装的函数的间接调用(参见清单 2) 。
清单 2. 用于 socket 创建检查的间接调用
;;;;static inline int security_socket_create (int family, int type,
int protocol, int kern)
推荐阅读
- linux实用系统管理命令回顾
- 永远不要运行的危险Linux命令!
- LINUX下tar.gz包的安装方法
- 猎豹安全大师怎么开红包提醒?
- Unix/Linux中的shell 机制
- linux系统性能检测
- linux系统优化
- 基于Linux的VOIP开放协议和专有协议
- Linux认证:Linux 相关的四个认证
- Linux认证:Redhat认证考试心得之一 死记硬背篇
