BASE DE DADOS DE CONHECIMENTO

Bloquear ou permitir scripts inseguros no Tableau Server


Publicado: 16 Mar 2017
Data da última modificação: 09 Dec 2022

Problemas

Quando você utiliza uma pasta de trabalho que recebe dados de uma fonte de dados baseada em SQL ou de um servidor Rserve, é possível criar cálculos com expressões enviadas diretamente à fonte de dados, conhecidas como expressões de passagem. Esses tipos de expressões são descritas nas seguintes documentações do Tableau Desktop:

As funções de passagem são aquelas cujos nomes começam com RAWSQL_ ou SCRIPT_.

Em algumas circunstâncias, as expressões de passagem podem ser vetores para ataques de injeção SQL, ou seja, um ataque pode ser capaz de incluir comandos mal-intencionados nelas como se fossem valores. Isso pode acontecer quando a pasta de trabalho tiver um cálculo que atenda a todos os critérios a seguir:

  • O cálculo inclui uma função SCRIPT_ ou RAWSQL_.

  • A expressão usa um valor passado de um parâmetro na pasta de trabalho para o cálculo.

  • O parâmetro é digitado como uma cadeia de caracteres.

  • O parâmetro é o primeiro parâmetro passado para o cálculo.

  • O parâmetro não está entre aspas.

Por exemplo, na expressão a seguir, Parameter 1 pode ter a intenção de conter um valor de cadeia de caracteres, como pequeno, médio ou grande.

RAWSQL_STR([Parameter 1])

Entretanto, se um usuário puder definir o valor de Parameter 1 como um texto arbitrário, ele poderia criar um ataque de injeção SQL.

Como uma expressão parecida com essa poderia incluir comandos mal-intencionados, ela é chamada de script inseguro.

Observe o último critério: scripts inseguros contêm parâmetros que não estão entre aspas. Veja o exemplo a seguir:

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

Esse exemplo não é um script inseguro, porque o valor de Parameter 1 está entre aspas, então o SQL não trata o valor como um comando.

Ambiente

  • Tableau Server

Resolução

Permitir scripts inseguros ao publicar no Tableau Server

Tableau Server 2018.2 e versões mais recentes (posteriores ao TSM)

Você pode permitir que os usuários publiquem pastas de trabalho que contenham scripts inseguros ao usar o seguinte comando tsm configuration set:

tsm configuration set vizqlserver.allow_insecure_scripts true

Tableau Server versões anteriores a 2018.2 (Pre-TSM)

Permita que os usuários publiquem pastas de trabalho que contenham scripts inseguros com o seguinte comando tabadmin set:

tabadmin set vizqlserver.allow_insecure_scripts true

Causa

Por padrão, os usuários não podem publicar uma pasta de trabalho com script inseguro no Tableau Server; ou seja, uma pasta de trabalho que atenda a todos os critérios descritos anteriormente. Quando os usuários tentam publicar a pasta de trabalho, eles visualizam a seguinte resposta do servidor:

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

A publicação é bloqueada se os usuários estiverem tentando publicar usando o Tableau Desktop, o comando tabcmd publish ou Publicar pasta de trabalho na REST API.
 

    Informações adicionais

    Observações sobre habilitar ou desabilitar scripts inseguros no Tableau Server

    A configuração vizqlserver.allow_insecure_scripts é projetada para cenários em que um usuário pode tentar usar um valor de parâmetro para enviar comandos SQL ou Rserve não autorizados. Para ajudar a proteger as instalações do Tableau Server, a configuração padrão é false, para que os usuários não consigam publicar scripts inseguros. Considere os pontos a seguir sobre a configuração vizqlserver.allow_insecure_scripts:

    • Se os seus usuários não têm o costume de criar expressões SQL ou R personalizadas, você pode verificar se vizqlserver.allow_insecure_scripts está definida como false, sem afetar a capacidade de seus usuários publicarem pastas de trabalho.

    • Se os seus usuários criam cálculos que incluam expressões SQL ou R personalizadas, mas você não acredita que outros usuários possam tentar passar comandos à fonte de dados, você pode habilitar a publicação de scripts inseguros (ou seja, definir vizqlserver.allow_insecure_scripts como true).

    • A configuração vizqlserver.allow_insecure_scripts aplica-se a uma instalação do Tableau Server como um todo. Se essa configuração for false, a publicação de pastas de trabalho que contenham scripts inseguros é bloqueada em todos os sites e projetos no servidor.

    • O Tableau Public e o Tableau Cloud não permitem cálculos que incluam expressões com funções começando com RAW ou SCRIPT_. Portanto, o valor padrão de vizqlserver.allow_insecure_scripts como false não afeta esses produtos.
       
    • Esta mensagem de erro também será mostrada no Tableau Server diretamente se a configuração vizqlserver.allow_insecure_scripts for alterada para false e, em seguida, tentar acessar uma pasta de trabalho que foi publicada com scripts não seguros antes da configuração ser alterada.


    Discuta este artigo... Fórum de comentários
    Este artigo resolveu o problema?