Applies ToMicrosoft SQL Server

요약

Intel, AMD, ARM을 포함하여 많은 최신 프로세서와 운영 체제에 영향을 주는 “예측 실행 부채널 공격”이라는 공개적으로  보고된 취약성 종류가 확인되었습니다.참고  이 문제는 Android, Chrome, iOS, MacOS 같은 다른 시스템에도 영향을 미칩니다. 따라서 해당하는 공급업체로부터 지침을 받는 것이 좋습니다.

Microsoft에서는 이러한 취약성을 완화할 수 있도록 다수의 업데이트를 출시했으며 클라우드 서비스 보호를 위한 조치도 취했습니다. 자세한 내용은 다음 절을 참조하세요.

Microsoft는 이러한 취약성이 현재 고객을 공격하는 데 사용되었음을 나타내는 정보는 접수하지 못했습니다. Microsoft는 고객을 보호하기  위해 칩 제조업체, 하드웨어 OEM, 응용 프로그램 공급업체 등 업계 파트너와 계속 긴밀히 협력하고 있습니다. 제공되는 모든 보호 기능을 활용하려면 하드웨어나 펌웨어 및 소프트웨어를 업데이트해야 합니다. 여기에는 장치 OEM의 마이크로코드가 포함되며, 일부의 경우에는 바이러스 백신 소프트웨어 업데이트도 포함됩니다. 이 취약성에 대한 자세한 내용은  Microsoft 보안 공지 ADV180002를 참조하세요. 이 취약성 종류를 완화하기 위한  일반적인 지침은  예측 실행 부채널 취약성 완화를 위한 일반 지침을 참조하세요.

Microsoft는 2019년 5월에 ADV190013 - 마이크로아키텍처 데이터 샘플링 취약성 완화를 위한 Microsoft 지침을 공개했습니다. SQL Server는 ADV190013에 설명된 문제와 관련된 보안 패치가 없습니다. ADV190013에 영향을 받는 환경에 대한 지침은 본 문서의 권장 사항에서 확인할 수 있습니다. 이 보안 공지는 Intel 프로세서에만 적용됩니다.

업데이트를 구하고 설치하는 방법

이 업데이트는 WSUS(Windows Server Update Services) 또는 Microsoft 업데이트 카탈로그 웹 사이트를 통해서도 제공됩니다. 참고: 이 업데이트는 Windows 업데이트에서 자동으로 다운로드 및 설치되지는 않습니다.

사용 가능한 SQL 패치

게시 시점을 기준으로, 다음과 같은 업데이트된 SQL Server 빌드를 다운로드할 수 있습니다.

서비스 릴리스

4057122 SQL Server 2017 GDR용 보안 업데이트에 대한 설명: 2018년 1월 3일 4058562 SQL Server 2017 RTM CU3용 보안 업데이트 설명: 2018년 1월 3일 4058561 SQL Server 2016 SP1 CU7용 보안 업데이트에 대한 설명: 2018년 1월 3일 4057118 SQL Server 2016 GDR SP1용 보안 업데이트에 대한 설명: 2018년 1월 3일 4058559 SQL Server 2016 CU용 보안 업데이트 설명: 2018년 1월 6일 4058560 SQL Server 2016 GDR용 보안 업데이트에 대한 설명: 2018년 1월 6일 4057117 SQL Server 2014 SP2 CU10용 보안 업데이트에 대한 설명: 2018년 1월 16일 4057120 SQL Server 2014 SP2 GDR용 보안 업데이트에 대한 설명: 2018년 1월 16일 4057116 SQL Server 2012 SP4 GDR용 보안 업데이트에 대한 설명: 2018년 1월 12일 4057115 SQL Server 2012 SP3 GDR용 보안 업데이트에 대한 설명: 2018년 1월 4057121 SQL Server 2012 SP3 CU용 보안 업데이트에 대한 설명: 2018년 1월 4057114 SQL Server 2008 SP4 GDR용 보안 업데이트에 대한 설명: 2018년 1월 6일 4057113 SQL Server 2008 R2 SP3 GDR용 보안 업데이트에 대한 설명: 2018년 1월 6일

