Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

WindowsドメインでNTLM認証を無効化しKerberosへ移行する完全ガイド

NTLM認証とは?

NTLM(NT LAN Manager)は、Windows NTの時代から長きにわたりMicrosoftの基本的な認証プロトコルとして使用されてきました。Windows 2000でより安全なKerberos認証プロトコルが導入されましたが、NTLM(一般的にはNTLMv2)は今なおWindowsドメインネットワーク上の認証で広く利用されています。本記事では、Active DirectoryドメインでNTLMv1およびNTLMv2を無効にし、Kerberosへ移行する方法を詳しく解説します。

NTLMv1の主な問題点

  • 暗号化が脆弱である
  • LSAサービスのメモリにパスワードハッシュが保存され、mimikatzなどのツールで抽出されると、さらなる攻撃に悪用される恐れがある
  • サーバーとクライアント間の相互認証がないため、データ傍受攻撃やネットワークリソースへの不正アクセスが可能になる(Responderなどのツールでネットワーク上のNTLMデータを捕捉・悪用される事例がある)
  • その他の脆弱性

これらの問題の一部は、より安全な暗号化アルゴリズムを採用し、代表的なNTLM攻撃を防げる後継版NTLMv2で修正されました。なお、NTLMv1とLM認証プロトコルは、Windows 7 / Windows Server 2008 R2以降ではデフォルトで無効になっています。

GPOでNTLMv2を強制する設定方法

ドメインでのNTLM使用停止を検討している場合、まず脆弱なバージョンであるNTLMv1を使用していないことを確認する必要があります。ネットワークには、NTLMv2やKerberosではなくNTLMv1認証を使い続けるレガシーデバイスやサービスが存在する可能性があります。完全に無効化する前に、本記事の「NTLM認証の監査ログを有効にする方法」のセクションを必ず確認してください。

小型のオープンソース製品、スキャン画像を共有ネットワークフォルダーに保存する旧モデルのネットワークスキャナー、一部のNASデバイスなど、古いハードウェア・ソフトウェア・OSは、NTLMv1を無効にした際に認証問題が発生しやすい点に注意しましょう。

まずドメイン管理者は、NTLMおよびLMプロトコルがドメイン内の認証に使用されないよう禁止されていることを確認する必要があります。攻撃者が特殊なリクエストによってNTLM/LM応答を取得できるケースがあるためです。

推奨される認証タイプは、ドメイン(またはローカル)ポリシーで設定できます。グループポリシー管理エディター(gpmc.msc)を開き、「Default Domain Policy」を編集します。[コンピューターの構成] → [ポリシー] → [Windowsの設定] → [セキュリティの設定] → [ローカルポリシー] → [セキュリティオプション]へ移動し、「ネットワーク セキュリティ: LAN Manager 認証レベル」ポリシーを見つけます。

WindowsドメインでNTLM認証を無効化しKerberosへ移行する完全ガイド

このポリシーには以下の6つの選択肢があります。

  1. LM と NTLM 応答を送信する
  2. LM と NTLM 応答を送信する – ネゴシエートした場合、NTLMv2 セッション セキュリティを使う
  3. NTLM 応答のみ送信する
  4. NTLMv2 応答のみ送信する
  5. NTLMv2 応答のみ送信する – LM を拒否する
  6. NTLMv2 応答のみ送信する – LM と NTLM を拒否する

これらのポリシーは、セキュリティ強度が高い順に並んでいます。デフォルトでは、Windows 7以降のOSは「NTLMv2 応答のみ送信する」を使用します。この場合、クライアントコンピューターはNTLMv2認証を使用しますが、ADドメインコントローラーはLM、NTLM、NTLMv2の各要求を受け付けます。

NTLMv2は、Kerberosが何らかの理由で動作しなかった場合(例: ドメイン参加コンピューター上のローカルグループやアカウントの管理時)や、ワークグループ環境で使用されます。

最も安全な6番目のオプション「NTLMv2 応答のみ送信する – LM と NTLM を拒否する」に変更することも可能です。ドメインコントローラーにこの設定を適用すると、すべてのLMおよびNTLMv1要求が拒否されます。

レジストリからもNTLMv1を無効化できます。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsaキーに、DWORD値LmCompatibilityLevel(0~5)を作成します。値5は「NTLMv2 応答のみ送信する – LM と NTLM を拒否する」に相当します。

