Linux内核安全模块深入剖析

Linux内核安全模块深入剖析 pdf epub mobi txt 电子书 下载 2025

李志 著
图书标签:
  • Linux内核
  • 安全模块
  • 内核安全
  • LSM
  • 安全架构
  • 系统安全
  • 内核编程
  • 安全开发
  • 内核模块
  • Linux系统
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 机械工业出版社
ISBN:9787111549055
版次:1
商品编码:12019115
品牌:机工出版
包装:平装
开本:16开
出版时间:2016-12-01
用纸:胶版纸
页数:251

具体描述

编辑推荐

适读人群 :计算机安全人员
  本书作者是华为公司安全研究人员。本书可能是国内外较早系统、全面地介绍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内核安全模块深入剖析》 内容简介: 在当今数字化浪潮席卷的时代,信息安全已成为国家、企业乃至个人最关切的核心议题。而作为支撑起无数服务器、嵌入式设备乃至桌面操作系统的基石,Linux内核的安全防护能力显得尤为重要。本书《Linux内核安全模块深入剖析》正是应运而生,它将带您深入Linux内核的深层构造,系统性地解析其强大的安全机制,特别是其模块化安全架构,让您透彻理解 Linux 如何在底层构建起一道道坚固的安全屏障。 本书并非一本泛泛而谈的 Linux 入门读物,也非简单罗列安全工具的使用指南。它致力于成为您探索 Linux 内核安全精髓的引路者,从最根本的层面剖析安全设计理念、实现机制及潜在的攻击面。我们将从 Linux 内核的基础知识出发,循序渐进地讲解与安全密切相关的各个模块,旨在帮助读者建立起对 Linux 内核安全体系的全面而深刻的认识。 第一部分:内核基础与安全视角 在正式深入安全模块之前,我们首先需要夯实 Linux 内核的基础。本部分将回顾 Linux 内核的基本架构,包括进程管理、内存管理、文件系统、设备驱动等核心概念。但不同于一般的内核书籍,我们将全程以“安全”的视角来审视这些基础模块。例如,在讲解进程管理时,我们会着重分析进程隔离、权限控制(如 UID/GID、capabilities)等安全机制如何防止进程之间的相互干扰和越权访问。在内存管理部分,我们将深入探讨地址空间布局随机化(ASLR)、数据执行保护(DEP/NX bit)等机制,理解它们如何抵御缓冲区溢出、代码注入等常见的内存攻击。文件系统部分,我们将关注文件权限、访问控制列表(ACLs)、SELinux/AppArmor 等强制访问控制(MAC)机制在保护数据完整性和机密性方面的作用。 第二部分:Linux 安全模块核心解析 这一部分是本书的核心,我们将逐一深入剖析 Linux 内核中扮演关键安全角色的各个模块。 Linux 安全模块 (LSM) 框架: LSM 是 Linux 内核提供的一个灵活的框架,允许第三方开发者编写并集成自定义的安全策略。我们将详细讲解 LSM 框架的设计理念、工作原理、API 接口,以及如何加载和卸载 LSM 模块。理解 LSM 框架是深入理解后续具体安全模块的基础。 SELinux (Security-Enhanced Linux): SELinux 是 Linux 内核中最强大、最广泛应用的强制访问控制(MAC)系统之一。本书将花费大量篇幅深入剖析 SELinux 的核心组件,包括: 安全上下文 (Security Context): 详细解析安全上下文的构成(用户、角色、类型、级别),以及它们如何用于标识和区分系统中的主体(进程)和客体(文件、端口、IPC 等)。 策略 (Policy): 深入理解 SELinux 策略的编写、加载和管理。我们将讲解策略语言的语法、常用规则(如 `allow`、`dontaudit`、`neverallow`)以及如何编译和加载策略模块。 访问向量缓存 (AVC - Access Vector Cache): 解释 AVC 的作用,它如何缓存访问决策以提高系统性能,以及如何调试和分析 AVC 缓存。 SELinux 模式 (Enforcing, Permissive, Disabled): 讲解不同模式下 SELinux 的行为差异,以及它们在实际部署中的应用场景。 常见 SELinux 模块和实用工具: 介绍诸如 `semanage`、`restorecon`、`setroubleshoot` 等常用工具,并演示如何使用它们来管理 SELinux 策略和排查安全问题。 AppArmor (Application Armor): AppArmor 是另一个流行的 MAC 系统,与 SELinux 相比,它以其更易于理解和管理的配置文件而著称。本书将详细讲解 AppArmor 的工作原理: 配置文件 (Profiles): 深入分析 AppArmor 配置文件的结构,包括路径、权限、文件访问规则、网络访问规则等。 加载与管理: 讲解 AppArmor 配置文件的加载、启用、禁用以及如何创建和修改配置文件。 模式 (Enforce, Complain): 解释 AppArmor 在不同模式下的行为,以及如何利用 Complain 模式来辅助生成配置文件。 与 SELinux 的比较: 对比 SELinux 和 AppArmor 在设计理念、实现方式、易用性、性能等方面优劣,帮助读者根据实际需求做出选择。 Capabilities: Linux capabilities 将传统的 root 权限进行了细粒度的拆分,允许进程只获得执行特定任务所需的最小权限。我们将深入讲解: Capabilities 的概念和分类: 详细介绍 `CAP_NET_RAW`、`CAP_SYS_ADMIN` 等常用 capabilities,以及它们分别授予的权限。 Capabilities 的继承和传递: 分析 capabilities 在进程创建、fork、execve 等操作中的传递机制,以及如何有效地管理 capabilities。 使用场景与实践: 演示如何在 Docker、Kubernetes 等容器化环境中以及系统中特定服务中安全地使用 capabilities,以遵循最小权限原则。 Namespace 和 Cgroups (Control Groups): 虽然 Namespace 和 Cgroups 本身不是直接的安全模块,但它们是构建现代容器化安全隔离机制的关键技术,而容器安全是 Linux 内核安全的重要组成部分。本书将从安全隔离的角度,简要介绍: Namespace 的隔离能力: 讲解 PID Namespace、Network Namespace、Mount Namespace 等如何为进程提供独立的运行环境,从而实现进程间的隔离。 Cgroups 的资源限制与隔离: 介绍 Cgroups 如何限制进程对 CPU、内存、IO 等资源的访问,防止恶意进程耗尽系统资源,实现拒绝服务攻击(DoS)。 第三部分:内核安全加固与实践 在理解了 Linux 内核安全模块的原理之后,本部分将聚焦于实际的安全加固策略和攻防实践。 内核参数调优与安全配置: 讲解一些重要的内核参数(sysctl)以及如何通过修改它们来增强系统的安全性,例如控制网络连接、限制模块加载、配置日志等。 系统调用过滤 (seccomp): 深入讲解 seccomp-bpf 机制,它允许用户空间程序限制其自身可用的系统调用,从而大幅减小攻击面,有效抵御内核漏洞的利用。 内核模块安全: 讨论内核模块的加载、卸载、签名机制,以及如何防止恶意内核模块的注入。 审计 (Auditd): 讲解 Linux 审计系统的作用,如何配置审计规则来记录关键的安全事件,以及如何分析审计日志以检测和响应安全威胁。 安全漏洞分析与防范: 结合已知的内核安全漏洞(如缓冲区溢出、use-after-free 等),分析其产生的原因,并探讨如何利用本书介绍的安全机制来防范此类漏洞的利用。 容器安全进阶: 在 Namespace 和 Cgroups 的基础上,进一步探讨容器运行时安全、镜像安全、编排平台(如 Kubernetes)的安全配置等。 目标读者: 本书适合以下人群阅读: Linux 系统管理员: 希望深入理解 Linux 安全机制,提高系统安全防护能力。 安全工程师: 需要了解 Linux 内核安全底层原理,为安全审计、渗透测试、漏洞分析等工作提供理论基础。 嵌入式开发工程师: 在资源受限的嵌入式环境中,需要精细化地控制系统安全,并了解底层安全机制。 操作系统开发人员: 对 Linux 内核安全设计感兴趣,希望深入研究内核安全模块的实现细节。 对 Linux 内核有一定了解,并希望在安全领域进行深造的技术爱好者。 本书特色: 理论与实践相结合: 在深入讲解理论知识的同时,辅以丰富的命令示例、配置文件片段和实践场景,帮助读者将理论知识转化为实际操作能力。 由浅入深,循序渐进: 从内核基础入手,逐步深入到复杂的安全模块,确保不同背景的读者都能理解。 全面而深入: 覆盖 Linux 内核中核心的安全模块,并对每个模块进行详尽的剖析。 视角独特: 始终以安全为导向,审视 Linux 内核的各个组成部分。 通过研读《Linux内核安全模块深入剖析》,您将不再满足于表面的 Linux 安全配置,而是能够从根本上掌握 Linux 内核的安全精髓,构建起更强大、更可靠的安全防线,为您的系统和数据保驾护航。

