パスワード辞書攻撃から身を守る方法

  • 辞書攻撃は、サイバー攻撃の一般的な手法で、単語の長いリストとソフトウェアを使用して、パスワードを一致させてアカウントにアクセスしようとするものです。
  • 文字のランダムな組み合わせを試すブルートフォース攻撃は、辞書攻撃と比較すると効率が悪く、時間がかかります。
  • 辞書攻撃から身を守るには、強力で一意のパスワードを使用し、多要素認証を有効にし、パスワードマネージャーの使用を検討することが重要です。

辞書攻撃は、ネットワークとプラットフォームのセキュリティを脅かします。一致するパスワードを生成することで、ユーザーアカウントを侵害しようとするものです。その仕組みと対策方法を学びましょう。

このサイバーセキュリティ意識向上週間の記事は、Incogniの協力により提供されています。

辞書攻撃とは何か

辞書攻撃は、共通の攻撃手法を共有するサイバー攻撃の一種です。単語の長いリスト(時にはデータベース全体)とソフトウェアを使用します。ソフトウェアはリストから単語を順番に読み込み、攻撃対象のアカウントのパスワードとして使用しようとします。リスト内の単語のいずれかが本物のパスワードと一致すると、アカウントは侵害されます。

これらの攻撃は、より原始的なブルートフォース型の攻撃とは異なります。ブルートフォース攻撃は、文字と記号のランダムな組み合わせを試して、偶然と運でパスワードを見つけることを試みます。これらの攻撃は非効率です。時間がかかり、計算量が多大にかかります。

パスワードに追加する文字が増えるごとに、パスワードを解読するために必要な労力は大幅に増加します。8文字のパスワードの組み合わせは、5文字のパスワードの組み合わせよりも桁違いに多くなります。ブルートフォース攻撃が成功する保証はありません。しかし、辞書攻撃の場合、リスト内のエントリのいずれかがパスワードと一致すれば、攻撃は最終的に成功します。

もちろん、ほとんどの企業ネットワークでは、一定回数アクセスが失敗すると自動的にアカウントをロックアウトします。しかし、多くの場合、脅威アクターはアクセス試行に対する制御が緩いことが多い企業のWebサイトから始めます。そして、Webサイトへのアクセス権を獲得すると、企業ネットワークでそれらの資格情報を試すことができます。ユーザーが同じパスワードを再利用している場合、脅威アクターは企業ネットワークに侵入することになります。ほとんどの場合、Webサイトやポータルは本当の標的ではありません。脅威アクターの実際の標的である企業ネットワークへの通過点です。

Webサイトへのアクセス権を獲得すると、脅威アクターはログイン試行を監視し、ユーザーIDとパスワードを記録する悪意のあるコードを挿入することができます。この情報は脅威アクターに送信されるか、脅威アクターがサイトに戻って収集するまでログに記録されます。

ファイル内の単語だけではない

初期の辞書攻撃はまさにそのものでした。辞書から単語を使用していました。そのため、「辞書にある単語を決して使わない」ということが強力なパスワードを選択するためのガイダンスの一部でした。

このアドバイスを無視して辞書にある単語を選択し、辞書にある単語と一致しないように数字を追加しても、同じように貧弱です。辞書攻撃のソフトウェアを作成する脅威アクターは、このことを知っています。彼らは、リストの各単語を何度も試す新しい手法を開発しました。試行するたびに、単語の末尾に数字が追加されます。これは、人々がよく単語を使用して、パスワードを変更するたびに1、2などの数字を追加するためです。

場合によっては、年を表す2桁または4桁の数字を追加します。それは、誕生日、記念日、チームがカップを獲得した年、またはその他の重要なイベントを表しているかもしれません。人々は子供や大切な人の名前をパスワードとして使用するため、辞書リストは男性名と女性名を組み入れるように拡張されました。

そして、ソフトウェアは再び進化しました。「i」を1、「e」を3、「s」を5などに置き換えるなど、文字を数字に置き換える方式は、パスワードの複雑さに大きな影響を与えません。ソフトウェアは慣習を知っており、それらの組み合わせも処理します。

今日では、標準の辞書にある単語を含まない他のリストとともに、これらすべての技術がまだ使用されています。それらには実際のパスワードが含まれています。

パスワードのリストはどこから来るのか

よく知られているHave I Been Pwned Webサイトには、100億を超える侵害されたアカウントを検索可能なコレクションが保存されています。データ侵害が発生するたびに、サイトの管理者はデータを取得しようとします。取得に成功すると、データベースに追加されます。

メールアドレスデータベースを自由に検索することができます。データベースにメールアドレスが見つかった場合、どのデータ侵害で情報が漏洩したかが通知されます。たとえば、私はHave I Been Pwnedデータベースで古いメールアドレスの1つを見つけました。それは、2016年のLinkedIn Webサイトの侵害で漏洩しました。つまり、そのサイトのパスワードも侵害された可能性があります。しかし、私のパスワードはすべて一意であるため、そのサイトのパスワードを変更するだけで済みました。

Have I Been Pwnedには、パスワード用の別のデータベースがあります。Have I Been Pwnedのサイトでは、メールアドレスとパスワードを照合することはできません。これは、明白な理由によります。パスワードを検索してリストで見つかったとしても、必ずしもそのパスワードがあなたのアカウントのいずれかから来たことを意味するわけではありません。100億件の侵害されたアカウントがあるため、重複したエントリが存在します。興味深い点は、そのパスワードがどれほど一般的であるかがわかることです。あなたは自分のパスワードがユニークだと思っていましたか?おそらくそうではありません。

