WordPressを導入したが、セキュリティ対策について不安という方も多いのではないでしょうか。
近年WordPressを狙ったハッキングが増えてきていますので、しっかりとセキュリティ対策を実施し、皆様のウェブサイトを守ってください。
今回の記事ではWordPressを悪意ある攻撃から守るために必要なWAFと、Site Guardについてご紹介します。
目次
WAFについて
WAF(ウェブアプリケーションンファイアウォール)は、Webサイトの脆弱制をついた攻撃からサイトを守ります。
動的コンテンツを設置したウェブサイトの場合、XSS対策、SQLインジェクション対策、CSRF対策など様々な脆弱性を考慮しながらサイト構築をする必要があります。
人が作るプログラムには、脆弱性ゼロの完璧なプログラムはできないでしょうし、運用上セキュリティアップデートが出てから、本番に適用するまで数日かかる場合もあります。
脆弱性が無いプログラム作成を心がけることに加えて、WAFを導入することで、安全なウェブサイトを構築することができます。
(*) WAFの読み方は「ワフ」です。
WAFの利用料
WAFの利用はレンタルサーバーに標準装備されている場合は無料で使うことができます。ついていない場合はクラウド型のWAFを契約したり、サーバーにWAFをインストールしたりすることで利用することができます。
昨今のレンタルサーバーにはWAFが標準装備されており、基本無料で使えますので、案件の必須要件に入れても良いのかなと思っています。
WordPressにWAFを導入
ここからはCPIのACE01にWordPressを導入し、WAFを設定する方法をご紹介します。
WordPressのバージョンは2019年1月時点の最新版 5.0.3を使います。
利用する環境
- WordPress5.0.3
- サーバー:ACE01
WordPressインストール
WordPressの導入はCPIオンラインヘルプの、WordPressのインストールを参照ください。
CMSインストーラーを利用しますので、簡単にインストールすることができます。
WAFの利用
WAFの利用は、CPIのACE01を利用している場合は、デフォルトでOnになっています。
WordPressをインストール後、カスタマイズし、表示確認や、記事投稿が正常にできる場合は設定完了です。
Forbidden accessが表示される場合
WordPressのカスタマイズをしていると、導入するPluginの種類によって、Forbidden accessが表示されることがあります。
WAFが原因でページが表示できないという理由でWAFを無効にしてしまう方がいますが、WAFを無効にするのではなく、除外設定を実施してください。
WAF除外設定
ACE01のウェブコントロールパネルにログインし「制作ツール > WAF」から、ログの表示を行います。
上記のサンプルでは、URL「******.smartrelease.jp/wp/」で、「s=%3Cscript%3Ealert%28%27hoge%27%29%3C%2Fscript%3E」 に 対して、「xss-tag-1」 というシグネチャでブロックされているのがわかります。
シグネチャとは、不正な攻撃パターンの種類です。
クエリを指定して除外設定
SiteGuard_User_ExcludeSig_With_ParamName [ シグネチャ ID|シグネチャ名|urldecode|all|clear] [パラメータ名 ]
記述例
SiteGuard_User_ExcludeSig_With_ParamName xss-tag-1 s
上記の例の場合「s」クエリのみ、xss-tag-1 を除外することができます。
下記ログのようにクエリが付いていない場合は、2つの除外方法があります。
ファイルを指定する場合
<Files ~ "sample\.php$"> SiteGuard_User_ExcludeSig xss-tag-1 </Files>
sample.php の xss-tag-1 は除外になります。
今回の場合は「/ckeditor/xss」ディレクトリですので上記方法での除外はできません。
Apacheの設定ファイル、httpd.conf が操作できるのであれば、ディレクトリを指定して除外することも可能です。
<Directory "/var/www/html/ckeditor/xss"> SiteGuard_ExcludeSig xss-tag-1 </Directory>
しかしCPIのACE01はhttpd.conf の設定を変更ができないので、次のように除外します。
「/ckeditor/xss」フォルダを作成します。その中に「.htaccess」を設置し、WAFの除外設定を記述します。
SiteGuard_ExcludeSig xss-tag-1
面倒ですが、この設定作業を行うことで、特定の箇所でのみWAFの除外設定を実施することができ、その他はWAFを有効に保てます。
SiteGuard WP Plugin
WAFの設定に加えて「SiteGuard WP Plugin」を有効にすることで、さらにセキュリティを強化することができます。
WordPressの管理画面にログインし、プラグインからSiteGuard WP Pluginを「有効化」します。
有効化するだけで、ログインURLが変更になったり、ログイン画面に入力項目が増えたりして、不特定多数を狙った攻撃に、かなり有効に作用します。
さいごに
WordPressにWAF、SiteGuard WP Pluginを導入し、サイトを安全に運営する方法でした。
WAFはオフにしないで除外設定を利用する。SiteGuard WP Pluginは有効にする。
と、いうことを実施することで、簡単に安全なサイトを構築することができ、不特定多数を狙った攻撃からは、かなり有効に作用します。
WordPressがハッキングされるケースが多発していますので、実施を心がけてください。