요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
Active module
index.rst:24-39active list와 /proc process attribute를 설명합니다.
관련 문서
index.rst:40-51지원되는 LSM usage 문서를 나열합니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
===========================
Linux Security Module Usage
===========================
The Linux Security Module (LSM) framework provides a mechanism for
various security checks to be hooked by new kernel extensions. The name
"module" is a bit of a misnomer since these extensions are not actually
loadable kernel modules. Instead, they are selectable at build-time via
CONFIG_DEFAULT_SECURITY and can be overridden at boot-time via the
``"security=..."`` kernel command line argument, in the case where multiple
LSMs were built into a given kernel.
The primary users of the LSM interface are Mandatory Access Control
(MAC) extensions which provide a comprehensive security policy. Examples
include SELinux, Smack, Tomoyo, and AppArmor. In addition to the larger
MAC extensions, other extensions can be built using the LSM to provide
specific changes to system operation when these tweaks are not available
in the core functionality of Linux itself.
The Linux capabilities modules will always be included. This may be
followed by any number of "minor" modules and at most one "major" module.
For more details on capabilities, see ``capabilities(7)`` in the Linux
man-pages project.
A list of the active security modules can be found by reading
``/sys/kernel/security/lsm``. This is a comma separated list, and
will always include the capability module. The list reflects the
order in which checks are made. The capability module will always
be first, followed by any "minor" modules (e.g. Yama) and then
the one "major" module (e.g. SELinux) if there is one configured.
Process attributes associated with "major" security modules should
be accessed and maintained using the special files in ``/proc/.../attr``.
A security module may maintain a module specific subdirectory there,
named after the module. ``/proc/.../attr/smack`` is provided by the Smack
security module and contains all its special files. The files directly
in ``/proc/.../attr`` remain as legacy interfaces for modules that provide
subdirectories.
.. toctree::
:maxdepth: 1
apparmor
LoadPin
SELinux
Smack
tomoyo
Yama
SafeSetID
ipe
landlock
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
LSM framework와 policy module
1-23Linux Security Module(LSM) framework는 새 kernel extension이 다양한 security check에 hook할 수 있게 합니다. 이름에 module이 들어가지만 loadable kernel module은 아닙니다.
extension은 build time에 `CONFIG_DEFAULT_SECURITY`로 선택하며 한 kernel에 여러 LSM이 build된 경우 boot time `security=...` kernel command line argument로 override할 수 있습니다.
주 사용자는 comprehensive security policy를 제공하는 Mandatory Access Control(MAC) extension입니다. SELinux, Smack, Tomoyo, AppArmor가 대표적입니다. core Linux에 없는 특정 system-operation 변경을 위한 작은 extension도 만들 수 있습니다.
Linux capabilities module은 항상 포함됩니다. 뒤에 여러 minor module과 최대 한 개 major module이 올 수 있습니다. capabilities 상세는 Linux man-pages의 `capabilities(7)`을 참조하십시오.
Active LSM과 process attribute
24-39active security module list는 `/sys/kernel/security/lsm`에서 읽습니다. comma-separated list이며 capability module을 항상 포함하고 check 수행 순서를 반영합니다.
순서는 capability가 항상 첫 번째, Yama 같은 minor module, 설정된 경우 SELinux 같은 major module입니다.
major security module의 process attribute는 `/proc/.../attr` special file로 접근하고 관리해야 합니다. module은 자기 이름의 subdirectory를 둘 수 있습니다. 예를 들어 Smack은 `/proc/.../attr/smack`에 special file을 둡니다.
`/proc/.../attr` 바로 아래 file은 subdirectory를 제공하는 module을 위한 legacy interface로 남습니다.
LSM usage 문서 목록
40-51| 문서 | 주제 |
|---|---|
| apparmor | AppArmor |
| LoadPin | LoadPin |
| SELinux | SELinux |
| Smack | Smack |
| tomoyo | Tomoyo |
| Yama | Yama |
| SafeSetID | SafeSetID |
| ipe | Integrity Policy Enforcement |
| landlock | Landlock |
Framework
index.rst:1-23LSM hook와 MAC extension 구성을 설명합니다.