SELinuxは従来のLinuxのアクセス制御と異なり、rootに全権を与えないことで万が一システムに侵入された場合でも被害を最小限に抑えることを可能にするものだ。SELinuxのアクセス制御はLSMとSELinuxモジュールによって実現している。図3は、SELinuxのアクセス制御の流れだ。SELinuxは、以下の流れでアクセス制御を行う(文中の番号は、図3の番号と対応)。
まず、従来のLinuxと同様に、プロセスがLinuxカーネルに対しアクセス要求を行い、パーミッションチェックを実行する(1、2)。従来のLinuxでは、不正にroot権限が奪われるとパーミッションチェックを回避し、リソースにアクセスできてしまう。SELinuxでは従来のパーミッションチェックに加え、LSMがSELinuxモジュールにセキュリティチェックを依頼することで、この問題を回避できる(3)。依頼を受けたSELinuxモジュールは、セキュリティポリシーファイルを参照することでアクセスの妥当性を判断する(4)。SELinuxモジュールのセキュリティチェックの結果はLSMへ送信され、アクセスが許可されている場合、目的のリソースにアクセスできる仕組みだ(5、6)。
この場合、たとえroot権限が奪われてもSELinuxモジュールのセキュリティチェック機能が働くため、被害を最小限に留めることができるわけだ。SELinuxモジュールの詳細については、第2回で詳しく解説しよう。
SELinuxのメリット/デメリット |
SELinuxを導入した場合のメリットとデメリットをまとめるとリスト1のようになる。
リスト1 SELinux導入のメリット・デメリット |
メリット ・パッチ適用に要する人的リソースの削減 ・システム構築コストの削減 ・導入が比較的容易 ・高信頼性/可用性システムの構築 ・他のセキュアOSに比べ、情報を入手し易い デメリット ・設定がやや複雑 ・SELinux自体にセキュリティホールが存在した場合に、対処できない |
メリットとしては、導入時のコストと運用コストを削減できる点だ。SELinuxはフリーのセキュアOSなので、新たに高額な機器を購入する必要がない。パッチ適用作業に関しても、重要度の高いセキュリティパッチを判断し、他の業務の合間に適用すればいいだろう。一番のメリットは、アクセス制御機能を根本から見直すことで従来のLinuxの脆弱性を解決している点だ。また、SELinuxの情報に関しては、専門委員会などの積極的な活動のおかげで、他のセキュアOSより入手し易いこともメリットだろう。
デメリットとしては、設定がやや複雑な点だろう。一つ一つを順に理解していけば決して難しくはないが、慣れるまでは難解に感じてしまう。この点は、SELinuxが認知・普及されていく上で最大の課題と言える。ただ、Fedora Coreをはじめ、ディストリビューションでの対応も活発になってきたことで、使い勝手も改善されてきている。また、構築・運用支援ツール*なども公開されている。今後もこうした支援ツールが整備されていくことで、SELinuxがより身近になっていくだろう。
そのほか、あえて挙げるならSELinux自体にセキュリティホールが見つかった場合は、対処ができないという点だろうか。ただ、現在に至るまでセキュリティホールがほとんど発見されていないことからも、いかに安定稼動しているかがわかる。心配には及ばないだろう。
このようにSELinuxは、低コストで信頼性の高いシステムを構築できる。ファイアウォールとSELinuxだけの簡単なシステム構成でも、高レベルなセキュリティを確保できるだろう。とはいえ、SELinuxだけに頼るのではなくIPSなど他のソリューションと併用することで、より強固なシステムを構築することが望ましい。また、SELinuxは導入検討段階が重要であり、自社のシステムにSELinuxを導入するとどのようなメリットがあるのか、導入した方が良いのかを熟慮した上で導入してほしい。
今回はSELinuxを使うことで何が変わるのかについて、概論的な部分を解説した。次回はSELinuxモジュールのアクセス制御の詳細について詳しく解説する。
日立ソフトウェアエンジニアリング株式会社が開発。ポリシー設定/ログ解析/監査 の各種ツールをパッケージしたもの。
Copyright © ITmedia, Inc. All Rights Reserved.