이 문서는 업데이트된 빌드를 추가로 사용할 수 있게 되는 대로 업데이트될 예정입니다.

참고

  • Microsoft는 SQL Server를 대상으로 “스펙터(Spectre)” 및 “멜트다운(Meltdown)” 예측 실행 부채널 취약성을 완화하기 위해 필요한 업데이트를 모두 출시했습니다 “사용 가능한 SQL 패치” 절에 나와 있지 않은 “스펙터” 및 “멜트다운” 예측 실행 부채널 취약성에 추가로 노출된 것으로 보고된 사실은 현재까지 없습니다.

  • 모든 후속 SQL Server 2014, SQL Server 2016, SQL Server 2017 서비스 팩 및 누적 업데이트에 픽스가 포함될 예정입니다. 예를 들어 SQL Server 2016 SP2에는 스펙터(Spectre) 및 멜트다운(Meltdown) 픽스가 이미 포함되어 있습니다.

  • Windows 빌드의 경우 사용 가능한 Windows 빌드에 대한 최신 정보는 다음 지침을  참조하세요.

    스펙터/멜트다운 부채널 취약성에 대한 Windows Server 지침

    마이크로아키텍처 데이터 샘플링 취약성에 대한 Windows Server 지침

    Linux 빌드의 경우 Linux 공급업체에  문의하여 특정 Linux 배포판에 해당하는 업데이트된 최신 빌드를 확인하세요.

  • 이러한 SQL Server 업데이트는 스펙터 및 멜트다운 취약성을 최대한 신속하게 해결하기 위해 처음에 Microsoft 다운로드 센터에 기본 제공 모델로 공개되었습니다. 이러한 업데이트는 3월에 Microsoft 업데이트를 통해 제공될 예정이지만 영향을 받는 고객은 Microsoft 업데이트를 통해 제공될 때까지 기다리지 말고 업데이트를 바로 설치하는 것이 좋습니다.

영향을 받는 지원되는 SQL Server 버전

모든 고객은 주기적인 패치 적용 주기의 일부로, 아래 나와 있는 SQL Server 업데이트를 설치하는 것이 좋습니다.  확장 포인트가 차단되어 있고 동일한 서버에서 실행되는 모든 타사 코드가 승인되었으며 신뢰할 수 있는 안전한 환경에서 SQL Server를 실행하는 고객은 이 문제의 영향을 받지 않습니다.

x86 및 x64 프로세서 시스템에서 실행되는 다음 버전의 SQL Server에는 적용 가능한 업데이트가 마련되어 있습니다.

  • SQL Server 2008

  • SQL Server 2008 R2

  • SQL Server 2012

  • SQL Server 2014

  • SQL Server 2016

  • SQL Server 2017

IA64(Microsoft SQL Server 2008)에 대한 영향은 확인되지 않았습니다. Microsoft Analytic Platform Service(APS)는 Microsoft SQL Server 2014 또는 Microsoft SQL Server 2016을 기반으로 하지만 구체적인 영향을 받지는 않습니다. APS와 관련된 몇 가지 일반 지침은 이 문서 뒷부분에 나와 있습니다.

권장 사항

다음 표에는 SQL Server가 실행되는 환경과 사용 중인 기능에 따라 고객이 해야 할 일이 나와 있습니다. 픽스를 프로덕션 환경에 배포하기 전에 일반적인 절차에 따라 배포하여 새 이진 파일을  테스트하는 것이 좋습니다.

시나리오 번호

시나리오 설명

우선 순위 권장 사항

1

Azure SQL Database 및 Data Warehouse

조치를 취할 필요가 없습니다(세부 정보는 여기 참조).

2

SQL Server가 물리적 컴퓨터나 가상 머신에서 실행되고 있음

그리고 다음 중 해당되는 조건이 없음

  • 악의적일 수 있는 코드를 실행하는 다른 응용 프로그램이 같은 컴퓨터에서 함께 호스트됨

  • SQL Server 확장성 인터페이스에서 신뢰할 수 없는 코드를 사용 중임(코드 목록은 이 문서의 뒷부분 참조)

 

CVE 2017-5753으로부터 보호받으려면 모든 OS 업데이트를 설치하는 것이 좋습니다.

