web-dev-qa-db-ja.com

登録ページのキャプチャはどのくらい重要ですか?

私はサイトで作業していますが、ユーザー名の列挙を防ぐためにユーザー登録ページにCAPTCHAを追加したいと考えています。

私は、CAPTCHAを登録ページに追加しないでください。これはユーザーの負担であり、コンバージョン率が低下するため、フロントエンドの開発者と協力しています。

サイトのセキュリティとサイトのユーザビリティの間には時々逆の関係があり、一部のセキュリティの脆弱性は他のものよりも悪いことを知っています。

SQLインジェクションの脆弱性のようなものがあった場合、私はそれを修正すると主張しますが、ユーザー列挙の脆弱性がこの特定の修正のために戦うことを正当化できるほど深刻かどうかはわかりません。

CAPTCHAを登録ページに配置することはどれほど重要ですか。また、ユーザー列挙攻撃をどれほど深刻に行う必要がありますか?

7
Abe Miessler

ReCAPTCHA(広く最高の1つと見なされています)での私の個人的な経験は、追加を試みてから、スパマーが防止するために試みていたスパマーが解決方法を見つけるまでに、約1週間かかったことです。

彼らは提示された画像の100%を正しく解決しませんが、そうする必要はありません。 10分の1に1つでも正解しても問題はなく、彼らはそれよりもうまくやっています。彼らはおそらく私たちの顧客よりもうまくやっています。

CAPTCHAには、ゲームをプレイしたり、いくつかの画像から子猫の写真を選択したりする方法がいくつかあります。これらのタイプのCAPTCHAは、熱心なスパマーからまだ真剣な注目を集めていません。


サイトの設計によっては、ユーザー列挙は解決できない問題である可能性があります。フォーラムの場合、攻撃者は単にフォーラムにアクセスし、すべての投稿に添付されているユーザー名をメモするだけです。

誰かがサイトに登録できる場合、登録プロセスでは、選択した名前がすでに使用されていることを潜在的なユーザーに通知する必要があります。 CAPTCHAは、攻撃者の方程式を変更する可能性があります。これを解決するためのコストと、列挙された資格情報の潜在的な値と比較した失敗率は、努力する価値がないことを意味します。

ユーザー名は通常、資格情報ペアの秘密でない部分であるため、ユーザー名を特定することは、通常、攻撃者にとってあまり価値がありません。

6
Ladadadada

ser enumeration については、次の方法で人間による確認なしにこの特定の脅威を軽減できます。

  1. ログインユーザー名を他のユーザーの詳細から切り離します(メールアドレス、仮名識別子、公開されている「自己紹介」属性)。銀行はこれを行うために、他の番号やアカウントの詳細から完全に切り離されたログイン番号を顧客に提供します。例えば:

    • ユーザーが変更できないランダムなログインユーザー名を入力します。重要な点は、システムがユーザー名を提供するか、ユーザーが長いランダムなユーザー名しか選択できないことです。それ以外の場合、アカウントの作成は既存の名前を推測する機会です。
    • ログインユーザー名を投稿に含めているときにユーザーに警告する(ユーザー名がソルト処理およびハッシュされていない場合)。
  2. システム内のユーザーに関する情報を推測できる任意のパブリッククエリまたはフォーム上にあります:

    • アクセスは常に拒否されたと言います。理由を言わないでください。
    • 常に「指定されたアドレスにパスワードリセットが送信されました」と言います。ユーザーが存在しないため、これは不可能だと言ってはいけません。
    • ログイン名をクエリIDとして使用するView User Profile機能を使用しないでください。おそらく一意の仮名フォーラムハンドルなどの代理キーを使用します。

認証に使用されるすべてのフィールドには、パスワード自体と同じ制限があります。


代替の非正統的なアプローチは、ログインユーザー名を持たないことです.

アカウントは、パスワードのみを使用して作成およびアクセスされます。したがって、誰かが自分のアカウントにログインしたくない場合は、できるだけ長くランダムなパスワードを使用することをお勧めします。システム内のユーザーの名前は、認証ではなくメンバーの対話に使用されます。

ほとんどのユーザー名はエントロピーを少しだけ追加するだけなので、ログインユーザー名とパスワードの両方を総当たり攻撃するよりも安全です。パスワードさえあれば、メンバーはより直感的に認識できます。モニターの付箋にユーザー名/パスワードのペアを記録する人々は、これらのデータ属性のペアは2つ以上の断片に任意にスライスされた原子認証ユニットにすぎないという本質的な真実を明らかにしています。 "Number A; Number B; Number C; Number D; and Number E"というラベルの付いた5つの入力ボックスを持つログインフォームは、 "ユーザー名;およびパスワード"

これはまた、この日の年齢でのパスワードの回復は、ウェブサイトではなくユーザーの責任である可能性があり、おそらくそうすべきであるという単純な点を作り出します。電子メールアドレスを事実上のポストホックパスワードマネージャーとして使用すると、すべてのサイトのセキュリティが「秘密の質問/回答応答」にあるエントロピーにまで縮小され、その電子メールアカウントのパスワードを回復またはリセットします。また、電子メールアカウントは、ハッカーにとって、他の場合よりもはるかに魅力的なターゲットになります。電子メールアドレスは、特にネットワーク上で秘密に設計されたことはありません。

1
LateralFractal