elenchi Controllo di accesso per COM

Windows Server XP Service Pack 2 (SP 2) e Windows Server 2003 Service Pack 1 (SP 1) introducono miglioramenti della sicurezza per il modello DCOM (Distributed Component Object Model). Uno di questi miglioramenti è costituito da diritti di accesso più specifici da usare negli elenchi di controllo di accesso (ACL). I diritti di accesso sono:

COM_RIGHTS_EXECUTE 1
COM_RIGHTS_EXECUTE_LOCAL 2
COM_RIGHTS_EXECUTE_REMOTE 4
COM_RIGHTS_ACTIVATE_LOCAL 8
COM_RIGHTS_ACTIVATE_REMOTE 16

Per garantire la compatibilità con le versioni precedenti, un elenco di controllo di accesso può esistere nel formato usato prima di Windows XP SP 2 e Windows Server 2003 SP 1, che usa solo il diritto di accesso COM_RIGHTS_EXECUTE, oppure può esistere nel nuovo formato usato in Windows XP SP 2 e Windows Server 2003 SP 1, che usa COM_RIGHTS_EXECUTE insieme a una combinazione di COM_RIGHTS_EXECUTE_LOCAL, COM_RIGHTS_EXECUTE_REMOTE, COM_RIGHTS_ACTIVATE_LOCAL e COM_RIGHTS_ACTIVATE_REMOTE.

Nota

COM_RIGHTS_EXECUTE devono essere sempre presenti; l'assenza di questo diritto genera un descrittore di sicurezza non valido.

 

Non è necessario combinare il formato precedente e il nuovo formato all'interno di un singolo ACL; Tutte le voci di controllo di accesso (ACL) devono concedere solo il diritto di accesso COM_RIGHTS_EXECUTE oppure devono concedere COM_RIGHTS_EXECUTE insieme a una combinazione di COM_RIGHTS_EXECUTE_LOCAL, COM_RIGHTS_EXECUTE_REMOTE, COM_RIGHTS_ACTIVATE_LOCAL e COM_RIGHTS_ACTIVATE_REMOTE.

Di seguito è riportato un esempio di ACL formattato in modo non corretto:

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)

Si noti che la prima voce di controllo di accesso (ACE) concede solo COM_RIGHTS_EXECUTE (0x1), mentre la seconda ACE concede COM_RIGHTS_EXECUTE, COM_RIGHTS_EXECUTE_LOCAL e COM_RIGHTS_ACTIVATE_LOCAL (0xb) e il terzo concede COM_RIGHTS_EXECUTE e COM_RIGHTS_ACTIVATE_LOCAL (0x9).

Per risolvere questo problema, la prima ACE deve essere modificata per concedere COM_RIGHTS_EXECUTE in combinazione con uno degli altri quattro diritti di accesso, altrimenti il secondo e il terzo ACL devono essere modificati in modo da concedere solo COM_RIGHTS_EXECUTE.

Miglioramenti della sicurezza DCOM in Windows XP Service Pack 2 e Windows Server 2003 Service Pack 1

Sicurezza in COM