HOME情報セキュリティ資料・報告書・出版物調査・研究報告書情報セキュリティ技術動向調査(2008 年下期)

本文を印刷する

情報セキュリティ

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

4 セキュアOSの動向

面 和毅

1 OpenSolarisの新セキュリティ機構(FMAC)

1.1 FMAC(Flexible Mandatory Access Control)

  FMAC(Flexible Mandatory Access Control)は、FlaskアーキテクチャとType EnforcementモデルをOpenSolaris上に移植したものになる。
  通常のSolarisでは"Trusted Extentions"と呼ばれるパッケージを導入する事により、セキュリティの強化をはかることができる。今回OpenSolaris上でFMACが採用される事により、OpenSolaris上でも現行のSolaris上のセキュリティと同等のレベルの物が実現できるようになる。

1.2 Type Enforcement モデルの概要

  OS上でのセキュリティモデルを考える際には、以下の4つの要素を定義する。

  •   アクセスの主体となる「サブジェクト(通常はプロセスなど)」
  •   アクセス対象となるシステムリソース「オブジェクト(ファイルやソケットなど)」
  •   システムリソースの操作となる「アクセス(読み込みや書き込み、生成など)」
  •   アクセスが許可されるか否かを判定する「リファレンスモニタ」

  これらを用いて「あるサブジェクトがオブジェクトに対してどういうアクセスが「許可」されるか」という形でアクセス制御が行われる。この際に、サブジェクト/オブジェクトとは何か、アクセスの許諾を判定する際に使用される要素は何か、などの考慮が必要になる。そこで、これらを決定する指針となる「セキュリティポリシーモデル」が必要になる。
  セキュリティポリシーモデルに関しては様々なものがあるが、Type Enforcementモデルでは

  •   サブジェクトには「ドメイン」を付与する
  •   全てのシステムリソース(プロセスを含む)に「タイプ」を付与する
  •   ドメインとタイプの関係(書き込み、読み込みなど)をあらかじめ定義しておき、その関
      係が記載されている物だけ「許可」となる。明示的に関係を定義されていない物は全
      て「拒否」となる。
というルールに従う。
  このType EnforcementモデルをLinux上で実装した物が、「SELinux」と呼ばれる実装で、現在はRed Hat Linuxなどに標準で搭載されているものになる。

1.3 Flask アーキテクチャの概要

また、SELinux では、様々なセキュリティポリシーをサポートすることを目標に、その設計に「Flask」と呼ばれるアーキテクチャを採用している。このFlask アーキテクチャは

  •   セキュリティポリシーに基づいて判断を下すロジック
  •   セキュリティポリシーの判断結果を強制的に実施するメカニズム(オブジェクトマネージャ)
から構成されており、セキュリティポリシーを変更するとオブジェクトマネージャの働きを変更する事が出来る。
  Type Enforcementモデル及びFlaskアーキテクチャに関しては、「2004 情財第 736 号 2005 年 3 月 アクセス制御に関するセキュリティポリシーモデルの調査 報告書」1に詳しく記載されている。

1.4 プロジェクトスケジュール

  OpenSolaris上での実装「FMAC」は、Linuxでの実装の「SELinux」が使いづらいとユーザ側から認識されてしまっている事を教訓とし、ユーザビリティを向上したシステムを目指している。
  FMACのプロジェクト自体は、2008年2月14日からスタートしており、概ね下記のスケジュールに従ってプロジェクトが動いている。

  •   Projectの提案 02/14/2008
  •   Projectのサイト作成 03/04/2008
  •   プレスリリース 03/13/2008
  •   Alpha 1ソースコード 05/02/2008
  •   システムコールサポート 06/20/2008
  •   プロセスコンテキストサポート 07/10/2008
  •   Alpha 2ソースコード 09/02/2008
  •   Alpha 3ソースコード 10/30/2008

1.5 プロジェクトステータス

  2008年10月時点で、下記のユーティリティ/インターフェースが移植されている。

ユーティリティ

  •   checkpolicy
  •   loadpolicy
  •   getenforce
  •   setenforce
  •   setfiles
  •   Pcon
  •   getfilecon
  •   setfilecon
  •   newrole
  •   fmacsetup

インターフェース

  •   security_load_policy()
  •   security_compute_av()
  •   security_check_context()
  •   security_getenforce(),
  •   security_setenforce()
  •   is_fmac_enabled()
  •   getcon(), getpidcon()
  •   getexeccon(), setexeccon()
  •   getprevcon()
  •   freecon()

  また、ZFS/TEMPFSに対してのファイルセキュリティラベルとアクセス制御が出来るようになっている。
  このように、FMAC on OpenSolarisプロジェクトは着々と開発が進んでいる。このFMACが正式版になった暁には、SELinuxの経験のあるエンジニアであればポリシ記述方法等はほとんど代わらないため、比較的導入しやすいセキュリティオプションとなるであろう。

2 SELinuxの動向

2.1 Permissive Domain

  これまでSELinuxではシステム全体でEnforcing/Permissiveを切替えるようになっていた。そのため、特定のサービス用にSELinuxのポリシを追加した際でも、システム全体のモードを変更するため、膨大なログが出力され、かつデバッグに手間が掛かっていた。
  しかし新しいSELinuxでは、特定のドメインのみをPermissiveにする事が出来るようになった。これにより、特定のドメイン用のポリシを作成した際に、そのドメインのみをPermissiveモードにする事が出来るため、ポリシのデバッグが簡単に行えるようになっている。
  このPermissiveドメインはFedora9から使用可能となっており、

# semanage permissive -a "ドメイン名"

でドメイン単位でPermissiveモードにする事が出来る。

2.2 組み込みシステムへの取り組み

  SELinuxを用いたシステムはこれまで一般的なOSのセキュリティ強化として注目されてきた。また、他のいわゆるセキュアOS製品に関しても、DMZ等のセキュリティを確保するべきシステムの強化、また軍事関係などの特殊なセキュリティが要求される場所で使用されてきた。
  しかし、今年になってSELinuxやセキュアOSを用いて組み込み系システムを保護しようと言う動きが出て来ている。Linuxだけに関しても、オタワで行われたLinuxWorldでは

- SELinux
        SELinux for Consumer Electronics Devices
        (日立ソフト 中村氏)
- Smack
        Smack in Embedded Computing
        (Casey Schaufler氏)

といったように、セキュアOSで保護する対象を組み込み系まで広げて来ている。
組み込み系では一般的なOSと違い、元々特殊なインターフェースを使用しているため、セキュアOSのポリシに起因する使い勝手の変更等が意識されにくいことから、比較的受け入れられやすいと思われる。

以上


  1. 「アクセス制御に関するセキュリティポリシーモデルの調査」,2005年 3月
    http://www.ipa.go.jp/security/fy16/reports/access_control/policy_model.html
目次へ
次へ