2016/03/18

簡単にセキュリティ対策ができる!SiteGuard WP Pluginの設定方法と詳細

不正ログインを試みる輩がホントに多いんですね。SiteGuard WP Pluginを導入してるのでログイン履歴を見たら毎日不正ログインを試した形跡が残ってたりします。セキュリティ対策をしておかないと時間の問題でログインを突破されますよ!

ログイン履歴をさかのぼってみたら、ブルートフォースアタックの的にもなってたことに気付きました。15秒間で1000回以上試したデータが残ってて・・・『15秒で1000回』ですよ!もう、、気持ち悪すぎでしょっ。。

ブルートフォースアタックとは
総当り攻撃とも言われてログイン名やパスワードをしらみつぶしに解読しようと不正ログインをくり返す攻撃です。アカウント名とパスワードが一致しなければパターンを替えて突破を試みてきます。

参考総当り攻撃|Wikipedia

ワードプレスのプラグイン『サイトガード』を導入してたので、難を逃れたんです!

ログイン名とパスワード解読されてブログのデータを改ざんされたり変なプログラムを仕込まれたりのっとられる前に、対策が必要です。WordPress利用者が多いから標的になりやすいとも言われてるけど、誰が標的の的になるのかはホントわからないです。

管理画面に居ながら、扱いがややこしい『.htaccessの設定』をボタン1つで変えて、外部攻撃からブログを守ってくれる初心者ブログのヒーローが『サイトガード』です!

.htaccessとは
ページやディレクトリへのアクセス制限や、リダイレクト(転送)させる条件を書けるファイルです。

IPアドレスが○○以外で管理画面にアクセスがあったら404ページを返すなど、個別のルールを設けて条件を設定することが出来ます。

.htaccessをセットしたディレクトリとその下層に設定が反映されるけど、記載が難しいのと、書き方や文字コードなどを間違ったらブログが真っ白になるなどの500エラーを出してしまいます。

セキュリティ強化の1つとしてワードプレスの「SiteGuard WP Plugin」を入れたらすぐに守られます。サイトガードの導入方法と使い方、『.htaccess』に書かれた設定を確認したいとき必要となる場合があるので同時に見ていきましょう!

鍵

スポンサーリンク

SiteGuard WP Pluginの導入方法

サイトガードの導入はWordPress管理画面、ダッシュボード内よりインストールします。手順は下記。

  1. プラグインより
  2. 新規追加を選択
  3. プラグインの検索から「SiteGuard WP Plugin」を入力
  4. 検索で出てきた『SiteGuard WP Plugin』の「今すぐインストール」と選択

プラグインのインストール手順

有効化すれば、WordPressのデフォルトログインurl:http://ドメイン/wp-login.php/から、http://ドメイン/login_12345/(数字は乱数が入る)に即変更されます。

サイトガードを有効化すれば即URLが変わる

ログインページのURLの変更を知らせるページに飛んだら『新しいログインページURL』をクリックして、その画面をブックマークしてくださいね。

ログインページの変更画面

ポイント

停止して有効化する毎にlogin_12345の5桁の数字は変更される。

有効化したら即レンタルサーバーの.htaccessに情報が加えられhttp://ドメイン/wp-login.php/のログインアドレスが/login_×××××/に変更

※ログインアドレスを見失ったときの確認方法は『見出し:ログインページの変更』で後述。

サイトガードのプラグインを有効にしたら、ダッシュボード内『設定』の下に『SiteGuard』という項目が現れ、そこから設定の変更が出来ますよ。

管理画面にSiteGuardの項目が追加される。

SiteGuard WP Pluginの各種設定の詳細

有効化直後にURLが変わって既に総当り攻撃からセキュリティでブログが守られるけど、詳細な設定が面倒だったのでせずに放置してたんですね。『ピンバック』が飛んでこない原因などもサイトガードの設定すら見てなかったからでもあります。

ブログ運営後、早々に入れたので設定見ても解らないのが本音なので、解ってる内容をガッツリ書いてるので知りたい箇所をみてくださいね。

ダッシュボード