마이크로아키텍처 데이터 샘플링 취약성(CVE-2018-12126, CVE-2018-12130, CVE-2018-12127, CVE-2018-11091)으로부터 보호받으려면 모든 OS 업데이트를 설치하는 것이 좋습니다.

KVAS(커널 가상 주소 섀도잉) 및 간접 분기 예측 완화 하드웨어 지원(IBP)은 사용하도록 설정하지 않아도 됩니다(아래 내용  참조). SQL Server 패치는 다음에 예정된 업데이트 기간에 정상적인 패치 적용 정책의 일부로 설치해야 합니다.

이러한 호스트에서도 하이퍼 스레딩을 계속 사용할 수 있습니다.

3

SQL Server가 물리적 컴퓨터나 가상 머신에서 실행되고 있음

그리고 악의적일 수 있는 코드를 실행하는 다른 응용 프로그램이 같은 컴퓨터에서 함께 호스트됨

그리고/또는 SQL Server 확장성 인터페이스에서 신뢰할 수 없는 코드를 사용 중임(코드 목록은 이 문서의 뒷부분 참조)

 

 

 

CVE 2017-5753으로부터 보호받으려면 모든 OS 업데이트를 설치하는 것이 좋습니다.

마이크로아키텍처 데이터 샘플링 취약성(CVE-2018-12126, CVE-2018-12130, CVE-2018-12127, CVE-2018-11091)으로부터 보호받으려면 모든 OS 업데이트를 설치하는 것이 좋습니다.

SQL Server 패치를 적용합니다(아래 설명 참조). 그러면 CVE 2017-5753으로부터 컴퓨터를 보호할 수 있습니다.

KVAS(커널 가상 주소 섀도잉)를 사용하도록 설정하는 것이 좋습니다(아래 설명 참조). 그러면 CVE 2017-5754로부터 컴퓨터를 보호할 수 있습니다.

간접 분기 예측 완화 하드웨어 지원(IBP)을 사용하도록 설정하는 것이 좋습니다(아래 설명 참조). 그러면 CVE 2017-5715로부터 컴퓨터를 보호할 수 있습니다.

Intel 프로세서를 사용 중인 경우 호스트에서 하이퍼 스레딩을 사용하지 않도록 설정하는 것이 좋습니다.

4

SQL Server가 물리적 컴퓨터에서 실행되고 있음

그리고 악의적일 수 있는 코드를 실행하는 다른 응용 프로그램이 같은 컴퓨터에서 함께 호스트되지 않음

그리고 SQL Server 확장성 인터페이스가 신뢰할 수 있는 코드를 실행하는 데 사용되고 있음. 예: 

  • 프로덕션 환경에서 사용하도록 검토/승인된 CLR 어셈블리

  • 세부 조사를 마친 신뢰할 수 있는 쿼리를 안심하고 실행할 수 있는 연결된 서버

예외:

  • 인터넷에서 다운로드한 임시 R/Python 스크립트

  • 신뢰할 수 없는 타사 CLR 이진 파일

CVE 2017-5753으로부터 보호받으려면 모든 OS 업데이트를 설치하는 것이 좋습니다.

마이크로아키텍처 데이터 샘플링 취약성(CVE-2018-12126, CVE-2018-12130, CVE-2018-12127, CVE-2018-11091)으로부터 보호받으려면 모든 OS 업데이트를 설치하는 것이 좋습니다.

KVAS(커널 가상 주소 섀도잉)를 사용하도록 설정하는 것이 좋습니다(아래 설명 참조). 그러면 CVE 2017-5754로부터 컴퓨터를 보호할 수 있습니다.

간접 분기 예측 완화 하드웨어 지원(IBP)을 사용하도록 설정하는 것이 좋습니다(아래 설명 참조). 그러면 CVE 2017-5715로부터 컴퓨터를 보호할 수 있습니다.

Intel 프로세서를 사용 중인 환경에서는 하이퍼 스레딩을 사용하지 않도록 설정하는 것이 좋습니다.

SQL Server 패치는 다음에 예정된 업데이트 기간에 정상적인 패치 적용 정책의 일부로 설치해야 합니다.

5

SQL Server가 Linux OS에서 실행되고 있음

