From: matz@... (Yukihiro Matsumoto) Date: 1997-09-24T09:53:16+09:00 Subject: [ruby-list:4551] Re: Security まつもと ゆきひろです In message "[ruby-list:4530] Security" on 97/09/23, "EGUCHI Osamu" writes: |えぐち です。 |setuid なスクリプトで問題ありそうなオプション | + -e のコンパイルと評価 | + -I の $-I への設定する。(わたなべさん指摘) | + -s を使った1文字変数の初期値への介入 | + ... この辺に関しては次のリリースまでに対応します.対応予定は -I,-S,-s,-x,-e, script from stdin です.他に見落としはありますかね. |それから、 |rb_safe_level の仕組みが良く分からないのですが、 | 「root での実行」と「setuid での実行」 |は、どちらの方が問題が多いという比較は単純に出来ず、 |固有の問題として扱わないと、不便かつ危険に思えますがどうでしょうか? |オプションの扱いなんかは特にこの事を感じます。 ええと,rootでの実行に関しては少なくとも現時点ではなにも考え ていません.現時点でのrubyのセキュリティ機能は * setuidスクリプトではいくつかの危険な操作を行えない * スクリプトが(スレッド単位で)危険な操作を制限できる だけです.rootがスクリプトを実行する場合には自分の責任のもと なんでもできるべきではないかと考えています. |#rb_safe_levelって bsd-kernel のセキュリティレベルみたいなものですか? $SAFEという大域変数に数値を設定してレベルを決めます.$SAFEの 値はスレッド毎に独立です.値毎の意味は 0 - 制限無し 1 - 「汚れた」文字列での「危険な」操作の禁止 2 - プロセス関連の操作(killとか) 3 - 全ての文字列が「汚れる」 4 - 大域変数の変更禁止,出力の禁止 5 - インスタンス変数の変更禁止 になっています.setuidプログラムでは自動的に$SAFEが1になりま す.あと,$SAFEの値を小さくする事はできません. まつもと ゆきひろ /:|)