ナレッジベース

Tableau Server での安全でないスクリプトのブロック/許可


発行: 16 Mar 2017
最終修正日: 23 Apr 2020

問題

SQL ベースのデータ ソースまたは Rserve サーバーからデータを取得する Tableau ワークブックで作業を行う場合、データ ソースへ直接送信される式 (パススルー式) を使用して計算を作成できます。これらのタイプの式の説明は、次の Tableau Desktop ドキュメントに記載されています。

パススルー関数は名前が RAWSQL_ または SCRIPT_ で始まります。

特定の状況では、パススルー式が SQL インジェクション攻撃のためのベクターとなる可能性があります。つまり、攻撃者がそれらに不正なコマンドを値として含めることができる可能性があります。このようなことは、これらの条件をすべて満たす計算がワークブックに含まれる場合に発生する可能性があります。

  • 計算には SCRIPT_ または RAWSQL_ 関数が含まれている。

  • 式が、ワークブックのパラメーターから計算へパスされる値を使用する。

  • パラメーターが文字列として入力される。

  • パラメーターは計算にパスされる最初のパラメーターである。

  • パラメーターが引用符で囲まれていない。

たとえば、次の式では、Parameter 1 に small、medium、または large などの文字列値を含むように意図されている場合があります。

RAWSQL_STR([Parameter 1])

ただし、ユーザーが Parameter 1 の値を任意のテキストに設定可能な場合、そのユーザーは潜在的に SQL インジェクション攻撃を作成する可能性があります。

このような式には不正なコマンドが含まれる可能性があるため、安全でないスクリプトと呼ばれます。

最後の条件に注意してください。安全でないパラメーターには引用符のないパラメーターが含まれます。次の例を考えてみましょう。

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

この例では、Parameter 1 の値が引用符で囲まれており、SQL が値をコマンドとして処理しないため、安全なスクリプトを構成しています。

環境

  • Tableau Server

解決策

Tableau Server にパブリッシュするときに安全でないスクリプトを許可

Tableau Server 2018.2 以降のバージョン (TSM 後)

次の tsm configuration set コマンドを使用して、ユーザーに対し、安全でないスクリプトを含むワークブックのパブリッシュを許可できます。

tsm configuration set vizqlserver.allow_insecure_scripts true

Tableau Server 2018.2 より前のバージョン (TSM 前)

次の tabadmin set コマンドを使用して、ユーザーに対し、安全でないスクリプトを含むワークブックのパブリッシュを許可できます。

tabadmin set vizqlserver.allow_insecure_scripts true

原因

既定では、ユーザーは安全でないスクリプトを含むワークブック (前述の条件をすべて満たす計算を含むワークブック) を Tableau Server にパブリッシュすることは許可されていません。ユーザーがワークブックをパブリッシュしようとすると、サーバーから次の応答が表示されます。

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

ユーザーが Tableau Desktop を使用して tabcmd publish コマンドをパブリッシュしようとするか、REST API でワークブックをパブリッシュしようとすると、パブリッシュがブロックされます。
 

    詳細情報

    Tableau Server で安全でないスクリプトを有効化または無効化する場合の注意事項

    vizqlserver.allow_insecure_scripts 設定は、ユーザーがパラメーター値を使用して承認されていない SQL コマンドまたは Rserve コマンドを送信しようとするシナリオ向けに設計されています。安全な Tableau Server インストールをサポートするため、ユーザーが安全でないスクリプトを含むワークブックを発行できないよう、既定の設定は false になっています。vizqlserver.allow_insecure_scripts 設定について、次の点を考慮してください:

    • ユーザーがカスタム SQL 式または R 式を作成したことがない場合、ユーザーがワークブックをパブリッシュする能力に影響を与えずに、vizqlserver.allow_insecure_scriptsfalse に設定されていることを確認できます。

    • ユーザーがカスタム SQL 式または R 式を含む計算を作成しても、他のユーザーがデータ ソースへコマンドをパスしようとはしないと確信している場合は、安全でないスクリプトのパブリッシュを有効にする (vizqlserver.allow_insecure_scriptstrue に設定する) ことができます。

    • vizqlserver.allow_insecure_scripts 設定は Tableau Server インストール全体に影響します。設定が false の場合、安全でないスクリプトを含むワークブックのパブリッシュは、サーバー上のすべてのサイトおよびプロジェクトに対してブロックされます。

    • Tableau Public と Tableau Online では、RAWSCRIPT_ で始まる関数の式を含む計算が許可されていません。したがって、vizqlserver.allow_insecure_scripts の既定値 false はこれらの製品には影響しません。
       
    • vizqlserver.allow_insecure_scripts の設定を false に変更し、設定を変更する前に安全でないスクリプトでパブリッシュされたワークブックにアクセスしようとすると、Tableau Server にもこのエラー メッセージが直接表示されます。


    この記事についてディスカッションする... フィードバック フォーラム
    この記事で問題は解決しましたか?