Microsoft の組み込みパスワードローテーションメカニズムは、マシン アカウントなどのオンプレミスの非人間 ID (NHI) を保護するように設計されています。 Active Directory (AD)表面的には、セキュリティリスクを最小限に抑えるように自動化され、スケジュール化され、構造化された強力な防御策のように見える。しかし、この安全対策は突破される可能性があり、攻撃者が永続的な足がかりを築くことを許してしまう。
攻撃者は、中間者攻撃(MITM攻撃)によって、環境全体または特定のマシンアカウントにおけるローテーションプロセスを操作できます。また、マシンアカウントのパスワードを侵害して直接変更することで、ネットワークトラフィックに影響を与えることなくローテーションメカニズムを乗っ取り、プロセスを完全に回避することも可能です。
攻撃者は、時刻同期を操作するか、パスワードを直接変更することで、システムを妨害したり、 パスワードローテーションプロセスを制御する時間操作はスケジュールされたローテーションを阻止する一方、直接変更は特定のアカウントを制御することを可能にする。どちらも長期的な永続性を可能にし、検出を回避する。
オンプレミス型NHIのセキュリティ管理
サービスアカウント これらは、オンプレミスの AD 環境でアプリケーション、サービス、および自動化されたタスクを実行するために使用される非人間 ID です。これらのアカウントは、変更されない静的パスワードを使用することが多く、重大なセキュリティリスクをもたらします。侵害された場合、攻撃者はこれらの認証情報を次のような目的で使用できます。
- 盗難と ラテラルムーブメントアカウントの権限を利用して横方向に移動する。
- 権限昇格: 特権昇格によって管理者権限を取得する。
- 長期的な持続性検出や有効期限切れなしにアクセス権を維持する。
こうしたリスクを軽減するために、パスワードローテーションによってアカウントの認証情報が定期的に変更されます。パスワードローテーションを実施するアカウントには、主に2つの種類があります。
- 機械アカウントドメインに参加しているコンピュータを表します。パスワードの変更はローカルのオペレーティングシステムによって管理されます。
- マネージドサービスアカウント(MSA)サービスおよびアプリケーション向けに設計されており、パスワードのローテーションはドメインコントローラー(DC)によって強制されます。
| 口座の種類 | 目的 | ローテーション管理は誰が行うのですか? |
| マシンアカウント | パソコン 認証 ドメイン内 | ローカルオペレーティングシステム |
| スタンドアロンMSA | シングルサーバーアプリケーション認証 | ドメイン コントローラー (DC) |
| グループMSA(gMSA) | 複数のマシンで共有 | ドメイン コントローラー (DC) |
| 委任されたMSA | 管理者権限を委任したgMSAの拡張 | ドメイン コントローラー (DC) |
攻撃者はアカウントの種類によってローテーションメカニズムの悪用方法が異なるため、これらの違いを理解することは非常に重要です。例えば、マシンアカウントはMS-SAMRなどのRPCメソッドを介して乗っ取られる可能性がありますが、MSAの場合はデータセンターのローテーションプロセスを操作する必要が生じます。
攻撃ベクトル1:マシンアカウントのパスワードローテーションを無効にする
In Active Directoryマシンアカウントのパスワードローテーションは、クライアントシステム(通常はドメインに参加しているWindowsホスト)の責任です。ローカルオペレーティングシステムは、デフォルトでは30日ごとにマシンアカウントのパスワードを自動的にローテーションします。そのためには、RPC上のセキュリティアカウントマネージャーリモートプロトコル(MS-SAMR)を使用して、ドメインコントローラー(DC)とリモートで通信します。
このプロトコルは、ユーザーおよびコンピュータ アカウントを管理するための一連の管理操作を提供します。 Active Directoryクライアントがリモートパスワード更新を実行するために使用する主要な機能の 1 つは hSamrUnicodeChangePasswordUser2 であり、これにより認証されたクライアントはディレクトリ内のマシン アカウントに関連付けられたパスワードを変更できます。
攻撃のメカニズム
しかし、このメカニズムは悪用される可能性があります。攻撃者がマシンアカウントへのアクセス権を取得すると、MS-SAMR を使用し、hSamrUnicodeChangePasswordUser2 を具体的に呼び出してアカウントのパスワードを直接変更できます。 Active Directory元のクライアントに通知したり関与させたりすることなく、攻撃が行われます。これにより、ドメインに参加しているマシンとドメインコントローラー間の同期が切断され、攻撃者が認証情報を制御し、正当なホストが締め出されるという一方的な信頼関係が生じます。
これにより、マシンとドメインコントローラー間の信頼関係が損なわれます。それぞれがパスワードのコピーを保存しているため、不正な変更は不一致を引き起こします。ADオブジェクトは無期限に有効なままであり、永続的なアクセスを保証します。
パスワードのローテーションが無効になると、その後パスワードが変更されなくてもアカウントは有効なままになります。信頼関係が損なわれると、侵害されたマシンは使用できなくなります。
時間攻撃によるパスワードローテーションの操作
サービス認証情報のセキュリティを向上させるため、マイクロソフトはWindows Server 2008 R2でスタンドアロンのMSA(マネージドサービスアカウント)を導入しました。MSAはパスワード管理をドメインコントローラーに依存していますが、この集中管理によって新たな攻撃経路が生じます。
攻撃者は、ドメインコントローラーまたはサービスホストのシステム時刻を操作することで、予定されているパスワード変更を遅延させることができます。Active Directoryはタイムスタンプに依存しているため、時刻を巻き戻すことでパスワードローテーションを延期し、アクセスを維持することが可能です。
時間がパスワードの変更に及ぼす影響
Active Directory アカウントの資格情報が最後に更新された日時を判断するために PwdLastSet 属性を使用します。このタイムスタンプは、パスワード有効期限ポリシーを適用するために重要です。正確な時刻同期は、パスワードポリシーや Kerberos 認証。
時刻同期におけるNTPの役割
企業は通常、時刻の正確性を確保するために外部のNTPサーバーに依存している。WindowsはデフォルトでNTPバージョン3を使用するが、これはメッセージの完全性を保護する機能を備えていない。
Windowsの時刻同期(w32tm)の概要
Windows タイム サービス (w32tm) はドメインの時刻を同期します。この場合、ドメイン コントローラーには次の 2 つの役割があります。
- タイムサーバーとして機能し、ドメインメンバーに時刻を配信します。
- タイムクライアントとして外部NTPサーバーと同期します。
主なセキュリティパラメータは以下のとおりです。
- MaxPosPhaseCorrectionとMaxAllowedPhaseOffset:同期ごとに許可される最大時間調整回数。
- セキュアタイムシード(STS): TLSタイムスタンプを使用して改ざんを検出しますが、特にTLS 1.3以降では制限があります。
ドメイン時刻操作によるパスワードローテーションの妨害
DCとNTPソース間のMITM攻撃は、検出されることなくDCの時刻を徐々にずらす可能性があります。w32tmは、64秒ごとに更新される同期で、最大48時間分の修正を可能にします。
攻撃ベクトル2:MSAパスワードローテーションのタイミング操作
攻撃者はまずドメインコントローラーの時計を操作し、次に以下のいずれかの方法でパスワードローテーションをトリガーします。
- 直接リクエスト: 管理対象サービスアカウントに対する権限を持つユーザーまたはサービス。
- ナチュラルトリガー: マネージドサービスアカウントが自然に再認証できるようにします。
システム時刻が人為的に進められている状態で認証情報が更新されると、PwdLastSet にはその未来のタイムスタンプが反映されます。時計を元に戻すと、次の認証情報更新が実質的に遅延し、強制的な処理が回避されます。
主な利点
すべてのドメインメンバーはドメインコントローラーと同期し、Kerberos認証を維持しながら検出リスクを最小限に抑えます。この同期により、エンドポイントシステムからの時刻操作が隠蔽され、ステルス性とサービスの継続性が確保されます。
攻撃の結果
これらの攻撃は、タイムスタンプ操作によって有効期限制御を回避することで、環境内での長期的な永続性につながる可能性があります。攻撃者が変更された時間設定で認証情報をローテーションすると、その後のロールバックによってそれ以上のローテーションが阻止され、セキュリティ対策が事実上無効になります。 侵害されたアカウント 有効なトークンを使用して、検出されずに動作を継続する。
永続性に加えて、このような時間ベースの操作は、パスワードポリシーの回避や権限昇格の可能性も生み出します。システムクロックのロールバックは、断続的なサービス障害や認証問題を引き起こす可能性があり、運用上の混乱を招き、検出をより困難にします。
緩和戦略
組織は、メッセージの完全性と認証をサポートするNTPv4などの認証付きNTPプロトコルを使用して、安全な時刻同期を実装する必要があります。 重要なイベントログを監視することで、異常な動作を検出することもできます。イベントID 4616(時刻変更を示す)とイベントID 4742(コンピュータアカウントのパスワード変更を示す)は特に重要です。
さらに、サービスアカウントとマシンアカウント全体で異常なPwdLastSetパターンを監視する仕組みを導入してください。これらの指標は、ローテーションスケジュールの操作やステルスアクセス維持の試みを明らかにするのに役立ちます。これらの対策を講じることで、時間ベースの巧妙なステルス攻撃のリスクを大幅に軽減できます。

