[#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:37429] Re: Secure「ではない」script の書き方

From: matz@... (Yukihiro Matsumoto)
Date: 2003-03-26 06:22:01 UTC
List: ruby-list #37429
まつもと ゆきひろです

In message "[ruby-list:37426] Re: Secure「ではない」script の書き方"
    on 03/03/26, Taku Nakajima <tnakajima@brain-tokyo.jp> writes:

|ここで言いたかったのは、レベル1,4はわかるけどレベル2,3の「目的」または
|「意図」がわからないということです。
|
|より本質的には、今それを(レベル2が存在する目的を)理解すべきかそうでな
|いのかがわからない、ということが問題だったと思います。

レベル2はあえていえば「うっかりミスを防止」くらいでしょうか。
でも、あんまり存在意義はないですね。レベル3は「レベル4の前段
階」としての意味しかないです。じゃあ、「レベル3をなくしてい
きなりレベル4でもよかったんじゃないか」というのはもっともな
ことですが、設計した時点では「分離しておいた方が便利な局面が
あるかもしれない」と思ったのです。今になっても便利な局面は発
見されていませんが。

|檻($SAFEレベル)と汚染(taintフラグ)は協調して何かを実現しているはずです。
|ですから、両者の共通目的とはそもそも何なんだ、という説明が最初に必要だ
|と思います。前回のメールを書きながら、ようやくそれがわかったんですが、
|この二つの目的は
|
|  「自分の書いたコードの一部を信頼できないケース」
|
|に対応することです。そして、セキュリティモデルが実現しているのは
|
|  「プログラムを信頼できる部分と信頼できない部分に分割する」
|
|ということだと思います。私は、このようなトップレベルの説明がまずあって、
|汚染の伝染や各セーフレベルの制限の説明は、この説明にぶらさがっていくべ
|きだと思います。

うむ、より良い説明が必要だという主張は理解できます。また、よ
り良い説明を模索する過程で仕様の穴や不具合が発見されるのもよ
くあることですから、そのような試みは大いに歓迎します。

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

レベル1では信頼できないのはデータですが、レベル4ではプログラ
ムそのものが信頼できません。ですから、一つのメタファーですべ
てをカバーするのは難しいかもしれません。

|ただ、これを見ると「なぜここに$SAFE>=4というチェックがあるのに、
|$SAFE>=2や$SAFE>=3というチェックが一切出てこないんだろう」ということが
|謎になります。こういう言いがかりのような疑問がズルズル出てきて消えない
|のが、悩みのタネで・・・

$SAFE >= 2というチェックはいくつかありますよね(forkとか)。

これも不連続であることの結果なのですが、rb_secure()によるチェッ
クは基本的に信頼できないコードに対するチェックです。レベル1 
ではコードは信頼できるのでそのようなチェックは発生しません。

レベル2では(うっかりミスを防ぐため?)いくつかの処理が禁止さ
れています。つまり、そのような処理(forkとか)を行えない程度に
自分を信頼できないわけです。

レベル3では追加される禁止はuntaintだけです。ですから、ひとつ
しかありません。

レベル4では基本的に汚染されていないオブジェクト(や環境)を更
新することは一切禁止です。ですから、rb_secure(4)があちこちに
ちりばめられることになります。

|このセキュリティモデル関連の問題は、私にとってはRubyを始めてから最初の
|「驚き」なのかもしれません。変な話ですが、これまでRubyについて新しいこ
|とを知っても一切「驚き」がないんです。全部、「ふ〜ん、そんなもんだろう
|と思ってたよ」という感じで納得できてしまうんです。

いやあ、レベル4については「それで本当にセキュリティが確保で
きるサンドボックスが実現できるのか」という根本的な疑問がある
ので、ひっかかるのではないでしょうか。この疑問はいまだに解決
されていません。

                                まつもと ゆきひろ /:|)

In This Thread