パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

ruby-lang.org、クラックの詳細を公開」記事へのコメント

  • chroot破り? (スコア:2, 興味深い)

    by Anonymous Coward on 2004年07月11日 8時34分 (#586976)
    報告書の「== chroot環境外への影響の可能性」に
    侵入者がchrootを破るためには、特権ユーザへの昇格が必要となります。
    とあるんですがchrootって特権あれば破れる==chroot外のファイル改竄?ということですか? chrootってそういうもの?それともまたcvsとは別の脆弱性?

    検索してFix chroot(2) vulnerability of linux 2.2 [luky.org]とか見ると昔そういうセキュリティホールはあったみたいですが、今回のheliumの状況でchroot破る手段があったと考えられるのでしょうか?

    • Re:chroot破り? (スコア:5, 参考になる)

      by Anonymous Coward on 2004年07月11日 10時58分 (#587017)
      chroot(2)のman pageにも特権さえあれば
      chroot jailから脱出できると書いてあるぞ。
      他にも勝手にカーネルモジュールをブチ込んで以下略
      とか出来るから特権を取得されたら危険だと考えるべき。

      capabilityで特権ユーザの権限を制限しておけば
      特権を取られてもchroot jailからの脱出や危険な
      カーネルモジュールの挿入は防げるようになる。

      Linuxケーパビリティ [linux.com]
      Manpage of CAPABILITIES [homepages.cwi.nl]
      親コメント
      • by Anonymous Coward
        ahigutiさん,ACさんありがとうございます。 chrootってそういうものだとは。linuxは5年以上つかって結構使い倒していたつもりですが全然知りませんでした。修行してきます。
        # クーラーつけたらブレーカーが落ちたのでAC
    • Re:chroot破り? (スコア:5, 参考になる)

      by Anonymous Coward on 2004年07月12日 9時42分 (#587504)
      一応補足しておきますと、
        - Linuxのchroot(2)にあるchroot jailからの脱出法 (#587014のリンク先と原理は同じ) は、chroot(2)の中でchdir相当をする実装 (NetBSD、OpenBSDなど) では無効です
        - #587014の、「mknodしてmountしなおす」は、一般的には不可能です。chroot jailの中では、jailの外側のファイルシステムをumountすることはできないからです。ただし、Linuxでは1つのファイルシステムを複数回 (別なmount pointに) mountできてしまうので、mountしなおす、というよりはjailの中にあらたにmountして以下略、ということも可能だと思われます
        - #587092 にあるように、root権限があるとカーネル空間、他のユーザー空間などいくらでも書換え放題ですが、*BSDのsecurity levelによる保護のように、/dev/mem、/dev/kmemへの書き込みを禁止することができる実装も存在します (security levelによる保護は、Xサーバを動かすためなどの理由で無効にしていることもあるでしょうが、サーバ用マシンでは有効にすべきです)
        - もちろん、chroot jailを過信するのは危険であることは言うまでもありません

      # FreeBSDのjail(2)のことをよく知らないのでAC
      親コメント
      • Re:chroot破り実演 (スコア:1, 参考になる)

        by Anonymous Coward on 2004年07月13日 0時07分 (#587941)
        >mountしなおす、というよりはjailの中にあらたにmountして以下略、ということも可能だと思われます

        よく分からないので追試してみますた。(kernel2.4.26)
        大体こんな感じです。

        # mkdir -p /home/chroot/newmount && cd /home/chroot
        # cp -a /bin /sbin /lib /etc .
        # mkdir -p /home/chroot/dev && cd /home/chroot/dev
        # mknod hda1 b 3 1

        # chroot /home/chroot /bin/bash

        # mount -t ext3 /dev/hda1 /newmount

        // exitしても umount されませんから注意して!
        親コメント
        • by Anonymous Coward on 2004年07月13日 9時28分 (#588090)
          # もう誰も読んでないと思うけど...

          ・chroot環境下でもmknod動きます。
          ・chroot環境で既存のパーテーションをmountされても、その外側からは
          わかりにくいようです。
          (外でmountコマンド叩いても表示されないし、mountを記録している
          /var/log/messagesにも出なかった...)
          何されても気づかない...かどうかまでは追試しきれてないですが。

          # あな恐ろしやchroot
          親コメント
    • Re:chroot破り? (スコア:4, 参考になる)

      by ahiguti (10103) on 2004年07月11日 10時51分 (#587014)
      root権限があればmknodしてディスクをmountしなおしたり できるので、chroot()は簡単に破られてしまいます。また、こういう方法 [bpfh.net]もあります。
      親コメント
      • Re:chroot破り? (スコア:2, 興味深い)

        by saitoh (10803) on 2004年07月11日 13時50分 (#587092)
        root権限があれば、極端な話、カーネルメモリ空間を書き換える こともできますから、原理的にはchroot解除でもなんでも出来ますね。
        親コメント
        • by Anonymous Coward
           「XXX を YYY に設定すると root でも~できなくなる」
          なんてセキュリティ機構が *BSD にも Linux もありますが、
          あれも手間暇かければ何とでもできるんですか?
        • by Anonymous Coward
          ご冗談でしょう。root権限とカーネル空間とは直接関係ありません。

          カーネルモジュールのロードなどのインタフェースを禁止すれば ユーザプロセスからカーネル空間には手は出せません。

          • Re:chroot破り? (スコア:1, 参考になる)

            by Anonymous Coward on 2004年07月12日 9時10分 (#587492)
            /dev/kmemとか/dev/memをご存知ない?
            親コメント
            • by Anonymous Coward
              もちろん知ってますが。だから「など」と書いたわけだし、 システムコールと限定せずにインタフェースとしたわけだし。

              まさかメモリファイルデバイスを無効化する方法を御存じないとか?

    • by Anonymous Coward
      あるユーザにとって / が適当な場所であるように見えるだけで、他の(chrootされていない)ユーザに su すれば、そのユーザにとっての / は本来の / なのではないでしょうか。
      もっとも今回は昇格がなされていないようなのでchroot外のファイルの改竄はない という結論のようです。
      • by Anonymous Coward

        chroot されてないユーザ? chroot ってプロセスごとに設定されるもんじゃないんですか?

日本発のオープンソースソフトウェアは42件 -- ある官僚

処理中...