BASE DE CONNAISSANCES

Blocage ou autorisation des scripts non sûrs dans Tableau Server


Date de publication : 16 Mar 2017
Date de dernière modification : 24 Aug 2022

Problème

Lorsque vous utilisez un classeur Tableau qui obtient ses données d'une source de données SQL ou d'un serveur Rserve, vous pouvez créer des calculs avec des expressions qui sont envoyées directement à la source de données, et appelées expressions de passage direct. Ces types d'expressions sont décrits dans la documentation Tableau Desktop suivante :

Les fonctions de passage direct sont celles dont les noms commencent par RAWSQL_ ou SCRIPT_.

Dans certains cas, les expressions de passage direct pourraient être des vecteurs d'attaques par injection SQL, c'est-à-dire qu'un intrus pourrait y inclure des commandes malveillantes en tant que valeurs. Ceci peut se produire lorsque le classeur contient un calcul qui satisfait tous les critères suivants :

  • Le calcul comprend une fonction SCRIPT_ ou RAWSQL_.

  • L'expression utilise une valeur qui est transmise au calcul depuis un paramètre dans le classeur.

  • Le paramètre est saisi en tant qu'une chaîne.

  • Le paramètre est le premier paramètre passé au calcul.

  • Le paramètre n'est pas compris entre guillemets.

Par exemple, dans l'expression suivante, Parameter 1 pourrait être conçu pour contenir une valeur de chaîne, comme petite, moyenne ou grande.

RAWSQL_STR([Parameter 1])

Toutefois, s'il peut définir la valeur de Parameter 1 sur un texte arbitraire, cet utilisateur peut potentiellement créer une attaque par injection SQL.

Étant donné qu'une expression comme celle-ci pourrait potentiellemment inclure des commandes malveillantes, elle est appelée un script non sécurisé.

Notez le dernier critère, que les scripts non sécurisés comprennent des paramètres qui n'ont pas de guillemets. Observez l'exemple suivant :

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

Cet exemple ne constitue pas un script non sûr parce que la valeur de Parameter 1 est incluse entre guillemets, donc SQL ne traite pas la valeur comme une commande.

Environnement

  • Tableau Server

Résolution

Autoriser les scripts non sécurisés lors de la publication dans Tableau Server

Tableau Server versions 2018.2 et versions plus récentes (post-TSM)

Vous pouvez autoriser les utilisateurs à publier des classeurs contenant des scripts non sûrs à l'aide de la commande tsm configuration set  suivante :

tsm configuration set vizqlserver.allow_insecure_scripts true

Versions de Tableau Server antérieures à 2018.2 (pré-TSM)

Vous pouvez autoriser les utilisateurs à publier des classeurs contenant des scripts non sûrs à l'aide de la commande tabadmin set suivante :

tabadmin set vizqlserver.allow_insecure_scripts true

Cause

Par défaut, les utilisateurs ne sont pas autorisés à publier un classeur dans Tableau Server qui contient un script non sécurisé, c'est-à-dire un classeur contenant un calcul qui satisfait tous les critères décrits précédemment. Lorsque les utilisateurs essaient de publier le classeur, ils voient la réponse suivante du serveur :

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

La publication est bloquée, que les utilisateurs tentent de publier à l'aide de Tableau Desktop, de la commande tabcmd publish ou de Publier un classeur dans l'API REST.
 

    Informations supplémentaires

    Remarques concernant l'activation ou la désactivation de scripts non sécurisés sur Tableau Server

    Le réglage vizqlserver.allow_insecure_scripts est conçu pour les scénarios où un utilisateur peut tenter d'utiliser une valeur de paramètre pour envoyer des commandes SQL ou Rserve non autorisées. Pour aider à sécuriser les installations Tableau Server, le paramètre par défaut est false. Ainsi, les utilisateurs ne peuvent pas publier de classeurs avec des scripts non sécurisés. Obsevez les points suivants sur le paramètre vizqlserver.allow_insecure_scripts :

    • Si vos utilisateurs ne créent jamais d'expressions SQL ou R personnalisées, vous pouvez veiller à ce que vizqlserver.allow_insecure_scripts soit défini sur false sans incidence sur la capacité de vos utilisateurs à publier des classeurs.

    • Si vos utilisateurs créent des calculs incluant des expressions SQL ou R personnalisées, mais que vous ne pensez pas que d'autres utilisateurs peuvent tenter de transmettre des commandes à la source de données, vous pouvez activer la publication de scripts non sûrs (c'est-à-dire définir vizqlserver.allow_insecure_scripts sur true).

    • Le paramètre vizqlserver.allow_insecure_scripts s'applique à une installation Tableau Server dans son ensemble. Si ce paramètre est false, la publication de classeurs contenant des scripts non sécurisés est bloquée pour tous les sites et projets sur le serveur.

    • Tableau Public et Tableau Cloud n'autorisent pas les calculs incluant des expressions avec des fonctions qui commencent par RAW ou SCRIPT_. Par conséquent, la valeur par défaut vizqlserver.allow_insecure_scripts de false n'affecte pas ces produits.
       
    • Ce message d'erreur s'affichera également sur Tableau Server directement si le paramètre vizqlserver.allow_insecure_scripts est modifié sur False puis tente d'accéder à un classeur qui a été publié avec des scripts non sûrs avant la modification du paramètre.


    Discuter de cet article... Forum de commentaires
    Cet article vous a-t-il permis de résoudre le problème ?