2007年10月20日

[selinux-users:02029] Re: Default Linux Capabilities とはどういうものですか?

>>> それから、LSMにはプライマリとセカンダリがあって、
>>> 両方埋まるともう他のLSMをロードできないようですが、
>>> 2個まではOKで3個以上は無理ということなんでしょうか?
>> いえ、これは LSM ではなく SELinux の機能です。
>> Capabilities の機能が LSM の上に乗っている都合上、SELinux を有効化すると
>> Capabilities が使えない…というのはまずいので、SELinux側で Default Linux
>> Capabilities のモジュールをロードして、capabilities 関連のフックが呼ばれた
>> 時に、セカンダリを呼び出すという仕組みになっています。

>
> まだよくわかりません‥。
> 複数のLSMを同時に動かせるものだと思っていましたが、
> そうではなく、SELinuxと一緒ならもうひとつだけ動かせる、ということでしょうか?
>
> それから、SELinuxはCapabilitiesを特別扱いしているということでしょうか?
> Capabilitiesを無効にしていれば、SELinuxを有効にしていても、
> セカンダリとして他の(Capabilities以外の)LSMをロードできるので、
> Capabilitiesが特別のようには見えないのですが。
> (といっても、ロードできても動くかどうかは別のようですが‥。)

SELinux が Capabilities を特別扱いしてるということです。

しかし、SELinux はセカンダリで登録されたモジュールが capabilities なのか、
それとも他の何かなのかをチェックしません。
(本質的にチェックする方法が無いので)
そのため、特に問題なくロードできてしまいます。が、そういう事を意図して
いないので正しく動作しません。

> 私が今やっていることは、
> カーネル2.6.8.1用の BSD Jail LSM http://kerneltrap.org/node/3823) を
> カーネル2.6.22.9用に修正してみた http://humming.dip.jp/~tyatsumi/bsdjail/)ところです。
> (まだ不完全ですが。)
> SELinuxを無効にしていれば、BSD Jailはロードできて、期待どおりの動作をしました。
> SELinuxが有効で、Capabilitiesも有効だと、BSD Jailはロードできませんでした。
> SELinuxが有効で、Capabilitiesが無効だと、BSD Jailはロードはできますが、
> 動かすとsegfaultやら色々出て動きません。
>
> SELinuxと一緒にロードすると動かないのが今のBSD Jailに問題があるためなのか、
> そもそもSELinuxと一緒に動かすことができるLSMが限られているのか、
> というあたりが知りたいです。

というわけで、SELinux と BSD Jail は同時に動かすことができません。

(余談1)
ところで、BSD Jail の LSM モジュールを作ってたのは Serge E.Hallyn君なんですね。
彼は見た目痩せた Linus っぽい感じの人で、色々変なモノ(褒め言葉)を作っている人
なんですが、確か当時 "Stackable LSM Module" というものを提案していたはず。
現在では既に棄却されたアイデアなんですが、もしかすると、SELinux と BSD Jail の
共存を狙っていたのかもしれません。

(余談2)
あと、彼の BSD Jail のパッチも見てみましたが、セキュリティ上の目的でこれを
利用するのは危険ですねぇ…。
少なくとも、Jail内のプロセスが CAP_SYS_CHROOT, CAP_SYS_MODULE, CAP_MKNOD を
実行することは禁止しないと、脱獄したり、'/' 区画を Jail 内にマウントできたり
してしまいます。
--
KaiGai Kohei <kaigai@xxxxx>

投稿者 xml-rpc : 2007年10月20日 18:58
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/65467
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。