48

この質問の議論に触発されて、おそらく愚かな質問。

Linuxベースのウェブホスティングにディレクトリやファイルをパーミッションレベルで残すの777は悪いことであり、常に必要なだけパーミッションを設定することは悪いことだと私たちは皆教えられてきました。

私は今、特にPHP / Apacheのコンテキストで、悪用の危険性がどこにあるのかについて興味があります。

結局のところ、PHPスクリプトファイルは、「実行可能」とマークされているかどうかに関係なく、外部から(つまり、Webサーバーを呼び出し、続いてインタープリターを呼び出して)実行できますね。そして、同じことがコマンドラインphpインタプリタを介して呼び出されるファイルにも当てはまりますよね?

では、脆弱性はどこにあるの777でしょうか?同じマシン上の他のユーザーが、誰でも書き込み可能にされたファイルにアクセスできるというのは事実ですか?

4

4 に答える 4

32

これが1つのシナリオです:

  1. ユーザーがアップロードできる保護されていないディレクトリがあります。
  2. system()シェルスクリプトと、シェルスクリプトへの呼び出しを含むphpファイルの2つのファイルをアップロードします。
  3. ブラウザでURLにアクセスして、アップロードしたばかりのphpスクリプトにアクセスし、シェルスクリプトを実行します。

このディレクトリが777の場合、それは誰でも(phpスクリプトが実行されるユーザーapacheを含む)それを実行できることを意味します。そのディレクトリとおそらくディレクトリ内のファイルに実行ビットが設定されていない場合、上記の手順3では何も実行されません。

コメントから編集:重要なのはPHPファイルの権限ではなくsystem()、Linuxユーザーapache(またはapacheを実行するように設定されているもの)によってLinuxシステムコールとして実行されるのはPHPファイル内の呼び出しです。正確には、実行ビットが重要です。

于 2010-02-26T00:31:18.277 に答える
6

1つのアカウントに侵入するだけでよいため、悪意のあるアクティビティに対するWebサイトの脆弱性プロファイルが大幅に増加します。

ログインしてシステムにアクセスできる人は誰でも、「このWebサイトは本当に安全ではないので、クレジットカード情報を教えてください」と読むように変更するなど、ページに対して好きなことを行うことができます。

編集:(コメントを明確にして対処するため)

多くのサーバーには、人生において複数の目的があります。それらは複数のサービスを実行します。それぞれに一意のユーザーを割り当て、それに応じてファイルのアクセス許可を管理することにより、これらのサービスを互いに慎重に分離すると、はい、誰かがアカウントの資格情報を侵害した場合でも、あなたはまだお湯の中にいますが、彼らができる被害はその1つのサービスに限定されています。汎用アカウントが1つだけで、ファイルシステム全体を777に設定すると、侵害された1つのアカウントがマシン上のすべてを危険にさらします。

サーバーがApache/PHPの実行専用であり、他の目的を果たさず、Apache / PHPが実行されているアカウントが1つしかない場合、その1つのアカウントを侵害することは、マシン全体を侵害することと同じです。アプリケーションの観点(ただし、PHPの実行に使用されるアカウントによってシステムファイルが保護され、書き込み不可である必要があります...これは、管理者アカウント/ルートでのみ可能である必要があります)。

彼らがファイルを書くことができ、それが実行可能である場合、彼らはそれをあなたのマシンで実行するもの(実行可能ファイルまたはスクリプト)に変更し、PHPのshell_execを使用してその実行可能ファイルを実行できます。shell_execを許可しないように設定されている場合は、設定も変更される可能性があります

于 2010-02-26T00:22:17.737 に答える
3

パーミッションに関しては、ミニマリズムに従うべき一般的な理由はたくさんありますが、LAMPウェブホストのコンテキストでは、すぐに頭に浮かぶのはいくつかです。

  • 共有ホスティングプラットフォームでは、ホストを共有している他のユーザーがスクリプトの読み取りと書き込みを行えるようになりました。
  • 専用ホストでは、不正なプロセスがファイルの読み取り/書き込みを行ったり、誤ってファイルを削除したりする可能性があります。ユーザーnobodyとしてバックグラウンドで実行されているカスタムロギングプロセスがあり、その結果、バグが発生したとしrm -rf /ます。誰も書き込み権限を持ってはならないファイルはほとんどないので、これは一般的に無害ですが、この不正なプロセスによってファイルが取得されます。
  • あなたのウェブサイトを改ざんするために、誰かが誰かが言うnobodyか、そのようなダミーのアカウントでさえ、どんなユーザーとしてでもアクセスを得る必要があるだけです。一般に、攻撃者は、ある程度のダメージを与えることができる場所に到達するために、さらにユーザーレベルのエスカレーション攻撃を行う必要があります。これは本当の脅威です。一部の重要ではないサービスはダミーアカウントで実行されている可能性があり、脆弱性が含まれている可能性があります。
于 2010-02-26T00:32:09.120 に答える
1

サーバーにソフトウェアパッケージがインストールされていて、ゼロデイ脆弱性があるとすると、攻撃者はファイルのアップロード機能を使用して管理コントロールパネルにアクセスできます。すべてを777に設定すると、攻撃者がアップロードするのは簡単です。彼が望むところならどこでもシェルスクリプト。ただし、権限を適切に設定すると、誰も/ www-data / etcに書き込み権限がないため、彼はそれを行うことができません。

于 2015-01-21T20:17:50.400 に答える