유통업체에서 Linux OS 업데이트를 받아 적용합니다.

Linux SQL Server 패치를 적용합니다(아래 설명 참조). 그러면 CVE 2017-5753으로부터 컴퓨터를 보호할 수 있습니다.

Linux KPTI(커널 페이지 테이블 격리) 및 IBP(CVE 2017-5754 및 CVE 2017-5715)를 사용하도록 설정할지 여부에 대한 지침은 아래 설명을 참조하세요.

위에 설명한 3번 및 4번 시나리오의 경우 Intel 프로세서를 사용 중인 환경에서는 하이퍼 스레딩을 사용하지 않도록 설정하는 것이 좋습니다.

6

Analytics Platform System(APS)

APS가 이 공지에 나와 있는 SQL Server의 확장 기능을 지원하지는 않지만 APS 어플라이언스에 Windows 패치를 설치하는 것이 좋습니다. KVAS/IBP는 사용하도록 설정하지 않아도 됩니다.

성능 공지

따라서 업데이트 적용 시 해당 응용 프로그램의 성능을 직접 평가하는 것이 좋습니다.

모든 고객은 업데이트된 버전의 SQL Server 및 Windows를 설치하는 것이 좋습니다. SQL 작업에 대한 Microsoft의 테스트 결과에 따르면  이 경우 기존 응용 프로그램의 성능에 미치는 영향이 무시할 만한 수준이 되거나 최소화됩니다. 그러나 프로덕션 환경에서 배포하기 전에 모든 업데이트를 테스트하는  것이 좋습니다.

Microsoft에서 여러 환경의 다양한  SQL 작업에 대한 KVAS(커널 가상 주소 섀도잉), KPTI(커널 페이지 테이블 간접 참조) 및 간접 분기 예측 완화(IBP)의 영향을 측정한 결과 일부 작업은 성능이 크게 저하되는 것으로 나타났습니다. 그러므로 이러한 기능을 프로덕션 환경에 배포하기 전에 기능을 사용하도록 설정함에 따라 성능에 발생하는  영향을  테스트하는 것이 좋습니다. 이러한 기능을 사용하도록  설정하면 기존 응용 프로그램의 성능에 매우 큰 영향을 주는 경우 고객은 같은 컴퓨터에서 실행되는 신뢰할 수 없는 코드에서 SQL Server를 격리하는 방식이 응용 프로그램에 더 효율적인 완화 방법인지 여부를 고려할 수 있습니다.

간접 분기 예측 완화 하드웨어 지원(IBP)으로 인한 성능상의 영향과 관련된 자세한 내용은 여기에 자세히 나와 있습니다.

이 절의 내용은 자세한 내용이 공개되는 대로 업데이트될 예정입니다.

KVAS(커널 가상 주소 섀도잉, Windows) 및 KPTI(커널 페이지 테이블 간접 참조, Linux) 사용

KVAS와 KPTI는 CVE 2017-5754(GPZ 공개 정보에는 “멜트다운(Meltdown)” 또는 “세 번째 변종”으로도 나와 있음)로 인한 위험을 완화합니다.

SQL Server는 물리적 컴퓨터, 공용/개인 클라우드 환경의 VM, Linux 및 Windows 시스템 등 여러 환경에서 실행됩니다. 운영 환경에 관계없이 프로그램 자체는  컴퓨터나 VM에서 실행됩니다. 따라서 컴퓨터나 VM을 보안 경계라고 합니다.

경계 내의 모든 코드가 해당 경계의  모든 데이터에 액세스할 수 있다면 별도의 조치를 취할 필요가 없습니다. 그렇지 않은 경우 해당 경계는 다중 테넌트 방식입니다. 이 문서에서 설명하는 취약성이 발생하면 권한이 축소된 코드를 비롯한 모든 코드가 해당 경계의 모든 프로세스에서 실행되어 경계 내의 다른 모든 데이터를 읽을 수 있게 됩니다. 따라서 경계 내에서 신뢰할 수 없는 코드를 실행하는 프로세스는 이러한 취약성을 이용해 다른 프로세스의 데이터를 읽을 수 있습니다. 여기서 신뢰할 수 없는 코드란 SQL Server 확장성 메커니즘을 사용하는 신뢰할 수 없는 코드일 수도 있고  신뢰할 수 없는 코드를 실행 중인 경계 내의 다른 프로세스일 수도 있습니다.

