メイン コンテンツへスキップ
Microsoft 365
登録する

Azure AD と ADFS のベスト プラクティス: パスワード スプレー攻撃からの防御

こんにちは。

今まで、パスワードを作るたびに、それを推測しようとする人々が必ず現れました。このブログでは、最近きわめて頻繁に目にするようになった一般的な攻撃について説明し、それから身を守るためのベスト プラクティスをご紹介します。この攻撃は、一般的にパスワード スプレーと呼ばれています。

パスワード スプレー攻撃を行う攻撃者は、使用されることの多いパスワードによるアクセスを大量のアカウントやサービスに対して試み、パスワード保護されている資産を入手しようとします。通常、これはさまざまな組織や ID プロバイダーが標的になります。たとえば、攻撃者は Mailsniper などの一般的に手に入るツールキットを使用して、複数の組織に属するすべてのユーザーを列挙し、すべてのアカウントでパスワード “P@$$w0rd” と “Password1”を試します。わかりやすく示すと、次のような攻撃が行われます。

標的となるユーザー 標的となるパスワード
User1@org1.com Password1
User2@org1.com Password1
User1@org2.com Password1
User2@org2.com Password1
User1@org1.com P@$$w0rd
User2@org1.com P@$$w0rd
User1@org2.com P@$$w0rd
User2@org2.com P@$$w0rd

この攻撃パターンは、個々のユーザーまたは会社の立場からはログインの失敗にしか見えないため、ほとんどの検出手法をすり抜けてしまいます。

攻撃者の立場からすると、これは数当てゲームのようなもので、非常によく使用されるパスワードがいくつか存在するということがわかっているという状態です。そのような非常によく使用されるパスワードを使っているアカウントは全体のわずか 0.5 から 1.0% にすぎませんが、攻撃者にとってみれば 1,000 回の攻撃につき数回を成功させることができれば、それで十分効果的なのです。

攻撃者はそのアカウントを使って、メールからデータを入手したり連絡先情報を取得したりでき、またフィッシング リンクを送り付けたり、またはそのままパスワード スプレー攻撃の標的グループを拡大したりできます。彼らは、最初の標的がどのような人物であるかはあまり気にしません。何らかの手掛かりを得て、それを利用していくのです。

ありがたいことに、Microsoft は既にこのような攻撃の威力を失わせる多くのツールを実装して利用可能な状態にしており、今後も追加されていきます。このまま読み進めて、パスワード スプレー攻撃を食い止めるために現在できること、そして今後数か月でできるようになることをご確認ください。

パスワード スプレー攻撃を阻止するための 4 つのステップ

ステップ 1:クラウド認証を使用する

クラウドでは、毎日 Microsoft のシステムに数十億件のサインインが行われています。Microsoft のセキュリティ検出アルゴリズムは、攻撃をその場で検出し、ブロックできます。このリアルタイムの検出および保護のシステムはクラウドから実行されるため、クラウドで Azure AD 認証 (パススルー認証も含む) を実行している場合にのみ使用できます。

Smart Lockout

クラウドでは、Smart Lockout を使用することにより、正当なユーザーによると考えられるサインインの試行と、攻撃者である可能性のあるサインインとを区別します。攻撃者をロックアウトしつつ、正当なユーザーは引き続き自分のアカウントを使用できるようにすることができます。これにより、ユーザーに対するサービス拒否を防ぎ、さらに執拗なパスワード スプレー攻撃は食い止めます。これは、ライセンスのレベルに関係なくすべての Azure AD サインインに、また、すべての Microsoft アカウントによるサインインに適用されます。

Active Directory フェデレーション サービス (AD FS) を使用しているテナントは、2018 年 3 月から Windows Server 2016 の AD FS で Smart Lockout をネイティブで使用できるようになります。Windows Update を通じて入手できるこの機能を使用することを検討してください。

IP ロックアウト

