[OSSを理解する]

セキュリティ分野における注目OSSとは?─OSS鳥瞰図【第5回】

2017年6月14日(水)中村 雄一(日本OSS推進フォーラム クラウド技術部会)

IT Leadersは2012年5月にオープンソースソフトウェア(OSS)のカオスマップ「OSS鳥瞰図」を作成・公開した。様々あり多岐にわたるOSSを鳥の目で俯瞰的に理解できるように、という意図で作成したものだ。しかしOSSの進化は急ピッチである。そこに問題意識を持った日本OSS推進フォーラム クラウド技術部会が完全リニューアルし、「OSS鳥瞰図2017年α版」を作成した。今回はセキュリティにスポットを当てる。

 オープンさとセキュリティ。一見、相反するようですが、セキュリティ領域には様々なOSSが存在します。2017年度版のOSS鳥瞰図(http://ossforum.jp/node/1332)における「セキュリティ」カテゴリでは、エンタープライズ用途で注目すべきOSSを厳選してリストアップしています。今回はその中の認証・アクセス管理カテゴリから強制アクセス制御のSELinux、AppArmor、および認証サーバーKeycloakを、アンチウィルス/脆弱性管理からOpenSCAPを紹介します。

コンテナ環境で必須の強制アクセス制御:SELinuxとAppArmor

 SELinuxとAppArmorはいずれも、Linuxのカーネルに「強制アクセス制御」と呼ばれる機能を追加するモジュールです。従来のアクセス制御は、ファイルパーミッションのようにファイル所有者が勝手にパーミッション設定でき、またLinuxで最上位かつ広範なroot権限を持つユーザー(やプロセス)はそれを無視できるため、「任意アクセス制御」と呼ばれていました。強制アクセス制御では、セキュリティポリシー(AppArmorではプロファイルと呼ばれる)に従い、全てのプロセスの動作を厳しく制限し、仮に何らかの脆弱性があったとしても被害を最少限にします。そのためroot権限を持つプロセスであっても制限は回避できず、必ずポリシーやプロファイル設定に従わなければなりません。

 名前がややこしいですが、SELinuxはLinuxディストリビューション(OSそのもの)ではないことに注意して下さい。SELinuxはRed Hat系ディストリビューションに、AppArmorはUbuntuやSUSE Linuxに、それぞれ2000年代後半とかなり以前から標準で取り込まれています。ところが「設定が難しい」というイメージが先行したため、実用段階ではシステム構築時に無効にされてきました。しかし昨今では無効にするリスクが日に日に高まっており、また仮想化環境のセキュリティを担保する前提として用いられるため、今回の鳥瞰図に新たに取り込みました。

図1 コンテナ環境でのSELinuxとAppArmor(強制アクセス制御)の効果
拡大画像表示

 特に軽量の仮想環境である「コンテナ」技術が広がる中で、強制アクセス制御は欠かせません(図1)。コンテナはLinuxカーネルを共用しますので、脆弱性があるとあるコンテナが別のコンテナを破壊したり、ホストOSのファイルを破壊できてしまうからです。強制アクセス制御を有効にすることで、コンテナから別のコンテナのファイルへのアクセスやホストOSのファイルなどへのアクセスは全てチェックされ、違反するものをブロックできます。

 以前は強制アクセス制御の設定を多く記述しないとSELinuxやAppArmorを使うことができませんでしたが、最近はLinuxディストリビューション側で設定が事前に十分用意されるようになっており、追加設定が必要なケースが激減しています。それだけ使いやすくなっているわけですが、習慣的に無効にしてしまわないように注意が必要です。

マイクロサービス時代のシングルサインオン「Keycloak」

 認証分野のOSSとして採用が急拡大しており、日本OSS推進フォーラムでも注目しているOSSが「Keycloak(http://www.keycloak.org/)」です。Keycloakは2013年にApache License Version 2.0にて初めて公開された、比較的新しいOSSです。主な機能は、図2に示すような、いわゆる「シングルサインオン(SSO)」です。

図2 Keycloakの主な機能
拡大画像表示

 SSOの説明は不要だと思われますが、利用者は複数あるWebアプリケーションやサービスをまたがって使う場合に、一つのログインIDだけで済むようになります。例えばあるサービスにログインすれば、他のサービスにはログインなしでアクセスできます。Webアプリケーションやサービスの開発者から見ると、ログイン認証に関することをKeycloakに任せることができ、実装が楽になります。

 Keycloakの構成要素は図の緑色の部分で、主要要素は「Keycloakサーバー」です。SAMLやOpenID Connect、LDAPのような標準化されたプロトコルをサポートし、Webアプリケーションやディレクトリサーバー、外部の認証サーバーとやり取りして認証を行います。「アダプタ」はWebアプリをKeycloakサーバーと繋ぐために使うライブラリです。「proxy」は既存のWebアプリに手を加えずにKeycloakサーバーと繋ぐ際に使うものです。

 とはいえ、これらの機能はSSO製品としてはベーシックなもの。Keycloakのユニークな点は、(1) 最新の認証用プロトコルである「OpenID Connect」の公式接続試験のすべて要件をパスした数少ない実装である、(2) KeycloakサーバーがREST APIで管理できるなど、広がりつつあるマイクロサービスを意識したアーキテクチャになっている、といった点が挙げられます。Keycloakは商用アプリケーションサーバーの一部に含まれるようになってきており、商用利用も活発になっていくと予想されます。

この記事の続きをお読みいただくには、
会員登録(無料)が必要です
  • 1
  • 2
バックナンバー
OSSを理解する一覧へ
関連キーワード

OSS / カオスマップ / Linux / Red Hat / SUSE / Ubuntu

関連記事

トピックス

[Sponsored]

セキュリティ分野における注目OSSとは?─OSS鳥瞰図【第5回】IT Leadersは2012年5月にオープンソースソフトウェア(OSS)のカオスマップ「OSS鳥瞰図」を作成・公開した。様々あり多岐にわたるOSSを鳥の目で俯瞰的に理解できるように、という意図で作成したものだ。しかしOSSの進化は急ピッチである。そこに問題意識を持った日本OSS推進フォーラム クラウド技術部会が完全リニューアルし、「OSS鳥瞰図2017年α版」を作成した。今回はセキュリティにスポットを当てる。

PAGE TOP