16.3. 総当たり攻撃


総当たり攻撃は、複数回ログインを試みることで、ユーザーのパスワードを推測しようとします。Red Hat build of Keycloak にはブルートフォース検出機能があり、ログインの失敗回数が指定のしきい値を超えた場合にユーザーアカウントを完全にまたは一時的に無効にできます。

注記

ユーザーがロックされている状態でログインしようとすると、Red Hat build of Keycloak はデフォルトの Invalid username or password エラーメッセージを表示します。このメッセージは、アカウントが無効になっていることに攻撃者が気付かないようにするために、無効なユーザー名または無効なパスワードに対して表示されるメッセージと同じエラーメッセージです。

警告

Brute Force Detection (ブルートフォース検出) は、デフォルトでは無効になっています。この機能を有効にして、総当たり攻撃から保護します。

この保護を有効にするには、以下を実行します。

  1. メニューで Realm Settings をクリックします。
  2. Security Defenses タブをクリックします。
  3. Brute Force Detection タブをクリックします。
  4. 要件に最適な Brute Force Mode を選択します。

    ブルートフォースの検出

    brute force

16.3.1. 完全なロックアウト

Red Hat build of Keycloak は、管理者が再度有効にするまで、ユーザーアカウントを無効にします (ログイン試行をブロックします)。

完全なロックアウト

brute force permanently

永続的なロックアウトのパラメーター

Expand
名前説明デフォルト

Max Login Failures

ログイン失敗の最大数。

30 failures

Quick Login Check Milliseconds

ログイン試行の最小時間。

1000 milliseconds

Minimum Quick Login Wait

ログイン試行が Quick Login Check Milliseconds よりも短い場合にユーザーが無効になる最小時間。

1 minute

永続的なロックアウトフロー

  1. 正常なログイン時

    1. count をリセット
  2. ログインの失敗

    1. count をインクリメント
    2. countMax login failures 以上の場合

      1. ユーザーをロックします。
    3. それ以外の場合、この障害から最後の障害までの時間が Quick Login Check Milliseconds 未満の場合

      1. Minimum Quick Login Wait で指定された期間、ユーザーをロックします。
注記

ユーザーアカウントを有効にすると、count がリセットされます。

16.3.2. 一時的にロックアウト

Red Hat build of Keycloak は、特定の期間、ユーザーアカウントを無効にします。攻撃が続くと、アカウントが無効になる期間が長くなります。

一時的にロックアウト

brute force temporarily

一時的なロックアウトパラメーター

Expand
名前説明デフォルト

Max Login Failures

ログイン失敗の最大数。

30 failures

Strategy to increase wait time

ユーザーのログイン試行回数が Max Login Failures を超えた場合に、ユーザーが一時的に無効になる時間を延長するストラテジー

Multiple

Wait Increment

ユーザーのログイン試行が Max Login Failures を超えると、ユーザーが一時的に無効になる時間に追加された時間。

1 minute

Max Wait

ユーザーが一時的に無効になっている最大時間。

15 minutes

Failure Reset Time

失敗数がリセットされる時間。最後にログインに失敗したタイミングからタイマーが実行されます。この数値は必ず Max wait よりも大きくしてください。そうでない場合、有効な待機時間が Max wait に設定した値に到達しません。

12 時間

Quick Login Check Milliseconds

ログイン試行の最小時間。

1000 milliseconds

Minimum Quick Login Wait

ログイン試行が Quick Login Check Milliseconds よりも短い場合にユーザーが無効になる最小時間。

1 minute

一時的なロックアウトアルゴリズム

  1. 正常なログイン時

    1. count をリセット
  2. ログインの失敗

    1. この障害から最後の障害までの時間が Failure Reset Time よりも長い場合

      1. count をリセット
    2. count をインクリメント
    3. 定義されたブルートフォースストラテジーに従って wait を計算します (以下の「待機時間を設定するストラテジー」を参照してください)。
    4. wait が 0 以下で、この失敗から最後の失敗までの時間が Quick Login Check Milliseconds 未満の場合

      1. waitMinimum Quick Login Wait に設定します。
    5. wait が 0 より大きい場合

      1. wait 秒および Max Wait 秒の短い方のユーザーを一時的に無効にします。
注記

一時的に無効にされたアカウントがログインに失敗した場合、count は増加しません。

待機時間を設定するストラテジー

Red Hat build of Keycloak は、待機時間を計算するための 2 つのストラテジー (By multiples または Linear) を提供します。By multiples は、Red Hat build of Keycloak で導入された最初のストラテジーであるため、これがデフォルトになります。

By multiples ストラテジーでは、失敗の数 (またはカウント) が Max Login Failure の倍数である場合に、待機時間が増加します。たとえば、Max Login Failures5 に設定し、Wait Increment30 秒に設定した場合、認証の試行が複数回失敗した後にアカウントが無効になる実効時間は次のようになります。

Expand

Number of Failures

Wait Increment

