listas de Access Control para COM

Windows Server XP Service Pack 2 (SP 2) y Windows Server 2003 Service Pack 1 (SP 1) presentan mejoras de seguridad para el modelo de objetos componentes distribuidos (DCOM). Una de estas mejoras es un derecho de acceso más específico para su uso en listas de control de acceso (ACL). Los derechos de acceso son:

COM_RIGHTS_EXECUTE 1
COM_RIGHTS_EXECUTE_LOCAL 2
COM_RIGHTS_EXECUTE_REMOTE 4
COM_RIGHTS_ACTIVATE_LOCAL 8
COM_RIGHTS_ACTIVATE_REMOTE 16

Para proporcionar compatibilidad con versiones anteriores, una ACL puede existir en el formato usado antes de Windows XP SP 2 y Windows Server 2003 SP 1, que solo usa el derecho de acceso COM_RIGHTS_EXECUTE, o puede existir en el nuevo formato usado en Windows XP SP 2 y Windows Server 2003 SP 1, que usa COM_RIGHTS_EXECUTE junto con una combinación de COM_RIGHTS_EXECUTE_LOCAL, COM_RIGHTS_EXECUTE_REMOTE, COM_RIGHTS_ACTIVATE_LOCAL y COM_RIGHTS_ACTIVATE_REMOTE.

Nota

COM_RIGHTS_EXECUTE siempre debe estar presente; la ausencia de este derecho genera un descriptor de seguridad no válido.

 

No debe mezclar el formato antiguo y el nuevo formato dentro de una sola ACL; todas las entradas de control de acceso (ACE) solo deben conceder el derecho de acceso COM_RIGHTS_EXECUTE, o bien todas deben conceder COM_RIGHTS_EXECUTE junto con una combinación de COM_RIGHTS_EXECUTE_LOCAL, COM_RIGHTS_EXECUTE_REMOTE, COM_RIGHTS_ACTIVATE_LOCAL y COM_RIGHTS_ACTIVATE_REMOTE.

A continuación se muestra un ejemplo de una ACL con formato incorrecto:

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)

Tenga en cuenta que la primera entrada de control de acceso (ACE) solo concede COM_RIGHTS_EXECUTE (0x1), mientras que la segunda ACE concede COM_RIGHTS_EXECUTE, COM_RIGHTS_EXECUTE_LOCAL y COM_RIGHTS_ACTIVATE_LOCAL (0xb) y la tercera concede COM_RIGHTS_EXECUTE y COM_RIGHTS_ACTIVATE_LOCAL (0x9).

Para corregir esto, se debe cambiar la primera ACE para conceder COM_RIGHTS_EXECUTE en combinación con uno de los otros cuatro derechos de acceso, o bien se deben cambiar las caes segunda y tercera para conceder solo COM_RIGHTS_EXECUTE.

Mejoras de seguridad de DCOM en Windows XP Service Pack 2 y Windows Server 2003 Service Pack 1

Seguridad en COM