しかし、データベースのパスワードがあなたのアカウントのいずれかから来たものであるかどうかにかかわらず、Have I Been PwnedのWebサイトにある場合、それは脅威アクターの攻撃ソフトウェアによって使用されるパスワードリストになります。あなたのパスワードがどれほど難解で不明瞭であろうと関係ありません。それがパスワードリストにある場合、信頼することはできません。すぐに変更しましょう。

パスワード推測攻撃の亜種

辞書攻撃のような比較的簡単な攻撃でも、攻撃者は簡単な調査を使用して、ソフトウェアの作業を容易にすることができます。

たとえば、攻撃対象のサイトにサインアップするか、部分的にサインアップする場合があります。そうすると、そのサイトのパスワードの複雑さのルールを確認できます。最小長が8文字の場合、ソフトウェアは8文字の文字列から開始するように設定できます。4、5、6、および7文字の文字列をすべてテストする意味はありません。許可されていない文字がある場合は、ソフトウェアが使用できる「アルファベット」から削除できます。

リストベースの攻撃のさまざまな種類の簡単な説明を次に示します。

  • 従来のブルートフォース攻撃: 実際、これはリストベースの攻撃ではありません。専用の専用ソフトウェアパッケージは、文字、数字、および句読点や記号などの他の文字のすべての組み合わせを、徐々に長い文字列で生成します。攻撃対象のアカウントのパスワードとしてそれぞれを試行します。攻撃対象のアカウントのパスワードと一致する文字の組み合わせを生成すると、そのアカウントは侵害されます。
  • 辞書攻撃: 専用の専用ソフトウェアパッケージは、辞書にある単語のリストから一度に1つの単語を取り、攻撃対象のアカウントに対してパスワードとして試行します。辞書にある単語には、数字を追加したり、数字を文字に置き換えたりなどの変換を適用できます。
  • パスワード参照攻撃: 辞書攻撃に似ていますが、単語リストには実際のパスワードが含まれています。自動化されたソフトウェアは、データ侵害から収集されたパスワードの膨大なリストから一度に1つのパスワードを読み取ります。
  • インテリジェントパスワード参照攻撃: パスワード攻撃に似ていますが、各パスワードの変換は「裸の」パスワードだけでなく試行されます。変換は、母音を数字に置き換えるなど、一般的に使用されるパスワードのテクニックをエミュレートします。
  • API攻撃: ユーザーのアカウントを解読しようとするのではなく、これらの攻撃ではソフトウェアを使用して、ユーザーのアプリケーションプログラミングインターフェイスのキーと一致すると期待される文字列を生成します。APIにアクセスできれば、それを悪用して機密情報や知的著作権を搾取できる可能性があります。

パスワードについて

パスワードは、子供の名前など、あなたについて発見または推測される可能性のあるものとは無関係で、強力でユニークである必要があります。パスフレーズはパスワードよりも優れています。句読点で区切られた無関係な3つの単語は、パスワードの非常に強力なテンプレートです。直感に反しますが、パスフレーズは一般的に辞書にある単語を使用しており、パスワードには辞書にある単語を使用しないように常に警告されてきました。しかし、それらをこのように組み合わせると、攻撃ソフトウェアが解決する非常に困難な問題が発生します。

How Secure Is my Password Webサイトを使用して、パスワードの強度をテストできます。

  • cloudsavvyit: 推定解読時間: 3週間。
  • cl0uds4vvy1t: 推定解読時間: 3年。
  • thirty.feather.girder: 推定解読時間: 41000兆年!

そして、黄金律を忘れないでください。パスワードは1つのシステムまたはWebサイトでのみ使用してください。複数の場所で使用するべきではありません。複数のシステムでパスワードを使用し、そのうちの1つのシステムが侵害された場合、パスワードが脅威アクターの手に渡り、パスワードリストに含まれるため、そのパスワードを使用したすべてのサイトとシステムが危険にさらされます。あなたのパスワードが41000兆年かかるかどうかは関係ありません。パスワードリストにある場合、解読時間は完全に無関係です。

覚えるパスワードが多すぎる場合は、パスワードマネージャーを使用してください。

ブルートフォース攻撃から身を守る方法

常に、レイヤー化された防御戦略が最善です。単一の防御策では辞書攻撃に対して免疫になることはありませんが、お互いを補完し、これらの攻撃を受けやすくなるリスクを大幅に軽減する対策を数多く検討することができます。

  • 可能な限り、多要素認証を有効にします。これにより、ユーザーが所有している物理的なもの(携帯電話やUSBキーまたはフォブなど)が方程式に取り込まれます。電話のアプリに送信された情報、またはフォブまたはUSBキーの情報が認証プロセスに組み込まれます。ユーザーIDとパスワードだけでは、システムにアクセスすることはできません。
  • 強力なパスワードとパスフレーズを使用します。これらは、一意であり、暗号化された形式で安全に保存されます。
  • パスワードの使用、保護、および許容できる定式化を規定するパスワードポリシーを作成して展開します。すべてのスタッフに導入し、必須にします。
  • ログイン試行を少数の回数に制限します。試行回数が上限に達したらアカウントをロックするか、ロックしてパスワードの変更を強制します。
  • CAPTCHAを有効にするまたは、画像ベースの2次認証ステップを有効にします。これらは、人間が画像を解釈する必要があるため、ボットやパスワードソフトウェアを停止することを目的としています。
  • パスワードマネージャーの使用を検討する。パスワードマネージャーは、複雑なパスワードを生成できます。どのパスワードがどのアカウントに対応しているかを記憶してくれるので、自分で覚える必要はありません。パスワードマネージャーは、追跡する必要があるすべてのアカウントに対して、堅牢でユニークなパスワードを取得する最も簡単な方法です。