ブログに戻る

辞書攻撃の隠れた危険性

4 min read 分で読める
SecurityPython

辞書攻撃とは

辞書攻撃は、攻撃者が多数の潜在的なパスワードを試すことで、ユーザーのアカウントやシステムへの不正アクセスを体系的に試みるサイバー攻撃の一種です。すべての可能な文字の組み合わせを試すブルートフォース攻撃とは異なり、辞書攻撃は一般的に使用されるパスワード、辞書の単語、またはそれらのバリエーションのリストを試すことに焦点を当てています。

辞書攻撃の解剖学

辞書攻撃は本質的に、人間の性質が単純で一般的なパスワードを選ぶ傾向を利用するパスワードクラッキング攻撃です。通常、次のように展開されます:

  1. パスワード候補の収集: 攻撃者は、一般的な単語、フレーズ、バリエーションを含む辞書を使用して、潜在的なパスワードのリストを編集します。

  2. 自動化された試行錯誤: 自動化されたスクリプトやツールを使用して、攻撃者はリストから各パスワード候補をターゲットアカウントに対して体系的に試します。

  3. 成功または失敗: ターゲットのパスワードが候補の1つと一致すると、攻撃者は不正アクセスを取得します。

実際のケース例

パスワード保護されたPDF

企業はしばしば、給与明細やクレジットカード明細などの機密PDFドキュメントにパスワード保護を利用します。これらのパスワードには繰り返しパターンがあることが多く、会社のイニシャルと日付の組み合わせ、または日付とクレジットカード番号の下4桁の組み合わせである傾向があります。

このようなPDFをクラックするために必要なスクリプト:

  • 指定した日付からのすべての日付をddmmyyyy形式でリスト化
  • 0000から9999までのすべての4桁をリスト化
  • すべての日付と4桁の組み合わせを生成
  • PDF(例:Pythonのpikepdf)を操作してすべての組み合わせを試す

エンジニアリングの課題

エンジニアは辞書攻撃から防御するための堅牢なメカニズムを考案する複雑なタスクに直面しています:

  • ハッシュアルゴリズム: 強力な暗号化ハッシュアルゴリズムを使用してパスワードを保護
  • ソルティング: 各パスワードにユニークなソルト値を追加して、同じパスワードでも異なるハッシュ値を持つようにする
  • パスワードポリシー: 文字種の混合、最小長、一般的な辞書単語の使用禁止を要求
  • アカウントロックアウトと遅延: 一定回数のログイン失敗後にアカウントを一時的にロック

結論

辞書攻撃は攻撃者の戦術の中で強力な手段ですが、暗号化の専門知識と人間の行動に対する深い理解を持つエンジニアは、防御を革新し強化し続けています。