[tomoyo-users 938] Re: <kernel>

Back to archive index

Tetsuo Handa from-****@I-lov*****
2011年 11月 20日 (日) 10:46:14 JST


早間義博さんは書きました:
> ネットワークファイルシステムを経由しているものは <kernel> ドメイン
> でアクセスを拒否できるのですか。

<kernel> ドメインで観測できるファイルシステムであれば、
<kernel> ドメインでアクセスを拒否することができます。

> 別の言い方で、ネットワークファイルシステムを経由しているファイルへ
> のアクセスは次のいずれでしょう。
> (1) <kernel> ドメインでのアクセス許可とアクセスするドメインの双方
>   (AND)の許可が必要

今回の環境の場合には (1) です。

ただし、以下のように (1) 〜 (3) ではなく

(4) アクセスするドメインで双方 (AND)の許可が必要

になる場合もあります。

以下のようにマウントされた Ubuntu 10.04 LiveCD (カーネル 2.6.32 )

# cat /proc/mounts
rootfs / rootfs rw 0 0
none /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
none /proc proc rw,nosuid,nodev,noexec,relatime 0 0
none /dev devtmpfs rw,relatime,size=507908k,nr_inodes=126977,mode=755 0 0
none /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
/dev/sr0 /cdrom iso9660 ro,noatime 0 0
/dev/loop0 /rofs squashfs ro,noatime 0 0
tmpfs /cow tmpfs rw,noatime,mode=755 0 0
aufs / aufs rw,noatime,si=c3ed868a 0 0
none /sys/fs/fuse/connections fusectl rw,relatime 0 0
none /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/kernel/security securityfs rw,relatime 0 0
none /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
tmpfs /tmp tmpfs rw,nosuid,nodev,relatime 0 0
none /var/run tmpfs rw,nosuid,relatime,mode=755 0 0
none /var/lock tmpfs rw,nosuid,nodev,noexec,relatime 0 0
none /lib/init/rw tmpfs rw,nosuid,relatime,mode=755 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
none /var/log/tomoyo tmpfs rw,relatime,size=65536k 0 0
gvfs-fuse-daemon /home/ubuntu/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,relatime,user_id=999,group_id=999 0 0

で /bin/ls を実行すると、 TOMOYO 2.2 では

<kernel> /sbin/init /usr/sbin/sshd /usr/sbin/sshd /bin/bash /bin/ls
use_profile 1

allow_read /etc/ld.so.cache
allow_read /rofs/etc/ld.so.cache
allow_read /lib/tls/i686/cmov/librt-2.11.1.so
allow_read /rofs/lib/tls/i686/cmov/librt-2.11.1.so
allow_read /lib/libselinux.so.1
allow_read /rofs/lib/libselinux.so.1
allow_read /lib/libacl.so.1.1.0
allow_read /rofs/lib/libacl.so.1.1.0
allow_read /lib/tls/i686/cmov/libc-2.11.1.so
allow_read /rofs/lib/tls/i686/cmov/libc-2.11.1.so
allow_read /lib/tls/i686/cmov/libpthread-2.11.1.so
allow_read /rofs/lib/tls/i686/cmov/libpthread-2.11.1.so
allow_read /lib/tls/i686/cmov/libdl-2.11.1.so
allow_read /rofs/lib/tls/i686/cmov/libdl-2.11.1.so
allow_read /lib/libattr.so.1.1.0
allow_read /rofs/lib/libattr.so.1.1.0
allow_read /proc/filesystems
allow_read /etc/locale.alias
allow_read /rofs/etc/locale.alias
allow_read /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION
allow_read /cow/usr/lib/locale/en_US.utf8/LC_IDENTIFICATION
allow_read /usr/lib/gconv/gconv-modules.cache
allow_read /rofs/usr/lib/gconv/gconv-modules.cache
allow_read /usr/lib/locale/en_US.utf8/LC_MEASUREMENT
allow_read /cow/usr/lib/locale/en_US.utf8/LC_MEASUREMENT
allow_read /usr/lib/locale/en_US.utf8/LC_TELEPHONE
allow_read /cow/usr/lib/locale/en_US.utf8/LC_TELEPHONE
allow_read /usr/lib/locale/en_US.utf8/LC_ADDRESS
allow_read /cow/usr/lib/locale/en_US.utf8/LC_ADDRESS
allow_read /usr/lib/locale/en_US.utf8/LC_NAME
allow_read /cow/usr/lib/locale/en_US.utf8/LC_NAME
allow_read /usr/lib/locale/en_US.utf8/LC_PAPER
allow_read /cow/usr/lib/locale/en_US.utf8/LC_PAPER
allow_read /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES
allow_read /cow/usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES
allow_read /usr/lib/locale/en_US.utf8/LC_MONETARY
allow_read /cow/usr/lib/locale/en_US.utf8/LC_MONETARY
allow_read /usr/lib/locale/en_US.utf8/LC_COLLATE
allow_read /cow/usr/lib/locale/en_US.utf8/LC_COLLATE
allow_read /usr/lib/locale/en_US.utf8/LC_TIME
allow_read /cow/usr/lib/locale/en_US.utf8/LC_TIME
allow_read /usr/lib/locale/en_US.utf8/LC_NUMERIC
allow_read /cow/usr/lib/locale/en_US.utf8/LC_NUMERIC
allow_read /usr/lib/locale/en_US.utf8/LC_CTYPE
allow_read /cow/usr/lib/locale/en_US.utf8/LC_CTYPE

