Note importanti sulla sicurezza del Motore regole di business
In questo argomento vengono riepilogati i problemi di sicurezza noti in Microsoft BizTalk Server e i passaggi da eseguire per attenuare i rischi per la sicurezza.
Input di schemi dannosi che determinano attacchi di tipo Denial of Service
Durante l'asserzione dei fact, ciascuna regola viene verificata in base a ogni oggetto che corrisponde ai tipi supportati all'interno di un criterio. Si supponga che una regola in un criterio utilizzi uno degli elementi di uno schema passato tramite un selettore. Se l'istanza di questo elemento/attributo che corrisponde al selettore viene ripetuta migliaia di volte, ciascuna di tali istanze verrà dichiarata, causando una riduzione delle prestazioni e determinando un possibile attacco di tipo Denial of Service (DoS).
Per ridurre questo potenziale rischio di sicurezza, è necessario convalidare tutti gli input ambigui passati durante l'esecuzione di un criterio.
Oggetti non convalidati dal set di regole prima dell'asserzione dei fact
Qualsiasi istanza dello schema passata come fatto al RuleSet non viene convalidata rispetto allo schema prima di asserire le regole usando selettori. È consigliabile convalidare tutti gli input passati durante l'esecuzione di un criterio.
Comportamenti previsti di Creazione regole di business quando viene attivata la sicurezza per l'archivio regole
È possibile abilitare la funzionalità di sicurezza basata sui ruoli per l'archivio regole chiamando il metodo EnableAuthorization della classe RuleStore . Di seguito vengono illustrati i comportamenti previsti di Creazione regole di business quando viene attivata questa funzionalità di sicurezza:
Il modello a oggetti filtra i set di regole e i vocabolari per i quali l'utente non dispone dell'accesso in lettura. Questi elementi non vengono pertanto visualizzati in Creazione regole di business.
Se l'utente non dispone dell'accesso in scrittura a un criterio o un vocabolario, qualsiasi tentativo di salvataggio causerà la generazione di un'eccezione.
Tipi di utente per l'amministratore dell'archivio regole
L'amministratore dell'archivio regole dispone del privilegio per la definizione di un gruppo di autorizzazioni per gli elementi salvati nell'archivio regole. Tra i due tipi di utente a cui l'amministratore dell'archivio regole può appartenere esistono tuttavia alcune differenze, come indicato di seguito:
Quando l'amministratore dell'archivio regole è un utente Windows, ovvero per la connessione all'archivio regole viene utilizzata l'autenticazione Windows, l'amministratore dell'archivio regole può definire un gruppo di autorizzazioni il cui utente è un gruppo di Windows o un utente Windows.
Quando l'amministratore dell'archivio regole è un utente SQL, ovvero per la connessione all'archivio regole viene utilizzata l'autenticazione SQL, l'amministratore dell'archivio regole non può definire un gruppo di autorizzazioni il cui utente è un gruppo di Windows, ma può definire un gruppo di autorizzazioni il cui utente è un utente Windows.
Associazione di un gruppo di autorizzazioni a un elemento non consentita se l'utente non dispone dei diritti necessari
Un creatore di elementi che non è né un utente dbo SQL né un membro del gruppo RE_ADMIN_USERS e che non dispone dell'autorizzazione MODIFY_DELETE per un elemento non può associare un nuovo gruppo di autorizzazioni all'elemento. Un esempio di questo comportamento viene illustrato nel seguente scenario:
Il creatore del set di regole non è un utente dbo, non appartiene al gruppo RE_ADMIN_USERS e non dispone dell'autorizzazione MODIFY_DELETE dopo la creazione del set di regole.
Il creatore crea un set di regole.
Il membro del gruppo RE_ADMIN_USERS crea il gruppo di autorizzazioni AG1 con l'autorizzazione MODIFY_DELETE per User2.
Il creatore associa AG1 al set di regole.
L'autorizzazione per l'archivio regole viene attivata.
Il membro del gruppo RE_ADMIN_USERS crea il gruppo di autorizzazioni AG2 con l'autorizzazione READ_EXECUTE per User2.
Il creatore associa AG2 al set di regole. Sebbene il creatore non disponga dei diritti sufficienti per l'esecuzione di questa operazione, non viene visualizzato alcun messaggio di errore.
Il tentativo di lettura del set di regole da parte di User2 non riesce.