永井@知能.九工大です.

前のメールの最後の部分でおかしなことを書いてたので修正です.

# 寝惚けながら書くとダメですね.(^_^;

From: Hidetoshi NAGAI <nagai / ai.kyutech.ac.jp>
Subject: [ruby-dev:21669] Re: access ENV on $SAFE==4
Date: Wed, 22 Oct 2003 00:29:27 +0900
Message-ID: <20031022.002926.74734021.nagai / ai.kyutech.ac.jp>
> さて,こうして論述してきた主張に対して有効な反論は,
> 「そもそも環境変数を参照できなくしたところで
> セキュリティには何ら影響しない」というように,
> 議論の根幹となっている部分を否定するものであると思います.
> この点,最初の問題提起時に「私にはこれらの情報の読み出しまで
> 禁止することでどの程度セキュリティに貢献するのかは良くわから
> ないのですが」と書いていたように,また,
> 
> > ただ、どんな危険があるのか具体例がまだないよ
> > うですから、下記のいずれの策をとるか判断がつきかねるな、と思うんです。
> 
> とおっしゃられているように,あっさりと否定するだけの
> 論拠の持ち合わせはありません.

この辺り,何を言ってるのかわからないので
「『環境変数参照を禁止しなくても大丈夫』という主張を
明確に否定するような実例の持ち合わせがない」と言い直します.

もしかすると $SAFE >= 4 の Ruby スクリプト上では
「禁止しなくても大丈夫」なのかもしれません.
しかしながら,こうした問題は Ruby only では考えられません.
Ruby 上で手にいれた情報に基づいて,別の手段での攻撃が
行われるかもしれません.
そうした場合に「Ruby には責任がない」とは言えないでしょう.

# 「 $SAFE >= 4 で得た情報は,Ruby 外には一切出ることはない」と
# 完全に言い切れるなら,Ruby only の議論でいいのですが.

少なくとも「環境変数の内容を知られることにより,
セキュリティに甘い部分ができる」というのは真だと思います.
であるなら,「危険の実例が確認されるまでは制限の必要はない」
ではなく,「そのままでも安全が明確に証明されない限りは制限する」
が $SAFE >= 4 での適切な方針であるはずです.
つまりは「参照を禁止しない」ことを主張するなら,
「参照による危険の実例」を要求するのではなく,
「参照されても安全」を証明しなければならないと考えます.
多分,この証明は不可能でしょう.
この点を以て,「禁止しなくても大丈夫」への反論としておきます.
-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai / ai.kyutech.ac.jp