KNOWLEDGE BASE

Blocco o autorizzazione di script non sicuri in Tableau Server


Pubblicato: 16 Mar 2017
Data dell'ultima modifica: 23 Apr 2020

Problema

Quando lavori con una cartella di lavoro di Tableau che acquisisce i dati da un'origine dati basata su SQL o da un server Rserve, puoi creare calcoli con espressioni che vengono inviate direttamente all'origine dati, ossia le espressioni pass-through. Questi tipi di espressioni sono descritti nella documentazione di Tableau Desktop seguente:

Le funzioni pass-through sono quelle il cui nome inizia con RAWSQL_ o SCRIPT_.

In alcune circostanze, le espressioni pass-through potrebbero essere i vettori di attacchi SQL injection: ciò che significa che un utente malintenzionato potrebbe essere in grado di includere comandi maligni nelle espressioni pass-through come valori. Questo può verificarsi quando la cartella di lavoro contiene un calcolo che soddisfa tutti questi criteri:

  • Il calcolo include una funzione SCRIPT_ or RAWSQL_.

  • L'espressione usa un valore che viene passato al calcolo da un parametro nella cartella di lavoro.

  • Il parametro è digitato come stringa.

  • Il parametro è il primo parametro che viene passato al calcolo.

  • Il parametro non è contenuto tra punti interrogativi.

Ad esempio, nella seguente espressione, si potrebbe interpretare che Parameter 1 contiene un valore di stringa come piccolo, medio o grande.

RAWSQL_STR([Parameter 1])

Tuttavia, se un utente potesse impostare il valore di Parameter 1 su un testo arbitrario, potrebbe potenzialmente creare un attacco SQL injection.

Poiché un'espressione come questa potrebbe comprendere comandi dannosi, viene definita script non sicuro.

Nota sull'ultimo criterio: gli script non sicuri includono parametri non compresi tra punti interrogativi. Considera l'esempio seguente:

RAWSQL_BOOL("%1", [Parameter 1])

Questo esempio non costituisce uno script non sicuro, perché il valore di Parameter 1 è compreso tra punti interrogativi, quindi SQL non tratta il valore come un comando.

Ambiente

  • Tableau Server

Soluzione

Autorizzazione degli script non sicuri durante la pubblicazione su Tableau Server

Tableau Server versioni 2018.2 e successive (post-TSM)

Puoi consentire agli utenti di pubblicare cartelle di lavoro che contengono script non sicuri usando il comando tsm configuration set seguente:

tsm configuration set vizqlserver.allow_insecure_scripts true

Versioni di Tableau Server precedenti alla 2018.2 (pre-TSM)

Puoi consentire agli utenti di pubblicare cartelle di lavoro che contengono script non sicuri usando il comando tabadmin set seguente:

tabadmin set vizqlserver.allow_insecure_scripts true

Causa

Per impostazione predefinita, agli utenti non è consentito pubblicare su Tableau Server una cartella di lavoro che contiene uno script non sicuro, ossia una cartella di lavoro che contiene un calcolo che soddisfa tutti i criteri descritti in precedenza. Quando gli utenti cercano di pubblicare la cartella di lavoro, riscontrano le risposta seguente dal server:

"This worksheet contains custom user scripts or SQL with injectable string parameters, which may be vulnerable on the target platform."

Se gli utenti cercano di pubblicare usando Tableau Desktop, il comando di pubblicazione tabcmd o Pubblica cartella di lavoro nell'API REST.
 

    Ulteriori informazioni

    Note sull'attivazione o disattivazione degli script non sicuri su Tableau Server

    L'impostazione vizqlserver.allow_insecure_scripts è progettata per scenari in cui un utente cerca di usare un valore parametro per inviare SQL non autorizzate o comandi Rserve. Affinché le installazioni di Tableau Server siano sicure, l'impostazione predefinita è false, così l'utente non può pubblicare cartelle di lavoro con script non sicuri. Considera i seguenti punti dell'impostazione vizqlserver.allow_insecure_scripts:

    • Se i tuoi utenti non creano mai espressioni SQL o R personalizzate, puoi assicurarti che vizqlserver.allow_insecure_scripts sia impostato su false senza che questo impedisca ai tuoi utenti di pubblicare cartelle di lavoro.

    • Se i tuoi utenti creano calcoli che includono SQL personalizzato o espressioni R, ma non hai motivo di credere che altri utenti possano cercare di passare i comandi all'origine dati, puoi attivare la pubblicazione di script non sicuri (ossia, impostare vizqlserver.allow_insecure_scripts su true).

    • L'impostazione vizqlserver.allow_insecure_scripts si applica all'installazione di Tableau Server nella sua totalità. Se questa impostazione è false, la pubblicazione di cartelle di lavoro che contengono script non sicuri è bloccata per tutti i siti e i progetti sul server.

    • Tableau Public e Tableau Online non permettono di eseguire calcoli che includono espressioni con funzioni che iniziano con RAW o SCRIPT_. Pertanto, il valore predefinito false di vizqlserver.allow_insecure_scripts non ha alcun impatto su quei prodotti.
       
    • Questo messaggio di errore apparirà anche direttamente in Tableau Server se si configura l'impostazione vizqlserver.allow_insecure_scripts su false, quindi si tenta di accedere a una cartella di lavoro che è stata pubblicata con script non sicuri prima della modifica dell'impostazione.


    Commenta questo articolo... Feedback Forum
    Con questo articolo hai risolto il problema?