COMのアクセス制御リスト

Windows Server XP Service Pack 2 (SP 2) およびWindows Server 2003 Service Pack 1 (SP 1) では、分散コンポーネントオブジェクトモデル (DCOM) のセキュリティが強化されています。 これらの機能強化の1つは、アクセス制御リスト (ACL) で使用するアクセス権の詳細です。 アクセス権は次のとおりです。

COM_RIGHTS_EXECUTE 1
COM_RIGHTS_EXECUTE_LOCAL 2
COM_RIGHTS_EXECUTE_REMOTE 4
COM_RIGHTS_ACTIVATE_LOCAL 8
COM_RIGHTS_ACTIVATE_REMOTE 16

下位互換性を提供するために、ACLは、アクセス権COM_RIGHTS_EXECUTEのみを使用するWindows XP SP 2およびWindows Server 2003 SP 1より前に使用されていた形式で存在することも、Windows XP SP 2およびWindows Server 2003 SP 1で使用されていた新しい形式で存在することもできます。これは、COM_RIGHTS_EXECUTE_LOCAL、COM_RIGHTS_EXECUTE_REMOTE、COM_RIGHTS_ACTIVATE_LOCAL、およびCOM_RIGHTS_ACTIVATE_REMOTEの組み合わせと共にCOM_RIGHTS_EXECUTEを使用します。

Note

COM_RIGHTS_EXECUTEは常に存在する必要があります。この権限がないと、無効なセキュリティ記述子が生成されます。

 

1つのACL内で古い形式と新しい形式を混在させることはできません。すべてのアクセス制御エントリ (ACE) でCOM_RIGHTS_EXECUTEアクセス権のみを付与するか、すべてのアクセス制御エントリでCOM_RIGHTS_EXECUTEをCOM_RIGHTS_EXECUTE_LOCAL、COM_RIGHTS_EXECUTE_REMOTE、COM_RIGHTS_ACTIVATE_LOCAL、およびCOM_RIGHTS_ACTIVATE_REMOTEの組み合わせと共に付与する必要があります。

誤った形式のACLの例を次に示します。

Revision 1
Sbz1 0
Control 0x8004
    SE_DACL_PRESENT
    SE_SELF_RELATIVE
Owner: S-1-5-21-1597522630-148096252-1166023319-500 (no name mapped)
Group: S-1-5-21-1597522630-148096252-1166023319-500 (no name mapped)
DACL:
    AclRevision 2
    Sbz1 0
    AclSize 128
    AceCount 4
    Sbz2 0
    Ace[0]
        AceType 0: ACCESS_ALLOWED_ACE_TYPE
        AceFlags 0
        AceSize 36
        AccessMask 0x1
        S-1-5-21-1597522630-148096252-1166023319-500 (no name mapped)
    Ace[1]
        AceType 0: ACCESS_ALLOWED_ACE_TYPE
        AceFlags 0
        AceSize 20
        AccessMask 0xb
        S-1-5-18 (Well Known Group: NT AUTHORITY\SYSTEM)
    Ace[2]
        AceType 0: ACCESS_ALLOWED_ACE_TYPE
        AceFlags 0
        AceSize 20
        AccessMask 0x9
        S-1-5-11 (Well Known Group: NT AUTHORITY\Authenticated Users)
SACL:
    (null)

最初のアクセス制御エントリ (ACE) はCOM_RIGHTS_EXECUTE (0x1) のみを付与し、2番目のACEはCOM_RIGHTS_EXECUTE、COM_RIGHTS_EXECUTE_LOCAL、およびCOM_RIGHTS_ACTIVATE_LOCAL (0xb) を付与し、3番目のACEはCOM_RIGHTS_EXECUTEとCOM_RIGHTS_ACTIVATE_LOCAL (0x9) を付与します。

これを修正するには、最初のACEを変更して、他の4つのアクセス権のいずれかと組み合わせてCOM_RIGHTS_EXECUTEを付与する必要があります。それ以外の場合は、2番目と3番目のACEを変更して、COM_RIGHTS_EXECUTEのみを付与する必要があります。

Windows XP Service Pack 2およびWindows Server 2003 Service Pack 1のDCOMセキュリティ強化機能

COM でのセキュリティ