Поделиться через


списки контроль доступа для COM

Windows Server XP с пакетом обновления 2 (SP 2) и Windows Server 2003 с пакетом обновления 1 (SP 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 может существовать в формате, используемом до Windows XP SP 2 и Windows Server 2003 с пакетом обновления 1 (SP 1), который использует только право доступа COM_RIGHTS_EXECUTE, или он может существовать в новом формате, используемом в Windows XP с пакетом обновления 2 (SP 2) и Windows Server 2003 с пакетом обновления 1 (SP1), который использует COM_RIGHTS_EXECUTE вместе с сочетанием COM_RIGHTS_EXECUTE_LOCAL, COM_RIGHTS_EXECUTE_REMOTE, COM_RIGHTS_ACTIVATE_LOCAL и COM_RIGHTS_ACTIVATE_REMOTE.

Примечание.

COM_RIGHTS_EXECUTE всегда должно присутствовать; Отсутствие этого права создает недопустимый дескриптор безопасности.

 

Не следует смешивать старый формат и новый формат в одном ACL; Либо все записи управления доступом (ACEs) должны предоставлять только право доступа 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), а второй ACE предоставляет COM_RIGHTS_EXECUTE, COM_RIGHTS_EXECUTE_LOCAL и COM_RIGHTS_ACTIVATE_LOCAL (0xb), а третий грант COM_RIGHTS_EXECUTE и COM_RIGHTS_ACTIVATE_LOCAL (0x9).

Чтобы исправить это, сначала необходимо изменить ACE, чтобы предоставить COM_RIGHTS_EXECUTE в сочетании с одним из остальных четырех прав доступа, или в противном случае необходимо изменить второй и третий ACE, чтобы предоставить только COM_RIGHTS_EXECUTE.

Улучшения безопасности DCOM в Windows XP с пакетом обновления 2 и Windows Server 2003 с пакетом обновления 1

Безопасность в COM