WWW Watch

WordPress のユーザー名を隠してもセキュリティ対策に大きくは影響しない

WordPress のユーザー名が外部からわかってしまうのが問題だという指摘に関して、ユーザー名は秘匿できるならすればよいと思いますが、それ自体はセキュリティ対策として 「最重要」 ではありませんよと言うお話。

WordPress に登録されているユーザー名が外部からわかってしまうのは問題だという記事が話題になっていたようなので簡単にメモ。

もちろん、隠せるなら隠したらよいと思いますから、下記の記事の内容を否定するつもりはありませんが、ユーザー名が外部にバレるのは問題だという話については、それを言ったら世の中のほとんどのサービスが問題になっちゃうからさという話と、そんなことよりもやるべきことは沢山ありますよというセキュリティ対策の優先順位の話について。

ユーザー名はバレる前提が一般的

主要な Web サービスにおけるログイン時に使用する所謂 「ユーザー名」 がどうなっているかというと、

  • Google → ログイン時に利用するユーザー名は「メールアドレス」
  • Twitter → ログインは「ユーザー名」でできる(ユーザー名は全ユーザーに公開されてる)
  • Instagram → ログインは「ユーザー名」でできる(ユーザー名は全ユーザーに公開されてる)
  • はてな → ログイン時に入力するのは「はてな ID」(公開されてる)

etc ...... キリがないですが、Web サービス全般において、(ログインに使用しているとしても) ユーザー名はほとんどの場合、外部に公開されている、もしくは隠さないと困るようには設計されていません。

例えばメールサービスについては、Google の Gmail に限らず、恐らくほとんどのサービスがメールアカウントをそのまま利用してログインすると思います。

メールアドレスはわざわざ一般には公開しないことが多いと思いますので、隠してあるといえばそうかもしれませんが、少なくともメールをやりとりする相手には公開されていることになります。

また、WordPress.com も無料プランの初期設定は、「ブログのサブドメイン = ユーザー名」 ですし、ログインした状態でフォーラムなどにコメントを投稿すればユーザー名が表示されます。 この辺もユーザー名は秘匿情報ではないことの表れです。

繰り返しますが、Web サービス全般において (ログインに使用している) ユーザー名がバレること自体は 「大きな」 問題ではありません。 一方でセキュリティを向上させるために、2段階認証などの仕組みが用意されているわけです。

もちろん、ユーザー名については 「隠せるなら隠した方が不正なログイン施行の難易度は上がる」 ので、前述したとおりそれを否定する気はありませんが、本質的なところを理解せず、安易に 「ユーザー名を隠したから安心」 という誤解をしないようには注意する必要があります。

ユーザー名を隠すより先にやるべき対策

基本的には下記の優先順位が重要と考えます。 今回は WordPress を独自にインストールしている場合で、ひとまず WordPress 側だけでできる範囲に絞りますが。

  • 基本対策(必須)
    • WordPress を常に最新版にアップデートする
    • プラグインやテーマを常に最新版にアップデートする (適切にメンテされないプラグインやテーマは利用しない)
    • アカウントには十分強固なパスワードを設定する (管理も適切にね)
    • アカウントに設定したパスワードは他で使い回さない
    • クライアント PC のセキュリティ対策をきちんとやる
  • 追加対策(やっとくと安心)
    • セキュリティ強化プラグインの導入 (この過程でユーザー名の秘匿も対策されるかも)
    • 2段階認証の導入
  • サーバサイドでの追加対策(オプション)
    • 管理画面へのアクセスに対するベーシック認証
    • 管理画面へのアクセスに対するIPアドレス制限 (プラグインでも対策可能)

基本対策

まず、「基本対策」 は必須です。逆に言えばこれをきちんとやっていれば基本的には 「セキュリティ的に問題」 という状態にはなりにくいです。ユーザー名がどうのと騒ぐ前に、まずはこれがきちんとできているかを確認しましょう。

管理画面に直接アクセスされなくても、脆弱性のあるプラグインを悪用されて悪意あるファイルをサーバに置かれるなんてことはよくありますから、メンテされないまま放置されているプラグインなどにも注意が必要ですね。

