現在位置: ホーム / セキュリティ ブログ / 「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)

問い合わせボタン

最新の記事
linux kernelの脆弱性( CVE-2017-7477 ) 2017年04月25日
linux kernelの脆弱性( CVE-2017-8106 ) 2017年04月25日
MySQLの脆弱性情報(Oracle Critical Patch Update Advisory April) 2017年04月24日
QEMUの脆弱性( CVE-2017-7980 ) 2017年04月24日
Oracle Javaの脆弱性(Oracle Critical Patch Update Advisory - April 2017) 2017年04月22日
Nessusの脆弱性(CVE-2017-7849, CVE-2017-7850) 2017年04月20日
OpenIDMに複数の脆弱性情報(CVE-2017-7589, CVE-2017-7590, CVE-2017-7591) 2017年04月19日
linux kernelの脆弱性( CVE-2017-7645 ) 2017年04月19日
LightDMに特権昇格の脆弱性 (CVE-2017-7358 ) 2017年04月19日
linux kernelの脆弱性( CVE-2017-7889 ) 2017年04月17日
GnuTLS の 脆弱性 (GNUTLS-SA-2017-3 : CVE-2017-7869 ) 2017年04月14日
wiresharkに複数の脆弱性(CVE-2017-7700, CVE-2017-7701, CVE-2017-7702, CVE-2017-7703, CVE-2017-7704, CVE-2017-7705, CVE-2017-7745, CVE-2017-7746, CVE-2017-7747, CVE-2017-7748 ) 2017年04月14日
linux kernelの脆弱性( CVE-2017-2618 ) 2017年04月14日
bind 9 に複数の脆弱性 ( CVE-2017-3136 , CVE-2017-3137 , CVE-2017-3138 ) 2017年04月13日
linux kernelの脆弱性( CVE-2017-7616, CVE-2017-7618 ) 2017年04月11日
Tomcatに複数の脆弱性 ( CVE-2017-5647, CVE-2017-5648, CVE-2017-5650, CVE-2017-5651 ) 2017年04月11日
linux kernelの脆弱性( CVE-2017-7286, CVE-2017-7319 ) 2017年04月11日
binutilsの脆弱性( CVE-2017-7614 ) 2017年04月10日
elfutilsに複数の脆弱性(CVE-2017-7607, CVE-2017-7608, CVE-2017-7609, CVE-2017-7610, CVE-2017-7611, CVE-2017-7612, CVE-2017-7613 ) 2017年04月10日
linux kernelの脆弱性( CVE-2017-2671 ) 2017年04月05日
Xenの脆弱性 ( XSA-212: CVE-2017-7228 ) 2017年04月05日
linux kernelの脆弱性( CVE-2016-10229 ) 2017年04月04日
linux kernelの脆弱性( CVE-2017-7374 ) 2017年04月01日
linux kernelの脆弱性( CVE-2017-2647 ) 2017年04月01日
linux kernelの脆弱性( CVE-2017-7308 ) 2017年03月30日
curlの脆弱性 ( CVE-2017-2628 ) 2017年03月30日
linux kernelの脆弱性( CVE-2017-7277 ) 2017年03月29日
ntpに複数の脆弱性(CVE-2017-6451, CVE-2017-6452, CVE-2017-6455, CVE-2017-6458, CVE-2017-6459, CVE-2017-6460, CVE-2017-6462, CVE-2017-6463, CVE-2017-6464 ) 2017年03月28日
linux kernelの脆弱性( CVE-2017-7273 ) 2017年03月28日
AppArmorの脆弱性( CVE-2017-6507 ) 2017年03月26日
linux kernelの脆弱性( CVE-2017-7261 ) 2017年03月25日
Sambaに共有以外のファイルにアクセスされる脆弱性(CVE-2017-2619) 2017年03月24日
Subscription-managerの脆弱性( CVE-2017-2663 ) 2017年03月22日
binutilsに複数の脆弱性( CVE-2017-6965, CVE-2017-6966, CVE-2017-6969, CVE-2017-7209 , CVE-2017-7210 , CVE-2017-7223, CVE-2017-7224, CVE-2017-7225, CVE-2017-7226, CVE-2017-7227 ) 2017年03月22日
linux kernelの脆弱性( CVE-2017-7187 ) 2017年03月21日
linux kernelの脆弱性( CVE-2017-6353 , CVE-2017-5986 ) 2017年03月21日
kernelの脆弱性( CVE-2017-7184 ) 2017年03月20日
pcreの脆弱性( CVE-2017-7186 ) 2017年03月20日
binutilsの脆弱性( CVE-2017-6965 , CVE-2017-6966 , CVE-2017-6969 ) 2017年03月19日
MySQL(MariaDB) 5.5/5.6のmysql clientの脆弱性( Riddle : CVE-2017-3305 ) 2017年03月18日
linux kernelの脆弱性( CVE-2017-6951 ) 2017年03月17日
Apache Struts2の脆弱性 ( CVE-2017-5638 ) 2017年03月15日
linux kernelの脆弱性( CVE-2017-6874 ) 2017年03月15日
tomcatに情報漏えいの脆弱性( CVE-2016-8747 ) 2017年03月14日
QEMUの脆弱性( CVE-2016-9603 ) (Xen: XSA-211) 2017年03月14日
lxcの脆弱性(CVE-2017-5985) 2017年03月10日
wgetの脆弱性(CVE-2017-6508) 2017年03月08日
linux kernelに特権昇格の脆弱性( CVE-2017-2636 ) 2017年03月08日
( PoC ) linux kernel特権昇格脆弱性( CVE-2017-6074 ) の暫定回避策の確認 2017年03月06日
linux kernelの脆弱性( CVE-2016-9083 , CVE-2016-9084 ) 2017年03月03日
linux kernelに複数の脆弱性( CVE-2017-6345 , CVE-2017-6346 , CVE-2017-6347 , CVE-2017-6348 ) 2017年03月01日
Katello/Foremanによる運用管理 (Part4) 2017年02月28日
util-linux / coreutils の脆弱性(CVE-2017-2616) 2017年02月24日
linux kernelの脆弱性( CVE-2017-6214 ) 2017年02月24日
linux kernelに特権昇格の脆弱性( CVE-2017-6074 ) 2017年02月23日
curlの脆弱性 ( CVE-2017-2629 ) 2017年02月22日
QEMUの脆弱性( CVE-2017-2620 ) (Xen: XSA-209) 2017年02月22日
Tomcatの脆弱性 ( CVE-2017-6056 ) 2017年02月21日
Katello/Foremanによる運用管理 (Part3) 2017年02月21日
OpenSSLの脆弱性 ( CVE-2017-3733 ) 2017年02月16日
最新の記事 - もっと...