用户评价

评分

作为一名多年从事安全研究的技术人员,我一直在寻找一本能够系统性地阐述 Linux 内核安全模块的书籍。我阅读过不少相关的技术文档和文章,但总觉得它们零散且不成体系。这本书的书名准确地表达了我一直在寻找的定位——“深入剖析”,这让我对它的内容充满了信心。我尤其关注那些能够揭示内核安全机制底层逻辑的书籍,例如身份验证、访问控制、权限管理以及更高级的安全特性。我期望这本书能够提供关于这些模块的详细技术细节,包括它们的实现原理、设计哲学以及在实际应用中的表现。同时,我也希望书中能够提及一些最新的安全技术和发展趋势,让我能够跟上行业发展的步伐,并且能够从中获得启发,去探索和研究更前沿的安全技术。

评分

我是一名对技术细节充满好奇心的读者,总喜欢把事物拆解开来,弄明白每一个螺丝钉的作用。Linux 内核无疑是一个极具挑战性的领域,而安全模块更是其中最复杂、也最关键的部分之一。这本书的书名“深入剖析”恰恰击中了我想要探索真相的心理。我希望这本书能够像一把精密的解剖刀,将 Linux 内核的安全模块一一剖析开来,让我看到它们内部的骨骼、肌肉和血液是如何运作的。我期待书中能够详细讲解每一个子模块的功能、它们之间的交互方式,以及在面对各种安全威胁时,它们是如何协同工作的。我更希望能够通过这本书,理解那些看似高深莫测的安全漏洞是如何产生的,以及如何通过加强内核安全来防范这些漏洞。这本书对我来说,不只是一本技术参考书,更是一次探索 Linux 内核安全奥秘的旅程。

