パスワード攻撃の全体像
T1110 ブルートフォースパスワード攻撃は TA0006 認証情報アクセス タクティクスの中核をなす手法です。多くのサービスが依然としてパスワード認証に依存しているため、攻撃者にとって有力な侵入経路となっています。
攻撃手法の比較
| 手法 | 説明 | 検知難易度 | 対策 |
|---|---|---|---|
| 辞書攻撃 | 一般的な単語・パスワードリストを試す | 中(大量の試行が発生) | 強力なパスワードポリシー |
| ブルートフォース | すべての文字の組み合わせを試す | 低(大量・高速な試行) | アカウントロックアウト |
| パスワードスプレー | 少数のパスワードを多数アカウントに試す | 高(低頻度試行) | 異常ログイン監視 |
| クレデンシャルスタッフィング | 漏えいした認証情報を別サービスで試す | 高(正規ユーザーに見える) | MFA・パスワードリセット通知 |
辞書攻撃(Dictionary Attack)
一般的なパスワード・単語・過去の漏えいパスワードリストを順番に試します。
なぜ有効か: 多くのユーザーが推測可能なパスワードを使用しています。
password,123456,qwertyがいまだに最多使用パスワードcompany2024!のような予測可能なパスワードパターン- 生年月日・名前・ペットの名前
防御策:
- Have I Been Pwned などの漏えいパスワードデータベースとの照合
- NIST SP 800-63Bに基づく「連続した文字・既知のパスワードの禁止」
- パスワードマネージャーの使用推奨(ランダムな長いパスワード生成)
パスワードスプレー(Password Spray)
アカウントロックアウトを回避するため、1つのパスワードを多数のアカウントに試す手法です。
通常の攻撃: 1アカウント × 1000パスワード → すぐにロック
スプレー: 1000アカウント × 1パスワード → ロックされにくい
攻撃者の視点からの狙い:
- 組織のメールアドレスをOSINTで収集
Spring2025!など「よくある季節+年+記号」パスワードを試す- クラウドサービス(Office 365, Google Workspace)への認証試行
パスワードスプレーの検知が難しい理由
各アカウントへの試行が少ないため、通常のアカウントロックアウト機能では検知できません。SIEMによる横断的な認証失敗パターンの監視が必要です。「多数のアカウントが同じ時刻に1〜2回認証失敗」というパターンがシグネチャです。
クレデンシャルスタッフィング(Credential Stuffing)
過去のデータ侵害で漏えいした実際のID・パスワードの組み合わせを、別のサービスに試す攻撃です。
なぜ有効か: パスワードの使い回しが蔓延しているため。
- Verizon DBIR 2024によると、侵害の61%でパスワードの使い回しが関与
攻撃の流れ:
- ダークウェブから漏えいした認証情報を入手
- Sniperスクリプトや専用ツールで自動化して試行
- ヒットしたアカウントをリスト化して悪用
防御策:
- MFAの強制 — パスワードが漏れていても侵害を防止
- HIBP API連携 — アカウント作成・ログイン時に漏えいパスワードを確認
- 行動分析 — IPアドレス・デバイス・地理的位置の異常検知
- CAPTCHA — 自動化ツールによる大量試行の阻止
安全なパスワードポリシー設計
NIST SP 800-63B(2024年版)の推奨事項:
| 旧来の考え方(非推奨) | NIST推奨(現代のベストプラクティス) |
|---|---|
| 定期的な変更(90日ごと) | 漏えい時のみ変更を求める |
| 複雑性ルール(大文字+数字+記号必須) | 最小文字数(8文字以上)を重視 |
| パスワードのヒントを表示 | ヒント機能は廃止 |
| セキュリティの質問 | SMSより認証アプリやハードウェアキーを推奨 |
パスフレーズの有効性
correct-horse-battery-staple のようなパスフレーズは、P@ssw0rd! より安全です。長さが増すと総当たりに必要な計算量が指数的に増加します。記憶しやすく、エントロピーが高い点が優れています。
理解度チェック
パスワードスプレー攻撃が通常のブルートフォースより検知しにくい理由はどれですか?
解説: パスワードスプレーは「少数のパスワードを多数のアカウントに試す」アプローチです。1アカウントへの試行回数が少ない(1〜3回程度)ためアカウントロックアウトが発動せず、SIEMでの横断的な相関分析なしには検知が困難です。