Skip to content

Commit 24ed44a

Browse files
Yuxian MaoJonathan Corbet
authored andcommitted
docs/zh_CN: Add landlock index Chinese translation
Translate lwn/Documentation/security/landlock.rst into Chinese. Update the translation through commit dad2f20 ("landlock: Fix grammar issues in documentation") Signed-off-by: Yuxian Mao <[email protected]> Reviewed-by: Yanteng Si <[email protected]> Signed-off-by: Jonathan Corbet <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent e043997 commit 24ed44a

File tree

2 files changed

+124
-1
lines changed

2 files changed

+124
-1
lines changed

Documentation/translations/zh_CN/security/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
lsm
1919
siphash
2020
digsig
21+
landlock
2122

2223
TODOLIST:
2324
* credentials
@@ -29,6 +30,5 @@ TODOLIST:
2930
* SCTP
3031
* self-protection
3132
* tpm/index
32-
* landlock
3333
* secrets/index
3434
* ipe
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
.. SPDX-License-Identifier: GPL-2.0
2+
.. Copyright ? 2017-2020 Micka?l Salaün <[email protected]>
3+
.. Copyright ? 2019-2020 ANSSI
4+
.. include:: ../disclaimer-zh_CN.rst
5+
6+
:Original: Documentation/security/landlock.rst
7+
8+
:翻译:
9+
10+
毛玉贤 Yuxian Mao <[email protected]>
11+
12+
======================
13+
Landlock LSM: 内核文档
14+
======================
15+
16+
:作者: Mickaël Salaün
17+
:日期: 2022年12月
18+
19+
Landlock的目标是创建有范围的访问控制(即沙箱机制)。为了增强整个
20+
系统的安全性,此功能应适用于任何进程,包括非特权进程。因为这些进
21+
程可能被攻击或植入后门(即不可信任的),所以从内核和其他进程的角
22+
度来看,Landlock的功能必须安全可用。因此,Landlock 的接口设计应当
23+
尽量减少可能的攻击点。
24+
25+
Landlock 旨在为非特权进程使用,同时遵循由其他访问控制机制(例如 DAC、LSM)
26+
强制执行的系统安全策略。Landlock 规则不应与系统上强制执行的其他访问
27+
控制相冲突,而只能添加额外的限制。
28+
29+
任何用户都可以在其进程上强制执行Landlock规则集。这些规则集会以一种
30+
确保只能添加更多约束的方式与继承的规则集合并和评估。
31+
32+
33+
用户空间文档如下:
34+
Documentation/userspace-api/landlock.rst.
35+
36+
安全访问控制机制指导原则
37+
========================
38+
39+
* Landlock规则应侧重于对内核对象的访问控制,而非系统调用过滤(即
40+
系统调用参数),后者是seccomp-bpf要侧重的。
41+
* 为了避免多种侧信道攻击(例如安全策略泄露、基于CPU的攻击),Landlock
42+
规则不应与用户空间进行程序化通信。
43+
* 内核访问检查不应降低未沙盒化进程的访问请求速度。
44+
* 与 Landlock 操作相关的计算(例如强制执行规则集)应仅影响请求这些
45+
操作的进程。
46+
* 由沙盒化进程直接从内核中获得的资源(例如文件描述符)在被任何进程
47+
使用时,都应保留其获取时的作用域访问权限。
48+
Cf. `文件描述符访问权限`_.
49+
50+
设计选择
51+
========
52+
53+
inode访问权限
54+
-------------
55+
56+
所有访问权限都与inode以及通过inode所访问到的内容相关。读取目录的
57+
内容并不意味着有权读取该目录中列出的 inode 所对应文件的内容。实际
58+
上,文件名是相对于其父目录而言的 ,一个 inode 可以通过多个文件名
59+
(通过硬链接)来引用。删除文件链接这一操作仅直接影响对应目录,而
60+
对被移除链接的inode并无影响。这就是“LANDLOCK_ACCESS_FS_REMOVE_FILE”
61+
(文件系统移除文件访问权限)或“LANDLOCK_ACCESS_FS_REFER” (文件系
62+
统引用访问权限)不能与文件绑定,而只能与目录绑定的原因。
63+
64+
文件描述符访问权限
65+
------------------
66+
67+
在打开文件时,会检查访问权限并将其与文件描述符绑定。其基本原则是,
68+
当在相同的 Landlock 域下执行时,等效的操作序列会产生相同的结果。
69+
以LANDLOCK_ACCESS_FS_TRUNCATE权限为例,如果相关的文件层次结构没有
70+
授予该访问权限,那么可能允许打开一个文件进行写操作,但不允许使用
71+
ftruncate调用截断由此产生的文件描述符。
72+
以下操作序列具有相同的语义,因此会产生相同的结果:
73+
74+
* ``truncate(path);``
75+
* ``int fd = open(path, O_WRONLY); ftruncate(fd); close(fd);``
76+
77+
与文件访问模式类似(例如O_RDWR),即使文件描述符在进程之间传递
78+
(例如通过Unix域套接字),文件描述符中的Landlock访问权限也会被保留。
79+
这些访问权限即使在接收进程未被 Landlock 沙盒化的情况下也会被强制执行。
80+
事实上,这是为了保持整个系统访问控制的一致性,避免通过文件描述符传递
81+
而无意中绕过安全限制(即“混淆代理攻击”)。
82+
83+
测试
84+
====
85+
86+
用户空间的向后兼容性测试、ptrace 限制测试和文件系统支持测试可以在这里
87+
找到:tools/testing/selftests/landlock/
88+
89+
内核结构
90+
========
91+
92+
对象
93+
----
94+
95+
该API在以下内核代码中:
96+
97+
security/landlock/object.h
98+
99+
文件系统
100+
--------
101+
102+
该API在以下内核代码中:
103+
104+
security/landlock/fs.h
105+
106+
规则集和域
107+
----------
108+
109+
域是与一组主体(即任务凭证)关联的只读规则集。每次在任务上执行规则集时,
110+
都会复制当前域,并在新域中导入规则集作为新的规则层。 事实上,一旦进入
111+
一个域,每条规则都与一个层级绑定。要授予对对象的访问权限,每一层中至少
112+
有一条规则必须允许对该对象执行请求操作。然后,任务只能过渡到一个新的域,
113+
该新域是当前域的约束和任务提供的规则集的约束的交集。任务自行沙盒化时,
114+
主体的定义是隐式的,这使得推理变得更加简单,并有助于避免陷阱。
115+
116+
该API在以下内核代码中:
117+
118+
security/landlock/ruleset.h
119+
120+
.. Links
121+
.. _tools/testing/selftests/landlock/:
122+
123+
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/tools/testing/selftests/landlock/

0 commit comments

Comments
 (0)