現在位置: ホーム / セキュリティ ブログ / 「linux kernel-4.9」でのLSMモジュールについて

「linux kernel-4.9」でのLSMモジュールについて

12/11/2016に、linux kernelの最新版である「kernel 4.9」がリリースされました。このリリースは「過去最大のリリース」と銘打たれており、様々な新機能が加わっています。このリリースを機に、今一度LSMを用いてkernelの機構として導入されている各セキュリティモジュールについて、簡単に動向などをまとめてみます。

こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面です。

12/11/2016に、linux kernelの最新版である「kernel 4.9」がリリースされました。このリリースは「過去最大のリリース」と銘打たれており、様々な新機能が加わっています。

このリリースを機に、今一度LSMを用いてkernelの機構として導入されている各セキュリティモジュールについて、簡単に動向などをまとめてみましょう。

この記事は、こちらのアップデート版になります。

 


「linux kernel-4.9」でのLSMモジュールについて

linux kernel-4.9時点でのLSMモジュールにどのようなものがあるかを見てみます。

kernel自体は、所謂Vanilla Kernel(https://www.kernel.org/pub/linux/kernelからダウンロードできるもの)を使用しています。

実際にlinux kernel-4.2をダウンロードして"make menuconfig"でオプションを見てみると、下記のようになっています。

  │ │      -*- Enable access key retention support                                     │ │  
  │ │      [ ]   Enable register of persistent per-UID keyrings                        │ │  
  │ │      < >   TRUSTED KEYS                                                          │ │  
  │ │      {M}   ENCRYPTED KEYS                                                        │ │  
  │ │      [ ]   Diffie-Hellman operations on retained keys                            │ │  
  │ │      [*] Restrict unprivileged access to the kernel syslog                       │ │  
  │ │      [*] Enable different security models                                        │ │  
  │ │      -*- Enable the securityfs filesystem                                        │ │  
  │ │      -*- Socket and Networking Security Hooks                                    │ │  
  │ │      [*]   XFRM (IPSec) Networking Security Hooks                                │ │  
  │ │      -*- Security hooks for pathname based access control                        │ │  
  │ │      [ ] Enable Intel(R) Trusted Execution Technology (Intel(R) TXT)             │ │  
  │ │      (65536) Low address space for LSM to protect from user allocation           │ │  
  │ │      [*] Harden memory copies between kernel and userspace                       │ │  
  │ │      [ ]   Refuse to copy allocations that span multiple pages                   │ │  
  │ │      [*] NSA SELinux Support                                                     │ │  
  │ │      [ ]   NSA SELinux boot parameter                                            │ │  
  │ │      [ ]   NSA SELinux runtime disable                                           │ │  
  │ │      [*]   NSA SELinux Development Support                                       │ │  
  │ │      [*]   NSA SELinux AVC Statistics                                            │ │  
  │ │      (1)   NSA SELinux checkreqprot default value                                │ │  
  │ │      [ ] Simplified Mandatory Access Control Kernel Support                      │ │  
  │ │      [*] TOMOYO Linux Support                                                    │ │  
  │ │      (2048) Default maximal count for learning mode                              │ │  
  │ │      (1024) Default maximal count for audit log                                  │ │  
  │ │      [ ]   Activate without calling userspace policy loader.                     │ │  
  │ │      (/sbin/tomoyo-init) Location of userspace policy loader                     │ │  
  │ │      (/sbin/init) Trigger for calling userspace policy loader                    │ │  
  │ │      [*] AppArmor support                                                        │ │  
  │ │      (1)   AppArmor boot parameter default value                                 │ │  
  │ │      [*]   Enable introspection of sha1 hashes for loaded profiles               │ │  
  │ │      [*]     Enable policy hash introspection by default                         │ │  
  │ │      [ ] Pin load of kernel files (modules, fw, etc) to one filesystem           │ │  
  │ │      [*] Yama support                                                            │ │  
  │ │      [*] Integrity subsystem                                                     │ │  
  │ │      [ ]   Digital signature verification using multiple keyrings                │ │  
  │ │      [*]   Enables integrity auditing support                                    │ │  
  │ │      [ ]   Integrity Measurement Architecture(IMA)                               │ │  
  │ │      [ ]   EVM support                                                           │ │  
  │ │          Default security module (Unix Discretionary Access Controls)  --->      │ │  

それぞれのセキュリティモジュールの簡単な紹介


SELinux

SELinuxは(良くも悪くも)既に広く知られている通り、NSAが開発したセキュリティモジュールです。

細かい内容に関してはWeb/書籍などで数々出回っており、このブログでも何度も紹介してますので割愛します。CentOS6系に関してはLPI-Japanの「Linuxセキュリティ標準教科書」にまとまっています。


AppArmor

AppArmorはSELinuxの「ラベルセキュリティ」と異なり「パス名によるセキュリティ」を実装したものになります。古くはSuSE LinuxやUbuntuで実装されているものになっています。

AppArmorに関しては、こちらのDockerと組み合わせた記事でも取り上げています。


SMACK

SMACK(Simplified Mandatory Access Control Kernel)は2008年頃、LSMに取り入れられているモジュールで、簡単なMACを提供します。

SMACKの概略は
https://www.ipa.go.jp/security/fy20/reports/tech1-tg/1_05.html
で触れています。


TOMOYO Linux

TOMOYO Linuxは日本の開発者によって開発された、「ポリシーの自動学習機能」を備えた強制アクセス制御実装になります。


YAMA

YAMAはDAC(任意アクセス制御)を拡張して、システム全体を代表的なセキュリティ攻撃から守るためのモジュールになります。細かい内容に関しては今後、本ブログで提供していきます。


Integrity Subsystem(IMA/EVM)

TCG(Trusted Computing Group)による仕様に基づいて開発されたTPM(Trusted Platform Module)と呼ばれるチップを用いた、完全性を担保するためのシステムになります。
IMA/EVMの概要については
http://www.ipa.go.jp/security/fy23/reports/tech1-tg/a_02.html
に、その時点の情報をまとめてありますが、今後、最新の情報についても本ブログで提供していきます。

[参考]

LPI Linux セキュリティ標準教科書

http://www.lpi.or.jp/linuxtext/security.shtml

IPA 情報セキュリティ技術動向調査(2008 年上期)

https://www.ipa.go.jp/security/fy20/reports/tech1-tg/1_05.html

IPA 情報セキュリティ技術動向調査(20011 年上期)

http://www.ipa.go.jp/security/fy23/reports/tech1-tg/a_02.html

OSSよろず相談室

サイオスOSSよろず相談室(2)

問い合わせボタン

最新の記事
Ansibleに複数の脆弱性(CVE-2017-7466, CVE-2017-7473, CVE-2017-7481) 2017年07月24日
Oracle Javaの脆弱性(Oracle Critical Patch Update Advisory - July 2017) 2017年07月21日
MySQLの脆弱性情報(Oracle Critical Patch Update Advisory Jul) 2017年07月21日
Linux Kernelの脆弱性(CVE-2017-11472, CVE-2017-11473) 2017年07月21日
wiresharkに複数の脆弱性(CVE-2017-11406, CVE-2017-11407, CVE-2017-11408, CVE-2017-11409, CVE-2017-11410, CVE-2017-11411 ) 2017年07月20日
FreeRADIUSに複数の脆弱性 ( CVE-2017-10978, CVE-2017-10979, CVE-2017-10980, CVE-2017-10981, CVE-2017-10982, CVE-2017-10983, CVE-2017-10984, CVE-2017-10985, CVE-2017-10986, CVE-2017-10987, CVE-2017-10988 ) 2017年07月18日
PHPの脆弱性( CVE-2017-11362 ) 2017年07月17日
QEMUの脆弱性( CVE-2017-11334 ) 2017年07月17日
linux kernelの脆弱性( CVE-2017-11176 ) 2017年07月16日
Apache httpd に複数の脆弱性 ( CVE-2017-9788, CVE-2017-9789 ) 2017年07月14日
Sambaに権限昇格の脆弱性(CVE-2017-11103) 2017年07月13日
PHPに複数の脆弱性(CVE-2017-11142, CVE-2017-11143, CVE-2017-11144, CVE-2017-11145, CVE-2017-11146, CVE-2017-11147, CVE-2016-10397) 2017年07月11日
QEMUの脆弱性( CVE-2017-9524 ) 2017年07月09日
Xenの脆弱性 ( XSA-216, XSA-217, XSA-218, XSA-219, XSA-220, XSA-221, XSA-222, XSA-223, XSA-224, XSA-225) 2017年07月09日
ncursesに関しての複数の脆弱性(CVE-2017-11112, CVE-2017-11113) 2017年07月09日
systemdの脆弱性( CVE-2017-1000082 ) 2017年07月09日
libgcryptの脆弱性( CVE-2017-7526 ) 2017年07月06日
linux kernelの脆弱性( CVE-2017-8797 ) 2017年07月03日
bind 9 に複数の脆弱性 ( CVE-2017-3142 , CVE-2017-3143 ) 2017年06月30日
systemd-resolvedの脆弱性(CVE-2017-9445) 2017年06月29日
最新の記事 - もっと...