WordPressのサイトは簡単にハッキングされてマルウェアを埋め込まれます。特にXserverを利用しているサイトはマルウェアを仕込まれるケースが多いように思います。
よく知られた対策をサイト側で実施しても簡単にマルウェアを仕込まれるのはなぜなのか?

一般的なセキュリティ対策をサイト側にしても殆ど効果が無い感があります。
よくある説明が、ブルートフォースアタックでパスワード総当たりされている、というものですが、その対策としてログイン試行回数の制限がある。そうなると、ID、パスワードが完全に漏れていないと不正ログインはできない。

そんなに簡単に漏れることある?
不正アクセスは海外からだけど、その対策として海外ダッシュボードアクセス制限しているのだったら、海外から不正ログインできない。

侵入経路が考えているものと違うとしか思えない
Xserverと他のサーバーの違いは何なのか?と考えてたどり着いた結論があります。
この記事では、サーバー側でセキュリティを高める方法をまとめておきたいと思います。
セキュリティ対策としてはWAFが一番効いている気がする
なぜ、不正アクセスされるサイトは利用者が多いXserverばかりなのか?
他のサーバーではそんなに簡単ハッキングされないのになぜXserverばかり?
不正アクセスされると、ファイルが追加されたり書き換えられたりするわけです。それを防ぐのはWAFが一番効果的だと思います。
WAF(ウェブアプリケーションファイアウォール)は、従来のファイアウォールやIDS、IPSでは防御できなかった攻撃を検知し、ブロックする機能です。
https://www.sakura.ne.jp/function/waf/
よくよく考えると、Xserverは初期状態でWAFが無効になっている。
不正アクセスが通常のログイン画面からのアクセスではなく、WAFが無効なXserverばかりということは、WAFがセキュリティ対策としては一番有効なのではないかと思うに至りました。
WAFはセキュリティ対策のかなめ
Xserver/WpXはWAFがOFFになっている
WAFといえば、ロリポップというイメージが強く、他のレンタルサーバーではあまり導入されていないイメージがあります。
しかし、XserverでもWAFは使えます。初期状態でOFFなだけです。
通常、レンタルサーバーのWAFの設定はONとOFFのスイッチ1つしかないのですが、Xserverは細かく分かれています。
XSS (クロスサイトスクリプティング)
対策内容 | javascriptなどのスクリプトタグが埋め込まれたアクセスについて検知します。 |
---|---|
不正アクセス例 | クッキーの値を不正に取得、設定しセッションハイジャックを行うCSRF(クロスサイトリクエストフォージェリ)の踏み台とするURL等を偽装し利用者をフィッシングサイトへ誘導する |
ターゲット | 掲示板ブログシステム他、第三者が入力した情報を表示するアプリケーション全般 |
SQL (SQLインジェクション)
対策内容 | SQL構文に該当する文字列が挿入されたアクセスについて検知します。 |
---|---|
不正アクセス例 | SQL構文を利用した不正な文字列を付加し意図しないSQL文を発行するデータベース情報の漏洩を試みるデータベースの情報の書き換えや破壊を試みる |
ターゲット | データベース登録を行う会員制サイトデータベースを利用したアプリケーション全般※利用者の入力した内容からSQL文を生成するアプリケーションが不正アクセスの対象となります。 |
ファイル (ファイル不正アクセス)
対策内容 | .htpasswd .htaccess httpd.conf等、サーバーに関連する設定ファイルが含まれたアクセスを検知します。 |
---|---|
不正アクセス例 | パスワードの記述されたファイルを上書きし認証の掛かったページに不正アクセスを行うサーバーの設定ファイルを書き換えることで挙動の乗っ取りが行われる |
ターゲット | 画像アップロード機能付き掲示板ファイル操作が行われるアプリケーション |
メール (メールの不正送信)
対策内容 | to、cc、bcc等のメールヘッダーに関係する文字列を含んだアクセスを検知します。 |
---|---|
不正アクセス例 | メールが送信されるフォームを利用した第三者への大量メール送信が行われる |
ターゲット | メールを送信する機能を備えたアプリケーション |
コマンド (コマンドアクセス/実行)
対策内容 | kill、ftp、mail、ping、ls 等コマンドに関連する文字列が含まれたアクセスを検知します。 |
---|---|
不正アクセス例 | コマンドを実行できるスクリプト言語(PHP,Perl等)を通してコマンドを不正実行させるサーバーに関する重要な情報の盗み見や、踏み台として利用する |
ターゲット | PHPやPerl等で作成されコマンド実行を利用するアプリケーション |
PHP (PHP関数の脆弱性)
対策内容 | session、ファイル操作に関連する関数のほか脆弱性元になる可能性の高い関数の含まれたアクセスを検知します。 |
---|---|
不正アクセス例 | セッションを書き換え、会員ページへのアクセスや管理者権限の乗っ取り不正ファイルのアップロードを踏み台にサーバーの乗っ取り |
ターゲット | PHPを用いたアプリケーション全般 |
WAFを有効することで、ダッシュボードからファイルの編集が出来なくなったり、追加CSSが保存できなかったり色々不便なことがおきます。ですので、サイトを編集する時以外はONにしておく方が良いと思います。
XserverのWAFはSiteGuardと連携も無理そうなので、除外設定がなく、使いにくそうです。
姉妹サービスのWpXもXserverと同じWAF機能です。
ロリポップのWAF設定
ロリポップは初期状態でWAFがONなので、とても使いにくく、WAFをOFFにしたくなります。
しかし、初期状態でインストールされているSiteGuardと組み合わせることでWAFの除外が簡単に行えるのでWAFはOFFにしないで運用する方が良いと思います。
さくらインターネットのWAF設定
さくらインターネットもWAFは初期状態でOFFです。独自SSLの場合はダメなようですが、無料SSL(共有SSL)はWAFが使えます。
サーバー側でSiteGuardを使っているようなので、SiteGuardプラグインを導入することでWAFの使いにくさは回避できそうです。
Conoha wingのWAF設定
Conoha wingはWAF機能がありますが、初期状態だとOFFになっています。
Siteguardには対応していないようですが、コントロールパネルで除外設定が使えます。
Conoha wingは初心者も使っているので問い合わせがたくさん来るのを避けたいのか、WAFが初期状態でOFFになっていますが、Xserverと同じくこれは結構危ないのでは?と思っています。
mixhost(cPanel)のWAF設定
mixhostはcPanelの機能として、WAFがあります。名前はModSecurityとなっていてWAFという名前ではないですが、初期状態で全ドメイン有効になっています。
このサイトもmixhostですが、WAFによる不便さはなく、cPanelのModSecurity/WAFはとても優秀だなと思います。
また、Imunity360というウィルススキャンも標準で有効になっていて、不正なファイルが存在すると自動的に除去される仕組みも素晴らしい。
SiteGuardで自分のIPだけWAFを除外する方法
いちいち除外ルールを設定するのは面倒なので、自分のIPアドレスからのアクセスはWAFを一律除外する方が作業効率を考えると簡単です。
WAF対応を含めたレンタルサーバーのおすすめ度
レンタルサーバーは、Xserverか、Conoha Wing、さくらインターネット、ロリポップから選ぶ人が多いでしょう。
どのサービスもスピードやSDD対応や容量など横並びで大差ないのですが、WAFの対応状況を並べてみると違いがあります。
WAFが有効になっても通常の作業に支障がでるとWAFがイヤになってしまいます。
そういう意味では、WAFをONにしても作業に影響がないのが一番良いわけです。
そうなると、初期状態でWAFがONになっていて、いちいち除外設定をしなくてよいmixhostが最強なのではないかと思います。
それ以外だとSiteGuardに対応しているサーバーでIP除外をするのが一番簡単で安全だと思います。その条件にあうのは、ロリポップ、さくら、ヘテムルの3つですね。
いわゆる高速表示を売りにしたサイト(WpX/Conoha Wing)のWAFがSiteguardでないのは悩ましいところだと思います。
WAF機能 | Siteguard対応 | 除外設定 | 備考 | |
Xserver/WpX | 〇 初期状態OFF | × | ON/OFFのみ | WAF除外が機能のON/OFFしかないのが欠点 |
さくらインターネット | 〇 初期状態OFF | 〇 | Siteguard .htaccess | |
ロリポップ | 〇 | 〇 | Siteguard .htaccess | |
Conoha Wing | 〇 初期状態OFF | × | コンパネ | |
お名前RSサーバー | 〇 初期状態OFF | × | コンパネ | |
ヘテムル | 〇 | 〇 | Siteguard .htaccess | |
mixhost | 〇 | × | × | mixhostはWAFでトラブルが無いので除外をそもそもする必要が無い |
まとめ
Xserverで不正アクセスでいろんなサイトが403にされてしまうサイトが多い理由は、
- 初期状態でWAFがOFFであること
- 利用者数が多い
の2点だと思います。
いままでWAFを正直面倒なだけで意味あんのかいな?と思っていました。一般的な不正アクセス対策をサイト側でいくらしても、簡単にハッキングされてしまう例をたくさん見てきて、サーバーレベルで対策をしないとダメなのではないかと思うに至りました。
ご自身が使われているサーバーにWAF機能があるか、ある場合はWAFがONになっているかどうか確認して、WAFが使えるサーバーであればONにしましょう。
WAFに対応していないサーバーをご利用の場合は、サーバー変更を検討した方が良いでしょう。