ダッシュボードは現在の設定と、最大10001個のログイン履歴が見れて10001個以上のログは削除されていきます。設定は、変更して保存をクリックすればすぐ反映されるので、メチャクチャ簡単にセキュリティー設定が出来てしまうんです!

サイトガードのダッシュボード

管理ページアクセス制限は、自分で使ってて不便さを感じることがあるので、オンオフを切り替えてます。それ以外はフェールワンスがわずらわしい時オフにするくらいで一度設定したら、何かない限り放置してても問題なさそうです。

ログイン履歴は、不正アクセスだらけで毎日来てるのがよく解る

ログイン履歴には日時と結果、ログイン名と、IPアドレスが書かれてます。

知らない人がログインを試した履歴が毎日ある状態なんですよ。私のログイン成功が4ページ分400件弱、その他9600件は不正ログイン履歴。これって多過ぎますよね。下記は1ページ目の不正アクセス。

サイトガードのログイン履歴は失敗だらけ

結果は、失敗だったりフェールワンスだったり、ロック、成功などあります。

ブルートフォースアタックに気付いたのがサイトガードのログイン履歴からだった!

総当り攻撃に気付いたのはつい最近だけど、この画面を見てから気付いたんです。その数は履歴に残ってないほどなんで、どれだけどんなことが起きたのか解りません。けど、ロックして守ってくれたのがSiteGuard WP Pluginでした。

89ページ目から不正ログインでロックされた形跡

89ページ目以降ところどころ見る限り、すべて同一IPアドレスでしょうね。。ブルートフォースアタックだろな・・って推測されます。ログインロックの設定で後述。

10001個目も同一IP。

管理ページアクセス制限をON!外部からの攻撃の阻止をできる

デフォルトのオフから『オン』にして『変更を保存』すると、ログインしてないIPアドレスから管理画面に入ろうとすると404 Not Foundページを表示させます。

管理ページアクセス制限

IPアドレスを制限して、そのIPアドレス以外で管理画面にアクセスしたら404 Not Foundページを返すことで外部からの攻撃を阻止できるんです。

ログインしてるIPアドレスの制限は『.htaccess』に自動的に記載される仕組みになってて、IPアドレスの追加ができてるか確かめたいとき.htaccessを見ます。

IPアドレスの半角ドット『.』『\.』って形に置き換えられ『\』は『反対向いたスラッシュ』が自動的に入ります。例:12.34.567.89→12\.34\.567\.89。どれがどのIPアドレスかを確認するには、使用中のIP確認で解るので必要であれば見てくださいね。

『反対向いたスラッシュ』は、『バックスラッシュ』って言います。教えてくれてありがとぉございますっ!

IPアドレスを登録させるまで面倒なのに、24時間以上ログインしてないと.htaccessから削除されるんです。出先で別のワイファイ圏内に入ったときも、管理画面に入れば404ページを見る羽目になるので、ONにすると不便と感じます。

使い勝手を考えてON、OFFに切り替えてください。404ページを返す設定は、攻撃する側からすると難易度が上がるのでセキュリティ面では有効ですから。

家でログインしようとした時、ログインできない

管理ページアクセス制限をONにしてからログインしようとしたとき、何度もログインができなくなってしまったんですね。そんなときは『OFF』切り替えにして『変更を保存』したらログインできました。

スマホのワイファイを切った状態でもIPアドレスが変わるので、OFFにしたついでにログインしておくと手間が省けてちょっとだけ便利ですよ。スマホ画面にIP警告画面がでますけど、自分のIPアドレスだと確認できたら非表示にすればOK!

スマホ画面にIP警告画面

気になるようなら、再度ONにすれば、管理画面への攻撃から救ってくれるので安心度が高まりますね!最悪、入れないよっ。。ってなったときは、.htaccessの記載を消したらルールが削除されるから入れます。なんだかなぁ・・w

外出先でログインしようとしてログインできない場合

出先で管理画面にログインしたいけど404ページを返してログインできないとき、サーバーのFTPを直接触って.htaccessの記載を丸ごと削除します。サイトガードによる管理画面をフィルタする記載の部分です。

