ブルートフォース攻撃と辞書攻撃

ブルートフォース/辞書攻撃を通じた認証情報の盗難を防ぐベストプラクティス

「日本の脅威レポート」

ブルートフォース攻撃および辞書攻撃とは

ブルートフォース攻撃の定義:

「サイバー犯罪者が自動化されたソフトウェアを利用して、文字や数字について考えられる大量の組み合わせを試し、パスワードや個人識別番号(PIN)などのログイン情報を解読しようとする、トライアルアンドエラー戦術による攻撃。」

辞書攻撃の定義:

「ブルートフォース攻撃の一種で、侵入者が企業や個人のよく使う単語や語句の「辞書リスト」を使い、パスワードによって保護されたセキュリティシステムを破ろうとするもの。」

どちらも、正解を見つかるまで攻撃者が考えられる全てのパスワードやパスフレーズを体系的にチェック/テストし、ユーザーのアカウントにログインしようとする一般的なサイバーセキュリティ攻撃の類型です。このようなブルートフォース攻撃および辞書攻撃はよく使われる手段ですが、それは同じパスワードを再利用する人が多いためです。

結局のところ、システムを攻撃する最も容易な方法は正面から入ることであり、ログインできる方法が必ずあるのです。認証情報が分かっている場合、疑わしいログエントリを作成したり、IDSのシグネチャを間違えたり、パッチされていない脆弱性を必要としたりせずに、通常のユーザーのようにログインできます。システム管理者の認証情報が分かれば、さらに都合が良くなります。攻撃者はいずれの情報も持っていません。ここで、アクセスを得るためにどのようにブルートフォース攻撃や辞書攻撃を利用するかをご紹介します。

攻撃者には通常のようにログインするための認証情報がないため、多くの場合、まずは侵入されたウェブサイトからのパスワードダンプでターゲットのメールアドレスやドメインを探します。ターゲットユーザーがパスワードを再利用したウェブサイトが後に侵入された場合、そのパスワードはまだ有効かも知れません。しかし、賢いユーザー(そして願わくばシステム管理者も)なら、同じパスワードの使い回しはしません。そのため、攻撃者はより直接的な攻撃法に切り替えなければなりません。辞書攻撃とブルートフォース攻撃です。

辞書攻撃

辞書攻撃では、攻撃者はユーザーがよく使う単語(または過去のサイトで使ったパスワード)をパスワードに使用していることを期待して、ワードリストを使います。辞書攻撃では、単純な単語(例:「カウボーイ」や「ロングホーン」)を使ったパスワードが最も被害を受けやすくなります。ワードリストには様々な言語があり、よくあるパスワードも含まれます(例:「password」、「letmein」、「iloveyou」、または「123456」)。しかし、最近のシステムではこのような単純なパスワードの使用が制限されているため、ユーザーはワードリストになさそうな強力なパスワードを考える必要があります。

ブルートフォース攻撃

ブルートフォース攻撃を実行するために、攻撃者はツールを利用して考えられる文字と数字のすべての組み合わせを試し、パスワードを当てようとします。企業でパスワードに特殊文字を使用することが求められているのを攻撃者が知っている場合は、ツールに文字、数字、記号を組み合わせるよう指示します。どれほど強力なものであっても、すべてのパスワードはこの攻撃で解読される可能性があります。しかし、この方法には時間がかかります(パスワードの長さ次第では数年)。

短いパスワード(4桁のPINなど)は、1分以下で解読されます。それを6文字に増やせば、解読時間は1時間くらいまで延びるでしょう。8文字に増やして文字と記号を組み合わせれば、数日になります。1文字追加するごとに、ブルートフォース攻撃でパスワード解読に必要な時間は指数関数的に増えます。つまり、強力で長いパスワードの解読には数週間または数カ月かかるというこです。それでも、十分な計算能力と攻撃者の執拗さがあれば、いずれパスワードは解読されます。

辞書攻撃およびブルートフォース攻撃対策のベストプラクティス

強力でユニークなパスワードは攻撃者による解読を困難にしますが、不可能にはなりません。幸いなことに、ユーザーとシステム管理者がこのような攻撃の試みを防ぐ(または検知する)ためにできることがあります。

再ログインを遅らせる:これが最も単純な対策です。エンドユーザーがログインする際、0.1秒の遅れに気付くことはおそらくありませんが、特に攻撃者が試みを並列化できない場合、この遅延はすぐに積み重なります。

パスワード入力が何度か失敗した場合、キャプチャを強制する:ユーザーが単にアカウントのパスワードを忘れたということも考えられますが、この方法は攻撃者の行動を大幅に遅らせるのに役立ちます。最近のキャプチャはコンピューターによって破ることが困難なため、これは非常に有効な防止策です。多くのキャプチャは、解決するのに手動入力を必要とします。

アカウントのロック:これはさらに強力な方法で、ログインの試みが指定された回数を超えた場合、アカウントをロックするようにシステム設定を行うことができます。多くのウェブサイトは誤ったパスワードが繰り返し入力された場合、さらなる保護をトリガーします。極端な例としては、iPhoneへのログインに10回失敗すると、全データが消去されるというものです。

パスワードを更新する:最近のシステムではよく、ユーザーが定期的にパスワードを変更することを求められます。90日毎または30日毎にパスワードを変更するようユーザー求める企業もあります。この根拠には、複雑なパスワードに対するブルートフォース攻撃は解読までに数週間を要するという背景があります。もしその時間枠内にパスワードが変更された場合、攻撃者は最初からやり直さなければなりません。しかしながら、ユーザーは弱くて想像しやすいパスワード(「longhorns2018」、「longhorns2019」など)を使うことを選ぶため、このような厳しいパスワード要件の指示が失敗に終わるということを多くのユーザーも認めています。攻撃者はまず、パスワードの数字を増やしてトライします。

異常を監視する:最後に、セキュリティ意識が高い企業は、認識されていない場所や端末からのログインや複数のログイン失敗など、ユーザーアカウントに異常がないかを監視します。スタッフのいるセキュリティオペレーションセンター(SOC)は、リアルタイムでこのような出来事を検知し、直ちにアカウントのロック、IPアドレスのブロック、ユーザーへの連絡、同じ攻撃者からのさらなる活動の検索などのすばやい対応を取ることができます。

単純なシステムでは、辞書攻撃やブルートフォース攻撃により容易に正面から侵入できます。より複雑な環境では、攻撃の試みが通常のアクティビティに溶け込めるか、またはパスワードハッシュを解読するオフラインパスワードデータベースをターゲットにするという場合にのみ使えます。それでも、このようなテクニックはセキュリティのプロにとって優れたツールの1つであり、エンドユーザーには定期的に強力なパスワードを更新することの重要性を訴え続けています。