Windows サービス保護
PAM SC を使用して Windows サービスを保護する方法について説明します。
capamsc141
Selang CLI を使用して作成されたルールは、エンドポイント管理 UI で正しく表示されません。UI に誤った表示名が表示されます。表示名を編集し、適切なサービス名に修正できます。UI は、サービス名ではなくサービスの表示名を示すため、エンドポイント管理 UI を使用してサービスを参照しないでください。UI を使用してルールを作成する場合は、サービスの正しい名前を指定していることを確認します。
CA Privileged Access Manager
では、Windows サービスを保護できます。Windows サービス
は Windows のバックグラウンドで実行されるプログラムです。Windows サービスは、UNIX におけるデーモンと同等の機能を果たします。CA Privileged Access Manager
の Windows サービス保護では、以下のいずれかのソースを元にしたサービス アクセス イベントをインターセプトします。- サービス管理および情報イベントCA Privileged Access Managerは、サービス アクセスごとに services.exe プロセスをインターセプトします。これには、サービスの起動や停止も含まれます。たとえば、net startservice、net stopserviceは保護されます。この場合のインターセプトされたイベントの監査は、保護対象サービスの名前を使用して行われます。
- サービス データベース管理イベントCA Privileged Access Managerは、サービス制御管理データベースに対するレジストリ コールをインターセプトして、サービス状態のクエリや変更から保護します。つまり、保護対象サービスに関連付けられているレジストリ領域は、製品によって自動的に保護されます。実際には、サービス保護を定義したときに、CA Privileged Access Managerは以下のレジストリ キーを保護します。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\service_nameHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\service_nameこの場合にインターセプトされたイベントの監査は、完全なレジストリ パスを使用して行われます。
その他のリソースを保護する場合と同じ方法で Windows サービスを保護します。リソースをサービスに割り当て、アクセサをリソースのアクセス制御リストに追加します。Windows サービスのリソース クラスは WINSERVICE です。WINSERVICE リソースには、ACL と NACL の 2 つのアクセス制御リストがあります。WINSERVICE のアクセス制御リスト内のエントリに有効なアクセス タイプは、以下のとおりです。
- 読み取り
- Modify
- 先頭
- [停止]
- 一時停止
- 再開
Windows 2012、Windows 2012 R2、および Windows 2016 は、論理グループとユーザに関連付けられている GID および UID 属性をそれぞれサポートしません。そのため、Windows 2008 R2 以前にサポートされていたこれらの属性は、このリリースからサポートされません。
この記事には以下のセクションが含まれます。
考慮事項の確認
エンドポイントのオペレーティング システムが Windows 2012、Windows 2012 R2、または Windows 2016 の場合は、以下の点を考慮してください。
- Windows サービスを保護するために作成されるルールは、eventlog および dnsclient などの重要なサービスには適用されません。
- サード パーティのサービスに対して作成されるルールは、それらのサービスがCA Privileged Access Manager以外のいずれのセキュリティ製品/スイートによっても制御されていない場合にのみ動作します。そうでない場合、CA Privileged Access Managerとその他のセキュリティ製品/スイートの競合により、CA Privileged Access Managerで未定義の動作が発生する可能性があります。この問題を回避するには、CA Privileged Access Managerがインストールされているホスト上に他のセキュリティ スイート製品がインストールされていないことを確認します。
- 重大でない Windows サービスのスタートアップの種類を変更するには、開始と変更の両方の権限をルールに含める必要があります。ただし、sc ユーティリティでは、変更の権限のみを持つルールが作成された場合でも、サービスのスタートアップの種類を更新することができます。デフォルトでは、sc ユーティリティは開始の権限を提供します。
- サービス用に作成されたルールには、監査を含めることができます。このような場合、seaudit ユーティリティを実行するとき、すべての Windows イベント ログをスキャンする必要があるため、監査結果は数秒間経ってから表示されます。このユーティリティを再実行する前に、結果が表示されるまで待ってください。
- サービスにアクティブなルールがある場合は、[セキュリティ]で利用可能な Windows イベント ログを削除しないでください。セキュリティに関係する Windows イベント ログを削除する場合は、ルールを削除してから、それらのイベント ログを削除します。
- ルールは、管理者グループの一員であるユーザのみに適用できます。
Windows サービス保護の有効化および無効化
CA Privileged Access Manager
での Windows サービスの保護は、有効化または無効化できます。Windows サービス保護を有効にするには、
CA Privileged Access Manager
レジストリの Instrumentation\PlugIns\WinServiceplg セクション内の構成設定 OperationMode を 1 に設定します。保護を無効にするには、OperationMode を 0 に設定します。デフォルトでは、
CA Privileged Access Manager
での Windows サービス保護は有効になっています。CA Privileged Access Manager
で Windows サービスを保護するには、保護を有効にして、WINSERVICE クラスをアクティブにします。Windows サービスの保護
Windows サービスを保護できるので、Windows の操作を保護することもできます。
以下の手順に従います。
- Windows サービス保護が有効であることを確認します。
- WINSERVICE クラスがアクティブであることを確認します(デフォルトでアクティブになっています)。
- 保護対象 Windows サービスと同じ名前で、CA Privileged Access Managerに WINSERVICE レコードを作成します。注:Windows サービスの名前は、Windows サービスのプロパティ ダイアログの[全般]タブに表示されます。ただし、Windows サービス名は、そのタブ上の「表示名」と同一ではありません。
- サービスに、アクセサとそのアクセス権限を割り当てます。これで、サービスは保護されます。
例: 印刷スプーラへのアクセスを制限する
Windows の印刷スプーラには、サービス名スプーラがあります。以下の selang コマンドによって、WINSERVICE クラスがアクティブであることを確認し、スプーラへのデフォルト アクセスが「
読み取り
」に設定されます。setoptions class+(WINSERVICE)editres WINSERVICE(spooler) defacc(R)
例: スプーラ サービスへのアクセス グループのユーザを許可します。
グループを作成し、そのグループのメンバに Windows サービスへのアクセスを提供できます。
以下の手順に従います。
- 以下のコマンドを使用してネイティブ ユーザを作成します。nu <hostname>\testuser password(XXX) nt
- 以下のコマンドを使用し、所有者のいない論理グループを作成します。ng <hostname>\xgroup owner(nobody) nt
- 以下のコマンドを使用し、データベースを使用して作成されたグループを関連付けます。nxg <hostname>\xgroup
- 以下のコマンドを使用し、ユーザをグループと関連付けます。join <hostname>\testuser group(<hostname>\testgroup) nt
- 以下のコマンドを使用し、どのユーザにも設定されていないデフォルト アクセス権を持つスプーラ サービスを有効にします。er winservice spooler owner(nobody) defacc(n)
- 以下のコマンドを使用し、グループのユーザがスプーラ サービスにアクセスする権限を付与します。auth winservice spooler XGID(<hostname>\xgroup) access(start,stop,r)
Windows Server 2008 で IPv4 を使用しない Telnet 接続がセキュリティで保護されない
Windows Server 2008 では、IPv4 を使用していない telnet 接続は
CA Privileged Access Manager
で保護できません。Windows Server 2008 で、localhost の telnet 接続(localhost 間)を保護するには、/etc/HOSTS ファイルを以下のように変更します。
127.0.0.1 localhost# ::1 localhost127.0.0.1�� <your server name without domain suffix>
お使いのコンピュータが IPv6 ドメイン内にある場合は、以下の行を追加します。
127.0.0.1 <your server name with domain suffix>
保護対象 Windows サービスへのアクセスの試みの表示
CA Privileged Access Manager
が Windows サービスを保護している場合、そのサービスに関連するアクセス試行をインターセプトし、監査ログに記録します。このようなアクセスの試みは、サービスを管理するために(起動、停止など) services.exe プロセスを使用した結果である場合があります。また、保護対象サービスのサービス データベース管理領域へのレジストリ アクセスの結果である場合もあります。services.exe プロセスを使用した結果によるアクセスでは、監査ログにサービス名しか記録されないのに対し、レジストリ アクセスの結果によるアクセスでは、完全なレジストリ パスが記録されます。Windows サービスに関連するすべてのアクセスの試みを表示するには、ワイルドカードを使用します。保護対象 Windows サービスへのアクセス試行を表示するには、クラス WINSERVICE とリソース名 *
myService
* の監査レコードをフィルタ処理する監査フィルタを作成します。CA Privileged Access Manager
では、指定された WINSERVICE リソースに対するすべての監査レコードが表示されます(レジストリを介したアクセス試行とサービス管理インターフェースを介したアクセス試行のどちらも)。 WinService クラス インターセプトの Seaudit ログ エントリは、監査パラメータがルールで明示的に指定されている場合にのみ、日本語および韓国語の環境で作成されます。
例: 印刷スプーラ サービスへのすべてのアクセス試行を表示する
この例では、印刷スプーラ サービスを、
CA Privileged Access Manager
でアクセス権を設定せずに以下のように定義したとします。er winservice spooler defaccess(none) owner(nobody) audit(all)
ここでの audit には、以下の値を入力することができます。
- すべて成功および失敗した試行を含むすべてのログを表示します
- なしログは表示されません
- S成功した試行のみを表示します
- F失敗した試行のみを表示します
以下のように seaudit ユーティリティを使用して、印刷スプーラ サービスへのすべてのアクセス試行を一覧表示することができます。
seaudit -resource WINSERVICE *spooler* *
このコマンドにより、印刷スプーラ サービスに対するアクセス試行に関して記録された、クラス WINSERVICE のすべての監査レコードが一覧表示されます。出力結果は以下のようになります。
seaudit - Audit log lister 03 Apr YYYY 16:53:48 D WINSERVICE bigHost1\Administrator Read 69 2 Spooler c:\WINDOWS\system32\services.exe bigHost1.comp.com 03 Apr YYYY 16:53:48 D WINSERVICE bigHost1\Administrator Read 69 2 Spooler c:\WINDOWS\system32\services.exe bigHost1.comp.com 03 Apr YYYY 16:53:50 D WINSERVICE bigHost1\Administrator Read 69 2 Spooler c:\WINDOWS\system32\services.exe bigHost1.comp.com 03 Apr YYYY 16:53:50 D WINSERVICE bigHost1\Administrator Read 69 2 Spooler c:\WINDOWS\system32\services.exe bigHost1.comp.com 03 Apr YYYY 16:53:53 D WINSERVICE bigHost1\Administrator Read 69 2 Spooler c:\WINDOWS\system32\services.exe bigHost1.comp.com 03 Apr YYYY 16:53:53 D WINSERVICE bigHost1\Administrator Read 69 2 Spooler c:\WINDOWS\system32\services.exe bigHost1.comp.com 03 Apr YYYY 16:54:10 D WINSERVICE bigHost1\Administrator Read 69 2 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler C:\WINDOWS\regedit.exe bigHost1.comp.com 03 Apr YYYY 16:54:10 D WINSERVICE bigHost1\Administrator Read 69 2 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler C:\WINDOWS\regedit.exe bigHost1.comp.com 03 Apr YYYY 16:54:19 D WINSERVICE bigHost1\Administrator Read 69 2 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler C:\WINDOWS\regedit.exe bigHost1.comp.com 03 Apr YYYY 16:54:26 D WINSERVICE bigHost1\Administrator Read 69�� 2 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler C:\WINDOWS\regedit.exe bigHost1.comp.com 03 Apr YYYY 16:54:26 D WINSERVICE bigHost1\Administrator Modify 69 2 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler C:\WINDOWS\regedit.exe bigHost1.comp.com Total records displayed 11