내보내기(0) 인쇄
모두 확장
확장 최소화

RPC 인터페이스 제한

적용 대상: Windows Server 2003 with SP1

RPC 인터페이스 제한은 어떤 기능을 수행합니까?

Windows Server 2003 서비스 팩 1용 RPC(원격 프로시저 호출) 서비스가 변경되어 기본적으로 RPC 인터페이스가 보호되고 Windows Server 2003의 공격 범위가 줄어들었습니다. 가장 중요한 변화는 RestrictRemoteClients라는 레지스트리 키가 추가된 것입니다. 이 키를 사용하면 시스템에서 모든 RPC 인터페이스의 동작을 수정하고 시스템에서 RPC 인터페이스에 대한 원격 익명 액세스를 제거할 수 있지만 예외인 경우도 있습니다. 추가 변경에는 EnableAuthEpResolution 레지스트리 키와 세 개의 새 인터페이스 등록 플래그가 있습니다.

이 기능의 적용 대상은 누구입니까?

이 기능은 RPC 응용 프로그램 개발자에게 적용됩니다. 시스템 관리자도 RPC에 대한 이러한 변경 내용을 알고 있어야 합니다.

Windows Server 2003 서비스 팩 1에서 이 기능에 추가된 새로운 기능은 무엇입니까?

RestrictRemoteClients 레지스트리 키

자세한 설명

인터페이스가 RpcServerRegisterIf를 사용하여 등록되면 RPC는 서버 응용 프로그램이 일반적으로 보안 콜백을 통해 인터페이스에 대한 액세스를 제한할 수 있도록 합니다. RestrictRemoteClients 레지스트리 키는 인터페이스에 등록된 보안 콜백이 없더라도 RPC가 모든 인터페이스에 대해 추가 보안 확인을 수행하도록 합니다.

명명된 파이프 프로토콜 시퀀스(ncacn_np)를 사용하는 RPC 클라이언트는 이 섹션에서 설명한 모든 제한에서 제외됩니다. 명명된 파이프 프로토콜 시퀀스는 이전 버전과의 몇 가지 중요한 호환성 문제로 인해 제한될 수 없습니다.

RestrictRemoteClients 레지스트리 키는 rpcdce.h에서 프로그래밍 방식으로도 제어될 수 있는 세 개의 DWORD 값 중 하나를 가질 수 있습니다. 이 키가 없으면 서버 SKU에 DWORD=0 값(RPC_RESTRICT_REMOTE_CLIENT_NONE)을 설정하고 클라이언트 SKU에 DWORD=1(RPC_RESTRICT_REMOTE_CLIENT_AUTH)을 설정한 것과 같습니다.

다음 표는 RestrictRemoteClients 레지스트리 키에 대한 참조를 보여 줍니다.

 

종류 설명

키 이름

RestrictRemoteClients

종류

DWORD

사용자 인터페이스를 통해 구성 가능

예, 가능합니다. 이 키는 그룹 정책 개체 편집기를 사용하여 구성될 수 있습니다.

키 값

0(서버 SKU에 대한 기본값)

이 값은 Windows Server 2003 서비스 팩 1에서 서버 SKU에 대한 기본값입니다. 이 값을 사용하면 시스템에서 RPC 인터페이스 제한을 무시하게 됩니다. 이것은 rpcdce.h의 RPC_RESTRICT_REMOTE_CLIENT_NONE 값에 해당합니다. RPC를 적절하게 제한하는 일은 전적으로 서버 응용 프로그램의 역할입니다. 이 설정은 이전 버전의 Windows에서의 동작과 일치합니다.

1

이 값은 SRSP1 코드 베이스로 작성된 클라이언트 SKU 및 Windows XP 서비스 팩 2에서 기본값으로, 모든 RPC 인터페이스에 대한 액세스를 제한합니다. 명명된 파이프(ncacn_np)를 통해 들어오는 호출을 제외하고 모든 원격 익명 호출은 RPC 런타임을 통해 거부됩니다. 이는 rpcdce.h의 RPC_RESTRICT_REMOTE_CLIENT_DEFAULT 값에 해당합니다. 인터페이스가 보안 콜백을 등록하고 RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH 플래그를 제공하는 경우 이 제한은 해당 인터페이스에는 적용되지 않습니다.

2

모든 원격 익명 호출은 RPC 런타임에 의해 예외 없이 거부됩니다. 이는 rpcdce.h의 RPC_RESTRICT_REMOTE_CLIENT_HIGH 값에 해당합니다. 이 값이 설정되면 시스템은 PRC를 사용하여 원격 익명 호출을 받을 수 없습니다.

이 변경 사항이 중요한 이유는 무엇이며 이로 인해 줄어드는 위협은 무엇입니까?