评分

我是一名刚刚开始接触 Linux 系统不久的开发者,对于 Linux 内核的部分概念还比较模糊,尤其是关于安全方面的知识,我更是知之甚少。听我的同事推荐了这本书,说内容非常专业,适合有一定 Linux 基础的人阅读。我非常希望通过这本书,能够系统地学习 Linux 内核中的安全机制,理解它们是如何工作的,以及如何利用这些机制来保障系统的安全。我希望书中能够提供清晰的图示和生动的比喻,来解释那些复杂的概念,让我能够循序渐进地掌握。同时,我也期望书中能包含一些实际的案例或者代码示例,让我能够将理论知识与实践相结合,真正地理解 Linux 内核安全是如何落地的,并且能够运用到我的开发工作中,写出更安全可靠的代码。

评分

我一直对操作系统底层的工作原理有着浓厚的兴趣,尤其是 Linux 内核,它就像一座庞大的、精密运转的机器,每一个组件都承担着至关重要的角色。这本书的书名“深入剖析”几个字,立刻抓住了我的眼球,让我感觉它能带我走进 Linux 内核的更深层次,去理解那些不为人知的运行机制。我渴望能通过这本书,将那些抽象的概念变得具体,将那些晦涩的代码变成逻辑清晰的流程。市面上关于 Linux 内核的书籍很多,但真正能做到“深入”的却不多。很多书往往停留在表面,讲解一些常用的命令或者基本的配置,而对于内核的内部机制,例如进程调度、内存管理、文件系统等,却很少有详细的阐述。因此,我期望这本书能填补这方面的空白,让我对 Linux 内核有一个全新的、更深刻的认识,能够从更宏观的角度去理解整个系统的运作,甚至能够参与到一些底层的开发和优化中去。

评分

这本书的封面设计简洁而有力,主色调选择了深邃的蓝色,搭配银色的字体,给人一种专业、沉静的感觉。书脊上清晰地印着书名和作者名字,即使放在书架的深处,也能一眼辨认。我当初选择它,很大程度上是被这个封面所吸引,它预示着这是一本内容扎实、值得深入研究的技术书籍,而不是那种浮光掠影、浅尝辄止的入门读物。在拿到书的第一天,我就迫不及待地翻开了它。拿到手的时候,触感就很好,纸张的质感厚实而不失细腻,翻页的声音也很悦耳,这对于长时间阅读的体验来说至关重要。我甚至仔细地看了看印刷的字体,清晰锐利,没有模糊的迹象,这再次印证了出版方在细节上的用心。整体来看,这本书的外在包装就已经成功地勾起了我想要一探究竟的强烈欲望,让我对即将展开的知识旅程充满了期待。

评分

我这书在路上发生了什么事??我买的是新书把,裂了不说,外皮还磨成这样,我不是完美主义者,但现在买书看的次数不多,基本是收藏。。有瑕疵还是让人很不爽啊!!!

评分

好书,推荐,工作正需要。

评分

送货相当快,第一天下午下班时下单,第二天中午就到了!

评分

经典书籍,还没看,后续继续评论

评分

太讨厌评价了,又没有一键取消所有评价提示!

评分

这本书印刷太次,包装运输太次,被踩过,页面折角

评分

这书也就高中生水平,写的什么玩意,书到时挺厚,干货一点没有

评分

内容还没看,希望能深入浅出一些,适合我这样的菜鸟

评分

书收到了,早该买的就算看不懂也该买了

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有