web-dev-qa-db-ja.com

他のユーザーにApacheログへの書き込みアクセスを許可すると、ルートエクスプロイトが発生する可能性があります-これはどのように機能しますか?

オン http://httpd.Apache.org/docs/2.2/logs.html

Apacheがログファイルを書き込んでいるディレクトリに書き込むことができる人は誰でも、サーバーが起動されているuid(通常はroot)にほぼ確実にアクセスできます。結果を意識せずに、ログが保存されているディレクトリへの書き込みアクセスを許可しないでください。詳細については、セキュリティのヒントのドキュメントを参照してください

これはどのように作動しますか? Apache親プロセスユーザー(root)にアクセスを許可するために、Apacheが書き込んでいるファイルにどのように書き込むのですか?

3

セキュリティのヒントのページをご覧ください。

http://httpd.Apache.org/docs/2.2/misc/security_tips.html

ルート以外のユーザーが、ルートが実行または書き込みを行うファイルを変更できるようにすると、システムが開かれ、ルートが侵害されます。たとえば、誰かがhttpdバイナリを置き換えて、次に起動したときに任意のコードを実行するようにすることができます。ログディレクトリが(root以外のユーザーによって)書き込み可能である場合、誰かがログファイルを他のシステムファイルへのシンボリックリンクに置き換え、rootがそのファイルを任意のデータで上書きする可能性があります。ログファイル自体が(root以外のユーザーによって)書き込み可能である場合、誰かがログ自体を偽のデータで上書きできる可能性があります。

Apacheはログファイルを開いてrootとして読み取るため、ここでは悪用の危険があります。ルート以外(Apache)のユーザーにファイルへの書き込みアクセス権を持たせたい理由がわかりません。読み取りアクセスを安全に許可できますが、書き込みアクセスはローテーションされた古いファイルにのみ許可することをお勧めします。 logrotateを使用してログローテーションを管理している場合、Apacheはこれらのファイルを開きません。

2
jeffatrackaid

Apacheがrootとして実行されていて、root以外のユーザーがApacheが実行するスクリプトを作成した場合、プロセスの動作方法により、スクリプトはrootとして実行されます。セキュリティ対策として、ほとんどのディストリビューションはApacheをrootとして実行しませんが、「www-data」、「Apache」、「httpd」などの専用ユーザーとして実行します。

0
TheCompWiz