セキュリティ
(原文はこちら)
セキュリティは複雑で難しいテーマであり、さまざまなレベルで取り組む必要があります。このページでは、主に強制アクセス制御 (MAC: mandatory access control)、すなわちシステムのいかなるコンポーネントも、許された権限を越えて動作することがないようなセキュリティ制御について述べます。MAC の仕組みの最大の価値は、システム コンポーネントが内部のバグによって危険にさらされたときに顕在化します。MAC システムが適切に設定されていれば、危険にさらされたアプリケーションは、アタッカーにシステム全体を制御させません。SELinux は既にこの方法で脆弱性を軽減していると主張しています。
同じく重要なのが、カーネル自体の整合性の保全です。最近の vmsplice() の脆弱性に見られるように、これも大変な課題です。私達は有能で意欲的なアタッカーと対決しながら、大きく複雑なソース コードを保守しています。次期カーネルは、バッファ オーバーランの検出など、脆弱性回避のための技術手段の使用への関心の高まりを反映しそうです。しかし、何と言っても、旧来のコード監査やコード レビューに代わるものはありません。
内容 |
AppArmor
AppArmor は、Novell によって取得され、オープン ソース化された強制アクセス制御メカニズムです。SELinux と同様、AppArmor も、プログラムにはあらゆるセキュリティの穴が存在するという考えでプログラムの動きを制御します。ただし AppArmor が SELinux と異なっているのは、より小さな脅威の可能性に対応する点と、管理方法を非常に単純化しようとしている点です。
予報: AppArmor がメインライン カーネルに入るのは難しい状況になっています。パッチによって使用されるテクノロジ - アクセス制御ポリシーの設定にパス名を使用するなど - は、それほど一般的ではありません。Linus Torvals は、このセキュリティ アプローチは Linux カーネル内に入れることができると明言しましたが、AppArmor に取り組んでいた開発者の多くはその後ここから離れ、他の作業に移ってしまいました。
2.6.31 の時点で、AppArmor への関心はかなり低くなっているらしく、今後実施される作業はほとんどありません。TOMOYO Linux (同様アプローチのモジュール) は先にメインラインに入ることができました。何かが変わらなければ、AppArmor は標準カーネルの一部になることはないでしょう。
詳細情報:
- The AppArmor debate begins (April, 2006)
- Kernel Summit 2006: Security (July, 2006)
SMACK
Simplified Mandatory Access Control Kernel (SMACK) は、強制アクセス制御を簡単に実装するために作成されたセキュリティ モジュールです。SELinux と同じく SMACK は、プロセス、ファイル、その他のシステム オブジェクトにラベルを付け、ラベルの組み合わせによってどのような種類のアクセスが許可されるかを規定したルールを実行します。SELinux と異なるのは、SMACK のほうが管理しやすく設計されている点です。
予報: SMACK は 2.6.25 カーネルにマージされました。
詳細情報:
- Smack for simplified access control (August, 2007)
- SMACK meets the One True Security Module (October, 2007)
TOMOYO Linux
TOMOYO Linux は AppArmor に類似した強制アクセス制御フレームワークです。AppArmor と同じく、パス名の使用と、一部の単純化されたセキュリティ アプローチを批判されてきました。
予報: TOMOYO Linux は 2.6.30 カーネルにマージされました。
詳細情報:
- TOMOYO Linux and pathname-based security (April, 2008)
TALPA / fsnotify
TALPA はマルウェアのスキャンをサポートするメカニズム案です。つまり、ファイルを開いたり読み込んだりするプロセスのすべての試みはカーネルによって中断され、ユーザースペース プロセスが関連ファイルのスキャンを完了して有害なものがないと確認できるまで待機させられます。Linux システムがマルウェアの影響を直接受けることはほとんどありませんが、脆弱なシステムにマルウェアを送り込むために Linux システムが利用される可能性は考えられます。
予報: TALPA は議論の的になる開発です。多くの開発者はそのコストに疑問を持ち、TALPA が提供するセキュリティは幻想でしかないと感じています。一方多くの企業ポリシーはこの種のスキャニングのサポートを必要としており、現在 Linux上でこのようなスキャニングを実行している商品は、非常に問題の多い方法でこれを実現しています。TALPA がマージされれば、ベンダーはこのスキャニング機能を (求めている人々に) 提供しやすくなるでしょう。
これをマージするチャンスを増やすために、"fanotify" という新しい名前になり、汎用的なカーネル内のファイルシステム通知メカニズムのクリーンアップに役立つよう再生されました。この多くの開発者は、この方法に満足しているようですが、いくつか問題も残っています。2.6.30 へのマージは難しそうですが、2.6.31 か 2.6.32 であれば可能でしょう。
詳細情報:
- Kernel-based malware scanning (December, 2007)
- The TALPA molehill (August, 2008)
- TALPA strides forward (August, 2008)
クレデンシャル レコード (Credential records)
クレデンシャル レコード パッチは、プロセスのクレデンシャル情報をすべて 1 つの ストラクチャに統合し、分離しようとします。クレデンシャル情報とは、プロセスがシステム内の他のオブジェクトに対してどのように動作できるかを説明する情報です。この変更により、特にプロセスが特権的な操作を実行している状況で、よりセキュアなシステムが実現できますが、それほどユーザービジブルではありません。クレデンシャル レコードは、FS-Cache などの開発にも必要とされています。
予報: このクレデンシャル パッチは 2.6.29 カーネルにマージされました。
詳細情報:
- Credential records (September, 2007)
整合性の測定
ここ 2 年ほどの間、IBM は、整合性評価パッチ セットを作成してきました。これらのパッチは、多くのシステムに内蔵されているトラステッド プラットフォーム モジュール (TPM) チップを使用して、システム ファイルが改ざんされていないことを確認し、ローカルのソフトウェア構成のリモート検証を行い、さまざまなレベルの整合性確認とアクセスを実装します。このコードは、良いもの (改ざんを検出し、それに対処できるシステム) にも、それほど良くないもの (DRM や ロックされたシステム) にも使用できます。
予報: この整合性管理コードは 2.6.30 カーネルにマージされました。
詳細情報:
- The integrity measurement architecture (May, 2005)
- Some trusted computing security modules (November, 2005)
- Integrity management in the kernel (March, 2007)
サンドボックス (Sandboxing)
「サンドボックス」とは、ほとんどのシステム リソースにアクセスできないような高度に制限された環境で特定のプログラムを実行することです。Java 仮想マシンをある種のサンドボックスとして実行することもできます。特にサンドボックスの使用は、安全な方法で任意の Web サイトのコードを実行する必要のある Web ブラウザー開発者の関心を集めています。
サンドボックスについては、最近多くのアプローチが提案されています。たとえば、Google の Native Client、SELinux ベースのアプローチ、現在の Linux カーネルに内蔵されている原始的な「セキュア コンピューティング」の変更、および ftrace フレームワークを使用したシステムコールなどです。
予報: ここで予報をすることは無謀でしょう。効果的なサンドボックスは難しく、新しいセキュリティ テクノロジをカーネルに入れるには、常に高いハードルがあります。この問題を 2009 年内に解決できる見込みはないでしょう。
詳細情報:
- Securely renting out your CPU with Linux (January, 2005)
- Seccomp and sandboxing (May, 2009)
- Google's Native Client (June, 2009)

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.



