[tomoyo-users 939] Re: <kernel>

Back to archive index

早間義博 yossi****@yedo*****
2011年 11月 20日 (日) 11:41:59 JST


早間です。
詳しく、説明していただき感謝しています。
見えないところでの働きが、思わぬ結果を招くようです。

要約は事実を歪めるので好きではありませんが

 <kernel>のアクセス制御が
(profile)・kernel・mount方法 によって予期しない動きになりうる、
一般的には profile を 0 (Disabled Mode) で運用するのが安全である

とは言えるのですね。

-- 早間

> 早間義博さんは書きました:
> > ネットワークファイルシステムを経由しているものは <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 mailing list
> tomoy****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/tomoyo-users
> 




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