Procedura: rendere agli assembly APTCA inaccessibili per il codice parzialmente attendibile
L'attributo AllowPartiallyTrustedCallersAttribute (APTCA) consente a codice parzialmente attendibile di accedere a codice completamente attendibile negli assembly firmati. Quando l'attributo APTCA viene applicato a un assembly, quest'ultimo viene contrassegnato come assembly che accetta chiamanti parzialmente attendibili per tutto il ciclo di vita. Ciò può rappresentare una vulnerabilità della sicurezza nel caso in cui, dopo l'installazione, un assembly esponga risorse protette a codice parzialmente attendibile. Per risolvere tale problema è possibile impostare un valore del Registro di sistema per indicare che l'attributo APTCA dell'assembly in questione deve essere ignorato.
Importante
La possibilità di rimuovere l'attendibilità parziale da un assembly dipende da una chiave del Registro di sistema, come illustrato nella procedura descritta di seguito.Se un'applicazione è in esecuzione con un account che non dispone di un'autorizzazione ACL (Access Control List, elenco di controllo di accesso) per l'accesso alla chiave del Registro di sistema, l'impostazione non ha alcun effetto e consente a chiamanti parzialmente attendibili di accedere all'assembly.In questo modo si verifica un'elevazione dei privilegi imprevista.Assicurarsi che siano configurati diritti ACL per questa chiave, in modo che sia leggibile per tutti gli assembly.
Per rimuovere l'attendibilità parziale da un assembly
Creare una chiave nella chiave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\APTCA del Registro di sistema. Specificare un nome della chiave che contenga informazioni relative al nome sicuro dell'assembly. Il nome deve includere il nome semplice, il numero della versione, le impostazioni cultura (che possono non essere associate ad alcun paese), il token della chiave pubblica e la versione del file dell'assembly. Di seguito viene riportata una chiave valida: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\APTCA\Microsoft.Office.Interop.Visio, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, FileVersion=11.0.3216.0.
Creare un valore DWORD con un nome APTCA_FLAG e valore 1 per rendere non visibile l'attendibilità parziale dell'assembly.