2007年11月30日

[selinux-users:02077] Re: setrlimitを許可するようなタイプはありませんでしょうか。

 熊猫です。

> 例えば、/etc/shadowは、shadow_tタイプがついてます。
> こいつへのハードリンクを作るには、shadow_tへのlinkパーミッションが必要です。
> 悪意あるユーザは、普通それへのパーミッションは持ってないので、
> ハードリンクは作れないと思われます。
strict ポリシーなら普通は作れないことでしょう。

でも、 SELinux を有効にしているシステムの多くは targeted ポリシーだと思います。
なので、 /etc/shadow のハードリンクを作ること自体は一般ユーザにも可能でしょう。
すると、 /.autorelabel によって shadow_t が失われるケースが発生します。
以下は FC6 で SELinux を targeted + enforcing で操作した場合です。

[demo@xxxxx ~]$ ln /etc/shadow
[demo@xxxxx ~]$ ls -Z /etc/shadow shadow
-r-------- root root system_u:object_r:shadow_t:s0 /etc/shadow
-r-------- root root system_u:object_r:shadow_t:s0 shadow
[demo@xxxxx ~]$ passwd
Changing password for user demo.
Changing password for demo
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[demo@xxxxx ~]$ su -
Password:
[root@xxxxx ~]# touch /.autorelabel
[root@xxxxx ~]# reboot

(・・・再起動の完了を待つ・・・)

[demo@xxxxx ~]$ ls -Z /etc/shadow shadow
-r-------- root root system_u:object_r:shadow_t:s0 /etc/shadow
-r-------- root root system_u:object_r:default_t:s0 shadow

え? passwd コマンドを使ってハードリンクを切り離すのは卑怯ですって?
でも、一般ユーザに許可されている操作なんですもの。

幸い、 DAC の設定内容が残っていることにより、上記の操作だけで ~/shadow が読まれることはありませんが、
shadow_t が失われたことは事実なので、 root 権限で動作しているプログラムや sudo とかと組み合わせれば
( SELinux のポリシーで shadow_t へのアクセスを禁止しても)読めてしまうかもしれませんね。


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




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