비교적 낮은 수준의 인증이더라도 호출할 때 인증을 수행하도록 요구하면 인터페이스를 공격하기가 훨씬 더 어렵습니다. RestrictRemoteClients을 설정하는 것은 특히 익명 연결을 통해 원격으로 호출될 수 있는 이용 가능한 버퍼 오버런에 의존하는 웜을 방지하기 위한 유용한 완화책입니다.

작동 방식의 차이는 무엇입니까?

RPC 응용 프로그램이 원격 익명 RPC 클라이언트의 호출을 받으려는 경우 이 기능을 사용하면 응용 프로그램이 제대로 실행되지 않을 수 있습니다. 따라서 이 값이 설정되면 DCOM을 사용하는 응용 프로그램은 제대로 작동하지 않을 수 있습니다.

UDP(사용자 데이터그램 프로토콜) 및 IPX(Internetwork Packet Exchange )와 같은 연결 없는 프로토콜을 통한 보안 RPC 호출(ncadq_ip_udpncadg_ipx)은 연결 지향 프로토콜을 통한 호출보다 더 낮은 수준의 보안을 사용하므로 이러한 호출은 항상 이 정책의 목적상 안전하지 않다고 간주됩니다. 따라서 연결 없는 프로토콜을 통한 RPC 호출은 이 키가 Windows Server 2003 서비스 팩 1에서 사용 가능하도록 설정된 경우 실패합니다.

연결 없는 프로토콜을 사용하여 RPC 클라이언트 호출을 허용하려면 RestrictRemoteClients 값 설정을 Windows Server 2003 서비스 팩 1의 기본 설정인 0(RPC_RESTRICT_REMOTE_CLIENT_NONE)으로 유지합니다.

이러한 문제를 해결하는 방법은 무엇입니까?

서버에서 RestrictRemoteClients를 사용할 수 있는 다음과 같은 옵션이 있습니다.

  • RPC 클라이언트가 서버 응용 프로그램에 연결할 경우 RPC 보안을 사용하도록 합니다. 이는 보안 위협을 줄이는 가장 좋은 방법입니다.

  • 인터페이스 등록 중에 RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH 플래그를 설정하여 인터페이스 인증을 생략합니다. 이는 응용 프로그램의 인터페이스에 대해서만 익명 연결을 허용하도록 RPC를 구성합니다.

EnableAuthEpResolution 레지스트리 키

자세한 설명

원격 및 익명으로 액세스할 수 있으며 Windows Server 2003에서 기본적으로 등록되는 RPC 인터페이스는 중요한 공격 대상입니다. RPC 자체는 이러한 인터페이스를 등록하여 동적 종점을 사용하는 호출에 종점 확인을 제공해야 합니다.

RestrictRemoteClients 플래그를 설정할 경우 RPC 종점 매퍼 인터페이스에 익명으로 액세스할 수 없습니다. 이렇게 하여 보안은 크게 강화되지만 종점 확인 작업이 변경됩니다. 현재 동적 종점을 사용하여 호출하려고 시도하는 RPC 클라이언트는 우선 서버의 RPC 종점 매퍼에 쿼리하여 연결해야 하는 종점을 결정합니다. RPC 클라이언트 호출 자체는 RPC 보안을 사용하여 수행되더라도 이 쿼리는 익명으로 수행됩니다. RPC 종점 매퍼 인터페이스에 대한 익명 호출은 RestrictRemoteClients 키가 1 이상의 값으로 설정된 경우 Windows Server 2003 서비스 팩 1에서 실패합니다. 따라서 종점 매퍼에 인증된 쿼리를 수행하려면 RPC 클라이언트 런타임을 수정해야 합니다. EnableAuthEpResolution 키가 설정된 경우 RPC 클라이언트 런타임은 NTLM을 사용하여 종점 매퍼에 인증합니다. 이 인증된 쿼리는 실제 RPC 클라이언트 호출이 RPC 인증을 사용할 경우에만 발생합니다.

이 변경 사항이 중요한 이유는 무엇입니까?

이 변경으로 RPC 클라이언트는 RestrictRemoteClients가 설정된 Windows Server 2003 서비스 팩 1을 실행하는 시스템에서 동적 종점을 등록한 RPC 서버를 호출할 수 있습니다. 클라이언트 컴퓨터는 RPC 종점 매퍼에 대해 인증된 쿼리를 수행하도록 이 레지스트리 키를 설정해야 합니다.

작동 방식의 차이는 무엇입니까?

이 레지스트리 키를 사용하여 이전 섹션에서 설명한 특정 시나리오를 수행할 수 있습니다. 이 키가 설정되면 인증된 호출 대신 수행되는 모든 RPC 종점 매퍼 쿼리가 NTLM 인증을 사용하여 수행됩니다.

