![](/fsecurity/rensai/lids01/title.gif)
第3回 権限を最小化するLinuxカーネルケーパビリティ
面 和毅サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
シニアマネージャ
2006/1/18
前回「ファイルACLを用いたアクセス制御」では、LIDSの特徴であるファイルACLによる強制アクセス制御(MAC)とその実装について見ました。今回は、LIDSの特徴の2つ目である「Linuxカーネルケーパビリティ」を見ていきましょう。
権限を切り分けるPOSIXケーパビリティ
通常、UNIXにおけるプロセスは、一般ユーザー権限で動くか、特権(root権限)で動くかの2種類しかありません。プロセスに特権が必要となるのは、Apacheなどのサービスがポート1024番未満のいわゆる「特権ポート」をプロセスで使用する場合や、pingやsnortなどのように生(raw)ソケットをイーサネットデバイスに対してオープンし生のIPデータトラフィックを見る場合、あるいはntpdなどでシステムの時刻を設定する場合などです。
しかし、プロセスに特権をすべて与えてしまうことにより新たな問題が生じてきます。動作しているプロセスに脆弱性があった場合に、不正な操作によりプロセスが持っている権限を取得されてしまう可能性があるのです。この結果、悪意のあるユーザーにコンピュータのすべてを自由にできる特権を奪われてしまうことになります。
この問題は随分前からUNIXでは指摘されており、これを解決する方法として「ケーパビリティ(POSIX Capability)」という提案がPOSIX(Portable Operating System Interface for UNIX:IEEEによるUNIXの標準アプリケーション・インターフェイス仕様)のドラフト1003.1eに提出されました。
これは、特権をさらに細分化したケーパビリティと呼ばれる単位で取り扱えるようにし、プロセスに特権すべてを与えるのではなく、最小限のケーパビリティを与えて必要な処理を行わせようというものです。これにより、プロセスにもし脆弱性が発見されて悪用されたとしても、そのプロセスが必要とする最小限のケーパビリティしか奪われないため、被害の範囲を狭めることが可能になります。
POSIXケーパビリティに関する詳しい説明は以下のテキストを参照してください。
【Linux Capabilities FAQ 0.2】 ftp://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.4/capfaq-0.2.txt |
Linuxカーネルケーパビリティ
このPOSIXケーパビリティは、Linux上では「Linuxカーネルケーパビリティ」としてカーネル2.4から採用されています。最新のカーネル2.4.32では29種類のケーパビリティ(表1)が定義されています。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
表1 カーネル2.4.32でのケーパビリティ一覧 |
またカーネル2.6.14.4では新たにログ監査に使うAUDIT機能関連のケーパビリティ「29 CAP_AUDIT_WRITE」と「30 CAP_AUDIT_CONTROL」の2つが追加されて31種類となっています。
それぞれのケーパビリティに関する詳しい説明は、カーネルソース内の/usr/src/linux/include/capability.hファイルにコメントとして載っています。また、「man capabilities」としてケーパビリティに関するマニュアルを読むこともできます。代表的なケーパビリティに関しての説明を表2に示します。
|
||||||||||||||||
表2 代表的なケーパビリティ |
1/4
|
![]() |
Index | |
権限を最小化するLinuxカーネルケーパビリティ | |
![]() |
Page1 権限を切り分けるPOSIXケーパビリティ Linuxカーネルケーパビリティ |
Page2 ケーパビリティチェック LIDSによるケーパビリティの拡張 ファイルに対するアクセス制御のフロー |
|
Page3 ケーパビリティの実態 |
|
Page4 ケーパビリティの調整方法 LIDSを用いた場合のケーパビリティの調整方法 |
![]() |
Security&Trust記事一覧 |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
![]() |
|
|
|
![]() |