現在位置: ホーム / OSSブログ / linux kernel-4.2時点でのLinux Security Moduleの動向

linux kernel-4.2時点でのLinux Security Moduleの動向

linux kernelも4.2になって新機能の追加が安定してきました。ここら辺で、Linux Kernel内部の セキュリティ実装になっているLinux Security Module(LSM)について、現時点での動向をまとめてみます。

こんにちは。9月からSIOSに戻った面です。
過去にSIOSでSELinuxやLIDSなど、強制アクセス制御を専門にやっておりました。

また、AntiVirusやSIMも守備範囲になります。宜しくお願いします。


ここでは、セキュリティ系、特にLinux Kernelに関わるセキュリティについてまとめていきます。

まず最初に枕として、2015年9月時点で最新のLinux Kenel(linux-4.2)に含まれる
Linux Security Modulesについて整理し、それぞれのモジュールの内容と現状
について書いていきたいと思います。


 


  • LSMとは

LSMはLinux Securitu Moduleの略で、linux kernel-2.6が開発された際に、Linux Kernel内にセキュリティ実装を盛り込むためのものとして組み込まれたフレームワークです。

これにより、Linux Kernelでのセキュリティ実装を単一のものだけに縛るのではなく、様々なモデル・実装をモジュール形式で組み込めるようになりました。
LSMに関しての簡単な説明は、
https://www.ipa.go.jp/security/fy20/reports/tech1-tg/1_05.html
で述べていますので参考にして下さい。
 
  • linux kernel-4.2に含まれるLSMについて

Linux Kernelが2.6から現在の4.2に進化してくる過程で、Vanilla Kernelに同梱されているLSMモジュールも多数になりました。またその過程で、Vanilla Kernelから外されたものもいくつか有ります。現時点(4.2)でVanilla Kernelに含まれるモジュールですが、実際にlinux kernel-4.2をダウンロードしてKrenelオプションを見てみると、下記のようになっています。

"make menuconfig"結果
  │ │    -*- Enable access key retention support                         │ │
  │ │    [*]  Enable register of persistent per-UID keyrings             │ │
  │ │    [*]  Large payload keys                                         │ │
  │ │    <*>  TRUSTED KEYS                                               │ │
  │ │    -*-  ENCRYPTED 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)  │ │
  │ │    (65535) Low address space for LSM to protect from user allocation│ │
  │ │    [*] NSA SELinux Support                                          │ │
  │ │    [*]  NSA SELinux boot parameter                                 │ │
  │ │    (1)    NSA SELinux boot parameter default value                 │ │
  │ │    [*]  NSA SELinux runtime disable                                 │ │
  │ │    [*]  NSA SELinux Development Support                             │ │
  │ │    [*]  NSA SELinux AVC Statistics                                  │ │
  │ │    (1)  NSA SELinux checkreqprot default value                      │ │
  │ │    [ ]  NSA SELinux maximum supported policy format version         │ │
  │ │    [ ] Simplified Mandatory Access Control Kernel Support           │ │
  │ │    [ ] TOMOYO Linux Support                                         │ │
  │ │    [ ] AppArmor support                                             │ │
  │ │    [ ] Yama support                                                 │ │
  │ │    [*] Integrity subsystem                                          │ │
  │ │    [*]  Digital signature verification using multiple keyrings      │ │
  │ │    [*]    Enable asymmetric keys support                            │ │
  │ │    [*]  Enables integrity auditing support  (NEW)                   │ │
  │ │    [*]  Integrity Measurement Architecture(IMA)                     │ │
  │ │            Default template (ima-ng (default))  --->                │ │
  │ │            Default integrity hash algorithm (SHA1 (default))  --->  │ │
  │ │    [*]    Appraise integrity measurements                           │ │
  │ │    [*]      Require all keys on the .ima keyring be signed          │ │
  │ │    [ ]        Load X509 certificate onto the '.ima' trusted keyring │ │
  │ │    [*]  EVM support                                                 │ │
  │ │    [*]    FSUUID (version 2) (NEW)                                  │ │
  │ │        Default security module (SELinux)  --->                      │ │



 

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

現時点(linux-4.2時点)でVanilla Kernelに組み込まれているセキュリティモジュールを簡単に示します。

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

細かい内容に関してはWeb/書籍などで数々出回っていますので割愛します。CentOS6系に関してはLPI-Japanの「Linuxセキュリティ標準教科書」にまとまっています。

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


次回以降で、最新の情報と細かい内容を説明します。

* AppArmor

AppArmorはSELinuxの「ラベルセキュリティ」と異なり「パス名によるセキュリティ」を実装したものになります。古くはSuSE LinuxやUbuntuで実装されているものになっています。
細かい内容に関しては、次回以降で説明します。

* 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 セキュリティ標準教科書

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

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