[OSSを理解する]

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

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

IT Leadersは2012年5月に「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は商用アプリケーションサーバーの一部に含まれるようになってきており、商用利用も活発になっていくと予想されます。

公的認証済みの監査ツール「OpenSCAP」

 脆弱性のないシステムを開発するには、セキュリティの観点からのテストが不可欠です。テストを効率的に行うのに便利なのが監査ツールです。Webアプリケーションの監査ツール(侵入テストツール)としては、OWASP ZAP(The Open Web Application Security Project Zed Attack Proxy)が有名です。

 今回の鳥瞰図ではWebアプリケーションだけでなく、それを支えるシステムのセキュリティが適切に保たれているかをチェックするツール「OpenSCAP(https://www.open-scap.org/)」も追加しました。今後の利用拡大が見込まれるため、ここで紹介します。利用拡大の背景として「SCAP(The Security Content Automation Protocol)」という標準仕様があります。

 SCAPは米国政府機関のNIST(National Institute of Standards and Technology)が整備する、脆弱性の識別やセキュリティチェックリスト記法などの標準群です。例えば、脆弱性識別子として有名な「CVE(Common Vulnerabilities and Exposures)」もSCAP標準の一部です。SCAPの標準化により、脆弱性情報やセキュリティチェックのベストプラクティスが世界中で共有されるようになりました。

 OpenSCAPに話を戻すと、これはSCAP標準セキュリティチェックリストに対応したセキュリティ監査ツールです。監査ツール本体の開発とセキュリティチェックリストの両方が整備されています。NISTによるSCAP標準適合認定も受けていますので、他のコミュニティによって開発されたチェックリストを読み込むこともできます。Red Hat系ディストリビューションのほか、UbuntuやOpenSUSEにも取り込まれており、簡単に使うことができます。

 実際には、まず目指すセキュリティレベルに対応したチェックリストを選択し(例えば国防向けのチェックリスト)、コマンドラインからコマンドを叩くだけです。これでチェックリストに対応したテストが自動実行され、レポートが作成されます。図3にCentOS 7上で国防向けのセキュリティチェックリストを実行した結果を示しました。多くをパスしていないことが分かります(ちなみにSELinuxが有効になっているかどうかもチェックされます)。

図3 OpenSCAPのレポートの例
拡大画像表示

 ここで「failed」と出たチェック項目がなくなるまで設定を固めていくことで、目指すセキュリティレベルを達成できるのです。OpenSCAPの今後の展開としては、チェックリストの整備が進んでいくとともに、コンテナの検査への応用の検討が進んでおり、適用範囲がますます広がっていくと予想されます。

 以上、セキュリティ分野で注目するOSSを紹介しました。海外ではこれらの開発活動や利用が活発ですが、日本国内では紹介が進んでおらず、活用が進んでいません。日本特有のニーズを踏まえ、どのように利用と技術面で成長させていくか、ウォッチしていく必要があります。このような最新動向の情報交換の場として、「OSSセキュリティ技術の会(http://www.secureoss.jp/)」というコミュニティが設立されました。最新動向をキャッチアップするには、こういったコミュニティに参加していくのが得策でしょう。

筆者プロフィール

中村 雄一
日本OSS推進フォーラム クラウド技術部会メンバー
日立製作所 OSSソリューションセンタ 主任技師

 

バックナンバー
OSSを理解する一覧へ
関連記事

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

PAGE TOP