본문 바로가기
AhnLab 보안in

안철수연구소, 마이크로소프트 서버서비스 원격코드 실행 취약점 권고문 안내

by 보안세상 2020. 4. 6.

2008.10.24

 

◈ 제목
마이크로소프트 서버 서비스 원격 코드 실행 취약점

 

◈ 개요
원격코드실행 취약점이 서버 서비스에 존재한다. 이 취약점을 악용한 공격자는 프로그램의 설치, 보기, 변경, 데이터 삭제등과 같은 권한을 얻게 되어 시스템을 완전히 제어할 수 있게 된다. 이 취약점은 원격에서 공격이 가능하므로 주의가 필요하며, 윈도우 2000, 윈도우 XP 그리고 윈도우 서버 2003 시스템등 윈도우의 기본 서비스이므로 많은 컴퓨터가 공격대상이 될 수 있다.

 

◈ 공격유형
버퍼오버플로우(Buffer Overflow)

 

◈ 해당시스템

 

·  Microsoft Windows 2000 Service Pack 4

 

·  Windows XP Service Pack 2

 

·  Windows XP Service Pack 3

 

·  Windows XP Professional x64 Edition

 

·  Windows XP Professional x64 Edition Service Pack 2

 

·  Windows Server 2003 Service Pack 1

 

·  Windows Server 2003 Service Pack 2

 

·  Windows Server 2003 x64 Edition

 

·  Windows Server 2003 x64 Edition Service Pack 2

 

·  Windows Server 2003 with SP1 for Itanium-based Systems

 

·  Windows Server 2003 with SP2 for Itanium-based Systems

 

·  Windows Vista and Windows Vista Service Pack 1

 

·  Windows Vista x64 Edition and Windows Vista x64 Edition Service Pack 1

 

·  Windows Server 2008 for 32-bit Systems

 

·  Windows Server 2008 for x64-based Systems

 

·  Windows Server 2008 for Itanium-based Systems

 


◈ 영향

공격자는 취약점을 이용하여 시스템의 관리자 권한을 획득 할 수 있다. 관리자 권한을 획득한 공격자는 시스템을 완전히 제어할 수 있게 되어 시스템이 위험에 노출되게 된다.

 

◈ 설명

원격에서 코드를 실행할 수 있는 취약점이 존재하는 것으로, 공격자는 조작된 RPC 를 인증없이 전송하여 임의의 코드 실행이 가능하다. 이것은 윈도우 서버 서비스가 조작된 RPC 요청을 적절히 처리하지 않아 발생되는 것이다. RPC(Remote Procedure Call)는 네트워크 상의 컴퓨터간 프로그램 서비스를 요청할 수 있는 프로토콜로서 RPC 는 상호운영성을 제공해 준다. 서버 서비스는 RPC 를 지원하여 파일, 프린트 지원 그리고 네트워크를 통한 공유를 지원하여 다양한 기능을 제공해 준다.

 

서버 서비스는 RPC 인터페이스로 srvsvc 이름의 파이프를 오픈하며 ntsvcs 의 이름으로도 사용된다. srvsrc 인터페이스는 UUID 4b324fc8-1670-01d3-1278-5a47bf6ee188 값이 등록되어 있다. 이 인터페이스를 통해 공유설정, 세션, 파일 오픈 및 기타 서버의 자원 접근이 가능해 지는 것이다. SRVSVC 인터페이스의 RPC 기능으로 사용가능한 것은 아래와 같다:

 

• NetrFileEnum
• NetrSessionEnum
• NetrShareEnum
• NetrPathCanonicalize
• NetrPathCompare

 

일반적으로 클라이언트는 서버와 통신하기 위하여 TCP/139, 445 번의 SMB(Server Message Block)을 이용한다. RPC 를 통해 명령어를 전달하기 전 클라이언트는 서버와 SMB 세션을 맺어야 한다. 즉, SRVSVC 의 RPC 기능을 호출하기 위해서는 클라이언트는 우선 서버의 SRVSVC 파이프를 오픈하고 바인딩 단계를 거친다. 바인딩 호출이 성공적으로 이뤄지면 클라이언트는 SMB TransactNmPipe 명령어를 이용하여 RPC 메시지를 전달할 수가 있다. 그러나 NETAPI32.DLL 의 RPC 기능중 하나인 NetrPathCanonicalize 에 버퍼오버플로우가 존재하여 임의의 명령어 실행이 가능하다. 공격자는 조작된 RPC 메시지를 전달하여 포인터가 조작된 위치를 가르키도록 하여 명령어가 수행될 수 있다.

 

* 공격과정 (전형적인 SMB 세션을 통해 공격을 시도하는 과정)
[ Attacker ] --------------------> [ Target ]
1) 공격자는 공격대상 시스템에 SMB 세션 연결을 시도한다.
2) 공격대상 시스템에서는 SMB 세션에 대한 인증
3) 공격자는 대상시스템으로 SRVSVC RPC 인터페이스 바인딩
4) 대상 시스템은 바인딩 요청을 허용
5) 공격자는 대상시스템으로 조작된 RPC 요청을 전송

 

이 취약점은 현재 광범위 하게 사용되고 있는 운영체제에 기본으로 사용되고 있는 서비스인만큼 위험도가 상당히 높다고 볼 수 있으며, 영향을 받는 윈도우를 사용하는 고객은 반드시 패치를 할 것을 권고한다.

 

현재 이와 관련한 공격코드가 있는 것으로 알려 져 있으며, 악성코드에서 사용되어 질 수 있으므로 위험도가 높다.

이 취약점과 관련하여 보고된 것은 다음과 같다.

 

·  Server Service Vulnerability (CVE-2008-4250)

 

◈ FAQ

- 모든 윈도우 시스템이 다 영향을 받나요?
윈도우 XP SP2 와, 윈도우 비스타 그리고 윈도우 서버 2008은 방화벽에 의해 기본적으로 해당 인터페이스에 접근이 안되는 것으로 알려져 있습니다. 그러므로 공격에 이용되기 위해서는 다음과 같은 상황이 만들어져야 합니다.

 

1) 방화벽이 중지되어 있어야 함
2) 방화벽이 허용되어 있으나, 파일/프린터 공유가 허용되어 있는 경우

 

◈ 해결책

 

마이크로소프트사에서 배포하는 패치파일을 적용한다.

 

영문 취약점 참고 정보
Vulnerability in Server Service Could Allow Remote Code Execution

 

이번 취약점은 다음의 프로토콜을 통해 취약점이 전달될 수 있다.

 

- SMB 를 통한 DCE-RPC (TCP/139, TCP/445)

 

방화벽을 운영하는 기업들은 외부 인터넷을 통해 위의 포트로 접근이 가능하지 않도록 설정을 하는 것이 일시적으로 해결하기 위한 방법이 될 수 있다.