また、WordPress への不正アクセス対策というと WordPress 側の対策に目がいきがちですが、普段利用しているクライアント PC がマルウェアに感染したりすれば、いくらパスワードを強化したり WordPress 側で対策しても、ログイン情報を盗聴されたり不正に取得されて不正アクセスさせる場合もあります。

さらに、外出先でインターネットにアクセスする際など、信用できないネットワークに不用意につなぐと、経路上での盗聴というリスクもあります。 セキュリティ対策は単に WordPress だけ考えればよいというものではないので注意が必要です。

ちなみに、通信経路上での盗聴を防ぐのであれば、Web サイト全体の HTTPS 化を考えてもよいかもしれません (常時 SSL 対応については下記の記事参照)。

追加対策

基本対策がきちんとできている前提で、やっておくと安心ですねというのが WordPress 側でできる追加のセキュリティ対策。

セキュリティ強化プラグインの導入

追加対策について、リンク先の記事ではユーザー名を秘匿するためだけ (正確には /?author=* でページが生成されないようにする) のプラグインが紹介されていますが、個人的に WordPress のセキュリティ対策であれば、「All In One WP Security & Firewall」 を入れておけばひとまずは十分かなと思っています。

All In One WP Security & Firewall

管理画面が英語なので苦手な人は厳しいかもしれませんが、色々と設定できますし便利です。

例えば、「User Login」 設定内の 「Login Lockdown」 項目から 「Enable Login Lockdown Feature (ログイン失敗時のアカウントロック機能)」 を 「ON」 にして、短時間に一定回数以上の不正なログイン施行があった場合は一時的にアカウントをロックするようにしておくと、総当たり攻撃 (ブルートフォースアタック) でサーバに大きな負荷をかけられる前にログイン施行を停止できます。

もちろん、頻繁に総当たり攻撃を喰らうのならそれは別の対策をしないといけないですけども。

また、「Brute Force」 設定から、ログイン画面の URL 変更ができますので、この辺も気になる方はやっておくとよいと思いますよ。

あと、/?author=* でユーザー別の記事リストを出力するのを防ぎたい場合は、「Miscellaneous」 設定内にある 「Users Enumeration」 項目で、「Disable Users Enumeration」 にチェックを入れれば、この機能を無効にできます。

その他、詳しい使い方は検索すれば沢山出てくると思いますので調べてみてください。

英語の管理画面はどうしても無理という方は、SiteGuard WP Plugin」 という選択肢もありますので試してみるとよいかも。

2段階認証の導入

WordPress.com は 2段階認証に対応していますが、インストール型の WordPress も 2段階認証に対応させることができます。

WordPress プラグインと Google Authenticator (Google 認証システム) を利用した方法が手頃なのでオススメ。 Google Authenticator については、Google 等で 2段階認証を有効にしていればすでに使っている方も多いと思いますので、管理上は同じものを使った方が楽です。

Google Authenticator については過去に書いた下記の記事が参考になるかもしれません。

WordPress プラグインについては、その名もずばり 「Google Authenticator」 というプラグインがありますので、これを導入することで、2段階認証が可能になります。

これも比較的有名なプラグインですので検索すれば詳しい使い方は出てくると思います (丸投げ)。

ここまでやれば WordPress のセキュリティ対策としては十分かと思います。あとは運用しているサイトの内容等によってどこまでやるか決めればよいと思いますよ。

サーバサイドでの追加対策

あとは、管理画面にベーシック認証かけたり、IP アドレスで管理画面にアクセスできる経路を絞ってしまうなど、できることは色々ありますが、どこまでやるかは対象となる Web サイトの運営状況によりますね。

ちなみに IP アドレス制限は、上で紹介した 「All In One WP Security & Firewall」 プラグインでも設定可能 (「Brute Force」 設定内の 「Login Whitelist」 項目から有効にできます) ですので、会社などで、社内からしかアクセスできないようにしたいという場合は利用してみるとよいかもしれません。


ということで、かなり雑な感じで書きましたが、この辺で終わりにしたいと思います。

関連エントリー

この記事に関連しているかもしれない記事。ちょっと古い記事も混ざっていますのでご注意ください。

Recent Entry

全ての記事一覧を見る

Hot Entry

逆引きおすすめエントリー