用語辞典・セキュリティ

ブルートフォース攻撃

ブルートフォース攻撃とは

ブルートフォース攻撃(総当たり攻撃)は、考えられる文字列を大量に試し、パスワードや鍵を破ろうとする攻撃です。英語ではbrute-force attack(ブルートフォース・アタック)と表します。

実際には全組合せだけでなく、頻出パスワード、規則的な変形、漏えい認証情報を優先して反復試行する広い手法を指すことがあります。

防御は「複雑なパスワード」だけでは足りません。オンライン試行を制限し、オフライン解析に強い保存方式を使い、パスワードが合ってもMFAとリスク判定で止めます。

ログインサービスへ送るオンライン試行と、盗まれたパスワードハッシュを手元で解析するオフライン試行試行速度を支配する場所と防御手段を分ける
左にログインサービスへの反復試行とレート制限・ロックアウト・多要素認証、右に盗まれたパスワードハッシュへ多数候補を並列照合しソルトと遅いハッシュで時間を増やす構成、下段に候補の配り方の違いを示すピクトグラム図解
図1オンライン防御のレート制限は、既に盗まれたハッシュを攻撃者の機器で試すオフライン解析には届きません。

オンラインとオフラインでは防御場所が違う

Onlineサービスへログインを試す

サーバーが一回ずつ正否を判定する。レート制限、MFA、リスク判定、監視で速度と成功を抑える。

Offline盗んだハッシュへ候補を試す

攻撃者のハードウェア内で計算する。サーバー側ロックアウトは効かず、ソルトとコストの高いパスワードハッシュが抵抗する。

Key検索暗号鍵候補を探索する

鍵空間とアルゴリズム実装を対象にする。パスワードログインとは速度・長さ・防御設計が異なる。

候補空間は長さと文字種類で増える

利用可能文字がN種類、長さがLなら、固定長の単純な候補数はNのL乗です。長くなるほど指数的に増えます。しかし人が選ぶパスワードは均等ではなく、単語、日付、キーボード配列、末尾数字へ偏ります。

攻撃者はその偏りを優先し、辞書、規則、確率的なモデルを使います。意味のない長いパスフレーズやパスワード管理ツールのランダム生成が有効です。

三つの試行配分を分ける

パスワード推測攻撃は一つのアカウントへ複数候補を試します。パスワードスプレーは少数の頻出パスワードを多数アカウントへ薄く試し、アカウントロックアウトを避けます。

credential stuffing(クレデンシャル・スタッフィング)は、別サービスから漏えいした利用者名・パスワードの組を再利用します。文字列を一から推測しなくても、パスワード使い回しにより成功します。

レート制限をIPだけに置かない

一つのIPからの回数制限だけでは、ボットネットやクラウドから送信元を分散できます。アカウント、機器、ネットワーク、ASN、地域、失敗パターンを組み合わせ、段階的な遅延やチャレンジを使います。

全体ロックアウトを厳しくすると、攻撃者が他人のアカウントを意図的に停止するDoSになります。復旧経路とサポート不正利用も設計します。

MFAは成功後の次の壁になる

パスワードが当たっても、別倍率が必要ならアカウント侵害を抑えられます。SMSコードやプッシュ承認は何もないより強い一方、フィッシング、SIMスワップ、MFA 疲労の対象になります。

管理・リモートアクセスにはパスキーやハードウェアセキュリティ鍵などフィッシング耐性MFAを優先し、MFA再登録を厳格にします。

パスワードを暗号化ではなくハッシュで保存する

サーバーはパスワードそのものを復号可能な形で保存せず、パスワードハッシュ化機能の出力を保存します。ログイン時に入力へ同じ処理を行い比較します。

高速な一般ハッシュだけでは大量候補を高速に試せます。Argon2、scrypt、bcrypt、PBKDF2などパスワード向けのコストを持つ方式を、現在の推奨パラメーターで使います。

ソルトは同じパスワードのハッシュを別にする

アカウントごとのランダムなsalt(ソルト)をパスワードへ組み合わせると、同じパスワードでもハッシュが異なります。事前計算表の使い回しと、ハッシュ一覧から同じパスワードのアカウントを見つけることを難しくします。

ソルトは秘密でなくてよく、ハッシュと一緒に保存します。漏えい後の一候補一アカウントごとの計算を必要にするものです。短いパスワードを強く変える魔法ではありません。

検知は失敗数だけを見ない

一アカウントへの大量失敗、少数パスワードを多数アカウントへ試す横方向パターン、失敗後の成功、未知機器、不可能な移動、MFA大量確認画面、パスワードリセット増加を監視します。

成功ログインの後にメール規則追加、トークン作成、データ書き出しがあればアカウント乗っ取りとして対応します。

利用者側は一意なパスワードを作る

サービスごとに異なる長いパスワードをパスワード管理ツールで生成します。漏えい通知があれば、そのサービスと使い回したすべてを変更し、セッションを失効します。

brute 強制対策は候補を増やす、試行を遅くする、成功後も追加倍率で止める、異常な分散試行を検知する、の四層を組み合わせます。

brute forceの分類とpassword保存の確認資料:MITRE ATT&CK「Brute Force」NIST SP 800-63B「Authentication and Authenticator Management」

関連用語