日本国内だけでなく、世界的にも有名でシェアの高いWordPressを知っている人は多いのではないでしょうか。
テーマやプラグインを活用することで、デザインが洗練されたブログやコーポレートサイトを制作したり、ECサイトなどを運営することもできるWordPressですが、セキュリティ上の課題を指摘されることもしばしば。
本稿では、WordPressのセキュリティについて、設定ファイルであるwp-config.phpとディレクトリトラバーサルに焦点をあてた対策について解説します。
WordPressの設定ファイルは、wp-config.php
wp-config.phpというファイル名からも分かるように、WordPressの設定はwp-config.phpです。
WordPressは、WebサーバーとPHP、データベースで構成され、wp-config.phpにはデータベース名やデータベースのユーザー名、パスワードなど重要な情報が保存されています。
wp-config.phpのアクセス制御
WordPressのセキュリティや安全性を高める方法として、このwp-config.phpのアクセス制御が取り上げられることがあります。
メジャーなWebサーバーのApacheであれば、.htacccessによってwp-config.phpに対するアクセスを禁止するといった対応で、WordPressのサポートサイト(「WordPressの安全性を高める」)にも説明がある一つの対策となっています。
ツールによるセキュリティ診断などでは、wp-config.phpにありがちなバックアップファイルを検出しますし、実際にバックアップファイルから設定情報が漏洩する危険性もあるため、対策する意味はあります。
しかし、次に述べるWebアプリケーションの脆弱性を悪用する攻撃には効果がないことを認識しておく必要があります。
ディレクトリトラバーサルによるwp-config.phpの読み取り
WordPress、テーマ・プラグインの脆弱性として、クロスサイトスクリプティング(XSS)やSQLインジェクションなど様々なものが見つかっています。実際の攻撃としては、ディレクトリトラバーサルによるwp-config.phpの読み取りが非常に多い状況です。(当社調べ)
ディレクトリトラバーサルは、脆弱性を悪用してディレクトリを遡り、ターゲットとなるファイルを読み取るなどの不正アクセスをする攻撃、またはそのような攻撃が可能な脆弱性そのものを指します。
WordPressでは、特にテーマ・プラグインのディレクトリトラバーサルの脆弱性を悪用した攻撃が多く、設定ファイルであるwp-config.phpがターゲットになっています。
先ほど話題にしたアクセス制御は、あくまでファイルパスへのアクセスに対して働くものであり、ディレクトリトラバーサルのようにWebアプリケーションの脆弱性を悪用した攻撃を防ぐことはできません。
適切なアクセス制御がなされないまま、外部からのデータベース接続が許可されていたり、phpMyAdminを利用している場合、その被害が大きくなる可能性が高いことが分かると思います。
wp-config.phpのセキュリティ対策として、wp-config.phpを一つ上のディレクトリに移動するという対策を目にすることがあります。wp-config.phpをドキュメントルート外に配置することで、外部からアクセスさせないようにするという対策です。なお、サブディレクトリにWordPressをインストールしている場合、この対策を適用することはできません。(一つ上の階層が公開ディレクトリのため)
WordPressには、インストールディレクトリの一つ上の階層にあるwp-config.phpを参照可という仕様があり、一見賢いように思えますが、ディレクトリトラバーサルに対しては効果がありません。さらに一つ上のパスを指定すればwp-config.phpをターゲットにすることができ、攻撃者もその事は知っていると考えて間違いないでしょう。
一つ一つの対策に意味があり、無駄なものはありませんが、本当の意味で、wp-config.phpを安全にするためにも正しく理解し、適切な対応を心がけるようにしましょう。
最新バージョンを利用する
このような脆弱性を悪用した攻撃への対策として、基本となるのは最新バージョンの利用です。前述の攻撃の多くは、脆弱性が存在する古いバージョンのテーマ・プラグインを利用し続けているWordPressがターゲットになっています。
古いバージョンを利用したまま、脆弱性が存在し続けることは大きなリスクとなるほか、新しいバージョンには機能改善や不具合修正などが含まれることからも、最新バージョンを利用するという対策の徹底を推奨しています。
WAFによるwp-config.phpの保護
WordPressなどで構築されたWebサイトを保護するセキュリティ対策として、WAF(ウェブアプリケーションファイアウォール)があります。
WAFは、SQLインジェクションやクロスサイトスクリプティング(XSS)、OSコマンドインジェクション、ディレクトリトラバーサルなどのWebアプリケーションの脆弱性を悪用した攻撃からWebサイトを保護するソリューションです。
WordPress本体、テーマやプラグインにおいても、これらの脆弱性が発見されることがあり、特にテーマとプラグインについては、必ずしもセキュリティに配慮されているとはかぎらず、作者次第という側面もあります。
万一に備えて、WAFのようなセキュリティ対策を併用することは、ワンランク上のWebセキュリティを実現するための一つの選択肢となります。もちろん、WordPressの重要な設定ファイルであるwp-config.phpを保護するための対策としても有効です。
WordPressのセキュリティ対策に、ぜひEGセキュアソリューションズ株式会社のソリューションを役立ててください。
- カテゴリ:
- Webセキュリティ