ワードプレスはログインIDやユーザーパスワードが漏洩しやすいという話
ワードプレスはデフォルトの状態では誰でも運営者のログインページに辿り着く事が出来ます。デフォルトの各ログインページのURLは、以下の通りです。
https:// サイトURL /wp-login.php
この段階では当然ながら『
』及び『 』の入力を求められますが、初期状態だとサイトURL末尾に以下のキーワードを入力する事で簡単に『 』に入力するログインIDを入手する事が出来てしまいます。https:// サイトURL /?author=1
上記の様にログインURLの末尾に/?author=1という文字を追加して入力すると、何もセキュリティ対策を施されていないサイトであればURLの末尾にログインIDが表示されます。
サイトに侵入を試みる者は、この時点であなたが運営するワードプレスサイトの『/?author=1でログインIDが表示されない場合は/?author=2、/?author=3…と試してみて下さい)。
』と『 』を取得できた事になります(環境によっては末尾の数値が『1』以外の場合もあります。この後『
』の入力になりますが、これが誕生日だったり短い文字数だと事態は深刻。特殊な不正プログラムを使えばあっという間に不正ログインされてしまいます。『特殊な不正プログラム』というのは『ブルートフォースアタック』と呼ばれる『総当たり攻撃』によるパスワード開錠プログラムが一般的です。例えて言うならば『ナンバー式南京錠』を開錠するみたいなものです。
『ナンバー式南京錠』は、例えば4桁の数字であれば手作業であっても『0000 - 9999』まで根気よく回してしまえばいつかは開錠できますよね。これを不正なプログラムを使って自動的に高速試行するものと思って下さい。
こういった不正なプログラムやアプリはウェブ上で簡単に入手できる様で、ワードプレスのログインページとログインIDさえ分かってしまえば時間の問題で侵入されてしまいます。
『ログイン ID』と『ユーザーパスワード』取得による不正ログインに対処するために、ワードプレスでサイトを開設する際には真っ先に以下の設定を行う事をお薦めします。
※ユーザーログイン画面からのセキュリティは、これが最強!?『SiteGuard WP Plugin』の導入と設定については以下のリンクをクリック!
WordPressは安全?脆弱性を狙った攻撃からサイトを守ろう WordPressは、世界中の多くのユーザーに利用されている人気のCMS。しかしその人気さゆえに、ハッカーによる攻撃のターゲットにもなりやすいという側面が …
ワードプレスのログインIDとユーザーパスワードを強固に保つ為の設定とプラグイン
1.『Edit Author Slug』プラグインの導入
2.『1Password』による長文パスワードの取得
3.サーバーサイドのセキュリティ設定
・ログインIDを更に強固にガードする方法
初心者向け:3つのセキュリティ対策
まずは『初心者でも失敗する事が無いセキュリティ対策』と称して以下の3つをご紹介します。
『Edit Author Slug』プラグインの導入
『https:// サイトURL /?author=1によるログインIDの取得を防ぐプラグイン。本プラグインを設定する事によって、/?author=1で検索されてもログインIDをランダムな記号で隠す事が可能です。
』は、先述●
まずは『
』⇒『 』より『 』を検索。インストールして『 』をクリックします。次に『
』⇒『 』をクリック。①『
②『 』のプルダウンボタンをクリックすると、ログインIDと先ほど設定した任意の名称が選択できるはずです。ここで任意の名称を選択。
そのままページ下段にスクロールすると『
』という項目が現れます。この内『 』ラジオボタンの上から4番目のランダムな英数字が並んだ項目を選択し、最下段『 』で確定します。最後に『
』⇒『 』より『投稿者スラッグ構造』項目のプルダウンメニューより、先ほど設定した任意の名称を選択。最下段の『 』をクリックして完了です。設定が全て完了したら、念のため実際にhttps:// サイトURL /?author=1を入力してURL上のログインIDがランダムな英字・英数字に変わっているかご確認下さい。
『1Password』による長文パスワードの取得
こちらはランダムなパスワードを自動で生成してくれるサイト。本来は生成されたパスワードをクラウド上で一元管理する有料サービスなのですが、パスワードの生成自体はユーザー登録をする必要も無く無料。
アプリのダウンロードも必要なく、ブラウザ上で完結するので手軽に利用できます。生成されるパスワードは20-100文字で選択でき『英数字のみ』『記号を含める』など複雑なパスワードも生成可能。もちろん他のウェブサイトでのセキュリティ強化にも利用できます。
使い方は至って簡単。『 』『 』『 』等を選択。上部『 』欄に表示されたパスワードを 『 』ボタンでコピーするだけです。 『1 Password』公式サイト
『
』は英字・英数字のみや記号を加えたパスワードの他、英単語をハイフンで繋げた覚えやすいもの・数字のみで構成された3-12桁のパスワードなど多彩な利用が可能です。●『1Password』が生成できるパスワードの桁数と種類 | |||
ランダムなパスワード | 覚えやすいパスワード | 暗証番号 | |
文字数 | 8 - 100文字 | 3 - 15単語 | 3 - 12文字 |
種 類 | ・英字+英数字 ・英字+英数字+記号 | ・ランダムな単語 ・意味のある単語 | ・ランダムな英数字 |
特 徴 | ※大・小文字の指定不可 | ※頭文字のみ大文字可 | - |
生成するパスワードは長ければ長い方がベスト。『
』『 』での選択はもちろん『 』がベストですが、ワードプレス以外のサイトに使用する場合は文字数や記号の使用に制限がある場合がありますのでご注意下さい。サイトに適用したパスワードは、使用ブラウザが『
』であればログインIDと共にブラウザ上に保存する選択ができるはずです。ですが念のため、PC上のメモ帳やクラウドにも保存しておく事をお薦めします。●
先述『ブルートフォースアタック』と呼ばれる総当たり攻撃プログラムにより、短いパスワードだと瞬間的に開錠されてしまうと説明しました。
『 』と疑問に思う方もいるかと思います。確かに短いパスワードを2-3桁増やしたぐらいでは安全性は担保出来ません。ですが と『 』設定を行うと、圧倒的に高い安全性を確保できます。
尚、ご自身が生成したパスワードの安全性を確認したい際は、無料で利用できる『パスワード強度チェッカー
』がお役に立ちます。
引用元:パスワード強度チェッカー
こちらのパスワードチェックツールは、入力したパスワードの安全度測定の他、修正を推奨する箇所も指摘してくれるのでパスワード作成に悩む必要ががありません。
引用元:パスワード強度チェッカー
また、会員登録やアプリのダウンロードも必要なくブラウザ上でスピーディに完結するので、安心して利用する事が出来ます。
サーバーサイドのセキュリティ設定
私が利用している『
』では、ワードプレス導入に関する幾つかのセキュリティ項目が予め用意されており、サーバーサイドからもサイバー攻撃を守る施策が行われています。それらの主な項目は3つ。まずはサーバーパネルより左下『 』の項目から『 』をクリックしましょう。●
使用しているワードプレスにおいて、各種ツールに対する国外IPアドレスからの接続を制限したり、海外からの『ブルートフォースアタック』による第三者のログインを阻止する機能。
●
短時間に連続してログインが失敗した場合、アクセスを制限する機能。これは国内からの『ブルートフォースアタック』にも対応しているという事です。
●
本機能では『大量のコメント・トラックバックスパム』行為が行われた際に、一時的にコメント・トラックバックを制限する機能。国外からのコメント・トラックバックを制限する事も可能です。
MEMO
ブログにおけるコメントやトラックバックは、ブログの読者より感想や質問を貰ったり、あなたのブログ記事を引用した読者から『引用しました』と報告を受ける際に便利に使える機能。
リアルな読者からの質問や報告であれば有意義な機能ですが、不正プログラムによる大量コメント・大量トラックバック送信などスパム行為の温床ともなりかねません。Xサーバーでは、これらのスパム行為を制限する設定が簡単です。
※これら3つのセキュリティ設定は初期設定の段階で『ON』になっているはずですが、念のため一度はサーバーパネルより確認しておくと良いでしょう。
中級者向け:更なるセキュリティ強化へ
先述『初心者でも失敗する事が無いセキュリティ対策』とは違い、ワードプレス上のプログラム(PHP)を操作する必要のある対策方法です。ワードプレスの操作に慣れている方や、万が一サイトが飛んで(消えて)しまっても対処できる方には決してハードルが高い内容ではないですが、念のため今回は『中級者向け』として紹介させて戴きます。
ログインIDを更に強固にガードする
先ほどは初心者向けにログインIDを非表示にするプラグインとして『Edit Author Slug』を紹介致しましたが、実はプログラムに詳しい攻撃者なら別の方法でログインIDを取得できてしまいます。
まずはあなたのサイトURLと、その末尾に/wp-json/wp/v2/usersを入力してアクセスしてみて下さい。
https://サイトURL/wp-json/wp/v2/users
ブラウザ上のテキストの一部に、ログインIDが表示されているはずです(表示されていなければ、このトピックは読み飛ばして下さい)。
もしブラウザにログインIDが表示されているようであれば、対策として以下のコードを当該テーマの『functions.php』に張り付ける事で非表示にする事が可能です。
function my_filter_rest_endpoints( $endpoints ) {
if ( isset( $endpoints['/wp/v2/users'] ) ) {
unset( $endpoints['/wp/v2/users'] );
}
if ( isset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] ) ) {
unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
}
return $endpoints;
}
add_filter( 'rest_endpoints', 'my_filter_rest_endpoints', 10, 1 );
※上記対策を施行後に再度https:// サイトURL /wp-json/wp/v2/usersを実行してみて下さい。この際『code:rest_no_route』と表示され正規のログインIDが表示されなければ成功です。
※この操作は、操作を間違えると画面が真っ白になり修復不可能となります。事前にバックアップを作成していなかったり、復元の方法が分からない内は絶対に行わないで下さい。
何度も述べますが、『functions.php』を含む各PHPファイルは、たった1文字の打ち間違いでもサイトが修復不可能な状態に陥る場合があります。施行前のバックアップはもちろんですが、トラブル時のサイト復元に自信のない方はご注意下さい。
《まとめ》ワードプレスのユーザーパスワードを強固にする方法
セキュリティ面で脆弱性を指摘されがちなワードプレスですが、初期設定を行う際にこれらの対策を行う事で一定の安全性は確保をできるものと思われます。以下は記事冒頭の重複になりますが、この3点は忘れずに導入・設定を行いましょう。
1.『Edit Author Slug』プラグインの導入
2.『1Password』による長文パスワードの取得
3.サーバーサイドのセキュリティ設定
セキュリティに関しては『これだけ対策を行えば先々まで100%安全』というものはありません。本サイトでは新たなセキュリティ対策方法も情報をアップデートしながら発信していきたいと思います。