記入されてるIPアドレス以外から管理画面へアクセスがあった場合、404ページを返すって部分下記を丸々削除します。

すると管理画面に入れるようになってサイトガードの『管理ページアクセス制限』もオフに切り替わります。.htaccessがどこにあるかは、使用中のブログのディレクトリ内ですが次の見出しでサクッと後述。

※削除する箇所を間違ったとき、エラーが出る可能性があるので簡易バックアップをメールにでも取っておくと安心ですね。

参考ブログが真っ白!エラー原因は全角・閉じ忘れ・親子テーマの競合!?2通りの復元方法&今後の対策!!(目次:)復元方法は、簡易バックアップからの復元、またはエラーの内容を確認して追記部分を削除する

または、サーバーのFTPに入ってプラグインを無効化するのも簡単です。無効にするは『siteguard』のフォルダ名を『_siteguard』などに変えて、強制エラーを出して再度『siteguard』と元に戻せば停止します。これで再度インできますよ。

パスは/ドメイン/ wp-content / plugins / siteguard

参考管理画面に入れない場合:レンタルサーバーのFTPを直接触って、プラグインを削除する2つの方法

ログインページ変更と3つ確認方法

ログインページのディレクトリ名の変更ができる画面になります。http:/ドメイン/wp-login.php/への不正アクセスに対して、セキュリティ強化に一役かいそうですねっ!ここを別の名前に書き換えておけば安心度は高まります。

  1. 変更されたログインページ名はここで確認できます。『login_12345』

    ログイン画面のURLの変更

    変更後のログインページのURL。更に『sawayaka888』などの別名に変更も可能。

管理画面からの変更で、書き方の難しい.htaccessに即反映されるので頼もしいです。/wp-login.php/は終了して/login_12345/を使用するよぉ!/wp-login.php/から/sawayaka888/に変更ね。って自動的に処理してくれます。

  1. 使用中のブログのディレクトリ内の.htaccessファイルを見れば解る。
    • /ドメイン/.htaccessファイルを開いて見る
      /bibabosi-rizumu.com/フォルダ内
    • /ドメイン/サブディレクトリ/.htaccess
      /bibabosi-rizumu.com/kirakira/のフォルダ内
    • /サブドメイン/.htaccess
      /hoge.bibabosi-rizumu.com/のフォルダ内

確認したいとき見るのは上記の6行目の『login_12345』です。これが現在のログインアドレスになります。

  1.  http://ドメイン/wp-admin/へアクセスして、リダイレクトされるURLを確認する。
    • ブログURL/★ココ確認★?redirect_to=~略~
    • ブログURL/login_12345?redirect_to=~略~

ログインページの変更は有効だけど、見えてしまう

上述とおりログインページのディレクトリ名を変更するのは有効です。でもねhttp://ドメイン/wp-admin/へアクセスしたら、ログイン画面にリダイレクトされちゃうんでログインページの変更は丸見えになってしまいます。

※アカウント名やパスワードと関連性のないものにしないとダメですよ。

デフォルトのログインURLである『http://ドメイン/wp-login.php/』から『http://ドメイン/login_×××××/』へと自動的に変更した状態。それだけでもドメイン/wp-login.php/への総当り攻撃に対しては有効ですよね。

アクセスログが見れなかったのでなんとも言えませんけど、/login_×××××/に替えてる状態で総当りをくらった形跡があるから、気持ち的セキュリティかも知れません。色んな攻撃があるでしょうから設定はデフォルトのONのままです。

画像認証

ログインページの不正ログインや、コメントページなど無差別なスパムなどに対して有効なのが画像認証です。しかも、海外からの攻撃なども多いなか、コードが『ひらがな』に対応してるのがポイント高いですよねっ。

画像認証

数秒でウン千もログインページへ進入を試みるスペックの高い攻撃やbotによるスパムコメントで困る場合には認証機能を『ON』のままにしておきましょう。

認証機能ひらがな

コメントページでもこの認証は格好良くはないですけど、似たプラグインを入れて競合してエラーが起きてもイヤなので、初期設定のこのままにしてます。