同じGPOセクションにある「ネットワーク セキュリティ: 次のパスワード変更時にLAN Manager ハッシュの値を保存しない」ポリシーが有効になっていることも確認してください。これはWindows Vista / Windows Server 2008以降でデフォルト有効となっており、LMハッシュの作成を防止します。

WindowsドメインでNTLM認証を無効化しKerberosへ移行する完全ガイド

このポリシーをドメインコントローラーにも適用することを忘れないようにしましょう。

NTLMv1を使用していないことが確認できたら、次のステップとしてNTLMv2の無効化に進みます。NTLMv2はより安全な認証プロトコルですが、セキュリティ面ではKerberosに大きく劣ります。NTLMv2はNTLMv1より脆弱性が少ないものの、データの捕捉・再利用のリスクは残っており、相互認証もサポートしていません。

NTLM無効化の最大のリスクは、依然としてNTLM認証を使用するレガシーまたは誤構成のアプリケーションが存在する点です。その場合は、Kerberosへ移行するためにアプリの更新や特別な構成変更が必要になります。

NTLM認証の監査ログを有効にする方法

ドメインでNTLMを完全に無効化してKerberosへ移行する前に、NTLM認証を必要とするアプリケーションがドメイン内に残っていないことを確認しましょう。

NTLM認証を使用しているアカウントやアプリを追跡するには、GPOですべてのコンピューターに対して監査ログポリシーを有効にします。[コンピューターの構成] → [Windowsの設定] → [セキュリティの設定] → [ローカルポリシー] → [セキュリティオプション]セクションで、「ネットワーク セキュリティ: NTLM を制限する: このドメインの NTLM 認証を監査する」ポリシーを見つけて有効にし、値を「すべて監査する」に設定します。

WindowsドメインでNTLM認証を無効化しKerberosへ移行する完全ガイド

同様に、「ネットワーク セキュリティ: NTLM を制限する: 受信 NTLM トラフィックを監査する」ポリシーを有効にし、値を「ドメイン アカウントの監査を有効にする」に設定します。

WindowsドメインでNTLM認証を無効化しKerberosへ移行する完全ガイド

これらのポリシーを有効にすると、NTLM認証の使用イベントがイベントビューアーの[アプリケーションとサービスログ] → [Microsoft] → [Windows] → [NTLM]セクションに表示されるようになります。

各サーバーでイベントを個別に分析してもよいですし、中央のWindowsイベントログコレクターに収集して一元管理することも可能です。

ソースがMicrosoft-Windows-Security-Auditingで、イベントID 4624(「アカウントが正常にログオンしました」)のイベントを検索します。「詳細な認証情報」セクションに注目してください。Authentication Packageの値にNTLMが含まれていれば、そのユーザーの認証にNTLMプロトコルが使用されたことを意味します。

さらにPackage Name (NTLM only)の値も確認しましょう。この行には、認証に実際に使用されたプロトコル(LM、NTLMv1、NTLMv2のいずれか)が表示されます。これにより、レガシープロトコルを使用しているすべてのサーバー/アプリケーションを特定できます。

WindowsドメインでNTLM認証を無効化しKerberosへ移行する完全ガイド

たとえば、すべてのドメインコントローラー上のNTLMv1認証イベントを検索するには、次のPowerShellスクリプトを使用できます。

$ADDCs = Get-ADDomainController -filter
$Now = Get-Date
$Yesterday = $Now.AddDays(-1)
$NewOutputFile = "c:\Events\$($Yesterday.ToString('yyyyddMM'))_AD_NTLMv1_events.log"
function GetEvents($DC){
Write-Host "Searching log on " $DC.HostName
$Events = Get-EventLog "Security" -After $Yesterday.Date -Before $Now.Date -ComputerName $DC.HostName -Message "*V1*" -instanceid 4624
foreach($Event in $Events){
Write-Host $DC.HostName $Event.EventID $Event.TimeGenerated
Out-File -FilePath $NewOutputFile -InputObject "$($Event.EventID), $($Event.MachineName), $($Event.TimeGenerated), $($Event.ReplacementStrings),($Event.message)" -Append
}
}
foreach($DC in $ADDCs){GetEvents($DC)}

ドメイン内でNTLMを使用しているユーザーとアプリケーションを特定したら、それらをKerberosの使用へ切り替えましょう(必要に応じてSPNを設定)。一部のアプリケーションは、Kerberos認証を使用するために若干の再構成が必要です(IISにおけるKerberos認証や、ブラウザーごとのKerberos認証設定に関する記事などを参照してください)。筆者の経験では、大規模な商用製品であってもKerberosではなくNTLMを使用しているケースが少なくなく、更新や構成変更が必要な製品もあります。重要なのは、どのアプリがNTLM認証を使用しているかを特定することであり、今回紹介した方法でそのソフトウェアやデバイスを確実に特定できます。