IP ロックアウトは、先ほど述べた数十億のサインインを分析して、Microsoft のシステムにアクセスする各 IP アドレスからのトラフィックの質を評価することによって機能します。この分析により、IP ロックアウト機能は悪意のある動作をしている IP アドレスを見つけ、サインインをリアルタイムでブロックします。

攻撃シミュレーション

Office 365 脅威インテリジェンスの一部としてパブリック プレビューが始まった攻撃シミュレーターを使用すると、お客様は自社のエンド ユーザーに対して攻撃のシミュレーションを実行して、攻撃が発生したときにユーザーがどのように行動するかを見きわめ、ポリシーを更新したり適切なセキュリティ ツールを確実に用意したりすることで、パスワード スプレー攻撃などの脅威から組織を保護できます。

今すぐ実行することを推奨:

  1. クラウド認証をお使いの場合、対応は不要です。
  2. AD FS、または別のハイブリッド シナリオを使用している場合は、2018 年 3 月の AD FS のアップグレードに合わせて Smart Lockout の使用を検討してください。
  3. 攻撃シミュレーターを使用してセキュリティ体制を事前に評価し、調整を行います。

ステップ 2: 多要素認証を使用する

パスワードはアカウントにアクセスするための鍵ですが、巧妙なパスワード スプレー攻撃では、攻撃者は正しいパスワードを推測してしまいます。これを食い止めるには、アカウント所有者と攻撃者とを区別するために、パスワードを超えるものが必要です。これには次の 3 つがあります。

リスクベースの多要素認証

Azure AD Identity Protection では、上で説明したサインイン データを活用し、高度な機械学習およびアルゴリズムベースの検出と組み合わせて、システムにアクセスするすべてのサインインのリスク スコアを決定しています。大企業のお客様はこれを使用して、ユーザーまたはセッションに対してリスクが検出された場合にのみ第 2 要素を使って認証するように要求するポリシーを Identity Protection 内に作成することができます。これにより、ユーザーの負荷を軽減しつつ、攻撃者の侵入経路をふさぐことができます。詳細については、Azure Active Directory Identity Protection とはをご覧ください。

多要素認証の常時使用

さらにセキュリティを高めるために、Azure MFA を使用して、クラウド認証と AD FS の両方で常にユーザーに多要素認証を行うように要求することができます。この場合、エンド ユーザーは常にデバイスを手元に用意する必要があり、また、多要素認証を要求される頻度も高くなりますが、企業のセキュリティを最大限に高めることができます。組織のすべての管理者に対しては、これを有効にしてください。Azure の多要素認証についてはこちらAD FS での Azure MFA の設定方法についてはこちらで詳細をご確認ください。

プライマリ認証としての Azure MFA

ADFS 2016 では、Azure MFA をパスワード不要の認証のプライマリ認証として使用することができます。これは、パスワード スプレー攻撃やパスワード窃取攻撃からの防御として優れたツールです。パスワードが存在しなければ、推測することもできないからです。これは、さまざまなフォーム ファクターを備えた、あらゆる種類のデバイスで大きな効果を発揮します。さらに、Azure MFA によってワンタイム パスコードが有効と確認された場合にのみ、パスワードを第 2 要素として使用することができます。パスワードを第 2 要素として使用することの詳細については、こちらをご覧ください。

今すぐ実行することを推奨:

  1. Microsoft は、組織のすべての管理者特にサブスクリプションの所有者とテナント管理者については、多要素認証の常時使用を有効にすることを強くお勧めします。ぜひ今すぐ実行してください。
  2. それ以外のユーザーに対しては、最適なパフォーマンスでご利用いただくために、Azure AD Premium P2 ライセンスで使用可能なリスクベースの多要素認証をおすすめします。
  3. または、クラウド認証と AD FS に対して Azure MFA を使用することもできます。
  4. AD FS で、Windows Server 2016 の AD FS にアップグレードして、Azure MFA をプライマリ認証として使用します。特に、すべてのエクストラネット アクセスに対しては必ず行います。

ステップ 3: 全員が優れたパスワードを設定する

