KNOWLEDGE BASE

Sperren oder Zulassen von unsicheren Skripts in Tableau Server


Veröffentlicht: 16 Mar 2017
Zuletzt geändert am: 13 Jun 2023

Problem

Wenn eine Tableau-Arbeitsmappe die Daten aus einer SQL-basierten Datenquelle oder von einem Rserve-Server erhält, können Sie Berechnungen mit Ausdrücken erstellen, die dann direkt an die Datenquelle gesendet werden (Pass-through-Ausdrücke). Diese Arten von Ausdrücken werden in der folgenden Dokumentation zu Tableau Desktop beschrieben:

Die Pass-Through-Funktionen sind daran erkennbar, dass ihr Name mit RAWSQL_ oder SCRIPT_ beginnt.

Unter bestimmten Umständen werden Pass-through-Ausdrücke als Vektoren für SQL-Injection-Angriffe herangezogen, bei denen ein Angreifer böswillige Befehle als Werte in die Skripten angibt. Dieser Fall kann eintreten, wenn eine Berechnung in der Arbeitsmappe alle folgenden Kriterien erfüllt:

  • Die Berechnung enthält eine Funktion SCRIPT_ oder RAWSQL_.

  • Der Ausdruck verwendet einen Wert, der über einen Parameter in der Arbeitsmappe an die Berechnung übergeben wird.

  • Der Parameter ist als Zeichenfolge angegeben.

  • Der Parameter ist der erste Parameter, der an die Berechnung übergeben wird.

  • Der Parameter ist nicht in Anführungszeichen eingeschlossen.

Im nachfolgenden Ausdruck soll Parameter 1 beispielsweise einen Zeichenfolgenwert (z. B. klein, mittel oder groß) enthalten.

RAWSQL_STR([Parameter 1])

Wenn ein Benutzer jedoch in der Lage ist, einen beliebigen Text als Wert für Parameter 1 festzulegen, kann dieser Benutzer potenziell einen SQL-Injection-Angriff zusammenstellen.

Ein solcher Ausdruck, der potenziell böswillige Befehle enthalten kann, wird daher als unsicheres Skript bezeichnet.

Beachten Sie das letzte Kriterium: Unsichere Skripten enthalten Parameter ohne Anführungszeichen. Ein Beispiel:

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

Dieses Beispiel ist kein unsicheres Skript, da der Wert für Parameter 1 in Anführungszeichen eingeschlossen ist; SQL behandelt den Wert also nicht als Befehl.

Umgebung

  • Tableau Server

Lösung

Zulassen von unsicheren Skripten beim Veröffentlichen in Tableau Server

Tableau Server 2018.2 und neuere Versionen (Post-TSM)

Sie können Nutzern das Veröffentlichen von Arbeitsmappen erlauben, die unsichere Skripte enthalten. Nutzen Sie dafür den folgenden tsm configuration set-Befehl:

tsm configuration set vizqlserver.allow_insecure_scripts true

Tableau Server-Versionen vor 2018.2 (Pre-TSM)

Mit dem folgenden tabadmin-Befehl "set" geben Sie an, dass die Benutzer auch Arbeitsmappen mit unsicheren Skripten veröffentlichen dürfen:

tabadmin set vizqlserver.allow_insecure_scripts true

Ursache

Standardmäßig dürfen die Benutzer keine Arbeitsmappe in Tableau Server veröffentlichen, die ein unsicheres Skript enthält, also eine Arbeitsmappe mit einer Berechnung, die alle oben beschriebenen Kriterien erfüllt . Wenn die Benutzer versuchen, die Arbeitsmappe zu veröffentlichen, gibt der Server Folgendes zurück:

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

Die Veröffentlichung wird in jedem Fall gesperrt, also sowohl über Tableau Desktop als auch mit dem Befehl tabcmd publish und mit dem Befehl Arbeitsmappe veröffentlichen in der REST-API.
 

    Zusätzliche Informationen

    Hinweise zum Aktivieren und Deaktivieren von unsicheren Skripten in Tableau Server

    Die Einstellung vizqlserver.allow_insecure_scripts ist für den Fall vorgesehen, dass der Benutzer versucht, unautorisierte SQL- oder Rserve-Befehle über einen Parameterwert zu senden. Zum Schutz der Tableau Server-Installationen lautet die Standardeinstellung false; die Benutzer dürfen also keine Arbeitsmappen mit unsicheren Skripten veröffentlichen. Bei der Einstellung vizqlserver.allow_insecure_scripts ist Folgendes zu beachten:

    • Wenn die Benutzer keine benutzerdefinierten SQL- oder R-Ausdrücke erstellen, kann vizqlserver.allow_insecure_scripts dauerhaft auf false eingestellt sein, ohne dass die Benutzer daran gehindert werden, Arbeitsmappen zu veröffentlichen.

    • Wenn Ihre Benutzer Berechnungen mit benutzerdefinierten SQL- oder R-Ausdrücken erstellen und Sie der Meinung sind, dass nicht auch andere Benutzer versuchen, Befehle an die Datenquelle zu übergeben, können Sie die Veröffentlichung von unsicheren Skripten zulassen (vizqlserver.allow_insecure_scripts auf true einstellen).

    • Die Einstellung vizqlserver.allow_insecure_scripts gilt für die gesamte Tableau Server-Installation. Wenn diese Einstellung auf false festgelegt ist, ist das Veröffentlichen von Arbeitsmappen mit unsicheren Skripten für sämtliche Sites und Projekte auf dem Server gesperrt.

    • In Tableau Public und Tableau Cloud sind Berechnungen mit Ausdrücken nicht zulässig, deren Funktionen mit RAW oder SCRIPT_ beginnen. Die Standardeinstellung false für vizqlserver.allow_insecure_scripts wirkt sich daher nicht auf diese Produkte aus.
       
    • Diese Fehlermeldung wird auch direkt auf Tableau Server angezeigt, wenn die Einstellung vizqlserver.allow_insecure_scripts in "False" geändert wird und Sie anschließend versuchen, auf eine Arbeitsmappe zuzugreifen, die mit unsicheren Skripten vor dem Ändern der Einstellungen veröffentlicht wurde.


     
    Hat dieser Artikel das Problem gelöst?