다중 테넌트 경계의 신뢰할 수 없는 코드로부터 컴퓨터를 보호하려면 다음 방법 중 하나를 수행합니다.

  • 신뢰할 수 없는 코드를 제거합니다. SQL Server 확장성 메커니즘의 경우  신뢰할 수 없는 코드를 제거하는 자세한 방법은 아래 설명을 참조하세요. 같은 경계 내의  다른 응용 프로그램에서 신뢰할 수 없는 코드를 제거하려는 경우에는 해당 경계를 두 VM으로 분리하는 등 대개 응용 프로그램별로  변경을 수행해야 합니다.

  • KVAS 또는  KPTI를 설정합니다. 이렇게 하면 성능에 영향이 발생합니다. 자세한 내용은  이 문서 앞에 설명되어 있습니다.

Windows에서 KVAS를 사용하도록  설정하는 방법에 대한 자세한 내용은 KB4072698을 참조하세요. Linux에서 KPTI를 사용하도록  설정하는 방법에 대한 자세한 내용은 운영 체제 총판에  문의하세요.

KVAS 또는 KPTI를 사용하는 것이 좋은 시나리오의 예

시스템 관리자 계정이 아닌 계정으로 SQL Server를 호스트하는 온-프레미스 물리적 컴퓨터를 사용 중인 고객은 SQL Server를 통해 실행되도록 임의의 R 스크립트를 제출할 수 있습니다. SQL Server는 보조 프로세스를 사용하여 sqlservr.exe 외부에서 이러한 스크립트를 실행합니다. Sqlservr.exe 프로세스 내의 데이터 공개와 시스템 커널 메모리 내의 데이터 공개를 방지하려면 KVAS 및 KPTI를 둘 다  사용하도록 설정해야 합니다.참고 SQL Server 내에서 확장성 메커니즘을 사용 중이라고 해서  SQL Server가 자동으로 안전하지 않은 상태가 되는 것은 아닙니다. 고객이 각 종속성을 파악하여 신뢰한다면 이러한 메커니즘을 SQL Server 내에서 안전하게 사용할 수 있습니다. 그뿐 아니라 올바르게 작동하려면 확장성 메커니즘이 필요할 수도 있는 다른 SQL 기반 제품도 있습니다. 예를 들어 SQL Server를 기반으로 하는 패키지형 응용 프로그램의 경우 정상적으로 작동하려면 연결된 서버 또는 CLR 저장 프로시저가 필요할 수 있습니다. 이러한 구성 요소는 완화 작업의  일환으로 제거하지 않는 것이 좋습니다. 대신 각 사용 사례를 검토하여 초기 작업으로  이 코드를 파악하고 신뢰하는지 여부를 확인합니다. 이 지침은 현재 환경 상태가 KVAS를 사용하도록 설정해야  하는 상황(성능상 더 큰 영향을 줌)인지를 고객이 확인하는 데  도움을 주기 위해 제공됩니다.

간접 분기 예측 완화(IBP) 하드웨어 지원 사용

IBP는 CVE 2017-5715(GPZ 공개 정보에는 스펙터(Spectre) 또는 “두 번째 변종”의 두 구성 요소 중 하나로도 나와 있음)로 인한 위험을 완화합니다.

Windows에서 KVAS를  사용하도록 설정하는 이 문서의 지침을 따르는 경우  IBP도 사용하도록 설정됩니다. 그러나 IBP의 경우 하드웨어 제조업체에서 제공하는 펌웨어 업데이트도 설치해야 합니다. 즉, 고객은 Windows에서 보호 기능을 사용하도록 설정하는 KB4072698의  지침을 따라야 할 뿐 아니라 하드웨어 제조업체에서 업데이트도 받아서 설치해야 합니다.

IBP를 사용하는 것이 좋은 시나리오의 예

