ログインシステムに対するブルートフォース攻撃から保護するには、ログイン試行の失敗を何回まで許可する必要がありますか? また、その期間はどれくらいですか?
「アカウントをロックする」とはどういう意味ですか? (適切なパスワードを使用しても) ログインできないようにするだけですか?
ログインシステムに対するブルートフォース攻撃から保護するには、ログイン試行の失敗を何回まで許可する必要がありますか? また、その期間はどれくらいですか?
「アカウントをロックする」とはどういう意味ですか? (適切なパスワードを使用しても) ログインできないようにするだけですか?
私なら 3 や 5 などの低い数字を選択し、そのIP アドレスとユーザー アカウントのすべてのログイン試行に対してキャプチャを表示します。正解の catpcha に答えると、別の数の推測が得られます。攻撃者がプロキシ サーバーの膨大なリストを取得するのは非常に簡単です。THC-Hydraなどのブルート フォーシング ツールは、プロキシを利用します。
注意事項:
ユーザー アカウントをロックすると、攻撃者はこれを使用して管理者をロックアウトできます。
攻撃者は、ユーザー名のリストを持っている可能性があります。一部のアプリケーションでは、ユーザーのテーブルの主キーを反復処理することで、すべてのユーザーを簡単に列挙できます。(例として、ユーザーのプロフィール ページがあります。)
非常に一般的なパスワードがあります。
これはおそらく設定可能であるべきものです。デフォルトとして選択する値に関係なく、将来のある時点で特定の攻撃により、別の値がより望ましいものになる可能性があります (少なくとも一時的に)。
Security Stackexchangeで詳しく説明されているように、さまざまな考え方があります。
「ロック」して手動介入を必要としないことは間違いなく良い考えです。サービス拒否攻撃につながり、ヘルプデスク スタッフを増やす必要があるからです。
漸進的な遅延は価値があるように思われます - それはブルート フォースの試みを打ち砕きますが、通常のユーザーは 1 日を台無しにすることなく、いくつかの入力ミスを許してしまいます。たとえば、5 秒、10 秒、15 秒、30 秒、1 分、2 分、3 分、5 分、10 分でも、誰かがパスワードのリセットを要求せずに入ることができ、通常の攻撃にはほとんど影響されません。ブルートフォース攻撃。
私が聞いた (ただし実装されていない) 方法の 1 つは、ログインごとの待機時間を増やして、それを 2 倍にすることでした。
したがって、最初の試行が失敗した後、ユーザーを 1 秒待機させ、その後 2 秒、4 秒というように待機させます。このようにして、試行が失敗した後にユーザーをロックアウトすることはありませんが、試行ごとに 2^x (x は失敗した試行の数) 秒かかるため、ブルート フォースの試行を停止します。
IP アドレスごとに 5 回のログイン試行を許可し、その IP からのログイン試行を 15 分間ブロックします。
IP の変更には時間がかかるため、総当たり攻撃は非常に困難になります。
Cookie はユーザーやハッカーによって簡単に操作される可能性があるため、信頼しないでください。
私は以前、いくつかのシステムを (もちろんすべて自分の Web サイトで) ブルートフォースしようとしましたが、上記の方法が最も安全な方法であると確信しています。 .
ところで、パスワードを 5 回間違えるのは非常に難しくありませんか?
はい、「アカウントをロックする」とは、適切なパスワードを使用してもログインを許可しないことを意味します。