[#2571] a mailer written in ruby/Tk — aito@...5nazha.yz.yamagata-u.ac.jp (Akinori ITO)

あ伊藤@山形大学です。

19 messages 1997/04/02

[#2592] FAQ — MAEDA Shugo <ender@...>

前田です。

21 messages 1997/04/03
[#2595] Re: FAQ — matz@... (Yukihiro Matsumoto) 1997/04/04

まつもと ゆきひろです.

[#2596] help — Masao Kanemitsu <masao-k@...>

金光です。調子が悪いので、看てやってください。

71 messages 1997/04/04
[#2597] Re: help — matz@... (Yukihiro Matsumoto) 1997/04/04

まつもと ゆきひろです.

[#2598] Re: help — Masao Kanemitsu <masao-k@...> 1997/04/04

In message <199704040609.PAA22926@castanet.caelum.co.jp>

[#2599] Re: help — matz@... (Yukihiro Matsumoto) 1997/04/04

まつもと ゆきひろです.

[#2653] Re: tk trouble — Masao Kanemitsu <masao-k@...> 1997/04/07

tk関係のサンプルが動いてくれなかった件ですが:

[#2670] Re: tk trouble — matz@... (Yukihiro Matsumoto) 1997/04/07

まつもと ゆきひろです

[#2708] Re: tk etc. — Masao Kanemitsu <masao-k@...> 1997/04/09

In message <199704071537.AAA28214@castanet.caelum.co.jp>

[#2709] Re: tk etc. — matz@... (Yukihiro Matsumoto) 1997/04/09

まつもと ゆきひろです.

[#2713] Re: tk etc. — Masao Kanemitsu <masao-k@...> 1997/04/09

In message <199704090735.QAA11322@castanet.caelum.co.jp>

[#2714] Re: tk etc. — matz@... (Yukihiro Matsumoto) 1997/04/09

まつもと ゆきひろです.

[#2717] Re: tk etc. — WATANABE Hirofumi <watanabe@...> 1997/04/09

わたなべです.

[#2720] Re: tk etc. — matz@... (Yukihiro Matsumoto) 1997/04/09

まつもと ゆきひろです.

[#2739] Dynamic linking (Re: tk etc.) — WATANABE Hirofumi <watanabe@...> 1997/04/10

わたなべです.

[#2740] Re: Dynamic linking (Re: tk etc.) — WATANABE Hirofumi <watanabe@...> 1997/04/10

わたなべです.

[#2744] Re: Dynamic linking (Re: tk etc.) — matz@... (Yukihiro Matsumoto) 1997/04/10

まつもと ゆきひろです.

[#2760] Re: Dynamic linking (Re: tk etc.) — WATANABE Hirofumi <watanabe@...> 1997/04/11

わたなべです.

[#2761] Re: Dynamic linking (Re: tk etc.) — matz@... (Yukihiro Matsumoto) 1997/04/11

まつもと ゆきひろです.

[#2762] Re: Dynamic linking (Re: tk etc.) — WATANABE Hirofumi <watanabe@...> 1997/04/11

わたなべです.

[#2763] Re: Dynamic linking (Re: tk etc.) — matz@... (Yukihiro Matsumoto) 1997/04/11

まつもと ゆきひろです.

[#2765] Re: Dynamic linking (Re: tk etc.) — MAEDA Shugo <ender@...> 1997/04/11

前田です。

[ruby-list:2702] security model

From: matz@... (Yukihiro Matsumoto)
Date: 1997-04-09 04:33:33 UTC
List: ruby-list #2702
まつもと ゆきひろです.

rubyをCGIとかにも使おうと思ったらやっぱり危険な操作は検出し
てくれた方が嬉しいですよね.人間がいちいち「これ大丈夫かな」
などと考えながら作るより,こういうことは言語が検出してくれた
方がrubyの思想にあっているようにも思えます.

そう思って,昔safe.rbというのを書いてみましたが,やはりruby
だけでセキュリティを確保するのはちょっと無理そうでした.で,
それ以来つらつらと考えていたのですが,perlのtaintをベースに
した以下のモデルでうまく行きそうです.

穴が無いか考えてみてくださる人はいませんか?

ruby securityモデル

セキュリティレベルはグローバル変数$SAFEの値(整数)で設定する.
$SAFEの値の初期値は0である.$SAFEの値を現在の値より小さくす
る事はできない.

$SAFEの値はthreadローカルである.あるthreadでの$SAFEの値は親
threadの値を引き継ぎ,値を大きくしても別のthreadでの値は変わ
らない.

文字列はtaintフラグを持つ.taintフラグのたった文字列は「汚れ
ている」とみなされる.「汚れている」文字列のコピー(clone/dup)
も汚れている.

セキュリティレベルが0以上の時,「汚れている」文字列を以下の
操作の引数にする事はできない.

  * file/pipe/dir/socket/dbmのオープン
  * File操作(chmod..など)
  * system, ``
  * load/require
  * その他,危なそうな操作(思い付いたら追加)

セキュリティレベルが1以上の時,以下の操作で与えられる文字列
は汚れている.

  * 環境変数の取り出し
  * getsなどストリームからの読み込み

セキュリティレベルが2以上の時,新しく生成される全ての文字列
は汚れている.

セキュリティレベルが3以上の時,以下の操作は禁止される.

  * Process.kill
  * その他プロセスに関する危なそうな処理(思い付いたら追加)

セキュリティレベルが4以上の時,以下の操作は禁止される

  * 大域変数の値の変更

これで,新たにthreadを作ってその中で$SAFEの値を大きくすれば,
信頼できないコードでも安心して実行できそうに思うのですが,ど
うでしょう?

例:

  unsafe_script = url.readlines.join
  Thread.start do
    $SAFE = 4
    eval  unsafe_script
  end

In This Thread

Prev Next