これらをすべて実行した上でも、パスワード スプレー防御の最も重要な部分は、すべてのユーザーが推測されにくいパスワードを使用することです。推測されにくいパスワードの作成方法をユーザーが知らないことは珍しくありません。Microsoft では、以下のツールによってこの点をサポートしています。

禁止パスワード

Azure AD では、パスワードのすべての変更およびリセットに対して、禁止パスワード チェッカーが実行されます。新しいパスワードが送信されると、絶対に使用するべきでない単語のリストとファジー比較が行われます (leet-speak から l33t-sp3@k への変換なども検出されます)。リスト内の単語と一致した場合、ユーザーは推測されにくいパスワードを選ぶように要求されます。Microsoft は、攻撃されやすいパスワードのリストを作成し、頻繁に更新しています。

カスタム禁止パスワード

禁止パスワードをさらに活用するために、テナントが禁止パスワードのリストをカスタマイズできるようにすることを予定しています。管理者は、自分たちの組織にとってなじみのある単語、たとえば有名な従業員や創立者、製品、場所、各地の名物などを選び出して、ユーザーのパスワードに使用されるのを防ぐことができます。このリストは全体のリストへの追加として適用されるため、どちらか片方だけを選ぶ必要はありません。この機能は現在、限定プレビューの段階で、今年中に公開される予定です。

オンプレミスでのパスワード変更での禁止パスワード

今春、Microsoft は、企業の管理者が Azure AD と Active Directory のハイブリッド環境で禁止パスワードを設定できるツールをリリースします。禁止パスワードのリストがクラウドからオンプレミス環境に同期され、エージェントがインストールされているすべてのドメイン コントローラーに適用されます。これにより管理者は、ユーザーがクラウドとオンプレミスのどちらでパスワードを変更しても、常にパスワードを推測されにくいものにすることができます。この機能は、2018 年 2 月に一部のお客様にプライベート プレビューとして公開され、今年中に一般公開される予定です。

パスワードに対する認識を改める

優れたパスワードの条件として一般に考えられているものの多くは、間違っています。計算上はうまくいくはずでも、実際にはユーザーの行動を予測しやすくなることもあります。たとえば、特定の文字種や定期的なパスワード変更を要求することは、どちらもパスワードのパターンを固定化することにつながります。詳細については、パスワード ガイダンス ホワイトペーパーをご覧ください。Active Directory と PTA または AD FS を組み合わせて使用している場合は、パスワード ポリシーを更新してください。クラウド管理アカウントを使用している場合は、パスワードを無期限に設定することを検討してください。

今すぐ実行することを推奨:

  1. Microsoft 禁止パスワード ツールがリリースされたら、オンプレミスにインストールして、ユーザーが優れたパスワードを作成できるようにします。
  2. パスワード ポリシーを見直し、パスワードを無期限に設定して、ユーザーが周期的なパターンに沿ってパスワードを作成することがないようにします。

ステップ 4: AD FS と Active Directory のさらに高度な機能

AD FS と Active Directory のハイブリッド認証を使用している場合、パスワード スプレー攻撃から環境を守るために実行できるアクションは他にもあります。

最初のステップ: ADFS 2.0 または Windows Server 2012 を実行している組織の場合、できるだけ早く Windows Server 2016 の AD FS に移行することを計画してください。最新バージョンは更新がより迅速に行われ、Extranet Lockout など、強力な機能を備えています。重要: Windows Server 2012R2 から 2016 へのアップグレードはとても簡単です。

エクストラネットからのレガシー認証のブロック

レガシー認証プロトコルには MFA を強制する機能がないため、最適なアプローチはエクストラネットからのレガシー認証をブロックすることです。これにより、パスワード スプレーの攻撃者がレガシー認証プロトコルに MFA がないことを悪用するのを避けることができます。

AD FS Web アプリケーション プロキシでの Extranet Lockout の有効化

AD FS Web アプリケーション プロキシで Extranet Lockout を実行していない場合は、実行される可能性のあるパスワードのブルートフォース攻撃からユーザーを保護するために、できるだけ早くこの機能を有効にする必要があります。