ログイン詳細エラーメッセージの無効化

ログインのとき、ユーザー名とパスワード、認証画面を全てクリアしたらログインできるけど、どれか間違ってるとエラーがでますよねっ。どの部分が間違ってるのかを把握しにくいように、『エラーメッセージの詳細』を無効にする機能です。

ログイン詳細エラーメッセージの無効化

ONにしておくと、どれを間違っても同じエラーメッセージ「エラー:入力内容を確認の上、もう一度送信してください。」と表示します。

error-message

OFFのときは下記のとおり。

エラー: ユーザー名 daredayo のパスワードが間違っています。 パスワードをお忘れですか ?

エラー: ユーザー名が無効です。 パスワードをお忘れですか ?

ユーザー名が正しくって、パスワードが違ってる。って親切に教えてくれてます。攻撃者からすれば、パスワードをしらみつぶしに探せば時間の問題で突破!ですよね。『ON』のままで『無効化』しときましょう!

ログインロックがブルートフォースアタックから守ってくれる!

ログインロック

ログインロックは、デフォルト設定ではログインを5秒間で3回失敗したら、1分間ロックがかかる設定になってます。ブルートフォースアタックやリストアタックなどログインを突破しようとする攻撃に有効になります!

私自身ブルートフォースアタックの的になったけど、この設定で免れてたんです。ログイン履歴で確認したら、アカウント名やパスワードを高速で攻撃した結果、ロックがかかってる状態って容易に推測されます。

login-history1

ログイン名が123456ってなってますよね。このログイン名で1秒間に68回ものロックが掛かってるのを確認したんです。実際ログイン名を『123456』『letmein』・・・『trustno1』と時々かえながら不正ログインを試みてました。

login-history2

2015-12-15の4時19分53秒から、2分半ほどで8000回以上続けられるって・・・。また時間おいて何度も来てて、、何得でやってるんでしょう!?気持ち悪いですねっ。

WordPressはオープンソースだから狙われやすいっとは聞きますけど、実際こんなことが起こってるんですよ。『プラグイン』や『ワードプレス』のバージョンのアップデート!これらはなおさら!欠かさずにしておかないとダメですね。

ログインロックは、ONにしておくと運営者がホゲェーっとしてても、こうしてブログを守ってくれてますので、ホント助かったぁって思います!

ログインアラート

不正にログインされたとき、気が付くように登録アドレスにメールが届きます。自分がログインした場合も届くんですけどね・・・。内容は下記。

ログインアラート

  • 『ブログ名』にログインしました。
  • 『詳細日時』に『アカウント名』がログインしました。
  • ログイン情報
    • IPアドレス
    • リファラ(リンク元)
    • ユーザーエージェント(アクセスしてきたブラウザの情報など)

自分のログイン情報もわかりますけど、しらない人が突破したらこれですぐにわかります。それ以前に突破されないようにパスワードを強化するのが最善ですね。万が一のときは対応しないといけませんので参考まで。

参考WordPressで「ブルートフォースアタック」や辞書攻撃にあった時にやってみたこと。|Web雑記帳。

「フェールワンス」とは、何!?2度目でログインを成功させる、目くらまし効果!

正しいアカウント名、パスワード、認証コードをいれても、一度目はログイン失敗させる機能です。二度目に成功させるので、どこかで不正に手に入れたアカウント名やパスワードの使いまわしを狙ってヒットしてしまっても、失敗したように見せかけます。

2度目は5秒後~1分以内に再度正しいアカウント名やパスワードを入れないと成功できない仕組みになんですね。もちろん運営者自身も2度目の成功でログインできるけど、1度目は失敗してしちゃうって言うw

手間だけど、セキュリティを高める効果はグンとあがるんです。試すなら失敗することを頭において有効にしてくださいね。忘れて「何で入れないのっ!?」ってキョトンとなってしまいますから。

ログイン履歴は下記、こんな感じで表示されますよ。

フェールワンス

2度失敗みたいになってる。。エンター早業で2回押したかも!?

フェールワンス

通常こんな感じです

「ピンバック無効化」オンにしてたら、ピンバックが来ない

