19.3. パスワード推測: ブルートフォース攻撃
ブルートフォース攻撃は、攻撃者がユーザーのパスワードの推測を試みる際に行われます。Red Hat Single Sign-On では、ブルートフォート検出機能が限定されています。オンになっていると、ログイン失敗のしきい値に達すると、ユーザーアカウントが一時的に無効になります。この機能を有効にするには、Realm Settings
の左側のメニュー項目に移動し、Security Defenses
タブをクリックしてから Brute Force Detection
サブタブに移動します。
Brute Force Detection (ブルートフォース検出) は、デフォルトでは無効になっています。この機能を有効にすると、このタイプの攻撃から保護することを強く推奨します。
Brute Force Detection
ブルートを強制的に検出するには、2 つの異なる設定、永続的なロックアウト、および一時ロックアウトがあります。永続的なロックアウトは、攻撃を検出した後にユーザーのアカウントを無効にします。管理者が有効にするまでアカウントは無効になります。一時的なロックアウトは、攻撃の検出後に期間にユーザーのアカウントを無効にします。アカウントが無効の期間は、攻撃が続行されます。
一般的なパラメーター
- 最大ログイン失敗
- 許可されるログイン失敗の最大数。デフォルト値は 30 です。
- クイックログインチェックミリ秒
- ログインの試行間の最小時間。デフォルトは 1000 です。
- 最小クイックスタートの待機
- ログインの試行が Quick Login Check Milli Seconds よりも速い場合に、ユーザーが一時的に無効になる最小時間。デフォルトは 1 分です。
一時的なロックアウトパラメーター
- 待機インクリメント
- 最大ログイン失敗数 に達した後に、ユーザーが無効になるまでの期間が一時的に無効化される時間。デフォルトは 1 分です。
- 最大待機
- ユーザーを一時的に無効にする最大時間。デフォルトは 15 分です。
- 失敗リセット時間
- 失敗数がリセットされる時間。最後に失敗したログインからタイマーが実行されます。デフォルトは 12 時間です。
永続的なロックアウトアルゴリズム
正常なログイン時
-
count
のリセット
-
ログインの失敗
-
count
のインクリメント count
が Max Login Failures を超える数の場合- ユーザーを完全に無効にする
この失敗と最後の失敗の間にかかる時間は、Quick Login Check Milli Seconds より小さい場合
- 最小クイックログイン待機のユーザーを一時的に無効にする
-
ユーザーを無効にすると、管理者がユーザーを有効にするまでログインできません。アカウントの count
リセット数を有効化してください。
一時的なロックアウトアルゴリズム
正常なログイン時
-
count
のリセット
-
ログインの失敗
この失敗と最後の失敗間の時間が失敗リセットの時間よりも大きい場合
-
count
のリセット
-
-
count
のインクリメント -
Wait Increment * (
count
/ Max Login Failures) を使用してwait
を計算します。除算は整数除算であるため、常に整数に丸められます。 wait
時間がゼロで、この失敗から最後の失敗までの時間が Quick Login Check Milli Seconds よりも小さい場合は、代わりにwait
を Minimum Quick Login Wait に設定してください。-
wait
秒および Max Wait 秒の短い方のユーザーを一時的に無効にします。
-
ユーザーを一時的に無効にした場合にログインに失敗しても、count
は増えません。
Red Hat Single Sign-On のブルート検出では、サーバーがサービス拒否攻撃に対して脆弱であることです。攻撃者は、認識しているアカウントの入力を単純に推測できるため、これらのアカウントは無効になります。ユーザーをブロックするかどうかを決定する際には、最終的にこの機能を拡張してクライアント IP アドレスを考慮します。
優れたオプションは、Fail2Ban などのツールになります。このサービスは、Red Hat Single Sign-On サーバーのログファイルでポイントできます。Red Hat Single Sign-On は、障害があるすべてのログインの失敗およびクライアント IP アドレスをログに記録します。Fail2Ban を使用して、特定の IP アドレスからの接続をブロックする攻撃を検知した後に、ファイアウォールを変更するために使用できます。
19.3.1. パスワードポリシー
もう 1 つでは、パスワード推測を防止するために、複雑なパスワードポリシーを確保して、ユーザーがパスワードの推測が困難であるようにします。詳細は、「パスワードポリシー」 の章を参照してください。
パスワード推測を防ぐ最善の方法は、サーバーがワンタイムパスワード (OTP) を使用するように設定することです。