Azure AD スマートロックアウトのカスタマイズ機能について

こんなリリース(プレビュー)がありました。

cloudblogs.microsoft.com

機能としては3つで

  1. ロックアウト閾値の変更
  2. 禁止パスワードの定義
  3. オンプレADのパスワード保護

となります。1と2は以前からGraphAPI経由で変更できた機能です。

docs.microsoft.com

3は新しくリリースされました。

1. ロックアウト閾値の変更

Azure ADのロックアウト値は規定で

  • 10回連続でパスワードを間違えた場合
  • 60秒間ロックアウトがかかる

です。この値を変更できます。

この機能の何がうれしいの?ということですが…。

例えば、社内のセキュリティ部門が定めているポリシーでパスワードは3回連続間違えたら1時間ロックアウトすべし!と決まっていて、Azure ADが導入できない場合など。あるいは、外部からアタックされてもアカウントが即ロックしないように、100回連続でパスワードを間違えてもOKにしたい、など。前者はセキュリティ重視、後者は利便性重視ですね。

余談

MSとしてはAzure ADで提供している

  1. ブラックリストIP
  2. IPロックアウト
  3. スマートロックアウト

の3つの機能で、利益目的の攻撃者のアタックをほぼ防げる、と主張しています。1はそもそも怪しい所からのアクセスは禁止する、2はパスワードスプレー攻撃への対応、3はブルートフォース攻撃への対応です。そこらへんのロジックはMS本社のSIMONSさんの神エントリをご覧ください。

Azure AD and ADFS best practices: Defending against password spray attacks – Enterprise Mobility + Security

てことで、利便性重視の設定にしてしまって問題ないと思われます。

具体的には、NISTのガイドラインに従って、ロックアウト回数を100回にするのがよいです…ってMS日本のセキュリティの方が言ってました。

なお、上で提示したリンク(Azure AD Connect: Pass-through Authentication - Smart Lockout | Microsoft Docs)に、

  • The Azure AD lockout threshold is less than the Active Directory account lockout threshold. Set the values so that the Active Directory account lockout threshold is at least two or three times longer than the Azure AD lockout threshold.
  • The Azure AD lockout duration (represented in seconds) is longer than the Active Directory reset account lockout counter after duration (represented in minutes).

とあるんですが、パスハードハッシュ同期でAzure ADで認証している場合、この記載は無視してもらって大丈夫、のはずです。パススルー同期でオンプレADを認証基盤としている場合、外部からのアタックによってオンプレADのアカウントがロックアウトしてしまうので、上記のような施策でAzure AD 側を先にロックアウトさせ、オンプレADを継続できるようにする施策のようです。

…とはいえ、パススルー認証で外部からアタック受けた場合、Azure ADのパスワードロック閾値が動作するのか?てのは疑問です。パススルー認証導入したことないから分からんけど。

2. ロックアウト閾値の変更

これは単純で、登録した単語を含むパスワードの設定を禁止できる機能です。面白い所は、「よく置き換えられる文字を自動的に禁止する」こと。例えば

  • password

という単語を登録した場合

  • p@ssword
  • passw0rd
  • p@ssw0rd
  • p@$$w0rd

などなども、同時に禁止されるようです。

3. オンプレADのパスワード保護

オンプレADに、Azure AD password protection proxyってのをインストールする事で、オンプレADでAzure ADで禁止されているパスワードを使っているユーザーをあぶりだす事が出来るお楽しみ機能です。例えAADCでパスワード同期をしても、Ctrl+ Alt + DeleteでオンプレADに対してパスワード変更をすればAzure ADのパスワードポリシーは無視されるので、P@ssw0rdのような脆弱パスワードがインターネットにさらされることになり危険ですので、有効にしたほうがよい気がします。

この機能を有効にする際に"強制"と"監査"が設定でき、"監査"だと弱いパスワード設定しているユーザー一覧が出力され、"強制"で設定を強制できるようです。"強制"時の挙動は書かれてませんが、次回パスワード変更時までは今のパスワードが使えるのかな?

何にせよ、この機会に脆弱なパスワードを使っている意識低いユーザーを洗い出して、要注意ユーザーリストを作ってセキュリティ教育を強制させるとかの使い方も面白いかもしれません(どこか導入させてくれ~)

必要なライセンス

  • ブログ主のSIMONSさんは"全てのAzure ADで使える"と言っている
  • 日本のMSに確認した所、v2が必要です、と言われた
  • E1テナントだと設定自体が出来なかった
  • P1テナントだと設定が可能である

と、現状ではどのライセンスが必要なのかはっきりしません。システムがせいだとするなら、少なくともAADP1以上は必要のようです。

GraphAPIの時も"AADP1で設定は出来るけど、AADP2しか使っちゃいけない機能だから、設定するとライセンス違反"という罠があったので、MSから公式アナウンスが出るまでは触らない方がよさそうです。

2018/6/22 追記

ブログ更新されてました。

  • 全てのAzureADで使用可能
    • Custom smart lockout
  • P1以上が必要
    • Custom banned passwords
    • Password protection for Windows Server Active Directory

だそうです。