WordPressの設定『ディスカッション』でピンバックを受け取る設定にしても、サイトガードで無効にしてたら、ピンバックは届きません。ピンバックは、ほかブログ内でリンクを貼ってもらった時に管理画面にコメントとして届きます。

WordPress内交流みたいな感じでもありますし、不便を感じないので私は設定をデフォルトのオンから、オフにしました。これまでの今までのピンバックが一気に届くと期待してたけど、届きませんでした。

でも、過去記事を修正されて再度『公開』を押した方のピンバックはちゃんと届きましたよ。リンク貼ってもらってるのにピンバック届かないのは、この設定の場合もあるのんじゃないでしょうか。(他にも要因はあるけど、割愛します。)

ピンバック無効化

私は、デフォルトのONから『OFF』に変更しました。ただ、ピンバックなどによるスパムコメントでサーバーに負荷を掛ける攻撃などもあるそうなので、参考まで。

参考最近やたらとWordPressが攻撃されて500エラーになるので行ったセキュリティー対策まとめ|寝ログ

更新通知

WordPressやプラグイン、テーマのアップデートをメールで教えてくれる機能です。有効化してないテーマやプラグインのアップデートを知らせるか、有効化してるものだけにするか選べるようになってます。

更新通知

脆弱性が見つかれば更新をすすめてくれるって思って、キチンとアップデートをしていくことがセキュリティ面で大切なことですね。不正なアクセスはセキュリティーホールをついてくるので、常に最新版にしておきましょう!

全てのプラグインの更新にしてる方が、更に安心ではありますよね。使わないテーマも削除しましょう!

セキュリティホールをついたディレクトリトラバーサルの攻撃を受けて個人情報やデータベースの情報を取られたりマルウェアを仕込まれたりする可能性がありますから!

※実際攻撃された形跡が残ってました。WEBアプリケーションファイアーウォール(WAF)がディレクトリへの進入禁止(403 Forbidden)を出したので接続を遮断してくれてたので助かったんです。3/18追記

メールの内容は参考まで。

WordPress: 更新通知

あなたのWordPressサイトで、実行可能な更新があります。

プラグイン:EWWW Image Optimizer は、新しいバージョンがあります。2.5.9から2.6.0へ更新してください。
詳細:https://wordpress.org/plugins/ewww-image-optimizer/
更新ログ:https://wordpress.org/plugins/ewww-image-optimizer/changelog/
互換性: WordPress 4.4.2 との互換性: 100% (作者による評価)

次のページで、更新を行なって下さい。: http://ドメイン/wp-admin/update-core.php


SiteGuard WP Plugin

「WAFチューニングサポート」は「waf」の誤認対策!

ロリポップやさくら、ヘテムルなどのレンタルサーバーでは、webアプリケーションファイアーウォール『waf』ワフを導入してます。WAFとは、外部からサイトの改ざんなどの攻撃を阻止するために403ページを出して閲覧を禁止させるセキュリティです。

セキュリティ対策としてホントに頼もしいんですけど、運営者が管理画面を更新する際にも、外部攻撃と勘違いして『誤認の403 Forbidden』のエラーを出してしまう困った面もあるんですね。

参考403エラーの原因はWAF!対処し解決する方法!:ロリポップ、さくら、ヘテムルのサーバー

参考誰もが分かる!!セキュリティーWAFと関係ある【403エラーの原因と意味】

  • WAFの誤認対策になる『WAFチューニングサポート』
  • WAFを使ってないレンタルサーバーなら設定はデフォルトのOFFのままでOK!

WAFの誤認を回避する、WAFチューニングサポート(レンタルサーバーがロリポップやさくら、ヘテムル用の設定)

WAFチューニングサポートを『ON』にして『新しいルールを追加』という項目から、シグネチャにWAF除外ルールを追加し保存することで、誤認の403 Forbiddenページを出さないように設定できるんです。

シグニチャにルールを追加

追加する項目は、WAF設定のログ参照で確認できる『xss-try-4』(確認方法は次の見出しで後述)をシグネチャ欄にコピペして『保存』するだけで.htaccessにルールを書くのと同じことがこの管理画面でできますよ。

