본문 바로가기

컴퓨터 엔지니어/운영체제/컴퓨터

Windows DNS 서버 RPC 원격 코드 실행 취약점

Windows DNS 서버 RPC 원격 코드 실행 취약점

□ 개요

  o Windows DNS 서버 원격 관리를 위해 사용하는 RPC 모듈에 원격 코드 실행 취약점[1]이 발견되어 주의가 필요합니다.

    - 현재, MS社에서  해당 취약점에 대한 보안권고[2]를 발표(4/13)하였으며, 향후 패치를 배포할 예정입니다.

   ※ RPC(Remote Procedure Call) : 네트워크 상의 다른 컴퓨터에서 실행되고 있는

         프로그램에 서비스를 요청하기 위해 사용되는 프로토콜


□ 취약점이 있는 운영 체제

   - MS Windows 2000 Server SP4

   - MS Windows Server 2003 SP1

   - MS Windows Server 2003 SP2



□ 해결방안

  o MS 보안권고에 따르면 취약점을 이용한 공격에 대응하기 위하여 크게 2가지 방법이 제안됨.

     ※ MS사에서 패치가 발표되면 즉시 적용하기를 권고함.


DNS 서버 시스템에서 레지스트리 조작을 통해 RPC를 이용한 원격관리기능을 정지

      1. 시작 메뉴를 클릭하여  실행 창을 오픈한다.

      2. 입력창에 Regedit를 입력하고 엔터를 누른다. 

      3. 레지스트리 트리 창에서 다음 아래 레지스트리 항목으로 이동한다.

          “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS
           \Parameters”

      4. 편집 메뉴에서  새로 만들기항목의  DWORD 값을 클릭한다.

      5. 새 값 #1 이 생성되면 레지스트리 이름을  RpcProtocol으로 변경한다.

      6. RpcProtocol항목을 더블 클릭하여 데이터 값 ‘4’를 입력한다.

      7. DNS 서비스를 재시작한다.


메모장과 같은 텍스트 편집기로 열어서, 다음 사항을 복사해 넣고, 확장자를 REG로 하여 저장하고, 해당 파일을 더블클릭하여 레지스트리에 등록하면 쉽게 가능합니다.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters]

"RpcProtocol"=dword:00000004


- 주의 사항

RPC를 사용하여 원격에서 DNS 서버를 관리하는 기능을 사용할 수 없게 된다. 즉, 원격에서 DNS 관리 콘솔을 연결할 수 없다. DNS 관리 콘솔을 이용하는 방법은 로컬로 이용하는 방법과 원격으로는 터미널 서비스등을 이용하는 방법으로만 가능하게 된다.

DNS MMC 콘솔뿐만 아니라, DNSCMD.EXE 명령어, DNS WIM Provider에도 해당된다.



방화벽에서 공격에 사용될 수 있는 1024-5000 포트를 차단

 방화벽이 없는 네트워크 환경에서는 IPSec을 사용하여 포트를 차단할 수 있습니다. 자세한 정보는 KB313190KB813878을 참고하기 바랍니다. 또한, NTFAQ의 IPSec을 통한 웹서비스 보안 정책-필터링(http://www.ntfaq.co.kr/3150), IPSec을 이용하여 특정 IP 및 트래픽 제어하기(http://www.ntfaq.co.kr/3112)을 참고하기 바랍니다.

- 주의 사항

포트 차단으로 인해 다른 서버 서비스의 제공에 영향을 미칠 수 있으므로 적절한 포트 개방/차단이 필요합니다. 예를 들어, SQL Server 서비스와 터미널 서비스를 사용한다면, 1024-5000번 포트에서 1433과 3389 TCP 포트를 반드시 열어야 한다는 점을 주의해야 합니다. 서비스가 제대로 이루어지는 원격에서 한번 더 점검하길 추천합니다.