Concedere l'accesso alle risorse agli AppContainer

Puoi modificare l'access control list (ACL) di una risorsa a protezione diretta in modo tale da consentire l'accesso dall'AppContainer di Internet Explorer. Tuttavia, poiché modifiche simili hanno impatto sul profilo di sicurezza del dispositivo dell'utente, devi concedere l'accesso soltanto dopo un attento esame.

Considerazioni sulla sicurezza da effettuare prima di concedere l'accesso

I controlli ActiveX sono eseguiti all'interno del processo di IE; di conseguenza, i componenti aggiuntivi devono essere strettamente integrati - e collaborare - con il modello di sicurezza di IE.

Il codice Web eseguito all'interno dell'AppContainer di IE è considerato non attendibile e pertanto potrebbe essere malevolo. I componenti aggiuntivi sono eseguiti nello stesso contesto di sicurezza del contenuto Web. Per questo motivo, permettere che i dati vengano letti e scritti al di fuori di un limite di sicurezza di AppContainer per supportare le funzionalità dei componenti aggiuntivi ha implicazioni relative alla sicurezza che devi tenere in considerazione.

Serviti delle procedure di sicurezza consigliate, ad esempio esercizi di modellazione del rischio e applicazione del principio dei privilegi minimi per progettare controlli ActiveX protetti.

Ricorda che concedere l'accesso è una decisione relativa alla sicurezza, e richiede perciò un attento esame. Ecco alcuni aspetti da tenere in considerazione quando si prende una decisione simile:

  • La risorsa contiene informazioni personali dell'utente? Se la risposta è sì, l'autorizzazione non può essere concessa senza che l'utente ne sia a conoscenza e abbia dato il proprio consenso.
  • L'AppContainer è in grado di lanciare un attacco informato contro il sistema o altri processi di AppContainer mediante l'ottenimento dell'accesso alle informazioni protette dalla risorsa? Se la risposta è sì, l'accesso non deve essere concesso.
  • Un AppContainer può servirsi dell'accesso alla risorsa per interrompere i servizi sul dispositivo? Ad esempio, la scrittura sulla risorsa può determinare il blocco di un'operazione? È possibile usare questo comportamento per condurre un attacco di tipo "negazione del servizio" o "squatting"? Se la risposta è sì, l'accesso non deve essere concesso.
  • Stai assegnando l'accesso minimo richiesto? Se stai concedendo accesso in scrittura, ad esempio, l'AppContainer aggiorna davvero i dati?
  • Se usi altri processi per consumare dati provenienti da una fonte non attendibile (ad esempio, un AppContainer), devi considerare i dati come non attendibili e potenzialmente malevoli.

Le decisioni relative all'accesso alle risorse sono decisioni relative alla sicurezza che in alcuni casi possono portare a ramificazioni malevole.

Concedere l'accesso alle risorse agli AppContainer

Le risorse sono protette da elenchi di controllo di accesso (ACL) che illustrano l'accesso consentito. Per consentire all'AppContainer di IE di accedere a una risorsa, aggiorna ilsecurity descriptor (SD) associato alla risorsa:

  • Aggiungi un ACCESS_ALLOWED_ACE che concede l'accesso al security identifier (SID) del pacchetto corrispondente all'AppContainer.
  • Se usi SDDL, accertati di utilizzare il SID del pacchetto appropriato: ("A;OICI;0x1200a9;;; S-1-15-3-4096").
Per aggiornare l'ACL puoi servirti di diversi strumenti, tra cui:

  • L'interfaccia utente dell'ACL (ACL UI).
  • L'utility della riga di comando lcacls.exe.
  • Il commandlet PowerShell set-acl.

Per altre informazioni, vedi:

Concedere l'accesso a livello di programmazione

Puoi anche creare e impostare un descrittore di sicurezza all'interno del codice, come mostrato qui:


//Security Descriptor example
SID_IDENTIFIER_AUTHORITY AppPackageAuthority = SECURITY_APP_PACKAGE_AUTHORITY;
PSID Sid = NULL;
PACL Acl;
//
// TODO: Allocate Acl with appropriate size and check for error.
//
if (!AllocateAndInitializeSid(&AppPackageAuthority,
2,
SECURITY_APP_PACKAGE_BASE_RID,
SECURITY_CAPABILITY_INTERNET_EXPLORER,
0, 0, 0, 0, 0, 0,
&Sid))
{
//
// TODO: Handle error.
//
}
//
// TODO: Place other ACEs as before.
//
if (!AddAccessAllowedAceEx(Acl, ACL_REVISION,
CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE,
(SYNCHRONIZE | FILE_READ_DATA ), Sid))
{
//
// TODO: Handle error.
//
}
//
// TODO: Set ACL to security descriptor and apply security descriptor to object
//


Secondo il principio dei privilegi minimi, questo esempio concede diritti di lettura e sincronizzazione. Diritti aggiuntivi devono essere concessi solo quando strettamente necessario, e richiedono flag ACCESS_MASK.

Nota  Ricorda: per consentire l'accesso, il descrittore di sicurezza (SD) deve includere la voce di controllo di accesso (ACE) per l'AppContainer di IE.

Argomenti correlati

La Modalità protetta avanzata può essere abilitata sul desktop
Supporto della modalità protetta avanzata
Determinare livelli di integrità e isolamento
Creazione e apertura di oggetti a protezione diretta

 

 

Mostra:
© 2014 Microsoft