稼働中の Windows サーバーおよび Windows 10 を確実に保護することは非常に重要です。特に、今日の巧妙な脅威環境を考えると、その重要性はさらに高まります。これらは通常、攻撃において「最も弱いリンク」であるユーザーを悪用されることで、最初に侵害されることが多いマシンです。詐術やソーシャルエンジニアリングによって、脅威アクターはこれらのマシンへのアクセス権を獲得し、その後は横方向への移動や権限の昇格を狙います。したがって、エンドポイントおよびサーバーのセキュリティを強化することは、セキュリティ侵害のリスクを大幅に低減できます。
厳選した関連コンテンツ:
サーバーを強化するためにできることの1つは、Local Security Authority (LSA) を保護することです。LSA は、ユーザー権限情報、パスワードハッシュ、その他の重要な情報の断片をメモリ上で制御し管理します。攻撃者のツール(例:mimikatz)は、これらの内容にアクセスしてパスワードハッシュまたは平文のパスワードを収集することに依存しています。LSA Protection を有効にすると、Windows はメモリに保存される情報をより安全な方法で制御するよう構成されます。具体的には、保護されていないプロセスがそのデータにアクセスできないようにするためです。
保護されたプロセスとは?
プロセスは、この Microsoft documentation に記載されている基準を満たす場合に、保護されたものと見なされます。要約すると、プロセスが Microsoft の検証済み署名を持ち、Microsoft Security Development Lifecycle (SDL) に準拠している場合、そのプロセスは保護されたものと見なされます。これら2つの基準を満たさない場合、そのプロセスはメモリ内で LSA が使用しているコンテンツにアクセスできません。
LSA Protection を有効にする方法
LSA Protection はレジストリで制御されるため、Group Policy を使えば、すべてのデバイスで簡単に有効化できます。RunAsPPL の値を 1 に設定するだけです。この設定はレジストリの SYSTEMCurrentControlSetControlLsa にあります。
次のコードは、.reg ファイルとして利用して、この値を 1 に設定できます:
*Code Block*
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa]
"RunAsPPL"=dword:00000001
*Code Block*
設定の確認
各サーバーが保護されていることを確認するには、上で言及したレジストリの該当セクションに移動し、値が 1 に設定されていることを確認してください。
ただし、作業を少しでも楽にするために、下記に特定のマシンについてリモートで値を問い合わせることができる PowerShell スクリプトを用意しました(正しいアクセス権があることを前提とします)。[SAMPLEHOST] をそのマシンのホスト名に置き換えてください。このコードは 0、1、または RunAsPPL プロパティが存在しないことを示す例外を返します。1 が返らない場合は、対象のコンピューターで設定が有効になっていません。
*Code Block*
invoke-command -Computer [SAMPLEHOST] {Get-itempropertyvalue -Path "HKLM:SYSTEMCurrentControlSetControlLsa" -Name RunAsPPL}
*Code Block*
共有する
もっと詳しく
著者について
Kevin Joyce
プロダクトマネジメント担当ディレクター
Netwrix のプロダクトマネジメント担当ディレクター。Kevin はサイバーセキュリティに情熱を持ち、特に攻撃者が組織の環境を悪用するために用いる戦術や手法を理解することに注力しています。Active Directory と Windows のセキュリティに焦点を当てたプロダクトマネジメントでの 8 年の経験を通じて、その情熱を活かし、組織がアイデンティティ、インフラ、データを保護できるようなソリューションの構築を支援しています。