matsumotory / mod_process_security

mod_process_security is an access control module for CGI and DSO. Improvement of mod_ruid2(vulnerability) and mod_suexec(performance).
https://ieeexplore.ieee.org/abstract/document/6305278?section=abstract
23 stars 11 forks source link

mod_vhost_aliasでもvirtualhost単位で動的にuidgidを固定できるようなディレクティブ #2

Open matsumotory opened 11 years ago

matsumotory commented 11 years ago

mod_vhost_aliasのようなmassivevirtualでもvirtualhost単位で動的にuidgidを固定できるようなディレクティブを追加したい。SuexecUserGroupを動的にやるような。いい方法なだろうか。

<VirtualHost *:80>
...
  VirtualDocumentRoot /usr/local/apache/vhosts/%0
  PSUserGroup On
...
</VirtualHost>

とかしたら、ホストで固定したいuidgidをそれぞれのホストが持つ何らかのファイルから動的に取得して、そのホストの処理は全てそのuidgidでコンテンツを処理する、といったような。具体的な案はまだない。

今の実装では、リクエストのあったファイルから動的にuidgidを取得するので、そうしたくない場合の機能を追加したい。

matsumotory commented 11 years ago

こんな感じのディレクティブが良いかな。

<VirtualHost *:80>
...
  VirtualDocumentRoot /usr/local/apache/vhosts/%0
  PSFixedUserGroupFile /usr/local/apache/vhosts/%0/.permission_file
...
</VirtualHost>
WhiteAnthrax commented 11 years ago

それいい感じ

matsumotory commented 11 years ago

普通のVirtualHost設定の時は、

<VirtualHost *:80>
...
  PSFixedUserGroup 501 501
...
</VirtualHost>

とか。

cs-sonar commented 11 years ago

mod_vhost_alias際、デフォルト(.permission_fileがないとき)は、ドキュメントルートのディレクトリのuid/gidで固定してしまう、っていうのはどうでしょうか。 ちゃんと取れるのかはわからないですが。。

matsumotory commented 11 years ago

@cs-sonar

ドキュメントルート・ディレクトリのuid、gidがコンテンツのuid.gidと大抵の場合同じであることが想定できれば、それでもよさそうですね。どうなのだろう。

この時に取得するuid gidは非常に重要な情報なので、きちんとチェックできるような仕様にしたいですね。例えば、.permission_fileとドキュメントルートのuid、gidが一致していて、なおかつ処理するコンテンツのuid,gidが一致していれば実行する、といったような。

WhiteAnthrax commented 11 years ago

ドキュメントルートのディレクトリuid,gidで動作するのはデフォルトじゃないほうが安全な気がします。 あと、PSFixedUserGroupFile は ドキュメントルート外にも置けるのがいいなあ

matsumotory commented 11 years ago

ドキュメントルート外における方が良いですね。デフォルトはファイルの権限にしておいて、PSFixedUserGroupFileが設定されていたら、そのファイルのuidgidを使う、ファイルがなければデフォルトの動きをする、という感じが良さそうです。

cs-sonar commented 11 years ago

PSFixedUserGroupFile にて指定できるのはファイルだけではなくディレクトリも可能なようするのはどうでしょうか?

運用中のホスティングサービスに導入するという目線で考えた場合、できるだけ現状のシステムに変更なく導入したいと考えてしまうのですが、ディレクトリの指定も可能であればそういったコストが軽減できるパターンもあるのではないかと思います。

matsumotory commented 11 years ago

そうですね。ファイルやディレクトリのowner・groupが変更されて何か被害がでる、というのは避けるような仕様にする必要はありますね。