Riduzione del rischio di minacce e della vulnerabilità (Reporting Services)
In questo argomento vengono illustrate le tecniche e le strategie per la riduzione del rischio di minacce a una distribuzione di Reporting Services.
Panoramica
Un server di report è un server senza stato che consente di archiviare esternamente dati del contenuto e dell'applicazione. Una delle minacce più rilevanti a un'installazione del server di report consiste nell'accesso non autorizzato o nella manomissione dei file di configurazione e di database del server stesso. Una minaccia meno evidente ma di uguale importanza è correlata alla modalità di creazione dei report e agli utenti che dispongono dell'autorizzazione per la pubblicazione del contenuto in un server di report. Le definizioni dei report sono assembly che vengono eseguiti con un livello di attendibilità totale in un computer server e possono contenere altri assembly personalizzati, anch'essi eseguiti nel server. Se il report o un assembly personalizzato contiene malware, questo verrà eseguito nel computer del server di report con le credenziali dell'utente che ha richiesto il report. Altre minacce meno evidenti possono presentarsi durante la progettazione di un report in cui vengano esposti in modo non intenzionale dati sensibili. Un dipendente che esegue un report, in cui come parametro viene utilizzato un ID dipendente, non dovrebbe ad esempio essere in grado di visualizzare le informazioni relative a un altro dipendente inserendo un ID casuale nell'URL del report. Si considerino infine le procedure di distribuzione dei report in un'organizzazione. È possibile configurare un server di report in modo da limitare la distribuzione dei report al di fuori dell'organizzazione, nonché utilizzare autorizzazioni sul file system e sul server di report per assicurarsi che solo utenti autorizzati possano aprire un report.
Nelle sezioni seguenti di questo argomento vengono illustrate ulteriori minacce e viene indicato come ridurre il rischio di un vero e proprio exploit.
Riduzione del rischio di un attacco in un server di report
Nella tabella seguente vengono illustrate le minacce e le strategie di riduzione del rischio che influiscono sui componenti server e sulle impostazioni di configurazione.
Caratteristica o operazione |
Minaccia |
Strategia di riduzione del rischio |
---|---|---|
Le impostazioni di configurazione sono archiviate nei file di configurazione dell'applicazione e nel file Web.config sul computer del server di report. |
L'autore dell'attacco potrebbe accedere al computer, individuare un file di configurazione non protetto o non crittografato e manometterlo. |
Impostare le autorizzazioni sul file. Per impostazione predefinita, le autorizzazioni vengono concesse a gruppi di sicurezza di Reporting Services creati durante l'installazione. |
Il servizio Web Report Server elabora richieste su richiesta inviate su connessioni TCP/IP. |
L'autore dell'attacco potrebbe avviare un attacco Denial of Service con le caratteristiche seguenti: A un server di destinazione vengono indirizzate più richieste non autenticate. A un server di destinazione vengono indirizzate richieste incomplete che non vengono mai completate. Le dimensioni delle richieste sono eccessive; l'autore dell'attacco avvia una richiesta, quindi invia un payload di grandi dimensioni al server. |
Il server di report elimina tutte le richieste non autenticate nell'arco di due minuti riducendo in tal modo alcuni degli effetti dell'attacco Denial of Service. L'intervallo di due minuti è predefinito. Non è possibile ridurlo. Se l'attacco è basato sulle operazioni di caricamento sul server di report, è possibile ridurre il valore dell'elemento maxRequestLength nel file Machine.config. Per impostazione predefinita, in ASP.NET esiste un limite in megabyte (MB) per gli elementi che possono essere caricati in un'applicazione server. Si noti che la riduzione del valore di maxRequestLength deve essere temporanea. È infatti necessario ripristinare il valore precedente se è pratica comune caricare file di grandi dimensioni come i modelli. Per ulteriori informazioni sull'impostazione di maxRequestLength in un'installazione di Reporting Services, vedere Limiti delle dimensioni di report e snapshot. |
Reporting Services supporta un'architettura estensibile che consente di distribuire estensioni per il recapito, il rendering e l'elaborazione dati di terze parti. È inoltre possibile distribuire finestre Progettazione query personalizzate. Le estensioni devono essere eseguite con un livello di attendibilità totale. |
L'autore dell'attacco potrebbe inserire malware in un'estensione personalizzata. |
Distribuire solo le estensioni di utenti o organizzazioni ritenuti attendibili. |
Riduzione del rischio di minacce per le definizioni e i modelli di report
Nella tabella seguente vengono illustrate le minacce e le strategie di riduzione del rischio che influiscono sui file dei modelli e sulle definizioni di report.
Caratteristica o operazione |
Minaccia |
Strategia di riduzione del rischio |
---|---|---|
Pubblicazione di report, modelli e origini dati condivise in un server di report. I report e i modelli si connettono a origini dati esterne ed eseguono query su di esse. |
Intercettazione di report, modelli e origini dati condivise durante un'operazione di pubblicazione. Intercettazione di richieste in transito verso un computer esterno. |
Utilizzare un canale crittografato protetto, ad esempio SSL/TLS/IPsec, per la connessione. Per la sicurezza dei canali è necessario utilizzare le tecnologie di crittografia. Prima dell'invio, informare gli utenti che il canale non è protetto. |
Per stabilire una connessione a origini dati o computer remoti vengono utilizzati i token o le credenziali di autenticazione. |
Intercettazione dei dati di autenticazione durante l'elaborazione di una richiesta. |
Utilizzare un canale crittografato protetto. Informare l'utente se il canale non è protetto. Seguire il principio dell'autorizzazione minima. Il recupero dei dati utilizzati in un report richiede autorizzazioni di sola lettura sulle origini dati. |
Nella barra degli indirizzi della finestra del browser sono visualizzati valori di parametro per gli URL dei report. |
Se un report contiene dati sensibili, non aggiungere valori di parametro che possano essere manomessi nell'URL. Se, ad esempio, un report con parametri include un ID dipendente, un utente può inserire un ID dipendente casuale nell'URL per visualizzare i dati destinati ad altri utenti. |
Prima di pubblicare un report per la distribuzione finale, controllarne l'URL per verificare se è possibile che i valori di parametro vengano sostituiti con valori casuali. Quando si progettano report, si tenga presente che ai parametri delle impostazioni non sono associate autorizzazioni. Sono disponibili due strategie di riduzione del rischio:
|
I report e i modelli contengono query e informazioni sulle origini dati. |
La divulgazione delle informazioni su un'origine dati o sulla relativa struttura fornisce all'autore dell'attacco informazioni interne che può utilizzare a proprio favore. |
Prima di consentire a un utente di modificare un modello di report, impostare la sicurezza degli elementi che lo compongono in modo da limitare l'accesso a quelli per i quali si desidera impedire la visualizzazione da parte dell'utente in Progettazione modelli. Impostare le autorizzazioni sui file, tra i quali file con estensione rdl, rds, smdl, ds, dsv e smgl. Per impostazione predefinita, i file archiviati in locale nella cartella di un utente sono accessibili solo ad account e gruppi di utenti definiti nel computer locale se il sistema operativo è Windows XP o versione successiva. |
Le definizioni dei report e le origini dati condivise contengono le stringhe di connessione all'origine dati. In una stringa di connessione è possibile includere le credenziali. |
L'autore dell'attacco potrebbe accedere alle credenziali del database archiviate nelle stringhe di connessione al database se i file di report sono compromessi. |
Archiviare le credenziali separatamente rispetto alla stringa di connessione. È possibile utilizzare l'opzione delle credenziali archiviate nelle pagine delle proprietà dell'origine dati per crittografare e archiviare un account utente e una password. |
I report e i modelli vengono elaborati su richiesta. I report possono contenere assembly personalizzati o fare riferimento a essi. I report possono contenere elementi personalizzati o controlli di terze parti. I controlli degli elementi del report personalizzati richiedono attendibilità totale. |
L'autore dell'attacco induce un utente a eseguire un report che utilizza query di database o codice di Visual Basic incorporato per eseguire codice arbitrario con le autorizzazioni dell'utente. L'esecuzione di un report o di un modello alterato può provocare sovraccarichi del buffer, arresti anomali di un server o conseguenze più gravi. |
Limitare il numero di utenti che dispongono delle autorizzazioni per pubblicare report e modelli. Assicurarsi che solo gli utenti autenticati dispongano delle autorizzazioni per caricare i file. Assicurarsi che gli utenti che creano report conoscano le procedure per la creazione di script in grado di resistere ad attacchi intrusivi nel codice SQL, negli script e nel codice HTML. Caricare o pubblicare report e modelli solo di persone ritenute attendibili. Installare o utilizzare solo controlli di elementi di report personalizzati di persone ritenute attendibili. Esaminare i file prima di caricarli per verificare la validità di eventuali riferimenti ad assembly personalizzati. Impostare le autorizzazioni file sugli assembly in modo che non possano essere sovrascritte da utenti malintenzionati. |
Se si visualizza l'anteprima di un report o di un modello nella scheda Anteprima di Progettazione report, vengono creati dei dati nella cache che possono essere recuperati utilizzando le credenziali dell'autore. |
È possibile che visualizzando l'anteprima di un report sul computer dell'autore altri utenti riescano ad accedere a dati del report cui altrimenti non avrebbero accesso. |
Al termine della progettazione di un report, distribuirlo in una posizione o in un server di prova. |
Per ulteriori informazioni, vedere sicurezza di report e risorse.
Procedura generale per la riduzione del rischio di minacce e della vulnerabilità
Attenersi alle procedure consigliate indicate di seguito per migliorare la sicurezza complessiva delle distribuzioni relative ai server di report:
Disattivare le caratteristiche non utilizzate per ridurre la superficie di attacco. Per ulteriori informazioni, vedere Procedura: Attivazione o disattivazione delle caratteristiche di Reporting Services.
Utilizzare SSL per le connessioni a server di report. Per ulteriori informazioni, vedere Configurazione di un server di report per le connessioni SSL (Secure Sockets Layer).
Creare una gerarchia di cartelle che supporti criteri di autorizzazione affidabili posizionando i report riservati nelle cartelle situate nelle diramazioni meno raggiungibili della gerarchia, ovvero all'interno di cartelle accessibili a un set limitato di utenti. I report, i modelli, le origini dati condivise e le risorse pubblicati in un server di report vengono protetti mediante le assegnazioni di ruolo create in cartelle ed elementi specifici nel sito del server di report. Poiché la gerarchia di cartelle è completamente definita dall'utente, è necessario creare una gerarchia che raggruppi elementi con autorizzazioni di accesso utente simili. Per ulteriori informazioni, vedere Protezione delle cartelle.
Tenere presente che i report su richiesta sono assembly compilati eseguiti con un livello di attendibilità totale in un server di report con le credenziali dell'utente che apre il report. Gli utenti dei report che eseguono l'accesso utilizzando le credenziali dell'amministratore di dominio o locale e successivamente aprono un report contenente uno script dannoso eseguiranno inavvertitamente lo script in oggetto con le autorizzazioni dell'amministratore. Incoraggiare gli utenti a utilizzare account con privilegi minimi quando visualizzano i report. Per ulteriori informazioni, vedere Protezione integrata e autorizzazioni elevate.
Conoscere le modalità di recupero e utilizzo dei dati di un report. Se un report contiene dati sensibili, utilizzare i modelli come origine dati in modo che sia possibile applicare filtri di sicurezza e sicurezza degli elementi dei modelli. Per ulteriori informazioni, vedere Esercitazione: Applicazione di filtri di sicurezza agli elementi dei modelli di report.
Conoscere le modalità di distribuzione del report. Le caratteristiche di sottoscrizione e recapito sono potenti tecniche per l'automatizzazione dell'elaborazione dei report e la distribuzione dei report generati, ma per evitare l'accesso non autorizzato è necessario controllare gli utenti che dispongono di autorizzazioni di condivisione per le cartelle di rete e valutare le impostazioni di configurazione della posta elettronica del server di report per determinare se sia necessario limitare la distribuzione della posta elettronica. Per ulteriori informazioni, vedere Controllo della distribuzione dei report.