마지막 수정 날짜: 25 Jan 2022
환경
다음 제품 버전 이하는 영향을 받는 것으로 확인되었습니다.- Tableau Prep Builder 2021.4.1, 2021.3.2, 2021.2.2, 2021.1.4, 2020.4.1, 2020.3.3, 2020.2.3, 2020.1.5, 2019.4.2, 2019.3.2, 2019.2.3, 2019.1.4, 2018.3.3
해결 방법
옵션 1: Tableau 업데이트
- 유지 관리 유효 기간이 지나지 않은 고객님의 경우, 영향을 받는 버전(2021년 12월 15일 이전의 모든 제품 릴리스)을 업데이트하지 않았거나 2021년 12월 15일 제품 릴리스로 업데이트한 경우 아래에 나열된 12월 19일 릴리스 중 하나로 업데이트하세요.
2021년 12월 15일 Tableau 제품 릴리스에서 Log4j2 파일을 2.15 버전으로 업데이트했습니다. 아직 진단 또는 보조 구성 요소가 남아 있을 수 있습니다. 취약한 JNDI 조회 기능을 사용하지 않도록 구성을 변경하여 이러한 미해결 구성 요소를 완화했습니다.
- Tableau Prep Builder 2021.4.2
2021년 12월 19일 Tableau Product 릴리스에서 JNDI 조회를 기본적으로 사용하지 않도록 설정하는 Log4j 2.16 릴리스를 통합했습니다. 이 조치는 CVE-2021-44228 및 CVE-2021-45046을 모두 해결합니다.
- Tableau Prep Builder 2021.4.3
2021년 12월 19일 발표된 제품 릴리스로 업데이트하면 현재 CVE-2021-44228 및 CVE-2021-45046에서 식별된 보안 문제를 해결하게 됩니다.
옵션 2: 다음과 같은 경우 옵션 2에 설명된 완화 단계 실행:
- 2021년 12월 15일에 발표된 제품 릴리스로 업데이트했고, 2021년 12월 19일에 발표된 제품 릴리스로 업데이트할 수 없음(이유: 유지 관리 유효 기간이 지남, 회사 업데이트 기간을 벗어남 등)
- 영향을 받는 버전(2021년 12월 15일 이전에 릴리스된 모든 제품 버전)을 사용 중이며 2021년 12월 19일 발표된 제품 릴리스로 업데이트할 수 없음
- 지원되는 버전 2020.1 이상에만 해당함
- CVE-2021-44228 및 CVE-2021-45046에서 확인된 보안 문제를 완전히 해결하려면 최근 제품 릴리스로 업데이트해야 함
Tableau Prep Builder- Windows
1. PowerShell 관리 명령 프롬프트를 열고 다음 명령을 실행합니다.
2. 각 .jar에서 ReadOnly를 사용하지 않도록 설정합니다.
a. Set-ItemProperty 'C:\Program Files\Tableau\Tableau Prep Builder 2021.3\lib\tableau-prep-cli.jar' -Name IsReadOnly -Value $false
b. Set-ItemProperty 'C:\Program Files\Tableau\Tableau Prep Builder 2021.3\resources\app\tableau-1.3\build\Release-x64\jdbcserver.jar' -Name IsReadOnly -Value $false
c. Set-ItemProperty 'C:\Program Files\Tableau\Tableau Prep Builder 2021.3\resources\app\tableau-1.3\build\Release-x64\oauthservice.jar' -Name IsReadOnly -Value $false
3. jars에서 JndiLookup.class를 제거합니다. 사용자의 컴퓨터에서 C:\<pathTo7zip\7z를 7zip의 설치 위치로 바꿉니다.
Get-ChildItem -path 'C:\Program Files\Tableau\Tableau Prep Builder 2021.3' -recurse -filter "*.jar" | Where-Object { $_.Name } | %{C:\<pathTo7zip\7z d $_.FullName *JndiLookup.class -r }
4. 각 .jar을 Read Only로 다시 설정합니다.
a. Set-ItemProperty 'C:\Program Files\Tableau\Tableau Prep Builder 2021.3\lib\tableau-prep-cli.jar' -Name IsReadOnly -Value $true
b. Set-ItemProperty 'C:\Program Files\Tableau\Tableau Prep Builder 2021.3\resources\app\tableau-1.3\build\Release-x64\jdbcserver.jar' -Name IsReadOnly -Value $true
c. Set-ItemProperty 'C:\Program Files\Tableau\Tableau Prep Builder 2021.3\resources\app\tableau-1.3\build\Release-x64\oauthservice.jar' -Name IsReadOnly -Value $true
확인이 필요한 파일이 제거됨:
1) 위 단계를 모두 순서대로 다시 실행합니다.
2) 이 단계를 반복할 때 JndiLookup.class 파일을 제거(3단계)하는 명령의 출력에 “Delete data from archive(아카이브에서 데이터 삭제)” 줄 항목이 없는 경우 클래스가 더 이상 없음을 의미하며, 이 완화 단계가 완료되었다고 간주할 수 있습니다.
예를 들면 다음과 같습니다.
파일이 처음 제거되는 경우, “Delete data from archive line item(아카이브 줄 항목에서 데이터 삭제)”이 표시됩니다.
명령을 두 번째로 실행하면 “Delete data from archive(아카이브에서 데이터 삭제)” 줄 항목이 표시되지 않습니다.
Tableau Prep Builder- Mac
1. sudo zip -d '/Applications/Tableau Prep Builder 2021.4.app/Contents/lib/tableau-prep-cli.jar' org/apache/logging/log4j/core/lookup/JndiLookup.class
2. sudo zip -d '/Applications/Tableau Prep Builder 2021.4.app/Contents/lib/tableau-prep-cli.jar' io/sentry/config/JndiLookup.class
3. sudo zip -d '/Applications/Tableau Prep Builder 2021.4.app/Contents/Resources/app/tableau-1.3/build/Release/oauthservice.jar' org/apache/logging/log4j/core/lookup/JndiLookup.class
4. sudo zip -d '/Applications/Tableau Prep Builder 2021.4.app/Contents/Resources/app/tableau-1.3/build/Release/jdbcserver.jar' org/apache/logging/log4j/core/lookup/JndiLookup.class
참고: 다음 오류 메시지 중 하나를 수신하면 Log4j 클래스 파일이 존재하지 않고 완화가 완료되었음을 의미합니다. 예:
zip warning: name not matched: org/apache/logging/log4j/core/lookup/JndiLookup.class(zip 경고: 이름이 일치하지 않음: org/apache/logging/log4j/core/lookup/JndiLookup.class)
zip error: Nothing to do! (/Applications/Tableau Prep Builder 2020.1.app/Contents/Resources/oauthservice.jar)(zip 오류: 수행할 작업이 없습니다! (/Applications/Tableau Prep Builder 2020.1.app/Contents/Resources/oauthservice.jar))