Max Login Failures

Effective Wait Time

1

30

5

0

2

30

5

0

3

30

5

0

4

30

5

0

5

30

5

30

6

30

5

30

7

30

5

30

8

30

5

30

9

30

5

30

10

30

5

60

5 回目の失敗で、アカウントは 30 秒間無効になります。Max Login Failures の次の倍数 (この場合は 10) に達すると、時間は 30 秒から 60 秒に増加します。

By multiple ストラテジーでは、待機時間の計算に Wait Increment (秒) x (count / Max Login Failures) という式を使用します。除算は、整数に丸められる整数除算です。

線形ストラテジーの場合、失敗の count (または回数) が Max Login Failure 以上になると、待機時間が増加します。たとえば、Max Login Failures5 に設定し、Wait Increment を `30` 秒に設定した場合、認証の試行が複数回失敗した後にアカウントが無効になる実効時間は次のようになります。

Expand

Number of Failures

Wait Increment

Max Login Failures

Effective Wait Time

1

30

5

0

2

30

5

0

3

30

5

0

4

30

5

0

5

30

5

30

6

30

5

60

7

30

5

90

8

30

5

120

9

30

5

150

10

30

5

180

5 回目の失敗で、アカウントは 30 秒間無効になります。新しい障害が発生するたびに wait increment で指定された値に従って待機時間が増加します。

Linear ストラテジーでは、待機時間の計算に Wait Increment (秒) x (1 + count - Max Login Failures) という式を使用します。

16.3.3. 一時的なロックアウト後の完全なロックアウト

混合モード。指定された回数、ユーザーを一時的にロックし、その後ユーザーを完全にロックします。

一時的なロックアウト後の完全なロックアウト

brute force mixed

一時的なロックアウト後の永久的なロックアウトパラメーター

Expand
名前説明デフォルト

Max Login Failures

ログイン失敗の最大数。

30 failures

Maximum temporary Lockouts

永続的なロックアウトが発生する前に許可される一時的なロックアウトの最大数。

1

Strategy to increase wait time

ユーザーのログイン試行回数が Max Login Failures を超えた場合に、ユーザーが一時的に無効になる時間を延長するストラテジー

Multiple

Wait Increment

ユーザーのログイン試行が Max Login Failures を超えると、ユーザーが一時的に無効になる時間に追加された時間。

1 minute

Max Wait

ユーザーが一時的に無効になっている最大時間。

15 minutes

Failure Reset Time

失敗数がリセットされる時間。最後にログインに失敗したタイミングからタイマーが実行されます。この数値は必ず Max wait よりも大きくしてください。そうでない場合、有効な待機時間が Max wait に設定した値に到達しません。

12 時間

Quick Login Check Milliseconds

ログイン試行の最小時間。

1000 milliseconds

Minimum Quick Login Wait

ログイン試行が Quick Login Check Milliseconds よりも短い場合にユーザーが無効になる最小時間。

1 minute

一時的なロックアウト後の完全なロックアウトアルゴリズム

  1. 正常なログイン時

    1. count をリセット
    2. temporary lockout のリセット
  2. ログインの失敗

    1. この障害から最後の障害までの時間が Failure Reset Time よりも長い場合

      1. count をリセット
      2. temporary lockout のリセット
    2. count をインクリメント
    3. 定義されたブルートフォースストラテジーに従って wait を計算します (以下の「待機時間を設定するストラテジー」を参照してください)。
    4. wait が 0 以下で、この失敗から最後の失敗までの時間が Quick Login Check Milliseconds 未満の場合

      1. waitMinimum Quick Login Wait に設定します。
      2. quick login failuretrue` に設定します。
    5. wait および Maximum temporary Lockouts が 0 より大きい場合

      1. waitwaitMax Wait (秒単位) の最小値に設定します。
    6. quick login failurefalse の場合

      1. temporary lockout カウンターの値を増やします。
    7. temporary lockout カウンターが Maximum temporary lockouts を超えた場合

      1. ユーザーを完全にロックします。
    8. それ以外の場合

      1. wait の値に応じてユーザーを一時的にブロックします。
注記

一時的に無効にされたアカウントがログインに失敗した場合、count は増加しません。

16.3.4. Red Hat build of Keycloak の欠点

Red Hat build of Keycloak のブルートフォース検出の欠点として、サーバーが DoS 攻撃に対して脆弱になることが挙げられます。攻撃者は、DoS 攻撃を実行する際に知っているアカウントのパスワードを推測してログインを試み、最終的にそのアカウントが Red Hat build of Keycloak によって無効にされる可能性があります。

侵入防止ソフトウェア (IPS) の使用を検討してください。Red Hat build of Keycloak は、ログインの失敗とクライアント IP アドレスの失敗をすべてログに記録します。IPS を、Red Hat build of Keycloak サーバーのログファイルを指すように設定できます。IPS は、ファイアウォールを変更して IP アドレスからの接続をブロックできます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る