编辑推荐
适读人群 :计算机安全人员 本书作者是华为公司安全研究人员。本书可能是国内外较早系统、全面地介绍Linux内核安全的书。全书采用源码剖析与用户态工具使用相结合的方式,对Linux内核安全模块进行了讲解,既避免了冗长的代码罗列,也消除了读者的“隔靴搔痒”之感。在此,向计算机安全人员特别是手机安全人员强烈推荐。
内容简介
本书对Linux内核安全子系统做了系统而深入的分析,内容包括Linux内核的自主访问控制、强制访问控制、完整性保护、审计日志、密钥管理与密钥使用等。本书的内容填补了国内外关于Linux内核安全的一个空白。本书值得每一个想要深入了解Linux安全的人参考,值得计算机安全专业的学生和计算机安全领域的从业人员阅读,也可作为计算机安全高级课程的教材。
目录
前言
第1章 导言1
1.1 什么是安全1
1.2 计算机系统安全的历史1
1.3 计算机系统安全的现状2
1.4 Linux内核安全概貌3
第一部分 自主访问控制
第2章 主体标记与进程凭证5
2.1 进程凭证5
2.2 详述6
2.2.1 uid和gid6
2.2.2 系统调用7
2.3 proc文件接口9
2.4 参考资料9
习题9
第3章 客体标记与文件属性10
3.1 文件的标记10
3.2 文件属性10
3.3 系统调用11
3.4 其他客体12
3.5 其他客体的系统调用14
习题15
第4章 操作与操作许可16
4.1 操作16
4.2 操作许可与操作分类16
4.3 允许位18
4.4 设置位19
4.4.1 文件19
4.4.2 目录19
4.5 其他操作的许可20
4.6 系统调用20
习题20
第5章 访问控制列表21
5.1 简介21
5.2 扩展属性21
5.3 结构21
5.4 操作许可23
5.5 两种ACL23
5.6 与允许位的关系23
5.7 系统调用23
5.8 参考资料24
习题24
第6章 能力(capabilities)25
6.1 什么是能力25
6.2 能力列举25
6.2.1 文件26
6.2.2 进程27
6.2.3 网络28
6.2.4 ipc28
6.2.5 系统28
6.2.6 设备28
6.2.7 审计28
6.2.8 强制访问控制(MAC)28
6.3 UNIX的特权机制29
6.4 Linux的能力集合和能力机制29
6.4.1 能力集合29
6.4.2 能力机制30
6.5 向后兼容32
6.6 打破向后兼容33
6.7 总结34
6.8 参考资料34
习题34
第二部分 强制访问控制
第7章 SELinux36
7.1 简介36
7.1.1 历史36
7.1.2 工作原理36
7.1.3 SELinux眼中的世界39
7.2 机制39
7.2.1 安全上下文39
7.2.2 客体类别和操作40
7.2.3 安全上下文的生成和变化59
7.3 安全策略62
7.3.1 基本定义63
7.3.2 安全上下文定义68
7.3.3 安全上下文转换72
7.3.4 访问控制75
7.3.5 访问控制的限制和条件75
7.4 伪文件系统的含义78
7.5 SELinux相关的伪文件系统78
7.5.1 selinuxfs78
7.5.2 proc80
7.6 总结80
7.7 参考资料81
习题81
第8章 SMACK82
8.1 历史82
8.2 概述83
8.3 工作机制84
8.3.1 操作许可84
8.3.2 类型转换84
8.4 扩展属性86
8.5 伪文件系统86
8.5.1 策略相关文件87
8.5.2 网络标签相关文件89
8.5.3 其他文件90
8.6 网络标签91
8.7 总结91
8.8 参考资料91
习题91
第9章 Tomoyo92
9.1 简介92
9.1.1 基于路径的安全92
9.1.2 粒度管理93
9.1.3 用户态工具93
9.1.4 三个分支93
9.2 机制93
9.2.1 操作许可94
9.2.2 类型和域94
9.3 策略95
9.3.1 域策略95
9.3.2 异常96
9.3.3 轮廓99
9.4 伪文件系统102
9.5 总结103
9.6 参考资料103
习题103
第10章 AppArmor104
10.1 简介104
10.2 机制104
10.2.1 操作许可104
10.2.2 域间转换107
10.3 策略语言108
10.4 模式110
10.5 伪文件系统110
10.5.1 proc文件系统110
10.5.2 sys文件系统111
10.5.3 securityfs文件系统112
10.6 总结113
10.7 参考资料113
习题113
第11章 Yama114
11.1 简介114
11.2 机制114
11.3 伪文件系统116
11.4 嵌套使用116
11.5 总结117
11.6 参考资料117
习题117
第三部分 完整性保护
第12章 IMA/EVM119
12.1 简介119
12.1.1 可信计算119
12.1.2 完整性120
12.1.3 哈希121
12.1.4 IMA/EVM121
12.2 架构122
12.2.1 钩子122
12.2.2 策略122
12.2.3 扩展属性123
12.2.4 密钥123
12.2.5 用户态工具124
12.3 伪文件系统126
12.4 命令行参数127
12.5 总结128
12.6 参考资料128
习题128
第13章 dm-verity129
13.1 Device Mapper129
13.2 dm-verity简介130
13.3 代码分析131
13.3.1 概况131
13.3.2 映射函数(verity_map)132
13.3.3 构造函数(verity_ctr)137
13.4 总结138
13.5 参考资料138
习题138
第四部分 审计和日志
第14章 审计(audit)140
14.1 简介140
14.1.1 审计和日志140
14.1.2 概貌140
14.2 架构141
14.2.1 四个消息来源141
14.2.2 规则列表147
14.2.3 对文件的审计150
14.3 接口153
14.4 规则155
14.5 总结157
14.6 参考资料157
第15章 syslog158
15.1 简介158
15.2 日志缓冲158
15.3 读取日志159
15.4 netconsole160
15.5 参考资料160
习题160
第五部分 加密
第16章 密钥管理162
16.1 简介162
16.2 架构162
16.2.1 数据结构162
16.2.2 生命周期164
16.2.3 类型168
16.2.4 系统调用171
16.2.5 访问类型174
16.3 伪文件系统175
16.4 总结175
16.5 参考资料175
第17章 eCryptfs176
17.1 简介176
17.2 文件格式176
17.3 挂载参数179
17.4 设备文件180
17.5 用户态工具180
17.6 总结185
17.7 参考资料185
第18章 dm-crypt186
18.1 简介186
18.2 架构186
18.2.1 两个队列(queue)186
18.2.2 五个参数189
18.3 总结193
18.4 参考资料193
第19章 LUKS194
19.1 简介194
19.2 布局194
19.3 操作195
19.4 总结196
19.5 参考资料196
第六部分 其
前言/序言
在大多数人眼中,内核是神秘的,安全是说不清的,内核安全则是子虚乌有的。如果说内核是一座险峻的高山,内核安全则是隐藏在深山中的蛟龙。
即使对内核开发人员,内核安全也是陌生的。Linux的创始人,Linux社区的“仁慈的独裁者”Linus Torvalds就曾说他不懂安全。这主要有三方面原因,其一,内核安全涉及领域太多了,Linux是庞大的,很少有人能对所有领域都了解;其二,如Linus Torvalds所说,安全是“软”科学,没有一个简单的量化的指标去衡量安全,开发人员自然是重视功能胜于重视安全;其三,文人相轻,SELinux的开发者之一Dan Walsh声称自己不懂AppArmor,Smack的负责人Casey Schaufler是批判SELinux的马前卒,他们不是不能懂,是不想懂。
截止至本书成稿时,国内和国外还没有一本系统全面地介绍Linux内核安全的书。
屈指算来我从事内核安全相关工作已是第八个年头。当年的一个面试邀请电话让我在一个仲春的清晨伴着蒙蒙细雨步入了Linux内核安全领域。几年后,就在我对内核安全有了一点点理解,并沾沾自喜时,我亲耳聆听Linux内核安全领域负责人James Morris的一番演。我突然发现他讲的大部分东西我都听不懂。好吧,不懂可以学。本书的提纲可以说是James Morris提供的。我将他演讲中提到的内核安全相关内容研究了一遍,呈现在这里。
本书的内容有相当一部分出自本人对代码的分析。内核安全模块中有相当一部分是缺少文档的,读代码是了解它们最直接,最准确的方式。如何呈现本书呢?有两种传统的方式,一种是大量地罗列源代码,让后陈述对代码的分析。代码面前,了无秘密,这不假。但是这种方式往往失之于琐碎,让读者只见树木不见森林。另一种方式是详列如何使用用户态工具,这虽然能让读者快速上手,但对于了解内核安全未免有些隔靴搔痒。本书采用的方式是分析其原理,指出其背后的逻辑。当我试图了解一个内核模块时,我想的问题是,它要干什么?它为什么要这么做?当这两个问题有了答案,我发现内核安全的开发者,和你我一样,也是程序员,也会犯错误。
本书作者学识粗浅,经验不足,书中文字与逻辑上的错误在所难免,还望各位读者海涵。
Linux内核安全模块深入剖析 下载 mobi epub pdf txt 电子书 格式