온-프레미스 물리적 컴퓨터에서 신뢰할 수 없는 사용자가 임의의 JavaScript 코드를 업로드하고 실행하는 데 사용할 수 있는 응용 프로그램을 SQL Server와 함께 호스트하고 있습니다. SQL 데이터베이스에 기밀 데이터가 있는 경우 프로세스 간 정보 공개 방지를 위한 조치로 IBP를 사용하는 것이 좋습니다.

IBP 하드웨어 지원이 제공되지 않는 경우에는 신뢰할 수 없는 프로세스와 신뢰할 수 있는 프로세스를 서로 다른 물리적 컴퓨터나 가상 머신으로 분리하는 것이 좋습니다.

Linux 사용자의 경우에는 운영 체제 총판에 두 번째 변종(CVE 2017-5715) 방지  관련 정보를 문의하세요.

마이크로아키텍처 데이터 샘플링 취약성에 대한 완화 기능을 사용하는 것이 좋은 시나리오의 예

동일한 실제 호스트에 있는 서로 다른 두 가상 머신에서 각기 다른 두 비즈니스 응용 프로그램을 호스트하는 두 SQL Server 인스턴스를 온-프레미스 서버가 실행 중인 예를 고려해 보겠습니다. 이러한 두 비즈니스 응용 프로그램이 SQL Server 인스턴스에서 저장된 데이터를 읽을 수 없어야 한다고 가정할 경우, 이러한 취약성 악용에 성공한 공격자는 컴퓨터에서 별도의 프로세스로 실행되는 신뢰할 수 없는 코드를 사용하거나 SQL Server 확장성 메커니즘을 통해 실행되는 신뢰할 수 없는 코드를 사용하여 트러스트 경계에서 권한 있는 데이터를 읽을 수 있습니다(SQL Server의 확장성 옵션은 아래 섹션 참조). 공유 리소스 환경(예: 일부 클라우드 서비스 구성에 존재하는 환경)에서는 이 취약성으로 인해 한 가상 머신이 다른 가상 머신의 정보에 부적절하게 액세스하는 것이 허용될 수 있습니다. 비탐색 시나리오나 독립 실행형 시스템에서 이 취약성을 이용하려면 공격자가 시스템에 사전에 액세스하거나 대상 시스템에서 특수 제작된 응용 프로그램을 실행할 수 있어야 합니다.

신뢰할 수 없는 SQL Server 확장성 메커니즘

SQL Server에는 여러 가지 확장성 기능 및 메커니즘이 포함되어 있습니다. 이러한 메커니즘은 대부분 기본적으로 사용하지 않도록 설정되지만 고객은 각 프로덕션  인스턴스의 확장성 기능 사용 방식을 검토하는 것이 좋습니다. 그리고 최소한의  이진 파일 집합에서만 이러한 각 기능을 사용하도록 제한하고, 고객은 임의의 코드가 SQL Server와  동일한 컴퓨터에서 실행되지 않도록 액세스를 제한하는 것이 좋습니다. 그와 동시에 각 이진 파일을 신뢰할지 여부를 결정하고  신뢰할 수 없는 이진 파일은 비활성화하거나 제거해야 합니다.

  • SQL CLR 어셈블리

  • SQL Server와 동일한 물리적 컴퓨터에서 독립 실행형 R/Machine Learning Studio를 통해 실행되거나 외부 스크립트 메커니즘을 통해 실행되는 R 및 Python 패키지

  • SQL Server와 동일한 물리적 컴퓨터에서 실행되는 SQL Agent 확장 포인트(ActiveX 스크립트)

  • 연결된 서버에서 사용되는 타사 OLE DB 공급자

  • 타사 확장 저장 프로시저

  • 서버 내에서 실행되는 COM 개체(sp_OACreate를  통해 액세스)

  • xp_cmdshell을  통해 실행하는 프로그램

SQL Server에서 신뢰할 수 없는 코드를 사용할 경우 취할 완화 조치:

시나리오/사용 사례

완화 조치 또는 제안되는 단계

