サポート » 使い方全般 » ユーザー名をadmin以外にしてもセキュリティ上の意味は無いのでしょうか

  • モデレーター JOTAKI Taisuke

    (@tai)


    ユーザー名をadmin以外にしてもセキュリティ上の意味は無いとどこか(どこかは失念)で読んだのですがそうなんでしょうか?

    WordPressのログインに対するブルートフォースアタックには有効だと思うのですが。。

    WordPressのセキュリティ関連のドキュメントを訳していてちょっと疑問に思ったので教えてくださーい!

12件の返信を表示中 - 1 - 12件目 (全12件中)
  • ユーザー名候補リスト(辞書)をベースにパスワードのみをリトライして攻撃してくる場合においても、パスワードをWordPress判断で”強”になる登録をしていると、パスワード通過までに数年?かかるはずです。

    ユーザー名を辞書以外にすると更に時間がかかり天文学的日数を要しますが、パスワードに対する危機感をお持ちであれば、adminでも問題ないという認識になります。

    これ以上の心配をする場合、FTPやSSHで固定IP許可や秘密鍵の管理を行なっているか、rootでログインできなくしているかなど、WordPressの範囲外の心配をするべきです。

    以上が私の認識ですが、これ以上は識者にお任せします。
    (ハッカーやクラッカーが本気で情報を抜くことを心配するレベルの情報であれば、セキュリティ専門家に依頼するしかないですよね)

    WordPressだと、外部からユーザー名を調べる方法が存在します。
    なので、admin以外にしても、
    「admin決めうちでアタックしてくるものは防げる」
    ぐらいの効果だと思います。

    攻撃対策をするなら、
    「一定回数のログインに失敗したらロックする」
    という実装にしておくほうが良いですね。

    モデレーター JOTAKI Taisuke

    (@tai)

    bren_bossさん、ありがとうございます!
    なるほど、パスワード強化でも十分というわけですね。

    php-webさん、ありがとうございます!

    WordPressだと、外部からユーザー名を調べる方法が存在します。

    これは例えばauthor archiveの nicename (jim0912さん、ありがとうございます!)かと思いますが、他にもありますでしょうか?

    これは例えばauthor archiveの nicename (jim0912さん、ありがとうございます!)かと思いますが、他にもありますでしょうか

    はい、私が確認しているのはこの方式です。厳密にはユーザー名では無いですが。

    補足ですが、twitterでも同様のことがいえますね。
    URLを調べればログインIDが分かります。

    モデレーター JOTAKI Taisuke

    (@tai)

    なるほど。

    結論としては、「(WordPressのログインに対するブルートフォースアタックに対しては)ユーザー名をadmin以外にしてもセキュリティ上の意味はほぼ無に等しく、そんなことを気にするよりはパスワード強化と「一定回数のログインに失敗したらロックする」実装を検討するほうがはるかにまし」ということですね。

    bren_bossさん、php-webさん、あらためまして、ありがとうございました。
    すっきりしました!

    # 他に意見があった場合にそなえて「トピックを解決済みにする」にはチェックを入れずにおきます。

    モデレーター Takuro Hishikawa

    (@hissy)

    セキュリティはまず何のために、が先にあって、「WordPressがクラックされてる!怖い!対策しなきゃ!ユーザー名を変更!ふ〜安心。」は、違うよ、という意味で、意味がないことはないと思います。いまのWordPressは最低5回のストレッチングは行われると思うので、ユーザー名がバレている程度のことでどうこうできるようなずさんな実装にはなっていないです。

    モデレーター JOTAKI Taisuke

    (@tai)

    hissyさん、ありがとうございますー!

    セキュリティはまず何のために、が先にあって

    今回はWordPressのログインのセキュリティ強化のため、ですね。

    WordPressがクラックされてる!怖い!対策しなきゃ!ユーザー名を変更!ふ〜安心。」は、違うよ、という意味で、意味がないことはないと思います。

    これ、意味があるのか意味が無いのか意味が分かりませんでしたw。

    ユーザー名がバレている程度のことでどうこうできるようなずさんな実装にはなっていないです。

    りょうかいでーす。

    こんにちは、

    回答というより、ちょっとこれでいいのかな?みたいな事なのですが、一年ほど前

    http://wordpress.org/support/topic/login-form-username-validation?replies=1

    という質問をした事がありました、

    回答は得られなかったのですが、要は

    ユーザー名に

    <h2>admin</h2>

    と入力しても、パスワードが正しければ、ログイン可能

    <script>admin</script>

    だと、ログインできません。

    3.5でも、再現できたので、書いてみたのですが

    なぜ、正確にadminでログインしなくても、ログインできように作っているの?

    という素朴な疑問があったりするのですが、、、

    詳しい方々の、アドバイスがいただけるとうれしいです

    私自身は、上記のような事が出来たとしても、試した範囲では、それで何かが出来る事でもないだろうと思っているのですが、上記のような、ばかげた試みすべてが試されているわけではないだろう思っていて、こういうつまらない遊びが、なんかの誤解を生む事もあるのではないかと思ったりしています。

    一般的には「セキュリティ」といった言葉は、サイト全体に対して向けられる言葉なので、
    WordPressのログイン機構は、「しっかりしている」adminでもいいんだという、受動的な認識で「へいっちゃら感」が広まり、プラグインでも、テーマでも、なんでも安心して使ってしまう。
    ワードプレスが良くなればなるほど、人が安心して、セキュリティに頓着しなくなって、
    「ハックされました」と声を突然あげたりする。

    人が、セキュリティの脅威を作り出しているなら、やはり、人に向かって「admin」以外を使って、セキュリティ配慮しようぜ、という意識を啓蒙していく意味では、「admin意外にする」は、一定の意味があるのではないかと思います。

    モデレーター Takuro Hishikawa

    (@hissy)

    なぜ、正確にadminでログインしなくても、ログインできように作っているの?

    これはセキュリティ上の理由ですね。フォームからの入力はサニタイズするのが望ましい。悪意のあるログインIDを入力されてクラックされるのを防ぐためです。WordPressのログインフォームのサニタイズ処理の詳細は省きますが、最初に wp_strip_all_tags 関数を通しています。この関数はまずscriptまたはstyleタグを中身ごと削除し、他のHTMLタグは中身を残して削除します。

    人が、セキュリティの脅威を作り出しているなら、やはり、人に向かって「admin」以外を使って、セキュリティ配慮しようぜ、という意識を啓蒙していく意味では、「admin意外にする」は、一定の意味があるのではないかと思います。

    これはぼくは逆で、WordPressの実装はadminがバレてるとヤバいレベルなんだ…という認識が広まるほうがマズイと考えています。やっぱりオープンソースってその程度のソフトなんだな〜と思いそう伝える人が増えるほうがよくない。

    hissyさん ありがとうございます

    これはセキュリティ上の理由ですね

    私も、それがセキュリティリスクと思っていません。
    一般的には、IDは、一文字でも間違えたら、ダメというのが常識だと思います。
    インターフェースとしては、ちょっとへんなんじゃないかと思います。

    自分的には、

    <?php
    /**
     * WordPress User Page
     *
     * Handles authentication, registering, resetting passwords, forgot password,
     * and other user handling.
     *
     * @package WordPress
     */
    
    /** Make sure that the WordPress bootstrap has run before continuing. */
    require( dirname(__FILE__) . '/wp-load.php' );
    
    	if( isset( $_POST['log']) and $_POST['log'] !== wp_strip_all_tags($_POST['log']) ){
    		unset( $_POST );
    		add_filter('login_message','asobuna');
    	}else{
    		remove_filter('login_message','asobuna');
    	}
    	function asobuna($message){
    		return $message.'<p>html書いて、遊ぶんじゃないよ</p>';
    	}

    みたいな事を、コアをいじらないで、何とかしなくちゃいけない時が来るかも、と思っています。
    気に入らない所は、自分で何とかすればいい事ですが、ちょっと聞いてみたくなったのです。

    横道にそれて、申し訳ありませんでした。

    WordPressの実装はadminがバレてるとヤバいレベルなんだ

    ワードプレスを卑下して、admin以外を薦めるという考えは私にもありません。

    セキュリティの問題は、ユーザーのリテラシーも大きいので、ブラウザのID欄にスベースとか入れると、「パスワードは消えた」と思っているユーザーもいるかもしれません。
    そういう場合は、adminにしていると、悲劇になる事もあるんじゃないかと思います。

    モデレーター Takuro Hishikawa

    (@hissy)

    自分はほかのオープンソースソフトウェアのCMSもやっているのでそっちの実装とも比べてしまいますが、確かにWordPressの実装はちょっと変わってる気はします…。WordPressのログインは昔々はマジッククオートで書かれていて、PHPも含め色んな歴史の積み重ねでこうなってると思いますよ。

    個人的には、ユーザー名を変えることで実現されるセキュリティ上のメリットがわからないんですよね…。納得の行く説明に出会ってないです。

12件の返信を表示中 - 1 - 12件目 (全12件中)
  • トピック「ユーザー名をadmin以外にしてもセキュリティ上の意味は無いのでしょうか」には新たに返信することはできません。