のように、 /bin/ls が要求していない /rofs/ や /cow/ などへの
open 要求も観測されています。それに対して TOMOYO 1.8 では

<kernel> /sbin/init /usr/sbin/sshd /usr/sbin/sshd /bin/bash /bin/ls
use_profile 1
use_group 0

misc env TERM
misc env SHELL
misc env XDG_SESSION_COOKIE
misc env SSH_CLIENT
misc env SSH_TTY
misc env USER
misc env LS_COLORS
misc env MAIL
misc env PATH
misc env PWD
misc env LANG
misc env SPEECHD_PORT
misc env SHLVL
misc env HOME
misc env LOGNAME
misc env SSH_CONNECTION
misc env LESSOPEN
misc env LESSCLOSE
misc env RUNNING_UNDER_GDM
misc env _
file read/getattr proc:/filesystems
file read/getattr /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION
file read/getattr /usr/lib/locale/en_US.utf8/LC_MEASUREMENT
file read/getattr /usr/lib/locale/en_US.utf8/LC_TELEPHONE
file read/getattr /usr/lib/locale/en_US.utf8/LC_ADDRESS
file read/getattr /usr/lib/locale/en_US.utf8/LC_NAME
file read/getattr /usr/lib/locale/en_US.utf8/LC_PAPER
file read/getattr /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES
file read/getattr /usr/lib/locale/en_US.utf8/LC_MONETARY
file read/getattr /usr/lib/locale/en_US.utf8/LC_COLLATE
file read/getattr /usr/lib/locale/en_US.utf8/LC_TIME
file read/getattr /usr/lib/locale/en_US.utf8/LC_NUMERIC
file read/getattr /usr/lib/locale/en_US.utf8/LC_CTYPE
file ioctl devpts:/1 0x5413
file ioctl devpts:/1 0x540F
file read /lib/ld-2.11.1.so
file read/getattr /etc/ld.so.cache
file getattr squashfs:/etc/ld.so.cache
file read/getattr /lib/tls/i686/cmov/librt-2.11.1.so
file getattr squashfs:/lib/tls/i686/cmov/librt-2.11.1.so
file read/getattr /lib/libselinux.so.1
file getattr squashfs:/lib/libselinux.so.1
file read/getattr /lib/libacl.so.1.1.0
file getattr squashfs:/lib/libacl.so.1.1.0
file read/getattr /lib/tls/i686/cmov/libc-2.11.1.so
file getattr squashfs:/lib/tls/i686/cmov/libc-2.11.1.so
file read/getattr /lib/tls/i686/cmov/libpthread-2.11.1.so
file getattr squashfs:/lib/tls/i686/cmov/libpthread-2.11.1.so
file read/getattr /lib/tls/i686/cmov/libdl-2.11.1.so
file getattr squashfs:/lib/tls/i686/cmov/libdl-2.11.1.so
file read/getattr /lib/libattr.so.1.1.0
file getattr squashfs:/lib/libattr.so.1.1.0
file read/getattr /etc/locale.alias
file getattr squashfs:/etc/locale.alias
file getattr /cow/usr/lib/locale/en_US.utf8/LC_IDENTIFICATION
file read/getattr /usr/lib/gconv/gconv-modules.cache
file getattr squashfs:/usr/lib/gconv/gconv-modules.cache
file getattr /cow/usr/lib/locale/en_US.utf8/LC_MEASUREMENT
file getattr /cow/usr/lib/locale/en_US.utf8/LC_TELEPHONE
file getattr /cow/usr/lib/locale/en_US.utf8/LC_ADDRESS
file getattr /cow/usr/lib/locale/en_US.utf8/LC_NAME
file getattr /cow/usr/lib/locale/en_US.utf8/LC_PAPER
file read/getattr /usr/lib/locale/en_US.utf8/LC_MESSAGES/
file getattr /cow/usr/lib/locale/en_US.utf8/LC_MESSAGES/
file getattr /cow/usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES
file getattr /cow/usr/lib/locale/en_US.utf8/LC_MONETARY
file getattr /cow/usr/lib/locale/en_US.utf8/LC_COLLATE
file getattr /cow/usr/lib/locale/en_US.utf8/LC_TIME
file getattr /cow/usr/lib/locale/en_US.utf8/LC_NUMERIC
file getattr /cow/usr/lib/locale/en_US.utf8/LC_CTYPE
file ioctl devpts:/1 0x5401
file read /root/

のように、 /bin/ls が要求していない /rofs/ や /cow/ などへの
open 要求は観測されていません。これは、 LSM フックは
/bin/ls が open を要求した場合だけでなくファイルシステムの
都合により open が要求された場合にも呼ばれているためです。

なお、 TOMOYO 1.x でもカーネル 2.6.33 からは open のフックを
LSM フック内に追加するようになったため、 Ubuntu 11.10 などで
実験すると TOMOYO 2.x と 同様の結果が観測できることでしょう。




tomoyo-users メーリングリストの案内
Back to archive index