다음을 통해 공유


COM용 Access Control 목록

Windows Server XP SP 2(서비스 팩 2) 및 Windows Server 2003 SP 1(서비스 팩 1)은 DCOM(분산 구성 요소 개체 모델)에 대한 보안 향상 기능을 제공합니다. 이러한 향상된 기능 중 하나는 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 이전에 사용되는 형식으로 존재하거나 COM_RIGHTS_EXECUTE_LOCAL 조합하여 COM_RIGHTS_EXECUTE 사용하는 Windows XP SP 2 및 Windows Server 2003 SP 1에 사용되는 새로운 형식으로 존재할 수 있습니다. COM_RIGHTS_EXECUTE_REMOTE, COM_RIGHTS_ACTIVATE_LOCAL 및 COM_RIGHTS_ACTIVATE_REMOTE.

참고

COM_RIGHTS_EXECUTE 항상 존재해야 합니다. 이 권한이 없을 경우 잘못된 보안 설명자가 생성됩니다.

 

단일 ACL 내에서 이전 형식과 새 형식을 혼합해서는 안 됩니다. 모든 AES(액세스 제어 항목)는 COM_RIGHTS_EXECUTE 액세스 권한만 부여해야 하거나 모두 COM_RIGHTS_EXECUTE_LOCAL, COM_RIGHTS_EXECUTE_REMOTE, COM_RIGHTS_ACTIVATE_LOCAL 및 COM_RIGHTS_ACTIVATE_REMOTE 조합하여 COM_RIGHTS_EXECUTE 부여해야 합니다.

다음은 형식이 잘못된 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)만 부여하고 두 번째 ACE는 COM_RIGHTS_EXECUTE, COM_RIGHTS_EXECUTE_LOCAL 및 COM_RIGHTS_ACTIVATE_LOCAL(0xb)을 부여하고 세 번째 는 COM_RIGHTS_EXECUTE 및 COM_RIGHTS_ACTIVATE_LOCAL(0x9)을 부여합니다.

이 문제를 해결하려면 첫 번째 ACE를 변경하여 다른 4개의 액세스 권한 중 하나와 함께 COM_RIGHTS_EXECUTE 부여해야 합니다. 그렇지 않으면 두 번째 및 세 번째 API를 변경하여 COM_RIGHTS_EXECUTE만 부여해야 합니다.

Windows XP 서비스 팩 2 및 Windows Server 2003 서비스 팩 1의 DCOM 보안 향상

COM의 보안