なお、Kerberos認証では、サーバーのIPアドレスではなくDNS名を使用する必要があります。接続時にIPアドレスを指定すると、NTLM認証が使用されてしまうので注意してください。

Kerberosを使用できないアプリケーションは、例外として登録できます。これにより、ドメインレベルでNTLMが無効になっていても、それらのアプリは引き続きNTLM認証を使用できます。そのためには「ネットワーク セキュリティ: NTLM を制限する: このドメインの NTLM 認証にサーバー例外を追加する」ポリシーを使用します。NTLM認証の使用を許可するサーバー名を例外リストに追加します。理想的には、この例外リストは空であるべきです。ワイルドカード*も使用できます。

WindowsドメインでNTLM認証を無効化しKerberosへ移行する完全ガイド

Active DirectoryドメインでNTLMを完全に制限する方法

NTLMなしの認証がドメイン内のさまざまなアプリでどのように機能するかを事前に確認するには、ユーザーアカウントを「Protected Users」ドメイングループに追加します(Windows Server 2012 R2以降で利用可能)。このセキュリティグループのメンバーはKerberosでのみ認証でき、NTLM、Digest認証、CredSSPは許可されません。これにより、さまざまなアプリでKerberosユーザー認証が正しく機能するかを検証できます。

その後、「ネットワーク セキュリティ: NTLM を制限する: このドメインの NTLM 認証」ポリシーを使用して、Active Directoryドメイン全体でNTLMを完全に無効化できます。

このポリシーには以下の5つのオプションがあります。

  • 無効: ポリシーが無効(ドメイン内でNTLM認証が許可される)
  • ドメイン サーバーへのドメイン アカウントを拒否する: ドメインコントローラーが、ドメインアカウントによるすべてのサーバーへのNTLM認証試行を拒否し、「NTLM はブロックされています」というエラーが表示される
  • ドメイン アカウントを拒否する: ドメインコントローラーが、すべてのドメインアカウントによるNTLM認証試行を阻止し、「NTLM はブロックされています」というエラーが表示される
  • ドメイン サーバーを拒否する: 「ネットワーク セキュリティ: NTLM を制限する: このドメインの NTLM 認証にサーバー例外を追加する」ポリシーの例外リストにサーバー名が登録されていない限り、すべてのサーバーへのNTLM認証要求が禁止される
  • すべて拒否する: ドメインコントローラーが、すべてのドメインサーバーとアカウントに対するすべてのNTLM要求をブロックする
WindowsドメインでNTLM認証を無効化しKerberosへ移行する完全ガイド

Active Directoryのセキュリティをさらに強化したい方は、Mimikatz型攻撃への対策、特権管理者アカウントの保護、LLMNRとTCP/IP上のNetBIOSの無効化に関する記事も併せて参照することをお勧めします。

  1. Windows 11でOneDriveを無効にする方法|同期停止からアンインストールまで完全解説

    2007年8月に登場したOneDriveは、Microsoftが開発したファイルホスティングサービスです。ファイルやフォルダ、各種データを複数のデバイス間で共有できるオンラインクラウドストレージとして、個人用・業務用のデータをひとつの場所にまとめて管理できます。 ただし、OneDriveには小さな制限があります。無料プランで利用できるストレージ容量はわずか5GBです。すべてのファイルやデータを保存するには不十分だと感じる方も多いでしょう。有料プランにアップグレードすれば容量を増やせるほか、OneDriveが提供する多彩な機能をフル活用できます。 OneDriveはWindows 11と深く統

  2. Windows 11の広告を無効にする方法【8つの設定を徹底解説】

    ネットで記事を読んだりSNSを閲覧したりしていると、今や常に広告に囲まれていると感じることは珍しくありません。広告は多くの人や企業にとって重要な収入源ですが、日常的に使っているOSの中まで広告だらけでは、さすがに受け入れがたいものです。しかし、それこそがWindows 11の現状です。Edgeブラウザーへの誘導、設定アプリ内のおすすめ表示、ロック画面でのヒントやコツなど、MicrosoftはWindows 11のあちこちで自社製品やサービスをさりげなく宣伝しています。幸い、こうした広告の多くはオフにできます。必要なのは「どこを設定すればいいか」を知ることだけ。この記事では、広告を目にする回数を