ローカル管理者ではないリモートの発信者がサービスを開始または停止できないようにブロックする

適用対象: Windows Server version 1803Windows 10, version 1803Windows Server 2016 Version 1709 詳細

概要


この記事では、Windows 10 Version 1709 以降および Windows Server 2016 Version 1709 以降のセキュリティ ポリシーの変更について説明します。  新しいポリシーでは、リモート コンピューター上のローカル管理者であるユーザーのみが、そのコンピューターのサービスを開始または停止できるようになりました。    

また、この記事では、この新しいポリシーから個々のサービスをオプトアウトする方法についても説明します。

詳細


よくあるセキュリティ上の誤りとして、過度に許容度が高いセキュリティ記述子 (「Service Security and Access Rights」(英語情報) を参照してください) を使用してサービスを構成することで、意図しないリモートの発信者にアクセスを許可してしまう場合があります。   たとえば、Authenticated Users に SERVICE_START または SERVICE_STOP アクセス許可を付与するサービスは珍しくありません。 通常、ローカル管理者以外のユーザーにのみ、このような権限を付与することが目的ですが、Authenticated Users には、そのアカウントがリモート コンピューターとローカル コンピューターの Administrators グループのどちらに属するかにかかわらず、Active Directory フォレスト内のすべてのユーザーまたはコンピューターも含まれます。 このような過度のアクセス許可は悪用され、ネットワーク全体に混乱を招く可能性があります。  

この問題の広汎性と潜在的な重大度と、大規模なドメインには必ず侵害されたコンピューターが存在すると想定する現代のセキュリティ保護策を考慮し、リモートの発信者が次のサービスのアクセス許可を要求するには、コンピューターのローカル管理者でもあることを必須にする新しいシステム セキュリティ設定が導入されました。  

SERVICE_CHANGE_CONFIG
SERVICE_START
SERVICE_STOP
SERVICE_PAUSE_CONTINUE
DELETE
WRITE_DAC
WRITE_OWNER

新しいセキュリティ設定では、次のサービス コントロール マネージャー アクセス許可を要求するには、リモートの発信者がコンピューターのローカル管理者であることが必須になります。   

SC_MANAGER_CREATE_SERVICE

注: このローカル管理者のチェックは、サービスまたはサービス コントローラーのセキュリティ記述子に対する既存のアクセス チェックに加えて行われます。この設定は、Windows 10 Version 1709 および Windows Server 2016 Version 1709 から導入されました。    既定では、この設定は有効です。

管理者以外のユーザーがリモートからサービスを開始または停止できることに依存しているサービスをご利用の場合は、この新しいチェックで問題が起こる可能性があります。 必要に応じて、次のレジストリの場所にある RemoteAccessCheckExemptionList REG_MULTI_SZ レジストリ値にサービス名を追加することで、個々のサービスをこのポリシーからオプトアウトすることができます。 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\SCM

これを行うには、次の手順を実行します。

  1. [スタート] ボタンを選択し、[ファイル名を指定して実行] を選択します。[名前] ボックスに「regedit」と入力し、[OK] をクリックします。  
  2. レジストリで以下のサブキーを見つけて選択します。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\SCM

    注: 
    サブキーが存在しない場合は作成する必要があります。[編集] メニューの [新規]、[キー] の順に選択します。新しいサブキーの名前を入力し、Enter キーを押します。     
  3. [編集] メニューの [新規] をポイントし、[REG_MULTI_SZ 値] を選択します。 
  4. REG_MULTI_SZ 値の名前に「RemoteAccessCheckExemptionList」と入力して、Enter キーを押します。 
  5. RemoteAccessCheckExemptionList 値をダブルクリックし、新しいポリシーから除外するサービスの名前を入力して、[OK] をクリックします。 
  6. レジストリ エディターを終了し、コンピューターを再起動します。

管理者がこの新しいチェックをグローバルに無効にし、古い安全性の低い動作を復元するには、次のレジストリの場所の RemoteAccessExemption REG_DWORD レジストリ値を 0 以外の値に設定します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control

注: この値を一時的に設定すると、この新しいアクセス許可モデルがアプリケーションの互換性の問題の原因かどうかを簡単に判断できます。

これを行うには、次の手順を実行します。

  1. [スタート] ボタンを選択し、[ファイル名を指定して実行] を選択します。[名前] ボックスに「regedit」と入力し、[OK] をクリックします。  
  2. レジストリで次のサブキーを見つけてクリックします。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
  3. [編集] メニューの [新規] をポイントし、[REG_DWORD (32 ビット) 値] を選択します。   
  4. REG_DWORD 値の名前に「RemoteAccessExemption」と入力して、Enter キーを押します。
  5. RemoteAccessExemption 値をダブルクリックし、[値のデータ] フィールドに「1」と入力して、[OK] をクリックします。 
  6. レジストリ エディターを終了し、コンピューターを再起動します。