Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

RDP 인증 오류 해결 가이드: CredSSP 암호화 오라클 수정(CredSSP Encryption Oracle Remediation)

2018년 5월 이후 배포된 Windows 보안 업데이트를 설치한 후, 원격 Windows 서버나 PC에 RDP(원격 데스크톱)로 접속할 때 CredSSP 암호화 오라클 수정(CredSSP encryption oracle remediation) 오류가 발생할 수 있습니다. 이 오류는 주로 다음과 같은 경우에 나타납니다.

  • 최신 Windows 보안 업데이트가 설치되지 않은 구버전 Windows(예: Windows 10 RTM 또는 빌드 1709 이하, Windows Server 2012 R2, Windows Server 2016)의 원격 데스크톱에 접속하려는 경우
  • RDP로 접속하려는 컴퓨터에 Microsoft 업데이트가 장기간 설치되지 않은 경우
  • 반대로, 내 컴퓨터에 필요한 보안 업데이트가 없어서 원격 컴퓨터가 RDP 연결을 차단하는 경우

이 글에서는 RDP 오류 CredSSP encryption oracle remediation이 의미하는 바와 해결 방법을 자세히 알아보겠습니다.

CredSSP 암호화 오라클 오류 메시지

Windows Server 2016/2012 R2/2008 R2에서 실행 중인 RDS 서버의 RemoteApp에 접속하거나, RDP 프로토콜을 사용해 Windows 10, 8.1, 7 등의 다른 사용자 원격 데스크톱에 접속하려고 할 때 다음과 같은 오류가 표시됩니다.

원격 데스크톱 연결
인증 오류가 발생했습니다.
요청한 함수는 지원되지 않습니다.
원격 컴퓨터: hostname
CredSSP 암호화 오라클 수정 때문일 수 있습니다.

RDP 인증 오류 해결 가이드: CredSSP 암호화 오라클 수정(CredSSP Encryption Oracle Remediation)

이 오류는 RDP로 접속하려는 원격 Windows에 2018년 3월 이후의 Windows 보안 업데이트가 설치되어 있지 않기 때문에 발생합니다. 경우에 따라 "인증 오류가 발생했습니다. 요청한 함수는 지원되지 않습니다."라는 형태로 표시되기도 합니다.

오류의 원인: CVE-2018-0886 취약점

2018년 3월, Microsoft는 CredSSP(Credential Security Support Provider) 프로토콜의 원격 코드 실행 취약점(CVE-2018-0886)을 차단하는 업데이트를 배포했습니다. 이어서 2018년 5월에는 추가 업데이트가 공개되었으며, 이 업데이트부터는 기본적으로 취약한(패치되지 않은) 버전의 CredSSP 프로토콜을 사용하는 원격 RDP 서버에 Windows 클라이언트가 접속하지 못하도록 차단합니다.

따라서 2018년 3월 이후 누적 보안 업데이트를 RDS/RDP 서버(컴퓨터)에 설치하지 않은 상태에서, RDP 클라이언트에는 2018년 5월 업데이트(또는 그 이상)가 설치되어 있다면, 패치되지 않은 CredSSP 버전을 사용하는 RDS 서버에 접속을 시도할 때 This could be due to CredSSP encryption oracle remediation 오류가 발생하게 됩니다.

오류를 유발하는 보안 업데이트(KB) 목록

클라이언트에서 다음 보안 업데이트를 설치한 후 RDP 오류가 나타날 수 있습니다.

  • Windows 7 / Windows Server 2008 R2 — KB4103718
  • Windows 8.1 / Windows Server 2012 R2 — KB4103725
  • Windows Server 2016 — KB4103723
  • Windows 10 1803 — KB4103721
  • Windows 10 1709 — KB4103727
  • Windows 10 1703 — KB4103731
  • Windows 10 1607 — KB4103723