ポイント♪
  1. この設定することで『xss-try-4』に対してWAFは誤認しない。
    • 他の誤認に対してこのルールは有効ではない
  2. 違った場面でWAFで403 Forbiddenが出ることも考えられる
    • その場合改行して新たにルールを追加

こうすることで誤認がどんどん減って使いやすくなりそうですね。

シグネチャに『xss-try-4』と入力保存すると『.htaccess』に追記されて、xss-try-4がルール名となってWAFからそれを除外してくれます。

このプラグインの惜しいところを強いてあげるなら、.htaccessに1つあれば良い記載を複数書いてしまうところかも。これまでの設定を含めると下記の一行で対応できます。

管理画面でコピペするだけでWAFの誤認からまぬがれるのは、運営者にとってスペシャル機能です。WAFはセキュリティ面のメリットが大きい反面、誤認が面倒だけどこれで誤認が1つ減りますよね。

管理画面のWAF除外ルール

WAFによる誤認が面倒だから、デフォルトのOFFからONに変更しました。

追記:投稿画面からプレビューをクリックしたとき、WAFの誤認によるシグネチャsqlinj-55が検出されたので追加しました。

wafの誤認新しいシグネチャ追加sqlinj-55

WAFによる誤認回避するルールの確認方法(レンタルサーバー、ロリポップの設定)

『誤認の403 Forbidden』は、WAFのエラーログで見ることができます。403ページが出たらレンタルサーバーでWAF設定をオフにした後『ログ参照』を見て、コードをサイトガードのこの設定のルールに書き込んであげれば、WAFの誤認は減ります。

ロリポップ!WAFの検知したログの見方
  1. ユーザー専用ページから
  2. WEBツール
  3. WAFの設定
    • 403ページになってるときは無効にしてその後また有効にもどす
  4. ログ参照

WAFの検知したログを見る『ログ参照』の場所

ログ参照で確認できるけど、保管期限はロリポップでは7日間のみで1日100件までの表示となります。誤認があればログが流れる前に見て追記すると、WAFの誤認が減っていきそうですね。

  1. 投稿画面『ドメイン/wp-admin/post.php』で更新した時WAFが誤認で検出したシグネチャ『xss-try-4』

ロリポップWAFが誤認したシグニチャxss-try-4

WAFの誤認、どうにかならないかな!?とサーバーに聞いたら、.htaccessに書けば問題なし!って言われたんです。でも面倒なことしなくっても、シグネチャにルールを打ち込むだけで勝手に書いてくれるので助かりますね。

さいごに

スパムを振り分けてブロックしてくれるプラグイン、Akismetも同様で初心者やWordPress運営者にとって欠かせないプラグインですね。設定が難しい.htaccessのアクセス制限など管理画面で出来てしまうんですから!

もう1つ欠かせないのは、パスワードの強化です。パスワードを強靭なものにするには大文字と小文字、更に数字を組み合わせることで不正ログインが成功しにくくなるから、安心度とともにセキュリティ度が増しますよね。

似たような機能のプラグインを入れてる場合、何かの折に競合をおこしてエラーをだしてしまうこともあるんです。エラーが起きたら、プラグインを切ったり削除したり再インストールすれば元に戻ります。

管理画面に入れないときは、サーバーのFTPを触って解決してみてくださいねっ。

参考ブログが真っ白!その対処法!!&プラグインをインストール有効化すると、何故真っ白に!?(目次:)管理画面に入れない場合レンタルサーバーのFTPを直接触って、プラグインを削除する2つの方法

それでは、かうたっくでしたっ!

書いた人:かうたっく

何も知らない初心者ですが、WordPressでブログを始めました。 ブログの技術系でつまずいたエラーを経験したことからエラー関連を、初心者が初心者に向けて分かりやすい言葉で書いてます★子どもの喘息様気管支炎や、幼い子どもとの生活ページなどよく読まれる雑多ブログを運営中^^♪ご意見、感想、質問はお問い合せよりお待ちしています。

Twitterフォロー