人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

前回も同様の質問をさせていただきましたが、パーミッションが持つ危険性について調べています。

PHPやCGIで新規プログラムの制作することがあり、そのプログラムのパーミッション設定で悩んでおります。ログファイルなど書き換えが必要なファイルはその他に書き込み権限を与える必要がありますが、それがどれだけ危険なのか、図りかねています。

パーミッションが持つリスクについてなるべく具体的(たとえば777だとこういうツールで外から書き換えができるよ、など)に載っているサイトはありませんでしょうか。

以上、よろしくお願いします。

●質問者: n_maco2
●カテゴリ:インターネット ウェブ制作
✍キーワード:777 CGI PHP サイト パーミッション
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● harumomo2006
●10ポイント

http://www.e-provider.jp/server/cgi.html

少なくともグループに権限を与えると、同一サーバを使っている人にデータを覗かれるなどの問題が発生します。ログファイルということなら、IPなどの情報もあるでしょうし、いろいろ問題が出そうです。

◎質問者からの返答

回答ありがとうございました。

書き忘れてしまいましたが、使用しているのが専用サーバーのため、サーバー内部からのアクセスよりも外からの攻撃のほうが気になります。

(もちろん進入されて権限が奪取された場合は別ですが・・・)


2 ● jiangmin
●1ポイント

「なるべく具体的(たとえば777だと」という捉え方がそもそもおかしいんじゃないでしょうか。アクセス権限の付与や公開ディレクトリに置くファイルは最小限にする、という単純な基本原則に従えばいいだけです。

その3桁の数字がユーザ・グループ・誰でもに対して各々読む・書く・実行を意味するということと、ユーザ・グループの概念については既にご存じなんですよね。

http://q.hatena.ne.jp/1150274687

◎質問者からの返答

ご回答ありがとございました。

はい、基本的な対策は行っております。ドキュメントルートの外にデータファイルは置くことなどは行っております。また、ライブラリに直接アクセスできないように、HTTP経由でアクセスする必要のないフォルダにはhtaccessでアクセス制限をかけたりなども行っています。

なるべく多くのケースで使える基礎となる考え方がほしかったものですから、あいまいな形で質問をしてしまいましたが、もう少し具体的に言いますと、サイトのトップページをプログラムから更新する必要がありまして、どうしても666にしておく必要があり、これがどのくらい危険なのか図りかねてる、といった状況です。

できればオーナー権限でCGIとしてPHPを起動して・・・などと他権限で動くような対策を取りたいとは考えているのですが、サーバーの知識が足りずうまくいくかどうか不安なもので、先に危険度だけ知りたいなと思います。


3 ● kurukuru-neko
●15ポイント

SuLinux (Secure Linux) /LIDS

http://itpro.nikkeibp.co.jp/free/LIN/LIN_CONTENTS/20040706/2/?ST...

http://www.atmarkit.co.jp/fsecurity/rensai/lids03/lids02.html

http://www.selinux.hitachi-sk.co.jp/document/article/article-200...

http://lc.linux.or.jp/paper/lc2004/CP-02.pdf

http://www-06.ibm.com/jp/linux/event/2005/matsuri/pdf/14a13hitac...

重要なファイルであれば直接ファイルに書き込みを

行わない方がよいです。(syslogインタフェース等を使う)

独自のロギング用ローダブルモジュールを作る。

http://web.yl.is.s.u-tokyo.ac.jp/~sumii/linux/writing-linux-driv...

http://www.mech.tohoku-gakuin.ac.jp/rde/contents/linux/drivers/m...

◎質問者からの返答

ご回答ありがとうございました。

む、難しいですね・・・

いまいち何のことかよくわかりません・・・

PHPから書き換えを行うのではなくて、OSレベルから書き換えを行う、といった意味合いなのでしょうか。

勉強してみます!


4 ● jiangmin
●1ポイント

つまり、サイトのトップページを更新するプログラムはHTTPDとは無関係に、サーバ内でローカルに一般ユーザで実行され、そして「どうしても666にしておく必要があ」るファイルは、そのプログラムとHTTPD上で動作するphpのスクリプトの両方から読み書きできる必要があるということですよね。

ファイルシステムのアクセス権はあくまでローカルでの話なので、666にしても、ローカルにどれかのユーザ権限で何か出来てしまう穴がどこにも無ければ大丈夫です。

サイトのトップページを更新するプログラムを実行するユーザを、phpスクリプトを実行するユーザ(たぶんHTTPDと同じ?)のグループにも属させてファイルのアクセス権は660というので問題無いように思います。

参考までに⇒http://tdiary.ishinao.net/20060203.html

◎質問者からの返答

ご回答ありがとうございます!

>ファイルシステムのアクセス権はあくまでローカルでの話なので、666にしても、ローカルにどれかのユーザ権限で何か出来てしまう穴がどこにも無ければ大丈夫です。

ローカルだけの話なんですか!その他、というからHTTPでアクセスしてきたユーザーもその他に含まれるものだと思っていました・・・

勉強になりました、ありがとうございました!

ということは書き込み権限を与えても、サーバー上でのユーザー権限を持っているユーザーでなければファイルの書き換えなどはできないということですね。

> サイトのトップページを更新するプログラムを実行するユーザを、phpスクリプトを実行するユーザ(たぶんHTTPDと同じ?)のグループにも属させてファイルのアクセス権は660というので問題無いように思います。

上記の「プログラムを実行するユーザ」という点ですが、このユーザーというのは、そのプログラムのファイルの所有者が「プログラムを実行するユーザ」にあたるのでしょうか。


5 ● toohigh
●20ポイント

# 一部、他の方の回答への補足になってしまいますが・・・

先に、要点だけ書くとこんな感じになります。

・ひとつでも脆弱性を抱えたPHP/CGIのスクリプトが

外部から使える状態になっていた場合は、666 なファイルの

全てに書き換えのリスクが発生する。

・逆に、書き換え動作を行う PHP のみを setuid な CGI として

動作させた上で書き換え対象ファイルを 644 などの

パーミッションに設定した場合は、setuid なスクリプトの

動作に注意してやれば、リモートから HTTP 経由での

書き換えのリスクは解消可能である

・脆弱なスクリプト類を外部から悪用される場合、特定の

外部から使うツールが存在するというよりは、自身で設置する

スクリプト等次第なので、ツール名は挙げにくい



> その他、というからHTTPでアクセスしてきたユーザーも

> その他に含まれるものだと思っていました・・・

HTTPでアクセスしてきたユーザが PHP スクリプトを

実行した場合は、httpd の実行権限(普通は www とか

apache とか httpd とか)になります。

で、普通はファイルを置く人と httpd などのユーザは同一の

グループには属していないことが多いかと思いますので、

アクセス権的には「その他」(3桁表記でいう一番右の桁)が

利いてくる、ということになります。逆にいうと対象ファイルの

所属グループに httpd アカウントが属している場合は

真ん中の桁が利く、ですね。

# url はダミーです。

http://www.google.com/

◎質問者からの返答

なるほどなるほど・・・

> 実行した場合は、httpd の実行権限(普通は www とかapache とか httpd とか)になります。

サーバー屋さんからhttpdの実行権限について昔注意を受けたことがあったのですが、こんなところで効いてくるのですね。

ありがとうございました?


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