위 목록은 2018년 5월 기준 KB 번호입니다. 현재는 사용 중인 Windows 에디션에 맞는 최신 누적 업데이트를 다운로드하여 설치해야 합니다. 최신 보안 업데이트는 Windows Update(Microsoft 서버), 사내 WSUS 서버를 통해 받거나, Microsoft Update Catalog(https://www.catalog.update.microsoft.com/Home.aspx)에서 핫픽스 *.msu 파일을 직접 내려받아 설치할 수 있습니다.

예를 들어 Windows 10 1803용 2019년 8월 업데이트를 검색하려면 windows 10 1803 x64 8/*/2019 같은 검색어를 사용하면 됩니다. 검색 결과에서 해당 Windows 누적 업데이트(예: "2019-08 Cumulative Update for Windows 10 Version 1803 for x64-based Systems (KB4512509)")를 다운로드해 설치하십시오.

RDP 인증 오류 해결 가이드: CredSSP 암호화 오라클 수정(CredSSP Encryption Oracle Remediation)

참고로 원격 컴퓨터에서 해당 보안 업데이트를 제거하면 연결이 복구되지만, 이 방법은 권장하지 않습니다. 보안 위험이 크므로 아래의 더 안전하고 올바른 해결 방법을 사용하는 것이 좋습니다.

해결 방법 1: 로컬 그룹 정책으로 CredSSP 버전 확인 임시 비활성화

연결 문제를 해결하려면 RDP로 접속하는 클라이언트 컴퓨터에서 CredSSP 버전 확인을 일시적으로 비활성화해야 합니다. 로컬 그룹 정책 편집기를 사용하면 됩니다.

  1. 로컬 GPO 편집기를 실행합니다. (Win + R → gpedit.msc)
  2. 다음 GPO 섹션으로 이동합니다: 컴퓨터 구성 → 관리 템플릿 → 시스템 → 자격 증명 위임(Credentials Delegation)
    RDP 인증 오류 해결 가이드: CredSSP 암호화 오라클 수정(CredSSP Encryption Oracle Remediation)
  3. 암호화 오라클 수정(Encryption Oracle Remediation) 정책을 찾아 '사용'으로 설정하고, 보호 수준(Protection Level)을 취약(Vulnerable)으로 지정합니다.
    RDP 인증 오류 해결 가이드: CredSSP 암호화 오라클 수정(CredSSP Encryption Oracle Remediation)
  4. 정책 설정을 갱신합니다. 명령 프롬프트에서 gpupdate /force를 실행한 후 RDP로 원격 서버에 다시 접속해 봅니다. 정책이 'Vulnerable'로 설정되면 CredSSP를 지원하는 클라이언트 응용 프로그램은 패치되지 않은 RDS/RDP 엔드포인트에도 접속할 수 있습니다.

Encryption Oracle Remediation 정책의 3가지 보호 수준

이 정책은 CredSSP 취약점으로부터 보호하기 위해 다음 세 가지 값을 제공합니다.

  • Force Updated Clients(업데이트된 클라이언트 강제) — 가장 높은 보호 수준입니다. RDP 서버가 패치되지 않은 클라이언트의 연결을 차단합니다. 전체 인프라 업데이트를 완료하고 서버·워크스테이션용 Windows 설치 이미지에 최신 보안 업데이트를 반영한 후 이 정책을 적용하는 것이 일반적입니다.
  • Mitigated(완화) — 이 모드에서는 CredSSP 취약 버전을 사용하는 RDP 서버로의 아웃바운드 원격 RDP 연결만 차단됩니다. CredSSP를 사용하는 다른 서비스들은 정상적으로 동작합니다.
  • Vulnerable(취약) — 가장 낮은 보호 수준입니다. CredSSP 취약 버전을 사용하는 RDP 서버로의 연결이 허용됩니다.

해결 방법 2: 레지스트리 직접 수정

로컬 그룹 정책 편집기가 없는 환경(예: Windows Home 에디션)에서는 레지스트리를 직접 수정하여 CredSSP 패치가 적용되지 않은 서버로의 RDP 연결을 허용할 수 있습니다.

REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2

RDP 인증 오류 해결 가이드: CredSSP 암호화 오라클 수정(CredSSP Encryption Oracle Remediation)

AD 도메인 환경에서 여러 대의 컴퓨터에 AllowEncryptionOracle 레지스트리 값을 일괄 적용하려면 도메인 GPO를 사용하거나, 다음과 같은 PowerShell 스크립트를 활용할 수 있습니다(RSAT-AD-PowerShell 모듈의 Get-ADComputer cmdlet으로 도메인 내 컴퓨터 목록을 가져올 수 있습니다).

$computers = (Get-ADComputer -Filter *).DNSHostName
Foreach ($computer in $computers) {
Invoke-Command -ComputerName $computer -ScriptBlock {
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2
}
}

업데이트 설치 후 정책 원복하기

원격 RDP 서버(컴퓨터)에 성공적으로 접속했다면, Windows Update를 통해 최신 보안 업데이트를 설치해야 합니다(wuauserv 서비스가 활성화되어 있는지 확인). 또는 앞서 설명한 것처럼 Microsoft Update Catalog 사이트에서 최신 Windows 누적 업데이트를 내려받아 수동으로 설치할 수도 있습니다. MSU 업데이트 설치 시 "이 업데이트는 사용자의 컴퓨터에 적용할 수 없습니다"라는 오류가 나타난다면 관련 문서를 참고하시기 바랍니다.

더 이상 지원되지 않는 Windows XP/Windows Server 2003의 경우, Windows Embedded POSReady 2009용 업데이트를 설치해야 합니다. 예: https://support.microsoft.com/en-us/help/4056564

업데이트를 설치하고 서버를 재부팅한 후에는 클라이언트에서 정책을 반드시 해제하거나 Force Updated Clients로 변경하고, AllowEncryptionOracle 레지스트리 값을 0으로 되돌리는 것을 잊지 마십시오. 이렇게 하면 CredSSP 보호가 적용되지 않은 호스트에 접속함으로써 취약점이 악용될 위험을 피할 수 있습니다.

REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 0

역방향 시나리오: 서버는 패치됐지만 클라이언트가 미패치인 경우

또 다른 시나리오도 있습니다. 예를 들어 RDP 서버는 업데이트되었지만, CredSSP 취약 버전을 가진 컴퓨터로부터의 RDP 연결을 차단하는 정책(Force Updated Clients 설정)이 서버에 적용된 경우입니다. 이 경우에도 동일하게 "This could be due to CredSSP encryption oracle remediation" RDP 연결 오류가 표시됩니다.

내 컴퓨터에 마지막으로 설치된 Windows 업데이트 날짜는 PSWindowsUpdate 모듈이나 PowerShell 콘솔에서 WMI 명령으로 확인할 수 있습니다.

gwmi win32_quickfixengineering | sort installedon -desc

RDP 인증 오류 해결 가이드: CredSSP 암호화 오라클 수정(CredSSP Encryption Oracle Remediation)

위 예시에서는 최신 Windows 보안 업데이트가 2018년 6월 17일에 설치된 것을 확인할 수 있습니다. 이처럼 업데이트가 오래되었다면, 사용 중인 Windows 에디션에 맞는 최신 MSU 누적 업데이트 파일을 내려받아 설치하면 됩니다.