【質問】あなたのWPは誰でもログイン画面にアクセスできますか!?不特定多数のログイン試行はできない方が安心です
本ページをご覧の方は、WordPressでWebサイトを運営している方や、その関係者さんも多いと思います。
そんなあなたに質問です。
【質問】あなたのWordPressは、誰でもログイン画面にアクセスできますか!?
この問に対し明確に「できません!」「できるけれど自信を持って大丈夫です!」と言える方は本ページを読む必要はありません。
- 「分からない」
- 「気にしてなかった」
- 「担当に任せてるから大丈夫と思うけど」
という方は、一度本ページをお読みいただければと思います。
目次
WPのログイン画面に誰でもアクセスできるか、の答え
各々の答えがあると思いますが、順を追って見ていきたいと思います。
まずは思考してみましょう
もしも問題が発生していたと仮定した場合、それに対する状況には、以下の3つの段階があると思います。
- 問題を認識していて対策している
- 問題を認識していて対策していない
- 問題を認識してすらいない
1が最善なのは明確として、2よりも問題なのは3の方です。認識してすらいなければ、対策しようとも思いませんからね。
例えば家に泥棒が知らずに出入りしていたら大問題ですよね!?この場合、まずは泥棒が入っている事実を知る(認識する)ことが大事なのと同じです。
まずはあなたのWordPressサイトのログイン画面に誰でもアクセスできるかどうか、頭の中だけで考えてみてください。
……答えは出ましたでしょうか?
思っているのと現実は違うことも往々にしてあります。ここで結論づけずに、次の工程に進んでみてください。
具体的な確認方法
通常は、以下のURLにアクセスすることで確認できます。普段はログインしないネットワーク環境(例えば自宅等)からアクセスしてみてください。
- 【WordPressインストールURL】/wp-login.php
【WordPressインストールURL】の部分は、あなたの環境に置き換える必要があります。例えば当ブログであれば、以下です。
- https://imagewave.co.jp/blog/wp-login.php
当ブログはログイン画面にはアクセスできないようにしています。例として挙げてはいますが、アクセスしても何もありませんのであしからず。
WordPressは想定とは違う場所にインストールされていることもあります。詳しくはウェブサイト管理者にご確認ください。
いつも通りログイン画面が表示されましたか?その場合、世界中の誰でもログイン画面にアクセスできる可能性があります。
結果について補足
正規のログインURLにアクセスし、ログイン画面が表示されなかったらとりあえずOKです。
もしログイン画面が表示されてしまっても、それが今すぐどうこうという話ではありません。以下の様なケースも考えられるからです。
- 閲覧環境による制限を掛けている(自分の環境は許可リストに入っていた)
- IDの管理やパスワードを複雑にして対策している
- プラグインなど他で対策している
1であった可能性もありますので、それについてはウェブ・WordPress管理者に聞いてみてください。
もしも1ではなかった場合、セキュリティ上のリスクになる可能性「も」あります。例えばパスワードが脆弱であった場合等は要注意です。
必要に応じて、対策を検討する価値はあるでしょう。
セキュリティは総合的なものですので、あくまで「可能性」の話です。総合的に確かなセキュリティ対策をしているのであれば、焦る必要はありません。
ログイン画面にアクセスできない方が良い理由
私はよく他社が制作したWordPressサイトを引き継ぐことも多いのですが、誰でもログイン画面にアクセスできるケースはかなり多いです。
WordPressが用意したログイン認証があるので、気にしない方も多いのでしょう。
実際私も昔はそうして作っていたこともあります。……が、今では「前もって避けられるリスクは避けておくべし」という結論にたどり着きました。
なぜログイン画面にアクセスできない方が良いのか、その理由について考えてみましょう。
攻撃を受ける可能性がある
ログイン画面が表示されるということは、不特定多数から攻撃を受ける可能性があることと同じです。
って言うけど、うちみたいなサイトに攻撃する人なんているの!?
普通にいますよ!ネットの世界はそういうものです。
ネットの世界では、常に攻撃が行われています。むしろ何もしなければ攻撃されるもの……という認識の方が良いかもしれません。
例えばWordPressより歴史の長いサーバの世界では、常に世界中から攻撃の可能性にさらされています。なので管理者などのアクセスでない限りはログインの試行すら拒否する設定も常識です。
むしろそれがサーバ保守のプロの仕事と言えます(不正アクセスされたら責任問題になるので)。
WordPressも同じようなもの……と思いますが、サーバとは異なり、良くも悪くもないろいろな人が構築&更新するのがWordPressなので、そこまでに至っていないと考えられます。
サーバは保守も含めた契約となることが一般的ですが、WordPressの場合は保守契約をしていない場合があるのも理由の一つと思います。
一度でも不正ログインされれば致命傷を受ける
攻撃を受けて不正なログインが成功してしまったとします。たったの1度きりの不正アクセス、これがどのくらい問題かをご存じでしょうか。
1度でも不正アクセスがあれば、サイト記事の全消去もできます。もしくは気づかれないよう大胆な行動はせずに、不正なバックドア(裏口)を埋め込み後でこっそり悪さをするかもしれません。
……茶苦茶怖いですよね。この場合、最悪WordPressを初期化せざるを得ない場合もあります。
つまり、一度でも不正ログインされれば致命傷を受けてしまうのです。
何度もアタックされる
攻撃者からすれば、一度でもログインできてしまえば大成功なわけです。そんなわけで、執拗にログイン試行が繰り返される場合もめずらしくありません。
一般的には自動ログイン試行プログラムを使用し、数え切れないユーザー名・パスワードの組み合わせで延々と攻撃してきます。手作業ではないので何度でもトライでき、攻撃者も疲れるようなことはありません。
例えるなら、鍵穴に色々な鍵を突っ込まれてガチャガチャとやり続けられるようなものですね。
これは当然サーバの無駄な負荷にも繋がります。例えログインに成功せずとも、好ましいことではありません。
ユーザー名は流出していることが多い
そもそもなのですが、WordPressの場合、ユーザー名は流出していることが多いです。
というのもWordPressは何も対策していない状態&知識のある者であれば、ユーザー名を抜くことができる仕様だからです。……ご存じでしたか?
つまりその場合、残るはパスワードさえ分かれば認証を突破できてしまうということ。なのでパスワードが脆弱(要は簡単なもの)であれば、非常に危険だということが分かります。
例え開発者が難しいパスワードで構築したとしましょう。しかし運用が一般の方であれば、
パスワード長くて面倒。変更してしまおう!
という感じで、後から簡単なパスワードに変えてしまう可能性もあり得るわけです。
そんな後のことまで知らないよ!という開発者より、パスワードを簡易なものにされてもセキュリティが担保されるよう作ってくれる開発者の方が良いと思いませんか?
そもそも不特定多数がアクセスできる必要がない
最後に、真っ当かつシンプルな理由を書きます。
それは、不特定多数がログイン画面にアクセスできる必要(理由)がないからです。必要なければ、無駄にアクセスさせる意味はありません。
これは、家に入れるつもりのない人を自宅の玄関前に立たせる必要はないのと同じです。防犯上の事を考えれば、普通は門扉(オートロック)までで良いはず。
そう考えると「必要がない」というだけでも立派な理由になり得ると思いませんか?
ログイン画面にアクセスできなくするだけでリスクは減少
第三者がログイン画面にアクセスできないようにする。たったこの一手間をかけるだけで、今まで書いてきたセキュリティのリスクは大幅に減少します。
具体的にどう影響があるのか考えてみましょう。
ログイン試行できない
ログイン画面が表示されないと(正確にはログインURLが分からないと)ログイン試行はできません。それは人間だけではなくプログラム(ボット)も同じです。
ボット(Bot)とは!?主にWeb上で自動化処理するプログラムのことです。ここではWordPressサイトに自動でログイン試行するものを指します。ロボットとも。
ログイン試行は先ほども書いたとおり、玄関の鍵穴にカギを差し込み解錠しようと試みる行為です。大抵は不発に終わるわけですが、特に対策をしていない場合は何度でも試行できます。
限り無く低い可能性ではありますが、ログインが成功する可能性は可能性は0%ではありません。0.0~略~001%くらいはあるかもしれないのです(様々な要素で変わります)。
例えるなら、こんな感じのことを考えてみると良いかもしれません。
- 道を歩いていて交通事故に巻き込まれる確率
- 犯罪に巻き込まれる確率
- 隕石が降ってくる確率
- 難病に冒される確率
これらも確率も0ではありませんが、起こりえることです。
あまりに低確率なことを気にしていたらきりがないので気にしません。
……ですよね。しかし、それが簡単な方法で大幅にリスク回避できるならどうでしょうか?少なくとも私は行いたいです。
不正ログインに対するそれが、本件なのです。
ログイン画面にアクセスできないようにする=ログイン試行できない=少なくともログイン画面からの不正アクセスは回避できます(※1)。
(※1)もちろん、完璧にログイン画面を制限 or 秘匿できている場合に限ります。
攻撃を諦めさせられる
泥棒は、セキュリティの低い家に狙いを定めて盗みに入ると言います。無理そうだったら、最初から相手にしないでしょう。なんたって家はいくらでもあるのですから。
WordPressも同様です。WordPressで構築されたWebサイトは世界中にいくらでもあるからです。
2022年現在、全世界の約43%のWebサイトがWordPressでできているんですよ!
ログイン認証を突破してやろうと考える攻撃者が、ログイン画面にすらアクセスできなかったら即座に別のサイトに移るでしょう。簡単にログイン画面にアクセスできるサイトはごまんとあるからです。
WordPressへの攻撃はログイン認証を突破するだけではありませんが、少なくともその点に限っては納得いくところと思います。
芸能人、有名人、有名企業、私怨があるなど、攻撃対象自体に関心・興味がある場合はその限りではありません。
しかもコストもほとんどかからない
とは言っても、設定にコストが掛かるのであればわざわざやらなくても……と思ってしまうかもしれません。しかし、そのコストもわずかなものです。
プラグインを入れるだけなら、10分程度で可能です。
じゃあなんでやらないの!?という話ですが、
- WordPressはそういう仕様
- 不正アクセスはパスワード設定者の責任
と考える人もいるからです。
ログイン画面に誰でもアクセスできるのはWordPressの世界基準の仕様。それで良しとしているのだからそういうもの。ログインされてしまったら、そんなパスワードを設定した人が悪い。
……要は、問題と思っていない開発者も多いというわけです。一見筋が通っているようでも、あまり親切ではないですよね。
私なら、パスワードが例え「test」であっても不正アクセスされないように考えたいです。パスワードは利用者が自由に変えられる=不確定なものを信用しない方がより堅牢だからです。
弊社の場合は顧問契約が基本につき、自身が取引企業のセキュリティの要という自負と責任感があります。そういった関係で、人一倍気を使う癖があるのだと思います。
ログイン画面にアクセスさせない方法
というわけで、具体的な方法に入りたいと思います。
先ほどのとおり、非常に簡単なことです。ログインURLを制限するか、ログインURL自体を分からなくするかの2つに分かれます。
IPアドレス等で制限する
管理画面にアクセスする接続環境が固定の場合、そのIPアドレス以外からのアクセスを拒否すればOKです。
これは.htaccess等の設定で非常に簡単に行えます。
WordPressインストールディレクトリの最上位にある.htaccessに以下を追記します。
<FilesMatch "wp-login.php|wp-admin">
Order Deny, Allow
Deny from All
Allow from 111.222.333.444
Allow from 555.666.777.888
</FilesMatch>
111.222.333.444や、555.666.777.888の部分が許可するIPアドレスです。IPアドレスではなく、ホストでの指定も可能です。
ご自身のIPアドレスやホストは、弊社サイト内のホストチェッカーのページからご確認いただけます。
.htaccessの設定・編集は、間違うとWebサイトが表示されなくなることもあります。作業は専門のWeb管理者にご依頼ください。
リモートワークなどで複数の社員の自宅からアクセスする場合、許可するIP・ホストを増やす必要があります。
ただし一般的な回線では、IPアドレスやホストは固定ではないことはほとんどです(特に家庭用はそれが通常)。
したがって、IPアドレスやホストが変わる度、設定を変更しなければなりません。なのでそれでは現実的には面倒臭くて運用は不可能です。
というわけでこの方法は、アクセスするユーザーが少ない&固定IPアドレスをご契約の方向きです。
プラグインを使う
もっと簡単な方法としては、プラグインを使う方法があります。例えばSiteGuard WP Pluginというプラグイン。こちらの設定により、ログインページのURLを変更することが可能です。
ログインページのURLを知らなければ、当然ログイン試行もできません。言うなれば、「泥棒がピッキングしようにも、玄関(鍵穴)が分からない家」のようにすることが可能です。
ログインURLは自分で決められますので、偶然で探し当てられない程度の複雑さにすることをお勧めします。また、一度でも外部に流出するとセキュリティが低下するのでご注意ください。
まとめ
以上、WordPressのログイン画面は、不特定多数に表示しない方が良い……ということをご紹介しました。
繰り返しますが、セキュリティは総合的なものなので、全体として問題無ければそうしなくても良いという考えも否定しません。セキュリティに関する内容は各社思想があると思うからです。
本ページでは、本件で問題になりえる可能性を「認識してすらいない」方が「認識する」きっかけになれば良いなと思って書きました。
何年・何十年と続くかもしれないWordPressライフにおいて、参考にしていただければ幸いです。