또한 그룹 정책 개체 편집기로 Computer Configuration \Administrative Templates Computer Configuration\Administrative Templates\System\Remote Procedure Call\RPC Endpoint Mapper Client Authentication에 있는 그룹 정책 개체를 구성하여 이 설정을 지정할 수도 있습니다.

새 RPC 인터페이스 등록 플래그

자세한 설명

응용 프로그램 개발자가 RPC 인터페이스를 더 쉽게 보호할 수 있도록 세 개의 인터페이스 등록 플래그가 새로 만들어졌습니다.

  • RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH

    이 플래그가 등록되면 RPC 런타임은 호출 보안 설정에 관계없이 모든 호출에 대해 등록된 보안 콜백을 호출합니다. 이 플래그가 없으면 RPC는 보안 콜백에 도달하기 전에 인증되지 않은 모든 호출을 거부합니다. 이 플래그는 보안 콜백이 등록된 경우에만 작동합니다.

  • RPC_IF_SEC_NO_CACHE

    인터페이스에 대한 액세스를 제한하기 위해 해당 인터페이스에 대해 보안 콜백이 등록됩니다. 일반 보안 콜백은 클라이언트를 가장하여 클라이언트가 인터페이스를 호출할 수 있는 충분한 권한이 있는지 판단합니다. 특정 클라이언트 ID는 일단 보안 콜백을 전달하면 일반적으로 매번 동일한 보안 콜백을 전달합니다.

    RPC 런타임은 개별 클라이언트 ID가 언제 보안 콜백을 전달하고 동일 인터페이스에 대한 해당 클라이언트의 후속 호출에 대해 보안 콜백을 언제 생략하는지를 기억하여 이 패턴을 이용합니다. 이 기능은 보안 콜백 캐싱이라고 하며 Microsoft Windows 2000 운영 체제 제품군 이후로 사용되고 있습니다. Windows Server 2003 서비스 팩 1의 경우 RPC_IF_SEC_NO_CACHE 플래그를 사용하여 지정된 인터페이스에 대한 보안 콜백 캐싱을 사용하지 않도록 설정할 수 있습니다. 보안 검사가 변경되어 이전에 허용되던 클라이언트 ID를 거부하는 경우에 이 기능이 유용합니다.

  • RPC_IF_LOCAL_ONLY

    인터페이스가 이 플래그를 사용하여 등록되면 RPC는 원격 RPC 클라이언트에 의한 호출을 거부합니다. 또한 모든 ncadg_* 프로토콜 시퀀스와 모든 ncacn_* 프로토콜 시퀀스(ncacn_np를 사용하는 명명된 파이프는 제외)를 통한 로컬 호출도 거부됩니다. ncacn_np에서 호출이 수행될 경우 RPC는 모든 원격 호출을 필터링하여 제거하는 SRV로부터 오지 않는 호출만 허용합니다. Ncalrpc 호출은 항상 통과될 수 있습니다.

이 변경 사항이 중요한 이유는 무엇입니까?

이 변경으로 RPC 응용 프로그램 개발자는 RPC 인터페이스를 보호하는 데 도움이 되는 추가 보안 도구를 사용할 수 있게 되었습니다.

작동 방식의 차이는 무엇입니까?

이러한 플래그를 사용하면 기존의 모든 Windows Server 2003 기반 응용 프로그램이 변경되지 않거나 제대로 실행되지 않습니다. 이러한 새 플래그는 응용 프로그램 개발자가 임의로 사용할 수 있습니다.

Windows Server 2003 서비스 팩 1에서 변경되거나 추가된 설정은 무엇입니까?

RPC 설정

설정 이름 위치 기본값 사용 가능한 값

RestrictRemoteClients

HKEY_LOCAL_MACHINE\ SOFTWARE\Policies\ Microsoft\Windows NT\RPC

-또는-

(그룹 정책 개체)

Computer Configuration\ Administrative Templates\System\Remote Procedure Call\Restrictions for Unauthenticated RPC Clients

0

0 - 없음

1 - XP SP2 및 SRSP1 클라이언트 SKU 기본값

2 - 높음

EnableAuthEpResolution

HKEY_LOCAL_MACHINE\ SOFTWARE\Policies \Microsoft\Windows NT\RPC

-또는-

(그룹 정책 개체)

Computer Configuration\ Administrative Templates\System\Remote Procedure Call\RPC Endpoint Mapper Client Authentication

0

0 - 사용 안 함

1 - 사용함

Windows Server 2003 서비스 팩 1을 사용하려면 코드를 변경해야 합니까?

Windows Server 2003 서비스 팩 1에서 RestrictRemoteClients를 사용하도록 설정하려면 코드를 변경해야 할 수 있습니다. 필요한 응용 프로그램 변경에 대한 자세한 내용은 RestrictRemoteClients EnableAuthEpResolution의 이전 섹션을 참조하십시오.

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft