第3回 権限を最小化するLinuxカーネルケーパビリティ
面 和毅サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
シニアマネージャ
2006/1/18
ケーパビリティの調整方法
プロセスを最初に起動した際にデフォルトとなるケーパビリティバウンディングセットの調整について説明します。32ビット列でONにしたいケーパビリティを1、OFFにしたいケーパビリティを0として並べて整数にした値をechoなどを用いて、/proc/sys/kernel/cap-boundに書き込みます。
例えば、CAP_CHOWNとCAP_KILLをOFFにして、残りすべてをONにする場合には、
"11111111 11111111 11111111 11011110" = "0xFFFFFFDE" = 2147483614 |
となりますので、
# echo 2147483614 > /proc/sys/kernel/cap-bound |
とします。
一方、プロセスケーパビリティセットの調整は、libcapに含まれる「getpcap(ケーパビリティを見る)」「setpcap(ケーパビリティをセットする)」というコマンドを使う必要があります。
具体的にはrootユーザーで、
# setpaps '=eip cap_chown,cap_sys_chroot-eip' プロセスID |
のようにプロセスIDを指定し、実効(e)、継承(i)、許可(p)をそれぞれ指定してケーパビリティを調整します。なお、ケーパビリティを調整する際にプロセスIDを指定する必要があります。
この際、許可ケーパビリティセットから一度ケーパビリティを削除してしまうと、再び付け加えることができません。例えば、許可ケーパビリティセットからCAP_CHOWNを削除してしまった場合には、そのプロセスは2度とCAP_CHOWNを持つことができなくなってしまいます。そのため、実際にはケーパビリティ調整は、「必要なケーパビリティ以外を削除する」という方式を取っていきます。
LIDSを用いた場合のケーパビリティの調整方法
LIDSを用いると、プロセスのケーパビリティをより直感的に調整できるようになります。
まず、ケーパビリティバウンディングセットですが、LIDSではLIDSの設定ファイルが入る/etc/lidsディレクトリ以下に「lids.[ステート].cap」というファイルを置きます。ステートに関しては次回で説明します。
例として、通常のシステム運用時に使用される「lids.postboot.cap」ファイルを見てみましょう。
|
|
カーネル2.4.32用のLIDSで使用されるlids.postboot.cap |
それぞれのケーパビリティの左側に「+」「-」が付いています。「+」「-」は、そのケーパビリティをケーパビリティバウンディングセットで「ON」「OFF」にするという意味になります。このようにケーパビリティバウンディングセットの設定が非常に分かりやすくなっています。
また、各プロセスに与えるケーパビリティセットの調整も簡単になっています。LIDSを用いると、実効、継承、許可のケーパビリティセットを特に意識せずに行えるため、設定がより簡単になります。設定は、「必要なケーパビリティを、必要なプロセスに与える」という方法になります。
具体的には「lidsconf」コマンドを用いて、
lidsconf -A -s "プロセスのプログラム名" -o "ケーパビリティ" -j GRANT |
と指定します。実際の実効ケーパビリティセットは、上のように与えたケーパビリティとケーパビリティバウンディングセットの論理和になります。
次回は、LIDSの「ステート」という概念とLIDS-1系列で使用できるTDE/TPE/Sandboxを見ていきます。
4/4
|
Index | |
権限を最小化するLinuxカーネルケーパビリティ | |
Page1 権限を切り分けるPOSIXケーパビリティ Linuxカーネルケーパビリティ |
|
Page2 ケーパビリティチェック LIDSによるケーパビリティの拡張 ファイルに対するアクセス制御のフロー |
|
Page3 ケーパビリティの実態 |
|
Page4 ケーパビリティの調整方法 LIDSを用いた場合のケーパビリティの調整方法 |
Profile |
面 和毅(おも かずき) サイオステクノロジー株式会社 インフラストラクチャービジネスユニット Linuxテクノロジー部 OSSテクノロジーグループ シニアマネージャ 学生時代よりUNIXに親しむ。1997年からサーバ構築およびセキュリティ全般を扱う仕事に従事、Linuxを使い始める。 現在はLIDSの普及活動に注力。LIDSユーザ会(LIDS-JP)の立ち上げやLIDS関連文書の日本語化、LIDSを用いたシステム構築の紹介などを行っている。また、サイオステクノロジーでビジネス面でのLIDSの普及活動に注力している。 2005年12月より、LIDS Teamに参加し、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)対策の観点から考える。
|
|