Linux内核安全模块

本文详细解析了Linux内核的安全模型,包括自主访问控制的主体标记、进程凭证,以及SELinux的强制访问控制机制,如BLP和BIBA模型的应用。同时探讨了IMA和EVM的完整性保护技术,以及审计和日志在内核安全中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内容来源:《Linux内核安全模块深入剖析》———李志

Linux内核安全模块

安全模型:BLP模型——解决私密行——禁止上读,禁止下写

BIBA模型——解决完整性——禁止上写,禁止下读

分时复用时代:角色的访问控制

PC时代:类型增强(TE)——控制进程

信任的度量:完整性校验值、数字签名

第一部分 自主访问控制

自主:使用计算机的人决定访问策略-------->应用

访问控制:标记——主、客体 策略——允许主体对客体i做什么

优缺点:优:设计简单 缺:安全性相对较差

一.主体标记与进程凭证

(include/linux/sched.h)

1.1uid和gid

uid——标记运行进程的用户——real_cred

gid——标记用户组——cred

1.uid和gid

英文名称——中文名称——作用

(r)uid——资源统计和资源分配

euid——有效id——内核做特权判断、IPC通信和密钥

suid——特权有关,暂存euid的值

fuid——文件系统id——文件系统访问相关的访问控制中判断操作许可

gid类似uid

补充组id——访问控制权限检查

group id——与特权无关

二.客体标记与文件属性

2.1文件属性

文件:包含文件的内容(数据),元数据

元数据

内容:存取访问方式、创建日期、所在设备、属主和属组以及允许位等。

存储位置:文件系统的inode中

2.2系统调用

文件——内核修改——调用相关函数(chown/stat)

三.操作与操作许可

1.基本操作:

读、写

额外操作:

1.文件:执行——本质:进程替换自身的内存——将文件内内容置入进程的代码空间和数据空间

2.目录:读——列出目录的内容 写——自目录中增/删 文件/子目录

3.管道——pipefs文件系统上的匿名文件 命名管道/设备——特殊类型的文件,执行无意义

4.IPC——不是作为特殊文件实现的,故只有读写操作。

5.socket——无定义操作许可。

6.key(密钥)——可类比文件 key——文件 keyring——目录

操作:1.读 2.写 3.搜索 4.链接 5.查看 6.设置属性(setattr)

2.允许位

同主,同组,其他组的读、写、执行

1.文件——9bit IPC——6bit 密钥——18bit

3.设置位

1.文件

增加3个允许位:setuid setgid sticky id

setuid:

当一个文件setuid=1——进程的euid、fsuid修改为文件属主id——进程读取内容+文件属性部分数据

setuid:

类似setuid,不同:进程的euid、fsuid修改为文件的属组id。与特权无关。

sticky id

Linux系统中无作用

2.目录

setuid:无任何作用

setuid:在此目录下创建的文件和子目录的属组自动初始化为目录的属组

sticky id:在其下的文件/子目录只能被该文件/子目录的属主删除

四.访问控制列表

1.作用范围

只作用文件和目录。

2.实现方式:

扩展属性被实现为一个数组,数组项又分为属性名和属性值。

属性名:字符串 属性值——任意类型

和访问控制列表相关的扩展属性有两个
属性名分别是system.posix_acl_access和system.posix_acl_default。

结构:tag id permission-bits(3bit)

id:用户的id或组id

permission-bits:分别表示读、写、执行

3.操作许可
1.进程fsuid=文件属组————判断进程申请的操作是否在ACL_USER_OBJ项的permission-bits中,若是,返回允许,否则返回拒绝
​
2.进程fsuid=文件的某一项ACL_USER中规定的id——————判断进程申请的操作是否在该项的permission-bits和ACL_MASK项的permission-bits的交集中,若是,返回允许,否则返回拒绝
​
3.进程fsuid 或 补充组中的任何一个gid = 文件的属组或某一项ACL_GROUP中规定的id
    (1):无ACL_MASK项,判断进程申请的操作是否在该项的permission-bits中,若是,返回允许,否则返回拒绝
   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值