FollowSymlinks
FollowSymlinksを知らないせいで的外れなポストをしてしまった私であるが、おかげでFollowSymlinksの危険性がよくわかった。特にロリポップの件から2-3日経ち、この件に関する的を射たブログ記事が書かれている。
FollowSymlinksの設定をhttpd.confにしていたか、もしくは.htaccessで設定できるようにしていたことが最も大きな問題点である。シンボリックリンクというのは権限がなくても設定できる。まず何らかの方法でwp-config.phpにシンボリックリンクを貼り(拡張子は.txtなどとする)、そこからFollowSymlinksを設定したapacheを経由してapacheの実行権限を使ってwp-config.phpをシンボリックリンク経由で読み取るのであった。suexecが設定されていてもその権限で実行されるのはCGIだけなので、テキストファイル等はやっぱりapacheユーザーの実行権限で読み取られてしまう。共用サーバーであればFollowSymlinksを切り、AllowOverrideできないようにしておくしかこの攻撃に対処する方法はないようである。恐ろしやFollowSymlinks...。
nginxではどうなのか
nginxにもやはりFollowSymlinksと同様のディレクティブが存在する。
syntax: disable_symlinks off; disable_symlinks on | if_not_owner [from=part]; default:
disable_symlinks off; context: http, server, location This directive appeared in version 1.1.15.
既定ではシンボリックリンクは有効である。なのでやっぱりこのシンボリックリンク問題はnginxでも起こる可能性がある。onにするとパフォーマンスが落ちると書いてあるが、セキュリティ強化のためには致し方ないところであろう。onにしておくか。。