[#37249] ruby 1.8でのCGI#[]の挙動 — 堀川 久 <vzw00011@...>

こんにちは。

14 messages 2003/03/09

[#37283] 両方の式とも常に評価する論理和・論理積 — Shinya Kawaji <kawaji@...>

かわじ、です

17 messages 2003/03/13

[#37324] optparse は使いやすいですか? — 成島 寛則 <narushima@...>

こんにちは。Narushima Hironori と申します。

13 messages 2003/03/15

[#37370] Secure「ではない」script の書き方 — satoru takahashi <hisai@...>

高橋聡@JFプロジェクトで翻訳しています、です

50 messages 2003/03/20
[#37381] Re: Secure「ではない」script の書き方 — satoru takahashi <hisai@...> 2003/03/20

高橋聡です

[#37382] Re: Secure「ではない」script の書き方 — matz@... (Yukihiro Matsumoto) 2003/03/20

まつもと ゆきひろです

[#37405] Re: Secure「ではない」script の書き方 — Taku Nakajima <tnakajima@...> 2003/03/24

[#37407] Re: Secure「ではない」script の書き方 — matz@... (Yukihiro Matsumoto) 2003/03/24

まつもと ゆきひろです

[#37414] Re: Secure「ではない」script の書き方 — Taku Nakajima <tnakajima@...> 2003/03/25

[#37415] Re: Secure「ではない」script の書き方 — matz@... (Yukihiro Matsumoto) 2003/03/25

まつもと ゆきひろです

[#37417] Re: Secure「ではない」script の書き方 — Taku Nakajima <tnakajima@...> 2003/03/25

[#37421] Tmpfile.newがデフォルトで/tmpを利用すること — Tadatoshi Kamimura <kamimura.tadatoshi@...>

上村と申します。はじめまして。

35 messages 2003/03/26
[#37422] Re: Tmpfile.newがデフォルトで/tmpを利用すること — WATANABE Hirofumi <eban@...> 2003/03/26

わたなべです。

[#37467] Re: Tmpfile.newがデフォルトで/tmpを利用すること — Tadatoshi Kamimura <kamimura.tadatoshi@...> 2003/03/31

上村です

[#37468] Re: Tmpfile.newがデフォルトで/tmpを利用すること — "Akinori MUSHA" <knu@...> 2003/03/31

At Mon, 31 Mar 2003 09:51:27 +0900,

[#37470] Re: Tmpfile.newがデフォルトで/tmpを利用すること — Tadatoshi Kamimura <kamimura.tadatoshi@...> 2003/03/31

上村です。

[#37472] Re: Tmpfile.newがデフォルトで/tmpを利用すること — "Akinori MUSHA" <knu@...> 2003/03/31

 なるほど、 $SAFE=1 のところをすっぱり読み飛ばしてました。

[#37479] Re: Tmpfile.new がデフォルトで/tmpを利用すること — siena@... (Siena. / SHINAGAWA, Norihide) 2003/03/31

Siena. です。

[#37480] Re: Tmpfile.new がデフォルトで/tmpを利用すること — siena@... (Siena. / SHINAGAWA, Norihide) 2003/03/31

Siena. です。

[#37483] Re: Tmpfile.newがデフォルトで/tmpを利用すること — nobu.nakada@... 2003/04/01

なかだです。

[#37493] Re: Tmpfile.newがデフォルトで/tmpを利用すること — TAKAISHI Hayato <rio-t@...> 2003/04/02

こんにちは、高石です。

[#37496] Re: Tmpfile.new がデフォルトで/tmpを利用すること — siena@... (Siena. / SHINAGAWA, Norihide) 2003/04/03

Siena. です。

[#37499] Re: Tmpfile.new がデフォルトで/tmpを利用すること — matz@... (Yukihiro Matsumoto) 2003/04/03

まつもと ゆきひろです

[#37500] Re: Tmpfile.new がデフォルトで/tmpを利用すること — "U.Nakamura" <usa@...> 2003/04/03

こんにちは、なかむら(う)です。

[ruby-list:37430] Re: Secure「ではない」script の書き方

From: Taku Nakajima <tnakajima@...>
Date: 2003-03-26 07:23:20 UTC
List: ruby-list #37430
中島@ブレーンです。

> ただ、やはりレベル1が達成しようとしているものと、レベル4が達
> 成しようとしているものは、同じ仕組みを使ってはいるものの違う
> ものではないかと思うのです。あんまり連続的じゃないんですよね。

ということは、

  (1) もともとCGI+suid対応とサンドボックス(Javaのappletみたいな)
      が別個な要件として先に存在していた

  (2) よく見ると(1)のふたつの要件は似ている所がある

  (3) じゃ一緒にしちゃえ

  (4) この中間のレベルはいるのか?よくわからんが、あって困ることはない
      から、とりあえず作っておこう

という感じなのでしょうか?

もしこれが実態に近いとしたら、これが私の言う「TOPLEVELの説明」になるよ
うな気がします。つまり、この枠組を最初に見てから詳細の仕様を読んでいけ
ば、理解が速い。というか、この経緯を知らなかったから悩んでいたというこ
とですね。

> レベル1では信頼できないのはデータですが、レベル4ではプログラ
> ムそのものが信頼できません。ですから、一つのメタファーですべ
> てをカバーするのは難しいかもしれません。
> 
> |ただ、これを見ると「なぜここに$SAFE>=4というチェックがあるのに、
> |$SAFE>=2や$SAFE>=3というチェックが一切出てこないんだろう」ということが
> |謎になります。こういう言いがかりのような疑問がズルズル出てきて消えない
> |のが、悩みのタネで・・・
> 
> $SAFE >= 2というチェックはいくつかありますよね(forkとか)。
> 
> これも不連続であることの結果なのですが、rb_secure()によるチェッ
> クは基本的に信頼できないコードに対するチェックです。レベル1 
> ではコードは信頼できるのでそのようなチェックは発生しません。
> 
> レベル2では(うっかりミスを防ぐため?)いくつかの処理が禁止さ
> れています。つまり、そのような処理(forkとか)を行えない程度に
> 自分を信頼できないわけです。
> 
> レベル3では追加される禁止はuntaintだけです。ですから、ひとつ
> しかありません。
> 
> レベル4では基本的に汚染されていないオブジェクト(や環境)を更
> 新することは一切禁止です。ですから、rb_secure(4)があちこちに
> ちりばめられることになります。

なるほど、自分で拡張ライブラリを作る場合にrb_secure()をいつどのように
入れる必要があるのか、ということがわかってきました。

rb_secure(4):

  入れるべき所が相当たくさんある。
  なぜ必要か?どこに必要か?をちゃんと理解する必要がある。
  rubyインタプリタの中にもたくさんある。

rb_secure(3):
  
  rubyインタプリタの中に一箇所(rb_obj_untaint)しかない。
  拡張ライブラリには入らない

rb_secure(2):
  
  rubyインタプリタの中には4ほどではないがたくさんある
  論理的には拡張ライブラリにも入る可能性はあるが、
  少なくとも現状は活用されていないのでサボってもよい!?

rb_secure(1):
  
  論理的に意味がないのであり得ない(レベル1は外部データによる汚染関係)

やはりこれを前提として、「かくかくしかじかの時にはrb_secure(4)」という
説明を聞けば、よく納得できるし、レベル4以外の意味の理解は後回しにして
もかまわないということがわかります。

# 結局、私がRubyを好きなのは、サボれる所とサボれない所が直感的にわかる
# からで、今回、逆切れしたようにしつこく聞いているのは、ここだけサボる
# 所がわからなかったから? > 自分

> |このセキュリティモデル関連の問題は、私にとってはRubyを始めてから最初の
> |「驚き」なのかもしれません。変な話ですが、これまでRubyについて新しいこ
> |とを知っても一切「驚き」がないんです。全部、「ふ〜ん、そんなもんだろう
> |と思ってたよ」という感じで納得できてしまうんです。
> 
> いやあ、レベル4については「それで本当にセキュリティが確保で
> きるサンドボックスが実現できるのか」という根本的な疑問がある
> ので、ひっかかるのではないでしょうか。この疑問はいまだに解決
> されていません。

いや、最初のうち「レベル4はappletとほぼ同じだな」と気がついてから悩ん
でいません。というか、レベル4が一番わかりやすかったです。

--
「stableでなければ生きていけない。unstableでなければ生きてる意味がない」
中島 拓 (株)ブレーン 研究部 (tnakajima@brain-tokyo.jp)
http://www.brain-tokyo.jp/research/amrita/


In This Thread