기술 자료

Tableau Server에서 비보안 스크립트 차단 또는 허용


게시 날짜: 16 Mar 2017
마지막 수정 날짜: 09 Dec 2022

문제

SQL 기반 데이터 원본이나 Rserve 서버에서 데이터를 가져오는 Tableau 통합 문서로 작업할 때 데이터 원본으로 직접 전송되는 식을 포함하는 계산을 만들 수 있습니다. 이는 통과 식(pass-through expression)이라고 합니다. 이러한 유형의 식에 대해서는 다음 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 Cloud에서는 식에 RAW 또는 SCRIPT_로 시작하는 함수가 있는 계산을 허용하지 않습니다. 따라서 vizqlserver.allow_insecure_scripts가 기본값인 false로 설정되어 있어도 이러한 제품은 영향을 받지 않습니다.
       
    • vizqlserver.allow_insecure_scripts 설정이 false로 변경되고 설정이 변경되기 전에 안전하지 않은 스크립트로 게시된 통합 문서에 액세스하려고 하면 Tableau Server에 이 오류 메시지가 직접 나타납니다.


    이 문서에 대한 논의... 피드백 포럼
    이 문서로 문제가 해결되었습니까?