WordPressのセキュリティ

WordPressの弱点

このサイトを見ている皆さんには、通常のWEBページとして見えているかもしれませんが、このサイトはWordPressによって表示されているため、オーナーである私には、「ダッシュボード」という設定のページが見えています。

この「ダッシュボード」のページは、WordPressの機能そのものをコントロールするための設定ページですから、もし「ダッシュボード」へログインするためのIDやパスワードをハッキングされたら大変です。

WordPressサイトが乗っ取られる?

しかも、不味いことにWordPressでは、この「ダッシュボード」のURLが固定されています。

サイトのドメイン/wp-login.php

WordPressのどのバーションでも、現状では、上のPHPを呼び出すと、ログイン管理画面が立ち上がります。

つまり、ネットを回っていて、「あ、この企業サイトはWordPressでできてるんじゃないかな?」と思ったら、そのドメインの最後に
/wp-login.php と入力すると、かなりの高確率でIDとパスワードを訪ねるこんな画面がでてくる事になります。

たぶん、ユーザーIDはページの中の連絡先あたりでしょう。

特に担当者の氏名なら、おそらくはローマ字可かイニシャルです。

あとはパスワードに氏名やサイト名に関する文字をひたすら文字列を入力して試していけば、もしかしたら、正しいID/PASをひっかけてしまう…なんて事もありえます。

これを「ブルートフォース攻撃」と言います。

パスワードは、推奨される安全なものでも、突き詰めればただの文字列です。

文字列はアルファベットで26文字。大小区別で52文字。数字で0から9。後は記号の組み合わせです。

総当たりで入力していけば、理屈の上では何処かで正解を引き当てます。

ただ、現在のコンピュータでは、時間が「○万年」単位でかかってしまいますが…

ログインページを隠しましょう

あれ? でもこのサイトのドメインに、 /wp-login.php を足した

https://yoshisyou.com/wp-login.php 

は上のイメージと違って、IDもパスワードも聞かれない、エラーページじゃない?

と思った方。

はい。聞かれません。

実は、 「ダッシュボード」 へのログインするページを隠蔽する方法があります。

それが、WordPressに機能を追加するプラグインというもので、セキュリティに「All In One WP Security & Firewall」を有効化しています。

All In One WP Security & Firewall のインストール

まず、All In One WP Security & Firewall をインストールします。

プラグインの新規追加画面から、キーワードに All In One WP Security & Firewall を入力し、表示されたプラグインを「今すぐインストール」します。

ログイン画面を隠す設定

プラグインを有効化すると、メニューに設定項目が表示されるようになりますので、この中から Brute Force を選びます。

URLの後ろの部分に、入力枠がありますので、ここに 適当に発生させた x584GSdE の文字列 を入力して Save Setting で保存します。

すると、

https://[WordPressのインストールディレクトリ]/x584GSdE

が、弊サイトの 「ダッシュボード」 になり、 https://[WordPressのインストールディレクトリ]/wp-login.php  はエラーページとなります。

この x584GSdE の文字列は信頼した人にしか教えませんから、私のサイトのログインページを開くには、まずこの任意の文字列をブルートフォース攻撃で破る必要がでてきて、セキュリティが一段あがるという訳です。

パスワードの入力回数に制限を

しかしこれだけで安心はできません。

現状のWordPressでは、パスワードを「間違えていい」回数に制限がありません。

つまり、何かの偶然でログイン画面のワードを引当られてしまうと、あとは簡単なプログラムを組んで、IDとパスワードを片っ端から「間違えて」入力し続ければ、場合によっては突破されてしまうかもしれません。

ログインページが見つけられたとしても、 User Login の設定で、IDとパスワードをある時間内に、ある回数間違えると接続が遮断されてしまう機能があります。
このため、セキュリティは比較的安心できる状態にあります。
もっともセキュリティに絶対はないので、定期的にパスワードを変えるなどして対処はしていきます。