linux的lsm--TCB组成部分的新视角

简介:
可信路径的一端是任意用户,另一端是TCB,这条路经要做到尽可能短,从而加大消息在中间被拦截的难度,事实上,可信路径上的消息时不能被拦截的,否则就不叫可信路径了,可信路径的一端必须是绝对可信的,我们称为TCB,也就是可信计算基,然而TCB并不仅仅存在于可信路径的另一端,TCB是一整套安全环境的总称,包括很多元素,比如硬件隔离机制,OS内核的一切组件,事实上,TCB是一个抽象的概念而不是一个形象的实体,在linux中TCB还包括所有的suid程序,也就是说,TCB的元素一定是可以信任的,如果想让操作系统绝对安全,仅仅有一些可以信任的“基”还不行,虽然“基”是可以信任的,那么谁能保证调用“基”的程序是正常调用呢,如果一个恶意的程序调用了TCB,那么后果一样是很严重的,因此作为TCB本身的组成部分,有一个叫做访问控制监视器,这个监视器的作用就是监控任何受控调用比如系统调用的合法性,比如对于sys_mount来讲,访问监视器判断调用进程能否进行mount操作。

     可悲的是,很多的操作系统并没有实现这个访问监视器,操作系统几乎在一开始设计的时候是不考虑安全的,而只考虑功能和效率,很多设计者都将安全这件事寄托给了硬件机制,比如Intel的rings以及arm的特权模式等等,事实上这种寄托很不严格,毕竟硬件的实现千差万别,设计者往往在出现了具体问题的时候才会考虑加入安全控制机制最终使得操作系统内核的代码杂乱无比,因此操作系统需要一个更加一致的TCB,便于实现统一接口下的不同实现以及扩充新的安全策略。如果实现了这么一个接口一致,仅仅实现的机制的安全控制机制的话,那么可以说TCB包含了三部分,一个是寄托给硬件的那部分(所谓的内核模式),提供OS作为服务提供者的保护机制,一个是访问监视器,就是上面说的那个一致的接口,另外一个是用户空间的一些门(gate)程序,对于linux来讲就是suid程序。现在看看linux的lsm,它实际上就是一个访问监视器框架,然后你可以用任何方式实现它,用访问监视器的视角来理解lsm的话,可以很清晰的弄明白为什么它的调用点存在于一个地方而不是另一个地方。lsm提供了两种实现访问监视的方式,一种是单独模块的方式,这种方式下只要你提供了一个lsm实现并且注册了它,那么就不能再注册第二个了,也就是说系统中只允许注册一个lsm实现,另一种方式是堆栈模块的方式,security_operations本身提供了register_security回调函数,任何一个lsm实现都可以重载这个回调函数以允许系统中存在很多lsm实现,从而实现串行的访问控制过滤。



 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1271984

相关文章
|
1天前
|
安全 网络协议 Linux
linux必学的60个命令
Linux是一个功能强大的操作系统,提供了许多常用的命令行工具,用于管理文件、目录、进程、网络和系统配置等。以下是Linux必学的60个命令的概览,但请注意,这里可能无法列出所有命令的完整语法和选项,仅作为参考
|
1天前
|
监控 Linux 数据处理
|
1天前
|
编解码 Ubuntu Linux
|
2天前
|
JSON Linux 数据格式
Linux命令发送http
请注意,`curl`命令非常灵活,可以根据您的需求进行多种配置和自定义。您可以查看 `curl`命令的文档以获取更多详细信息。
6 0
|
3天前
|
安全 Linux 测试技术
|
3天前
|
安全 Linux Windows
Linux中Shutdown命令使用介绍
Linux中Shutdown命令使用介绍
10 2
|
4天前
|
缓存 关系型数据库 Linux
Linux目录结构:深入理解与命令创建指南
Linux目录结构:深入理解与命令创建指南
|
4天前
|
数据挖掘 Linux vr&ar
Linux命令实战:解决日常问题的利器
Linux命令实战:解决日常问题的利器
|
4天前
|
NoSQL Linux Redis
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
17 0