CLR을 사용하도록 설정하여 SQL Server 실행(sp_configure ‘clr enabled', 1)

  1. 가능한 경우, 신뢰할 수 없는 코드가 SQL Server로 로드될 위험을 줄이도록 응용 프로그램에서 불필요한 경우 CLR을 사용하지 않도록 설정합니다.

  1. (SQL Server 2017+) 응용 프로그램에 CLR이 여전히 필요한 경우 sys.sp_add_trusted_assembly(sys.sp_add_trusted_assembly (Transact-SQL))를 통해 “CLR 엄격한 보안” 기능(CLR 엄격한 보안)을 사용하여 특정 어셈블리만 로드하도록 설정합니다.

  1. CLR 코드를 T-SQL 동등 개체로 마이그레이션할 수 있는지 여부를 고려합니다.

  1. 보안 권한을 검토하여 CLR 기반 작업을 사용할 수 있는 시나리오를 차단합니다. 배포된 기존 응용 프로그램에서 새 어셈블리의 로드를 허용하지 않도록 CREATE ASSEMBLY, EXTERNAL ACCESS ASSEMBLY 및 UNSAFE ASSEMBLY 권한을 최소 사용자 또는 코드 경로 집합으로 제한합니다.

SQL Server 내에서 Java/R/Python 외부 스크립트 실행(sp_configure 'external scripts enabled', 1)

  1. 가능한 경우 공격 면적을 줄이도록 응용 프로그램에서 필요하지 않은 경우 외부 스크립트 기능을 사용하지 않도록 설정합니다.

  1. (SQL Server 2017+) 가능하면 채점을 수행하는 외부 스크립트를 마이그레이션하여 그 대신 네이티브 채점 기능을 사용합니다(PREDICT T-SQL 함수를 사용하는 네이티브 채점).

  1. 보안 권한을 검토하여 외부 스크립트를 사용할 수 있는 시나리오를 차단합니다. 임의의 스크립트가 실행되지 않도록 EXECUTE ANY EXTERNAL SCRIPT 권한을 최소 사용자/코드 경로 집합으로 제한합니다.

연결된 서버 사용(sp_addlinkedserver)

  1. 설치된 OLEDB 공급자를 검토하고 컴퓨터에서 신뢰할 수 없는 OLEDB 공급자를 제거합니다. OLEDB 공급자가 컴퓨터에서 SQL Server 외부에 사용되는 경우에는 OLEDB 공급자를 제거하지 않아야 합니다. 다음은 기존 OLEDB 공급자를 열거하는 방법의 예입니다. OleDbEnumerator.GetEnumerator 메서드(Type)

  1. sp_dropserver를 사용하여 SQL Server에서 불필요한 연결된 서버를 검토 및 제거해 sqlservr.exe 프로세스 내에서 신뢰할 수 없는 코드가 실행될 가능성을 줄입니다.

  1. 보안 권한을 검토하여 ALTER ANY LINKED SERVER 권한을 최소 사용자 수로 잠급니다.

  1. 연결된 서버 로그인/자격 증명 매핑(sp_addlinkedsvrlogin/sp_droplinkedsvrlogin)을 검토하여 연결된 서버를 통해 작업을 실행할 수 있는 사람을 최소 사용자/시나리오 집합으로 제한합니다.

확장 저장 프로시저 사용(sp_addextendedproc)

확장 저장 프로시저는 더 이상 사용되지 않으므로 사용되는 프로시저를 모두 제거하고 프로덕션 시스템에서 사용하지 않도록 합니다.

xp_cmdshell을 사용하여 SQL Server에서 이진 파일 호출

이 기능은 기본적으로 해제되어 있습니다. 신뢰할 수 없는 이진 파일을 호출하는 데 사용되는 모든 xp_cmdshell을 검토하여 제한합니다. 아래 문서의 설명에 따라 sp_configure를 통해 이 끝점에 대한  액세스를 제어할 수 있습니다.

xp_cmdshell 서버 구성 옵션

 

sp_OACreate를 통해 COM 개체 사용

이 기능은 기본적으로 해제되어 있습니다. sp_OACreate를 통해 호출되는 COM  개체는 서버에 설치된 코드를 실행합니다. 신뢰할 수 없는 이진 파일에 대한 이와 같은 호출을 검토합니다. 아래 문서의 설명에 따라  sp_configure를 통해 설정을 확인할  수 있습니다.

Ole Automation Procedures 서버 구성 옵션

 

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.