AD FS への Azure Active Directory Connect Health の展開

Azure AD Connect Health は、不正なユーザー名またはパスワードによるリクエストとして AD FS ログに記録された IP アドレスを取得し、さまざまなシナリオに関して追加的なレポートを作成して、サポート担当エンジニアが問い合わせを処理する際の参考になる知見を提供します。

展開するには、最新バージョンの AD FS 用 Azure AD Connect Health Agent をすべての AD FS サーバー (2.6.491.0) にダウンロードします。AD FS サーバーは、サポート技術情報 KB 3134222 がインストールされた Windows Server 2012 R2、または Windows Server 2016 上で実行する必要があります。

パスワードを使用しないアクセス方法

パスワードがなければ、推測されることもありません。パスワードを使用しない認証方法は、AD FS と Web アプリケーション プロキシで使用できます。

  1. 証明書ベースの認証では、ユーザー名とパスワードで特定されるエンドポイントをファイアウォールで完全にブロックすることができます。AD FS での証明書ベースの認証について、詳細はこちらをご覧ください。
  2. 上で説明したとおり、Azure MFA はクラウド認証と ADFS 2012 R2 および 2016 の第 2 要素として使用できます。しかし、AD FS 2016 ではこれを第 1 要素として使用して、パスワード スプレーの可能性を完全に排除することもできます。AD FS に Azure MFA を設定する方法については、こちらをご覧ください。
  3. Windows 10 で使用でき、Windows Server 2016 の AD FS でサポートされている Windows Hello for Business は、ユーザーとデバイスの両方に結び付けられた強力な暗号化キーに基づいて、完全にパスワードなしのアクセスを、エクストラネットからのアクセスも含めて実現しています。これは、企業が管理する Azure AD 参加または Hybrid Azure AD 参加しているデバイスに加えて、設定アプリで [職場または学校アカウントの追加] を使用して参加した個人用デバイスでも使用できます。Hello for Business の詳細については、こちらをご覧ください。

今すぐ実行することを推奨:

  1. 更新を早く受け取るために ADFS 2016 にアップグレードしてください。
  2. エクストラネットからのレガシー認証をブロックします。
  3. すべての AD FS サーバーに AD FS 用 Azure AD Connect Health エージェントを展開します。
  4. Azure MFA、証明書、Windows Hello for Business など、パスワードなしのプライマリ認証方法を使用することを検討してください。

追加メリット: Microsoft アカウントの保護

Microsoft アカウントをお使いの場合:

  • お客様は既に保護されています。Microsoft アカウントには Smart Lockout、IP ロックアウト、リスクベースの 2 段階認証、禁止パスワードなども組み込まれています。
  • ただし、2 分ほど時間を取っていただき、Microsoft アカウントのセキュリティ ページにアクセスし、[セキュリティ情報の更新] をクリックして、リスクベースの 2 段階認証に使用されるご自分のセキュリティ情報を確認してください。
  • アカウントのセキュリティを最大限に高めるために、こちらで 2 段階認証を常に有効にすることをご検討ください。

最高の防御は、このブログで紹介している推奨事項に従うことです。

パスワード スプレーはインターネット上でパスワードを使用しているすべてのサービスにとって深刻な脅威ですが、このブログで示したステップを実践すれば、この種の攻撃に対して最大限の防御が得られます。また、さまざまな種類の攻撃が似たような特徴を持っているため、有効な防御のヒントにもなります。お客様のセキュリティは常に私たちの最優先事項です。Microsoft は、パスワード スプレーなど、広がりを見せるさまざまな種類の攻撃に対し、新しく先進的な保護の開発に取り組み続けます。ここまでに示した方法を今すぐ採用し、インターネット上の攻撃者から身を守るための新しいツールが公開されていないか、小まめに確認してください。

この情報がお役に立てば幸いです。今回も、皆様からのフィードバックやご提案をお待ちしております。

お読みいただき、ありがとうございました。

Alex Simons (Twitter: @Alex_A_Simons)

Director of Program Management

Microsoft Identity Division